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

package com.fca.uconnect.global;

public final class GlobalUconnectExtPC {
  private GlobalUconnectExtPC() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
    registry.add(com.fca.uconnect.global.GlobalUconnectExtPC.pcUpdateConfigRequest);
    registry.add(com.fca.uconnect.global.GlobalUconnectExtPC.pcUpdateConfigResponse);
    registry.add(com.fca.uconnect.global.GlobalUconnectExtPC.pcAlertPublish);
    registry.add(com.fca.uconnect.global.GlobalUconnectExtPC.pcNotificationPublish);
    registry.add(com.fca.uconnect.global.GlobalUconnectExtPC.pcAckMessage);
  }

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

    /**
     * <pre>
     *&#47; supported in NAFTA 
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle configTypeVehicle = 1;</code>
     */
    boolean hasConfigTypeVehicle();
    /**
     * <pre>
     *&#47; supported in NAFTA 
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle configTypeVehicle = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle getConfigTypeVehicle();
    /**
     * <pre>
     *&#47; supported in NAFTA 
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle configTypeVehicle = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicleOrBuilder getConfigTypeVehicleOrBuilder();

    /**
     * <pre>
     *&#47; supported in EMEA, APAC
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeSDP configTypeSDP = 2;</code>
     */
    boolean hasConfigTypeSDP();
    /**
     * <pre>
     *&#47; supported in EMEA, APAC
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeSDP configTypeSDP = 2;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP getConfigTypeSDP();
    /**
     * <pre>
     *&#47; supported in EMEA, APAC
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeSDP configTypeSDP = 2;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDPOrBuilder getConfigTypeSDPOrBuilder();

    public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigCase getConfigCase();
  }
  /**
   * <pre>
   **
   * This message represents  PCUpdateConfigRequest which triggers from SDP.
   * &lt;div class=exmsg-main&gt;
   * &lt;h4&gt;PCUpdateConfigRequest Example Message:&lt;/h4&gt;
   * &lt;div class=ex-msg&gt;
   *	&lt;code&gt;
   *		timestamp: 1490711212633
   * 		messageId: 11
   * 		messages
   * 		{
   * 		 [com.fca.uconnect.global.pcUpdateConfigRequest]
   * 		 {
   * 		  configTypeVehicle
   * 		  {
   * 			speedAlerts
   * 			{
   * 			 beginTime: 1000
   * 			 endTime: 10000
   * 			 activeDaysOfWeek: 1
   * 			 activeDaysOfWeek: 2
   * 			 thresholdAbovePostedSpeed: 60
   * 			 thresholdPostedSpeedAbsent: 80
   * 			 thresholdAbsolute: 70
   * 			}
   * 		   updateSpeedAlertConfig: true
   * 		  }
   * 		 }
   * 		}
   *	&lt;/code&gt;
   *   &lt;/div&gt;
   * &lt;/div&gt;
   * </pre>
   *
   * Protobuf type {@code com.fca.uconnect.global.PCUpdateConfigRequest}
   */
  public  static final class PCUpdateConfigRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.PCUpdateConfigRequest)
      PCUpdateConfigRequestOrBuilder {
    // Use PCUpdateConfigRequest.newBuilder() to construct.
    private PCUpdateConfigRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PCUpdateConfigRequest() {
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PCUpdateConfigRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.Builder subBuilder = null;
              if (configCase_ == 1) {
                subBuilder = ((com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle) config_).toBuilder();
              }
              config_ =
                  input.readMessage(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle) config_);
                config_ = subBuilder.buildPartial();
              }
              configCase_ = 1;
              break;
            }
            case 18: {
              com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP.Builder subBuilder = null;
              if (configCase_ == 2) {
                subBuilder = ((com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP) config_).toBuilder();
              }
              config_ =
                  input.readMessage(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP) config_);
                config_ = subBuilder.buildPartial();
              }
              configCase_ = 2;
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.class, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.Builder.class);
    }

    public interface ConfigTypeVehicleOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       *&#47; 0 to 5 ranges
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
       */
      java.util.List<com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig> 
          getCurfewAlertsList();
      /**
       * <pre>
       *&#47; 0 to 5 ranges
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig getCurfewAlerts(int index);
      /**
       * <pre>
       *&#47; 0 to 5 ranges
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
       */
      int getCurfewAlertsCount();
      /**
       * <pre>
       *&#47; 0 to 5 ranges
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
       */
      java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfigOrBuilder> 
          getCurfewAlertsOrBuilderList();
      /**
       * <pre>
       *&#47; 0 to 5 ranges
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfigOrBuilder getCurfewAlertsOrBuilder(
          int index);

      /**
       * <pre>
       *&#47; If false, this message should not update curfewAlerts. 
       * </pre>
       *
       * <code>optional bool updateCurfewAlertConfig = 2;</code>
       */
      boolean hasUpdateCurfewAlertConfig();
      /**
       * <pre>
       *&#47; If false, this message should not update curfewAlerts. 
       * </pre>
       *
       * <code>optional bool updateCurfewAlertConfig = 2;</code>
       */
      boolean getUpdateCurfewAlertConfig();

      /**
       * <pre>
       *&#47; 0 to 5 ranges
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
       */
      java.util.List<com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig> 
          getSpeedAlertsList();
      /**
       * <pre>
       *&#47; 0 to 5 ranges
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig getSpeedAlerts(int index);
      /**
       * <pre>
       *&#47; 0 to 5 ranges
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
       */
      int getSpeedAlertsCount();
      /**
       * <pre>
       *&#47; 0 to 5 ranges
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
       */
      java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfigOrBuilder> 
          getSpeedAlertsOrBuilderList();
      /**
       * <pre>
       *&#47; 0 to 5 ranges
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfigOrBuilder getSpeedAlertsOrBuilder(
          int index);

      /**
       * <pre>
       *&#47; If false, this message should not update speedAlerts. 
       * </pre>
       *
       * <code>optional bool updateSpeedAlertConfig = 4;</code>
       */
      boolean hasUpdateSpeedAlertConfig();
      /**
       * <pre>
       *&#47; If false, this message should not update speedAlerts. 
       * </pre>
       *
       * <code>optional bool updateSpeedAlertConfig = 4;</code>
       */
      boolean getUpdateSpeedAlertConfig();

      /**
       * <pre>
       *&#47; 0 or 1 configurations
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlert = 5;</code>
       */
      boolean hasValetAlert();
      /**
       * <pre>
       *&#47; 0 or 1 configurations
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlert = 5;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig getValetAlert();
      /**
       * <pre>
       *&#47; 0 or 1 configurations
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlert = 5;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfigOrBuilder getValetAlertOrBuilder();

      /**
       * <pre>
       *&#47; If false, this message should not update valetAlert. 
       * </pre>
       *
       * <code>optional bool updateValetAlertConfig = 6;</code>
       */
      boolean hasUpdateValetAlertConfig();
      /**
       * <pre>
       *&#47; If false, this message should not update valetAlert. 
       * </pre>
       *
       * <code>optional bool updateValetAlertConfig = 6;</code>
       */
      boolean getUpdateValetAlertConfig();

      /**
       * <pre>
       *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
       */
      java.util.List<com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig> 
          getGeoFenceAlertsList();
      /**
       * <pre>
       *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig getGeoFenceAlerts(int index);
      /**
       * <pre>
       *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
       */
      int getGeoFenceAlertsCount();
      /**
       * <pre>
       *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
       */
      java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfigOrBuilder> 
          getGeoFenceAlertsOrBuilderList();
      /**
       * <pre>
       *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfigOrBuilder getGeoFenceAlertsOrBuilder(
          int index);

      /**
       * <pre>
       *&#47; If false, this message should not update geoFenceAlerts. 
       * </pre>
       *
       * <code>optional bool updateGeoFenceAlertConfig = 8;</code>
       */
      boolean hasUpdateGeoFenceAlertConfig();
      /**
       * <pre>
       *&#47; If false, this message should not update geoFenceAlerts. 
       * </pre>
       *
       * <code>optional bool updateGeoFenceAlertConfig = 8;</code>
       */
      boolean getUpdateGeoFenceAlertConfig();
    }
    /**
     * <pre>
     **
     * Set of rules used by the TBM to generate asynchronous alerts based on time, position and vehicle behavior.
     * Each message may be a complete set of configuration data, or may use the boolean 'update' fields to update only particular configuration types.
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle}
     */
    public  static final class ConfigTypeVehicle extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle)
        ConfigTypeVehicleOrBuilder {
      // Use ConfigTypeVehicle.newBuilder() to construct.
      private ConfigTypeVehicle(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private ConfigTypeVehicle() {
        curfewAlerts_ = java.util.Collections.emptyList();
        updateCurfewAlertConfig_ = false;
        speedAlerts_ = java.util.Collections.emptyList();
        updateSpeedAlertConfig_ = false;
        updateValetAlertConfig_ = false;
        geoFenceAlerts_ = java.util.Collections.emptyList();
        updateGeoFenceAlertConfig_ = false;
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private ConfigTypeVehicle(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  curfewAlerts_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig>();
                  mutable_bitField0_ |= 0x00000001;
                }
                curfewAlerts_.add(
                    input.readMessage(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.PARSER, extensionRegistry));
                break;
              }
              case 16: {
                bitField0_ |= 0x00000001;
                updateCurfewAlertConfig_ = input.readBool();
                break;
              }
              case 26: {
                if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                  speedAlerts_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig>();
                  mutable_bitField0_ |= 0x00000004;
                }
                speedAlerts_.add(
                    input.readMessage(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.PARSER, extensionRegistry));
                break;
              }
              case 32: {
                bitField0_ |= 0x00000002;
                updateSpeedAlertConfig_ = input.readBool();
                break;
              }
              case 42: {
                com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = valetAlert_.toBuilder();
                }
                valetAlert_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(valetAlert_);
                  valetAlert_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
              case 48: {
                bitField0_ |= 0x00000008;
                updateValetAlertConfig_ = input.readBool();
                break;
              }
              case 58: {
                if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                  geoFenceAlerts_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig>();
                  mutable_bitField0_ |= 0x00000040;
                }
                geoFenceAlerts_.add(
                    input.readMessage(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.PARSER, extensionRegistry));
                break;
              }
              case 64: {
                bitField0_ |= 0x00000010;
                updateGeoFenceAlertConfig_ = input.readBool();
                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_ & 0x00000001) == 0x00000001)) {
            curfewAlerts_ = java.util.Collections.unmodifiableList(curfewAlerts_);
          }
          if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
            speedAlerts_ = java.util.Collections.unmodifiableList(speedAlerts_);
          }
          if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
            geoFenceAlerts_ = java.util.Collections.unmodifiableList(geoFenceAlerts_);
          }
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.class, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.Builder.class);
      }

      public interface CurfewAlertConfigOrBuilder extends
          // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig)
          com.google.protobuf.MessageOrBuilder {

        /**
         * <pre>
         *&#47; the identifier of the config that was triggered will be put in the generated alert
         * </pre>
         *
         * <code>optional string identifier = 1;</code>
         */
        boolean hasIdentifier();
        /**
         * <pre>
         *&#47; the identifier of the config that was triggered will be put in the generated alert
         * </pre>
         *
         * <code>optional string identifier = 1;</code>
         */
        java.lang.String getIdentifier();
        /**
         * <pre>
         *&#47; the identifier of the config that was triggered will be put in the generated alert
         * </pre>
         *
         * <code>optional string identifier = 1;</code>
         */
        com.google.protobuf.ByteString
            getIdentifierBytes();

        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 beginTime = 2;</code>
         */
        boolean hasBeginTime();
        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 beginTime = 2;</code>
         */
        int getBeginTime();

        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 endTime = 3;</code>
         */
        boolean hasEndTime();
        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 endTime = 3;</code>
         */
        int getEndTime();

        /**
         * <pre>
         *&#47; 0 == Sunday, 1 == Monday ...  
         * </pre>
         *
         * <code>repeated int32 activeDaysOfWeek = 4;</code>
         */
        java.util.List<java.lang.Integer> getActiveDaysOfWeekList();
        /**
         * <pre>
         *&#47; 0 == Sunday, 1 == Monday ...  
         * </pre>
         *
         * <code>repeated int32 activeDaysOfWeek = 4;</code>
         */
        int getActiveDaysOfWeekCount();
        /**
         * <pre>
         *&#47; 0 == Sunday, 1 == Monday ...  
         * </pre>
         *
         * <code>repeated int32 activeDaysOfWeek = 4;</code>
         */
        int getActiveDaysOfWeek(int index);
      }
      /**
       * Protobuf type {@code com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig}
       */
      public  static final class CurfewAlertConfig extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig)
          CurfewAlertConfigOrBuilder {
        // Use CurfewAlertConfig.newBuilder() to construct.
        private CurfewAlertConfig(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private CurfewAlertConfig() {
          identifier_ = "";
          beginTime_ = 0;
          endTime_ = 0;
          activeDaysOfWeek_ = java.util.Collections.emptyList();
        }

        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
          return this.unknownFields;
        }
        private CurfewAlertConfig(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          this();
          int mutable_bitField0_ = 0;
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
                case 10: {
                  com.google.protobuf.ByteString bs = input.readBytes();
                  bitField0_ |= 0x00000001;
                  identifier_ = bs;
                  break;
                }
                case 16: {
                  bitField0_ |= 0x00000002;
                  beginTime_ = input.readInt32();
                  break;
                }
                case 24: {
                  bitField0_ |= 0x00000004;
                  endTime_ = input.readInt32();
                  break;
                }
                case 32: {
                  if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                    activeDaysOfWeek_ = new java.util.ArrayList<java.lang.Integer>();
                    mutable_bitField0_ |= 0x00000008;
                  }
                  activeDaysOfWeek_.add(input.readInt32());
                  break;
                }
                case 34: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  if (!((mutable_bitField0_ & 0x00000008) == 0x00000008) && input.getBytesUntilLimit() > 0) {
                    activeDaysOfWeek_ = new java.util.ArrayList<java.lang.Integer>();
                    mutable_bitField0_ |= 0x00000008;
                  }
                  while (input.getBytesUntilLimit() > 0) {
                    activeDaysOfWeek_.add(input.readInt32());
                  }
                  input.popLimit(limit);
                  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_ & 0x00000008) == 0x00000008)) {
              activeDaysOfWeek_ = java.util.Collections.unmodifiableList(activeDaysOfWeek_);
            }
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_CurfewAlertConfig_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_CurfewAlertConfig_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.class, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.Builder.class);
        }

        private int bitField0_;
        public static final int IDENTIFIER_FIELD_NUMBER = 1;
        private volatile java.lang.Object identifier_;
        /**
         * <pre>
         *&#47; the identifier of the config that was triggered will be put in the generated alert
         * </pre>
         *
         * <code>optional string identifier = 1;</code>
         */
        public boolean hasIdentifier() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <pre>
         *&#47; the identifier of the config that was triggered will be put in the generated alert
         * </pre>
         *
         * <code>optional string identifier = 1;</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();
            if (bs.isValidUtf8()) {
              identifier_ = s;
            }
            return s;
          }
        }
        /**
         * <pre>
         *&#47; the identifier of the config that was triggered will be put in the generated alert
         * </pre>
         *
         * <code>optional string identifier = 1;</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 BEGINTIME_FIELD_NUMBER = 2;
        private int beginTime_;
        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 beginTime = 2;</code>
         */
        public boolean hasBeginTime() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 beginTime = 2;</code>
         */
        public int getBeginTime() {
          return beginTime_;
        }

        public static final int ENDTIME_FIELD_NUMBER = 3;
        private int endTime_;
        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 endTime = 3;</code>
         */
        public boolean hasEndTime() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 endTime = 3;</code>
         */
        public int getEndTime() {
          return endTime_;
        }

        public static final int ACTIVEDAYSOFWEEK_FIELD_NUMBER = 4;
        private java.util.List<java.lang.Integer> activeDaysOfWeek_;
        /**
         * <pre>
         *&#47; 0 == Sunday, 1 == Monday ...  
         * </pre>
         *
         * <code>repeated int32 activeDaysOfWeek = 4;</code>
         */
        public java.util.List<java.lang.Integer>
            getActiveDaysOfWeekList() {
          return activeDaysOfWeek_;
        }
        /**
         * <pre>
         *&#47; 0 == Sunday, 1 == Monday ...  
         * </pre>
         *
         * <code>repeated int32 activeDaysOfWeek = 4;</code>
         */
        public int getActiveDaysOfWeekCount() {
          return activeDaysOfWeek_.size();
        }
        /**
         * <pre>
         *&#47; 0 == Sunday, 1 == Monday ...  
         * </pre>
         *
         * <code>repeated int32 activeDaysOfWeek = 4;</code>
         */
        public int getActiveDaysOfWeek(int index) {
          return activeDaysOfWeek_.get(index);
        }

        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 (((bitField0_ & 0x00000001) == 0x00000001)) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 1, identifier_);
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeInt32(2, beginTime_);
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            output.writeInt32(3, endTime_);
          }
          for (int i = 0; i < activeDaysOfWeek_.size(); i++) {
            output.writeInt32(4, activeDaysOfWeek_.get(i));
          }
          unknownFields.writeTo(output);
        }

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

          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, identifier_);
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt32Size(2, beginTime_);
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt32Size(3, endTime_);
          }
          {
            int dataSize = 0;
            for (int i = 0; i < activeDaysOfWeek_.size(); i++) {
              dataSize += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(activeDaysOfWeek_.get(i));
            }
            size += dataSize;
            size += 1 * getActiveDaysOfWeekList().size();
          }
          size += unknownFields.getSerializedSize();
          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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig)) {
            return super.equals(obj);
          }
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig other = (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig) obj;

          boolean result = true;
          result = result && (hasIdentifier() == other.hasIdentifier());
          if (hasIdentifier()) {
            result = result && getIdentifier()
                .equals(other.getIdentifier());
          }
          result = result && (hasBeginTime() == other.hasBeginTime());
          if (hasBeginTime()) {
            result = result && (getBeginTime()
                == other.getBeginTime());
          }
          result = result && (hasEndTime() == other.hasEndTime());
          if (hasEndTime()) {
            result = result && (getEndTime()
                == other.getEndTime());
          }
          result = result && getActiveDaysOfWeekList()
              .equals(other.getActiveDaysOfWeekList());
          result = result && unknownFields.equals(other.unknownFields);
          return result;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptorForType().hashCode();
          if (hasIdentifier()) {
            hash = (37 * hash) + IDENTIFIER_FIELD_NUMBER;
            hash = (53 * hash) + getIdentifier().hashCode();
          }
          if (hasBeginTime()) {
            hash = (37 * hash) + BEGINTIME_FIELD_NUMBER;
            hash = (53 * hash) + getBeginTime();
          }
          if (hasEndTime()) {
            hash = (37 * hash) + ENDTIME_FIELD_NUMBER;
            hash = (53 * hash) + getEndTime();
          }
          if (getActiveDaysOfWeekCount() > 0) {
            hash = (37 * hash) + ACTIVEDAYSOFWEEK_FIELD_NUMBER;
            hash = (53 * hash) + getActiveDaysOfWeekList().hashCode();
          }
          hash = (29 * hash) + unknownFields.hashCode();
          memoizedHashCode = hash;
          return hash;
        }

        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig 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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig 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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
        }
        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig 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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig 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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig 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.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig)
            com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfigOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_CurfewAlertConfig_descriptor;
          }

          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_CurfewAlertConfig_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.class, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.Builder.class);
          }

          // Construct using com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.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();
            identifier_ = "";
            bitField0_ = (bitField0_ & ~0x00000001);
            beginTime_ = 0;
            bitField0_ = (bitField0_ & ~0x00000002);
            endTime_ = 0;
            bitField0_ = (bitField0_ & ~0x00000004);
            activeDaysOfWeek_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000008);
            return this;
          }

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

          public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig getDefaultInstanceForType() {
            return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.getDefaultInstance();
          }

          public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig build() {
            com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig buildPartial() {
            com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig result = new com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig(this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
              to_bitField0_ |= 0x00000001;
            }
            result.identifier_ = identifier_;
            if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
              to_bitField0_ |= 0x00000002;
            }
            result.beginTime_ = beginTime_;
            if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
              to_bitField0_ |= 0x00000004;
            }
            result.endTime_ = endTime_;
            if (((bitField0_ & 0x00000008) == 0x00000008)) {
              activeDaysOfWeek_ = java.util.Collections.unmodifiableList(activeDaysOfWeek_);
              bitField0_ = (bitField0_ & ~0x00000008);
            }
            result.activeDaysOfWeek_ = activeDaysOfWeek_;
            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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig) {
              return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig other) {
            if (other == com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.getDefaultInstance()) return this;
            if (other.hasIdentifier()) {
              bitField0_ |= 0x00000001;
              identifier_ = other.identifier_;
              onChanged();
            }
            if (other.hasBeginTime()) {
              setBeginTime(other.getBeginTime());
            }
            if (other.hasEndTime()) {
              setEndTime(other.getEndTime());
            }
            if (!other.activeDaysOfWeek_.isEmpty()) {
              if (activeDaysOfWeek_.isEmpty()) {
                activeDaysOfWeek_ = other.activeDaysOfWeek_;
                bitField0_ = (bitField0_ & ~0x00000008);
              } else {
                ensureActiveDaysOfWeekIsMutable();
                activeDaysOfWeek_.addAll(other.activeDaysOfWeek_);
              }
              onChanged();
            }
            this.mergeUnknownFields(other.unknownFields);
            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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig) e.getUnfinishedMessage();
              throw e.unwrapIOException();
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;

          private java.lang.Object identifier_ = "";
          /**
           * <pre>
           *&#47; the identifier of the config that was triggered will be put in the generated alert
           * </pre>
           *
           * <code>optional string identifier = 1;</code>
           */
          public boolean hasIdentifier() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }
          /**
           * <pre>
           *&#47; the identifier of the config that was triggered will be put in the generated alert
           * </pre>
           *
           * <code>optional string identifier = 1;</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();
              if (bs.isValidUtf8()) {
                identifier_ = s;
              }
              return s;
            } else {
              return (java.lang.String) ref;
            }
          }
          /**
           * <pre>
           *&#47; the identifier of the config that was triggered will be put in the generated alert
           * </pre>
           *
           * <code>optional string identifier = 1;</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; the identifier of the config that was triggered will be put in the generated alert
           * </pre>
           *
           * <code>optional string identifier = 1;</code>
           */
          public Builder setIdentifier(
              java.lang.String value) {
            if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
            identifier_ = value;
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; the identifier of the config that was triggered will be put in the generated alert
           * </pre>
           *
           * <code>optional string identifier = 1;</code>
           */
          public Builder clearIdentifier() {
            bitField0_ = (bitField0_ & ~0x00000001);
            identifier_ = getDefaultInstance().getIdentifier();
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; the identifier of the config that was triggered will be put in the generated alert
           * </pre>
           *
           * <code>optional string identifier = 1;</code>
           */
          public Builder setIdentifierBytes(
              com.google.protobuf.ByteString value) {
            if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
            identifier_ = value;
            onChanged();
            return this;
          }

          private int beginTime_ ;
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 beginTime = 2;</code>
           */
          public boolean hasBeginTime() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
          }
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 beginTime = 2;</code>
           */
          public int getBeginTime() {
            return beginTime_;
          }
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 beginTime = 2;</code>
           */
          public Builder setBeginTime(int value) {
            bitField0_ |= 0x00000002;
            beginTime_ = value;
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 beginTime = 2;</code>
           */
          public Builder clearBeginTime() {
            bitField0_ = (bitField0_ & ~0x00000002);
            beginTime_ = 0;
            onChanged();
            return this;
          }

          private int endTime_ ;
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 endTime = 3;</code>
           */
          public boolean hasEndTime() {
            return ((bitField0_ & 0x00000004) == 0x00000004);
          }
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 endTime = 3;</code>
           */
          public int getEndTime() {
            return endTime_;
          }
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 endTime = 3;</code>
           */
          public Builder setEndTime(int value) {
            bitField0_ |= 0x00000004;
            endTime_ = value;
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 endTime = 3;</code>
           */
          public Builder clearEndTime() {
            bitField0_ = (bitField0_ & ~0x00000004);
            endTime_ = 0;
            onChanged();
            return this;
          }

          private java.util.List<java.lang.Integer> activeDaysOfWeek_ = java.util.Collections.emptyList();
          private void ensureActiveDaysOfWeekIsMutable() {
            if (!((bitField0_ & 0x00000008) == 0x00000008)) {
              activeDaysOfWeek_ = new java.util.ArrayList<java.lang.Integer>(activeDaysOfWeek_);
              bitField0_ |= 0x00000008;
             }
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday ...  
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public java.util.List<java.lang.Integer>
              getActiveDaysOfWeekList() {
            return java.util.Collections.unmodifiableList(activeDaysOfWeek_);
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday ...  
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public int getActiveDaysOfWeekCount() {
            return activeDaysOfWeek_.size();
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday ...  
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public int getActiveDaysOfWeek(int index) {
            return activeDaysOfWeek_.get(index);
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday ...  
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public Builder setActiveDaysOfWeek(
              int index, int value) {
            ensureActiveDaysOfWeekIsMutable();
            activeDaysOfWeek_.set(index, value);
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday ...  
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public Builder addActiveDaysOfWeek(int value) {
            ensureActiveDaysOfWeekIsMutable();
            activeDaysOfWeek_.add(value);
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday ...  
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public Builder addAllActiveDaysOfWeek(
              java.lang.Iterable<? extends java.lang.Integer> values) {
            ensureActiveDaysOfWeekIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, activeDaysOfWeek_);
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday ...  
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public Builder clearActiveDaysOfWeek() {
            activeDaysOfWeek_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000008);
            onChanged();
            return this;
          }
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

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


          // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig)
        }

        // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig)
        private static final com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig();
        }

        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

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

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

        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      public interface SpeedAlertConfigOrBuilder extends
          // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig)
          com.google.protobuf.MessageOrBuilder {

        /**
         * <pre>
         *&#47; the identifier of the config that was triggered will be put in the generated alert	
         * </pre>
         *
         * <code>optional string identifier = 1;</code>
         */
        boolean hasIdentifier();
        /**
         * <pre>
         *&#47; the identifier of the config that was triggered will be put in the generated alert	
         * </pre>
         *
         * <code>optional string identifier = 1;</code>
         */
        java.lang.String getIdentifier();
        /**
         * <pre>
         *&#47; the identifier of the config that was triggered will be put in the generated alert	
         * </pre>
         *
         * <code>optional string identifier = 1;</code>
         */
        com.google.protobuf.ByteString
            getIdentifierBytes();

        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 beginTime = 2;</code>
         */
        boolean hasBeginTime();
        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 beginTime = 2;</code>
         */
        int getBeginTime();

        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 endTime = 3;</code>
         */
        boolean hasEndTime();
        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 endTime = 3;</code>
         */
        int getEndTime();

        /**
         * <pre>
         *&#47; 0 == Sunday, 1 == Monday ... 
         * </pre>
         *
         * <code>repeated int32 activeDaysOfWeek = 4;</code>
         */
        java.util.List<java.lang.Integer> getActiveDaysOfWeekList();
        /**
         * <pre>
         *&#47; 0 == Sunday, 1 == Monday ... 
         * </pre>
         *
         * <code>repeated int32 activeDaysOfWeek = 4;</code>
         */
        int getActiveDaysOfWeekCount();
        /**
         * <pre>
         *&#47; 0 == Sunday, 1 == Monday ... 
         * </pre>
         *
         * <code>repeated int32 activeDaysOfWeek = 4;</code>
         */
        int getActiveDaysOfWeek(int index);

        /**
         * <pre>
         *&#47; if posted speed is available from Nav, alert if speed &gt; thresholdAbovePostedSpeed + posted
         * </pre>
         *
         * <code>optional int32 thresholdAbovePostedSpeed = 5;</code>
         */
        boolean hasThresholdAbovePostedSpeed();
        /**
         * <pre>
         *&#47; if posted speed is available from Nav, alert if speed &gt; thresholdAbovePostedSpeed + posted
         * </pre>
         *
         * <code>optional int32 thresholdAbovePostedSpeed = 5;</code>
         */
        int getThresholdAbovePostedSpeed();

        /**
         * <pre>
         *&#47; if nav present but posted speed currently not valid alert if speed &gt; thresholdPostedSpeedAbsent
         * </pre>
         *
         * <code>optional int32 thresholdPostedSpeedAbsent = 6;</code>
         */
        boolean hasThresholdPostedSpeedAbsent();
        /**
         * <pre>
         *&#47; if nav present but posted speed currently not valid alert if speed &gt; thresholdPostedSpeedAbsent
         * </pre>
         *
         * <code>optional int32 thresholdPostedSpeedAbsent = 6;</code>
         */
        int getThresholdPostedSpeedAbsent();

        /**
         * <pre>
         *&#47; alert if speed &gt; thresholdAbsolute, unless nav is present and posted speed is available and speed &lt;= thresholdAbovePostedSpeed + posted
         * </pre>
         *
         * <code>optional int32 thresholdAbsolute = 7;</code>
         */
        boolean hasThresholdAbsolute();
        /**
         * <pre>
         *&#47; alert if speed &gt; thresholdAbsolute, unless nav is present and posted speed is available and speed &lt;= thresholdAbovePostedSpeed + posted
         * </pre>
         *
         * <code>optional int32 thresholdAbsolute = 7;</code>
         */
        int getThresholdAbsolute();
      }
      /**
       * Protobuf type {@code com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig}
       */
      public  static final class SpeedAlertConfig extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig)
          SpeedAlertConfigOrBuilder {
        // Use SpeedAlertConfig.newBuilder() to construct.
        private SpeedAlertConfig(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private SpeedAlertConfig() {
          identifier_ = "";
          beginTime_ = 0;
          endTime_ = 0;
          activeDaysOfWeek_ = java.util.Collections.emptyList();
          thresholdAbovePostedSpeed_ = 0;
          thresholdPostedSpeedAbsent_ = 0;
          thresholdAbsolute_ = 0;
        }

        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
          return this.unknownFields;
        }
        private SpeedAlertConfig(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          this();
          int mutable_bitField0_ = 0;
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
                case 10: {
                  com.google.protobuf.ByteString bs = input.readBytes();
                  bitField0_ |= 0x00000001;
                  identifier_ = bs;
                  break;
                }
                case 16: {
                  bitField0_ |= 0x00000002;
                  beginTime_ = input.readInt32();
                  break;
                }
                case 24: {
                  bitField0_ |= 0x00000004;
                  endTime_ = input.readInt32();
                  break;
                }
                case 32: {
                  if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                    activeDaysOfWeek_ = new java.util.ArrayList<java.lang.Integer>();
                    mutable_bitField0_ |= 0x00000008;
                  }
                  activeDaysOfWeek_.add(input.readInt32());
                  break;
                }
                case 34: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  if (!((mutable_bitField0_ & 0x00000008) == 0x00000008) && input.getBytesUntilLimit() > 0) {
                    activeDaysOfWeek_ = new java.util.ArrayList<java.lang.Integer>();
                    mutable_bitField0_ |= 0x00000008;
                  }
                  while (input.getBytesUntilLimit() > 0) {
                    activeDaysOfWeek_.add(input.readInt32());
                  }
                  input.popLimit(limit);
                  break;
                }
                case 40: {
                  bitField0_ |= 0x00000008;
                  thresholdAbovePostedSpeed_ = input.readInt32();
                  break;
                }
                case 48: {
                  bitField0_ |= 0x00000010;
                  thresholdPostedSpeedAbsent_ = input.readInt32();
                  break;
                }
                case 56: {
                  bitField0_ |= 0x00000020;
                  thresholdAbsolute_ = 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 {
            if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
              activeDaysOfWeek_ = java.util.Collections.unmodifiableList(activeDaysOfWeek_);
            }
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_SpeedAlertConfig_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_SpeedAlertConfig_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.class, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.Builder.class);
        }

        private int bitField0_;
        public static final int IDENTIFIER_FIELD_NUMBER = 1;
        private volatile java.lang.Object identifier_;
        /**
         * <pre>
         *&#47; the identifier of the config that was triggered will be put in the generated alert	
         * </pre>
         *
         * <code>optional string identifier = 1;</code>
         */
        public boolean hasIdentifier() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <pre>
         *&#47; the identifier of the config that was triggered will be put in the generated alert	
         * </pre>
         *
         * <code>optional string identifier = 1;</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();
            if (bs.isValidUtf8()) {
              identifier_ = s;
            }
            return s;
          }
        }
        /**
         * <pre>
         *&#47; the identifier of the config that was triggered will be put in the generated alert	
         * </pre>
         *
         * <code>optional string identifier = 1;</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 BEGINTIME_FIELD_NUMBER = 2;
        private int beginTime_;
        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 beginTime = 2;</code>
         */
        public boolean hasBeginTime() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 beginTime = 2;</code>
         */
        public int getBeginTime() {
          return beginTime_;
        }

        public static final int ENDTIME_FIELD_NUMBER = 3;
        private int endTime_;
        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 endTime = 3;</code>
         */
        public boolean hasEndTime() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 endTime = 3;</code>
         */
        public int getEndTime() {
          return endTime_;
        }

        public static final int ACTIVEDAYSOFWEEK_FIELD_NUMBER = 4;
        private java.util.List<java.lang.Integer> activeDaysOfWeek_;
        /**
         * <pre>
         *&#47; 0 == Sunday, 1 == Monday ... 
         * </pre>
         *
         * <code>repeated int32 activeDaysOfWeek = 4;</code>
         */
        public java.util.List<java.lang.Integer>
            getActiveDaysOfWeekList() {
          return activeDaysOfWeek_;
        }
        /**
         * <pre>
         *&#47; 0 == Sunday, 1 == Monday ... 
         * </pre>
         *
         * <code>repeated int32 activeDaysOfWeek = 4;</code>
         */
        public int getActiveDaysOfWeekCount() {
          return activeDaysOfWeek_.size();
        }
        /**
         * <pre>
         *&#47; 0 == Sunday, 1 == Monday ... 
         * </pre>
         *
         * <code>repeated int32 activeDaysOfWeek = 4;</code>
         */
        public int getActiveDaysOfWeek(int index) {
          return activeDaysOfWeek_.get(index);
        }

        public static final int THRESHOLDABOVEPOSTEDSPEED_FIELD_NUMBER = 5;
        private int thresholdAbovePostedSpeed_;
        /**
         * <pre>
         *&#47; if posted speed is available from Nav, alert if speed &gt; thresholdAbovePostedSpeed + posted
         * </pre>
         *
         * <code>optional int32 thresholdAbovePostedSpeed = 5;</code>
         */
        public boolean hasThresholdAbovePostedSpeed() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * <pre>
         *&#47; if posted speed is available from Nav, alert if speed &gt; thresholdAbovePostedSpeed + posted
         * </pre>
         *
         * <code>optional int32 thresholdAbovePostedSpeed = 5;</code>
         */
        public int getThresholdAbovePostedSpeed() {
          return thresholdAbovePostedSpeed_;
        }

        public static final int THRESHOLDPOSTEDSPEEDABSENT_FIELD_NUMBER = 6;
        private int thresholdPostedSpeedAbsent_;
        /**
         * <pre>
         *&#47; if nav present but posted speed currently not valid alert if speed &gt; thresholdPostedSpeedAbsent
         * </pre>
         *
         * <code>optional int32 thresholdPostedSpeedAbsent = 6;</code>
         */
        public boolean hasThresholdPostedSpeedAbsent() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        /**
         * <pre>
         *&#47; if nav present but posted speed currently not valid alert if speed &gt; thresholdPostedSpeedAbsent
         * </pre>
         *
         * <code>optional int32 thresholdPostedSpeedAbsent = 6;</code>
         */
        public int getThresholdPostedSpeedAbsent() {
          return thresholdPostedSpeedAbsent_;
        }

        public static final int THRESHOLDABSOLUTE_FIELD_NUMBER = 7;
        private int thresholdAbsolute_;
        /**
         * <pre>
         *&#47; alert if speed &gt; thresholdAbsolute, unless nav is present and posted speed is available and speed &lt;= thresholdAbovePostedSpeed + posted
         * </pre>
         *
         * <code>optional int32 thresholdAbsolute = 7;</code>
         */
        public boolean hasThresholdAbsolute() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }
        /**
         * <pre>
         *&#47; alert if speed &gt; thresholdAbsolute, unless nav is present and posted speed is available and speed &lt;= thresholdAbovePostedSpeed + posted
         * </pre>
         *
         * <code>optional int32 thresholdAbsolute = 7;</code>
         */
        public int getThresholdAbsolute() {
          return thresholdAbsolute_;
        }

        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 (((bitField0_ & 0x00000001) == 0x00000001)) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 1, identifier_);
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeInt32(2, beginTime_);
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            output.writeInt32(3, endTime_);
          }
          for (int i = 0; i < activeDaysOfWeek_.size(); i++) {
            output.writeInt32(4, activeDaysOfWeek_.get(i));
          }
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            output.writeInt32(5, thresholdAbovePostedSpeed_);
          }
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            output.writeInt32(6, thresholdPostedSpeedAbsent_);
          }
          if (((bitField0_ & 0x00000020) == 0x00000020)) {
            output.writeInt32(7, thresholdAbsolute_);
          }
          unknownFields.writeTo(output);
        }

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

          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, identifier_);
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt32Size(2, beginTime_);
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt32Size(3, endTime_);
          }
          {
            int dataSize = 0;
            for (int i = 0; i < activeDaysOfWeek_.size(); i++) {
              dataSize += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(activeDaysOfWeek_.get(i));
            }
            size += dataSize;
            size += 1 * getActiveDaysOfWeekList().size();
          }
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt32Size(5, thresholdAbovePostedSpeed_);
          }
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt32Size(6, thresholdPostedSpeedAbsent_);
          }
          if (((bitField0_ & 0x00000020) == 0x00000020)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt32Size(7, thresholdAbsolute_);
          }
          size += unknownFields.getSerializedSize();
          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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig)) {
            return super.equals(obj);
          }
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig other = (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig) obj;

          boolean result = true;
          result = result && (hasIdentifier() == other.hasIdentifier());
          if (hasIdentifier()) {
            result = result && getIdentifier()
                .equals(other.getIdentifier());
          }
          result = result && (hasBeginTime() == other.hasBeginTime());
          if (hasBeginTime()) {
            result = result && (getBeginTime()
                == other.getBeginTime());
          }
          result = result && (hasEndTime() == other.hasEndTime());
          if (hasEndTime()) {
            result = result && (getEndTime()
                == other.getEndTime());
          }
          result = result && getActiveDaysOfWeekList()
              .equals(other.getActiveDaysOfWeekList());
          result = result && (hasThresholdAbovePostedSpeed() == other.hasThresholdAbovePostedSpeed());
          if (hasThresholdAbovePostedSpeed()) {
            result = result && (getThresholdAbovePostedSpeed()
                == other.getThresholdAbovePostedSpeed());
          }
          result = result && (hasThresholdPostedSpeedAbsent() == other.hasThresholdPostedSpeedAbsent());
          if (hasThresholdPostedSpeedAbsent()) {
            result = result && (getThresholdPostedSpeedAbsent()
                == other.getThresholdPostedSpeedAbsent());
          }
          result = result && (hasThresholdAbsolute() == other.hasThresholdAbsolute());
          if (hasThresholdAbsolute()) {
            result = result && (getThresholdAbsolute()
                == other.getThresholdAbsolute());
          }
          result = result && unknownFields.equals(other.unknownFields);
          return result;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptorForType().hashCode();
          if (hasIdentifier()) {
            hash = (37 * hash) + IDENTIFIER_FIELD_NUMBER;
            hash = (53 * hash) + getIdentifier().hashCode();
          }
          if (hasBeginTime()) {
            hash = (37 * hash) + BEGINTIME_FIELD_NUMBER;
            hash = (53 * hash) + getBeginTime();
          }
          if (hasEndTime()) {
            hash = (37 * hash) + ENDTIME_FIELD_NUMBER;
            hash = (53 * hash) + getEndTime();
          }
          if (getActiveDaysOfWeekCount() > 0) {
            hash = (37 * hash) + ACTIVEDAYSOFWEEK_FIELD_NUMBER;
            hash = (53 * hash) + getActiveDaysOfWeekList().hashCode();
          }
          if (hasThresholdAbovePostedSpeed()) {
            hash = (37 * hash) + THRESHOLDABOVEPOSTEDSPEED_FIELD_NUMBER;
            hash = (53 * hash) + getThresholdAbovePostedSpeed();
          }
          if (hasThresholdPostedSpeedAbsent()) {
            hash = (37 * hash) + THRESHOLDPOSTEDSPEEDABSENT_FIELD_NUMBER;
            hash = (53 * hash) + getThresholdPostedSpeedAbsent();
          }
          if (hasThresholdAbsolute()) {
            hash = (37 * hash) + THRESHOLDABSOLUTE_FIELD_NUMBER;
            hash = (53 * hash) + getThresholdAbsolute();
          }
          hash = (29 * hash) + unknownFields.hashCode();
          memoizedHashCode = hash;
          return hash;
        }

        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig 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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig 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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
        }
        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig 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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig 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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig 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.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig)
            com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfigOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_SpeedAlertConfig_descriptor;
          }

          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_SpeedAlertConfig_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.class, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.Builder.class);
          }

          // Construct using com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.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();
            identifier_ = "";
            bitField0_ = (bitField0_ & ~0x00000001);
            beginTime_ = 0;
            bitField0_ = (bitField0_ & ~0x00000002);
            endTime_ = 0;
            bitField0_ = (bitField0_ & ~0x00000004);
            activeDaysOfWeek_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000008);
            thresholdAbovePostedSpeed_ = 0;
            bitField0_ = (bitField0_ & ~0x00000010);
            thresholdPostedSpeedAbsent_ = 0;
            bitField0_ = (bitField0_ & ~0x00000020);
            thresholdAbsolute_ = 0;
            bitField0_ = (bitField0_ & ~0x00000040);
            return this;
          }

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

          public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig getDefaultInstanceForType() {
            return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.getDefaultInstance();
          }

          public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig build() {
            com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig buildPartial() {
            com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig result = new com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig(this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
              to_bitField0_ |= 0x00000001;
            }
            result.identifier_ = identifier_;
            if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
              to_bitField0_ |= 0x00000002;
            }
            result.beginTime_ = beginTime_;
            if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
              to_bitField0_ |= 0x00000004;
            }
            result.endTime_ = endTime_;
            if (((bitField0_ & 0x00000008) == 0x00000008)) {
              activeDaysOfWeek_ = java.util.Collections.unmodifiableList(activeDaysOfWeek_);
              bitField0_ = (bitField0_ & ~0x00000008);
            }
            result.activeDaysOfWeek_ = activeDaysOfWeek_;
            if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
              to_bitField0_ |= 0x00000008;
            }
            result.thresholdAbovePostedSpeed_ = thresholdAbovePostedSpeed_;
            if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
              to_bitField0_ |= 0x00000010;
            }
            result.thresholdPostedSpeedAbsent_ = thresholdPostedSpeedAbsent_;
            if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
              to_bitField0_ |= 0x00000020;
            }
            result.thresholdAbsolute_ = thresholdAbsolute_;
            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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig) {
              return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig other) {
            if (other == com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.getDefaultInstance()) return this;
            if (other.hasIdentifier()) {
              bitField0_ |= 0x00000001;
              identifier_ = other.identifier_;
              onChanged();
            }
            if (other.hasBeginTime()) {
              setBeginTime(other.getBeginTime());
            }
            if (other.hasEndTime()) {
              setEndTime(other.getEndTime());
            }
            if (!other.activeDaysOfWeek_.isEmpty()) {
              if (activeDaysOfWeek_.isEmpty()) {
                activeDaysOfWeek_ = other.activeDaysOfWeek_;
                bitField0_ = (bitField0_ & ~0x00000008);
              } else {
                ensureActiveDaysOfWeekIsMutable();
                activeDaysOfWeek_.addAll(other.activeDaysOfWeek_);
              }
              onChanged();
            }
            if (other.hasThresholdAbovePostedSpeed()) {
              setThresholdAbovePostedSpeed(other.getThresholdAbovePostedSpeed());
            }
            if (other.hasThresholdPostedSpeedAbsent()) {
              setThresholdPostedSpeedAbsent(other.getThresholdPostedSpeedAbsent());
            }
            if (other.hasThresholdAbsolute()) {
              setThresholdAbsolute(other.getThresholdAbsolute());
            }
            this.mergeUnknownFields(other.unknownFields);
            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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig) e.getUnfinishedMessage();
              throw e.unwrapIOException();
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;

          private java.lang.Object identifier_ = "";
          /**
           * <pre>
           *&#47; the identifier of the config that was triggered will be put in the generated alert	
           * </pre>
           *
           * <code>optional string identifier = 1;</code>
           */
          public boolean hasIdentifier() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }
          /**
           * <pre>
           *&#47; the identifier of the config that was triggered will be put in the generated alert	
           * </pre>
           *
           * <code>optional string identifier = 1;</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();
              if (bs.isValidUtf8()) {
                identifier_ = s;
              }
              return s;
            } else {
              return (java.lang.String) ref;
            }
          }
          /**
           * <pre>
           *&#47; the identifier of the config that was triggered will be put in the generated alert	
           * </pre>
           *
           * <code>optional string identifier = 1;</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; the identifier of the config that was triggered will be put in the generated alert	
           * </pre>
           *
           * <code>optional string identifier = 1;</code>
           */
          public Builder setIdentifier(
              java.lang.String value) {
            if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
            identifier_ = value;
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; the identifier of the config that was triggered will be put in the generated alert	
           * </pre>
           *
           * <code>optional string identifier = 1;</code>
           */
          public Builder clearIdentifier() {
            bitField0_ = (bitField0_ & ~0x00000001);
            identifier_ = getDefaultInstance().getIdentifier();
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; the identifier of the config that was triggered will be put in the generated alert	
           * </pre>
           *
           * <code>optional string identifier = 1;</code>
           */
          public Builder setIdentifierBytes(
              com.google.protobuf.ByteString value) {
            if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
            identifier_ = value;
            onChanged();
            return this;
          }

          private int beginTime_ ;
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 beginTime = 2;</code>
           */
          public boolean hasBeginTime() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
          }
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 beginTime = 2;</code>
           */
          public int getBeginTime() {
            return beginTime_;
          }
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 beginTime = 2;</code>
           */
          public Builder setBeginTime(int value) {
            bitField0_ |= 0x00000002;
            beginTime_ = value;
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 beginTime = 2;</code>
           */
          public Builder clearBeginTime() {
            bitField0_ = (bitField0_ & ~0x00000002);
            beginTime_ = 0;
            onChanged();
            return this;
          }

          private int endTime_ ;
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 endTime = 3;</code>
           */
          public boolean hasEndTime() {
            return ((bitField0_ & 0x00000004) == 0x00000004);
          }
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 endTime = 3;</code>
           */
          public int getEndTime() {
            return endTime_;
          }
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 endTime = 3;</code>
           */
          public Builder setEndTime(int value) {
            bitField0_ |= 0x00000004;
            endTime_ = value;
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 endTime = 3;</code>
           */
          public Builder clearEndTime() {
            bitField0_ = (bitField0_ & ~0x00000004);
            endTime_ = 0;
            onChanged();
            return this;
          }

          private java.util.List<java.lang.Integer> activeDaysOfWeek_ = java.util.Collections.emptyList();
          private void ensureActiveDaysOfWeekIsMutable() {
            if (!((bitField0_ & 0x00000008) == 0x00000008)) {
              activeDaysOfWeek_ = new java.util.ArrayList<java.lang.Integer>(activeDaysOfWeek_);
              bitField0_ |= 0x00000008;
             }
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday ... 
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public java.util.List<java.lang.Integer>
              getActiveDaysOfWeekList() {
            return java.util.Collections.unmodifiableList(activeDaysOfWeek_);
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday ... 
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public int getActiveDaysOfWeekCount() {
            return activeDaysOfWeek_.size();
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday ... 
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public int getActiveDaysOfWeek(int index) {
            return activeDaysOfWeek_.get(index);
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday ... 
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public Builder setActiveDaysOfWeek(
              int index, int value) {
            ensureActiveDaysOfWeekIsMutable();
            activeDaysOfWeek_.set(index, value);
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday ... 
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public Builder addActiveDaysOfWeek(int value) {
            ensureActiveDaysOfWeekIsMutable();
            activeDaysOfWeek_.add(value);
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday ... 
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public Builder addAllActiveDaysOfWeek(
              java.lang.Iterable<? extends java.lang.Integer> values) {
            ensureActiveDaysOfWeekIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, activeDaysOfWeek_);
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday ... 
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public Builder clearActiveDaysOfWeek() {
            activeDaysOfWeek_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000008);
            onChanged();
            return this;
          }

          private int thresholdAbovePostedSpeed_ ;
          /**
           * <pre>
           *&#47; if posted speed is available from Nav, alert if speed &gt; thresholdAbovePostedSpeed + posted
           * </pre>
           *
           * <code>optional int32 thresholdAbovePostedSpeed = 5;</code>
           */
          public boolean hasThresholdAbovePostedSpeed() {
            return ((bitField0_ & 0x00000010) == 0x00000010);
          }
          /**
           * <pre>
           *&#47; if posted speed is available from Nav, alert if speed &gt; thresholdAbovePostedSpeed + posted
           * </pre>
           *
           * <code>optional int32 thresholdAbovePostedSpeed = 5;</code>
           */
          public int getThresholdAbovePostedSpeed() {
            return thresholdAbovePostedSpeed_;
          }
          /**
           * <pre>
           *&#47; if posted speed is available from Nav, alert if speed &gt; thresholdAbovePostedSpeed + posted
           * </pre>
           *
           * <code>optional int32 thresholdAbovePostedSpeed = 5;</code>
           */
          public Builder setThresholdAbovePostedSpeed(int value) {
            bitField0_ |= 0x00000010;
            thresholdAbovePostedSpeed_ = value;
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; if posted speed is available from Nav, alert if speed &gt; thresholdAbovePostedSpeed + posted
           * </pre>
           *
           * <code>optional int32 thresholdAbovePostedSpeed = 5;</code>
           */
          public Builder clearThresholdAbovePostedSpeed() {
            bitField0_ = (bitField0_ & ~0x00000010);
            thresholdAbovePostedSpeed_ = 0;
            onChanged();
            return this;
          }

          private int thresholdPostedSpeedAbsent_ ;
          /**
           * <pre>
           *&#47; if nav present but posted speed currently not valid alert if speed &gt; thresholdPostedSpeedAbsent
           * </pre>
           *
           * <code>optional int32 thresholdPostedSpeedAbsent = 6;</code>
           */
          public boolean hasThresholdPostedSpeedAbsent() {
            return ((bitField0_ & 0x00000020) == 0x00000020);
          }
          /**
           * <pre>
           *&#47; if nav present but posted speed currently not valid alert if speed &gt; thresholdPostedSpeedAbsent
           * </pre>
           *
           * <code>optional int32 thresholdPostedSpeedAbsent = 6;</code>
           */
          public int getThresholdPostedSpeedAbsent() {
            return thresholdPostedSpeedAbsent_;
          }
          /**
           * <pre>
           *&#47; if nav present but posted speed currently not valid alert if speed &gt; thresholdPostedSpeedAbsent
           * </pre>
           *
           * <code>optional int32 thresholdPostedSpeedAbsent = 6;</code>
           */
          public Builder setThresholdPostedSpeedAbsent(int value) {
            bitField0_ |= 0x00000020;
            thresholdPostedSpeedAbsent_ = value;
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; if nav present but posted speed currently not valid alert if speed &gt; thresholdPostedSpeedAbsent
           * </pre>
           *
           * <code>optional int32 thresholdPostedSpeedAbsent = 6;</code>
           */
          public Builder clearThresholdPostedSpeedAbsent() {
            bitField0_ = (bitField0_ & ~0x00000020);
            thresholdPostedSpeedAbsent_ = 0;
            onChanged();
            return this;
          }

          private int thresholdAbsolute_ ;
          /**
           * <pre>
           *&#47; alert if speed &gt; thresholdAbsolute, unless nav is present and posted speed is available and speed &lt;= thresholdAbovePostedSpeed + posted
           * </pre>
           *
           * <code>optional int32 thresholdAbsolute = 7;</code>
           */
          public boolean hasThresholdAbsolute() {
            return ((bitField0_ & 0x00000040) == 0x00000040);
          }
          /**
           * <pre>
           *&#47; alert if speed &gt; thresholdAbsolute, unless nav is present and posted speed is available and speed &lt;= thresholdAbovePostedSpeed + posted
           * </pre>
           *
           * <code>optional int32 thresholdAbsolute = 7;</code>
           */
          public int getThresholdAbsolute() {
            return thresholdAbsolute_;
          }
          /**
           * <pre>
           *&#47; alert if speed &gt; thresholdAbsolute, unless nav is present and posted speed is available and speed &lt;= thresholdAbovePostedSpeed + posted
           * </pre>
           *
           * <code>optional int32 thresholdAbsolute = 7;</code>
           */
          public Builder setThresholdAbsolute(int value) {
            bitField0_ |= 0x00000040;
            thresholdAbsolute_ = value;
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; alert if speed &gt; thresholdAbsolute, unless nav is present and posted speed is available and speed &lt;= thresholdAbovePostedSpeed + posted
           * </pre>
           *
           * <code>optional int32 thresholdAbsolute = 7;</code>
           */
          public Builder clearThresholdAbsolute() {
            bitField0_ = (bitField0_ & ~0x00000040);
            thresholdAbsolute_ = 0;
            onChanged();
            return this;
          }
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

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


          // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig)
        }

        // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig)
        private static final com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig();
        }

        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

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

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

        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      public interface ValetAlertConfigOrBuilder extends
          // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig)
          com.google.protobuf.MessageOrBuilder {

        /**
         * <pre>
         *&#47; the identifier of the config that was triggered will be put in the generated alert	
         * </pre>
         *
         * <code>optional string identifier = 1;</code>
         */
        boolean hasIdentifier();
        /**
         * <pre>
         *&#47; the identifier of the config that was triggered will be put in the generated alert	
         * </pre>
         *
         * <code>optional string identifier = 1;</code>
         */
        java.lang.String getIdentifier();
        /**
         * <pre>
         *&#47; the identifier of the config that was triggered will be put in the generated alert	
         * </pre>
         *
         * <code>optional string identifier = 1;</code>
         */
        com.google.protobuf.ByteString
            getIdentifierBytes();

        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 beginTime = 2;</code>
         */
        boolean hasBeginTime();
        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 beginTime = 2;</code>
         */
        int getBeginTime();

        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 endTime = 3;</code>
         */
        boolean hasEndTime();
        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 endTime = 3;</code>
         */
        int getEndTime();

        /**
         * <pre>
         *&#47; 0 == Sunday, 1 == Monday 
         * </pre>
         *
         * <code>repeated int32 activeDaysOfWeek = 4;</code>
         */
        java.util.List<java.lang.Integer> getActiveDaysOfWeekList();
        /**
         * <pre>
         *&#47; 0 == Sunday, 1 == Monday 
         * </pre>
         *
         * <code>repeated int32 activeDaysOfWeek = 4;</code>
         */
        int getActiveDaysOfWeekCount();
        /**
         * <pre>
         *&#47; 0 == Sunday, 1 == Monday 
         * </pre>
         *
         * <code>repeated int32 activeDaysOfWeek = 4;</code>
         */
        int getActiveDaysOfWeek(int index);

        /**
         * <pre>
         *&#47; Radius Units
         * </pre>
         *
         * <code>optional float alertRadius = 5;</code>
         */
        boolean hasAlertRadius();
        /**
         * <pre>
         *&#47; Radius Units
         * </pre>
         *
         * <code>optional float alertRadius = 5;</code>
         */
        float getAlertRadius();

        /**
         * <pre>
         *&#47; This represents whether alertRadius is in miles or kilometers.
         * </pre>
         *
         * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.RadiusUnitsEnum radiusUnitsEnum = 6;</code>
         */
        boolean hasRadiusUnitsEnum();
        /**
         * <pre>
         *&#47; This represents whether alertRadius is in miles or kilometers.
         * </pre>
         *
         * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.RadiusUnitsEnum radiusUnitsEnum = 6;</code>
         */
        com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.RadiusUnitsEnum getRadiusUnitsEnum();
      }
      /**
       * Protobuf type {@code com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig}
       */
      public  static final class ValetAlertConfig extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig)
          ValetAlertConfigOrBuilder {
        // Use ValetAlertConfig.newBuilder() to construct.
        private ValetAlertConfig(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private ValetAlertConfig() {
          identifier_ = "";
          beginTime_ = 0;
          endTime_ = 0;
          activeDaysOfWeek_ = java.util.Collections.emptyList();
          alertRadius_ = 0F;
          radiusUnitsEnum_ = 0;
        }

        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
          return this.unknownFields;
        }
        private ValetAlertConfig(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          this();
          int mutable_bitField0_ = 0;
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
                case 10: {
                  com.google.protobuf.ByteString bs = input.readBytes();
                  bitField0_ |= 0x00000001;
                  identifier_ = bs;
                  break;
                }
                case 16: {
                  bitField0_ |= 0x00000002;
                  beginTime_ = input.readInt32();
                  break;
                }
                case 24: {
                  bitField0_ |= 0x00000004;
                  endTime_ = input.readInt32();
                  break;
                }
                case 32: {
                  if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                    activeDaysOfWeek_ = new java.util.ArrayList<java.lang.Integer>();
                    mutable_bitField0_ |= 0x00000008;
                  }
                  activeDaysOfWeek_.add(input.readInt32());
                  break;
                }
                case 34: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  if (!((mutable_bitField0_ & 0x00000008) == 0x00000008) && input.getBytesUntilLimit() > 0) {
                    activeDaysOfWeek_ = new java.util.ArrayList<java.lang.Integer>();
                    mutable_bitField0_ |= 0x00000008;
                  }
                  while (input.getBytesUntilLimit() > 0) {
                    activeDaysOfWeek_.add(input.readInt32());
                  }
                  input.popLimit(limit);
                  break;
                }
                case 45: {
                  bitField0_ |= 0x00000008;
                  alertRadius_ = input.readFloat();
                  break;
                }
                case 48: {
                  int rawValue = input.readEnum();
                  com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.RadiusUnitsEnum value = com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.RadiusUnitsEnum.valueOf(rawValue);
                  if (value == null) {
                    unknownFields.mergeVarintField(6, rawValue);
                  } else {
                    bitField0_ |= 0x00000010;
                    radiusUnitsEnum_ = 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_ & 0x00000008) == 0x00000008)) {
              activeDaysOfWeek_ = java.util.Collections.unmodifiableList(activeDaysOfWeek_);
            }
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_ValetAlertConfig_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_ValetAlertConfig_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.class, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.Builder.class);
        }

        /**
         * Protobuf enum {@code com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.RadiusUnitsEnum}
         */
        public enum RadiusUnitsEnum
            implements com.google.protobuf.ProtocolMessageEnum {
          /**
           * <code>MILES = 0;</code>
           */
          MILES(0),
          /**
           * <code>KILOMETERS = 1;</code>
           */
          KILOMETERS(1),
          ;

          /**
           * <code>MILES = 0;</code>
           */
          public static final int MILES_VALUE = 0;
          /**
           * <code>KILOMETERS = 1;</code>
           */
          public static final int KILOMETERS_VALUE = 1;


          public final int getNumber() {
            return value;
          }

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

          public static RadiusUnitsEnum forNumber(int value) {
            switch (value) {
              case 0: return MILES;
              case 1: return KILOMETERS;
              default: return null;
            }
          }

          public static com.google.protobuf.Internal.EnumLiteMap<RadiusUnitsEnum>
              internalGetValueMap() {
            return internalValueMap;
          }
          private static final com.google.protobuf.Internal.EnumLiteMap<
              RadiusUnitsEnum> internalValueMap =
                new com.google.protobuf.Internal.EnumLiteMap<RadiusUnitsEnum>() {
                  public RadiusUnitsEnum findValueByNumber(int number) {
                    return RadiusUnitsEnum.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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.getDescriptor().getEnumTypes().get(0);
          }

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

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

          private final int value;

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

          // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.RadiusUnitsEnum)
        }

        private int bitField0_;
        public static final int IDENTIFIER_FIELD_NUMBER = 1;
        private volatile java.lang.Object identifier_;
        /**
         * <pre>
         *&#47; the identifier of the config that was triggered will be put in the generated alert	
         * </pre>
         *
         * <code>optional string identifier = 1;</code>
         */
        public boolean hasIdentifier() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <pre>
         *&#47; the identifier of the config that was triggered will be put in the generated alert	
         * </pre>
         *
         * <code>optional string identifier = 1;</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();
            if (bs.isValidUtf8()) {
              identifier_ = s;
            }
            return s;
          }
        }
        /**
         * <pre>
         *&#47; the identifier of the config that was triggered will be put in the generated alert	
         * </pre>
         *
         * <code>optional string identifier = 1;</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 BEGINTIME_FIELD_NUMBER = 2;
        private int beginTime_;
        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 beginTime = 2;</code>
         */
        public boolean hasBeginTime() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 beginTime = 2;</code>
         */
        public int getBeginTime() {
          return beginTime_;
        }

        public static final int ENDTIME_FIELD_NUMBER = 3;
        private int endTime_;
        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 endTime = 3;</code>
         */
        public boolean hasEndTime() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 endTime = 3;</code>
         */
        public int getEndTime() {
          return endTime_;
        }

        public static final int ACTIVEDAYSOFWEEK_FIELD_NUMBER = 4;
        private java.util.List<java.lang.Integer> activeDaysOfWeek_;
        /**
         * <pre>
         *&#47; 0 == Sunday, 1 == Monday 
         * </pre>
         *
         * <code>repeated int32 activeDaysOfWeek = 4;</code>
         */
        public java.util.List<java.lang.Integer>
            getActiveDaysOfWeekList() {
          return activeDaysOfWeek_;
        }
        /**
         * <pre>
         *&#47; 0 == Sunday, 1 == Monday 
         * </pre>
         *
         * <code>repeated int32 activeDaysOfWeek = 4;</code>
         */
        public int getActiveDaysOfWeekCount() {
          return activeDaysOfWeek_.size();
        }
        /**
         * <pre>
         *&#47; 0 == Sunday, 1 == Monday 
         * </pre>
         *
         * <code>repeated int32 activeDaysOfWeek = 4;</code>
         */
        public int getActiveDaysOfWeek(int index) {
          return activeDaysOfWeek_.get(index);
        }

        public static final int ALERTRADIUS_FIELD_NUMBER = 5;
        private float alertRadius_;
        /**
         * <pre>
         *&#47; Radius Units
         * </pre>
         *
         * <code>optional float alertRadius = 5;</code>
         */
        public boolean hasAlertRadius() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * <pre>
         *&#47; Radius Units
         * </pre>
         *
         * <code>optional float alertRadius = 5;</code>
         */
        public float getAlertRadius() {
          return alertRadius_;
        }

        public static final int RADIUSUNITSENUM_FIELD_NUMBER = 6;
        private int radiusUnitsEnum_;
        /**
         * <pre>
         *&#47; This represents whether alertRadius is in miles or kilometers.
         * </pre>
         *
         * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.RadiusUnitsEnum radiusUnitsEnum = 6;</code>
         */
        public boolean hasRadiusUnitsEnum() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        /**
         * <pre>
         *&#47; This represents whether alertRadius is in miles or kilometers.
         * </pre>
         *
         * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.RadiusUnitsEnum radiusUnitsEnum = 6;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.RadiusUnitsEnum getRadiusUnitsEnum() {
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.RadiusUnitsEnum result = com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.RadiusUnitsEnum.valueOf(radiusUnitsEnum_);
          return result == null ? com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.RadiusUnitsEnum.MILES : 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 (((bitField0_ & 0x00000001) == 0x00000001)) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 1, identifier_);
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeInt32(2, beginTime_);
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            output.writeInt32(3, endTime_);
          }
          for (int i = 0; i < activeDaysOfWeek_.size(); i++) {
            output.writeInt32(4, activeDaysOfWeek_.get(i));
          }
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            output.writeFloat(5, alertRadius_);
          }
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            output.writeEnum(6, radiusUnitsEnum_);
          }
          unknownFields.writeTo(output);
        }

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

          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, identifier_);
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt32Size(2, beginTime_);
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt32Size(3, endTime_);
          }
          {
            int dataSize = 0;
            for (int i = 0; i < activeDaysOfWeek_.size(); i++) {
              dataSize += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(activeDaysOfWeek_.get(i));
            }
            size += dataSize;
            size += 1 * getActiveDaysOfWeekList().size();
          }
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            size += com.google.protobuf.CodedOutputStream
              .computeFloatSize(5, alertRadius_);
          }
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            size += com.google.protobuf.CodedOutputStream
              .computeEnumSize(6, radiusUnitsEnum_);
          }
          size += unknownFields.getSerializedSize();
          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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig)) {
            return super.equals(obj);
          }
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig other = (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig) obj;

          boolean result = true;
          result = result && (hasIdentifier() == other.hasIdentifier());
          if (hasIdentifier()) {
            result = result && getIdentifier()
                .equals(other.getIdentifier());
          }
          result = result && (hasBeginTime() == other.hasBeginTime());
          if (hasBeginTime()) {
            result = result && (getBeginTime()
                == other.getBeginTime());
          }
          result = result && (hasEndTime() == other.hasEndTime());
          if (hasEndTime()) {
            result = result && (getEndTime()
                == other.getEndTime());
          }
          result = result && getActiveDaysOfWeekList()
              .equals(other.getActiveDaysOfWeekList());
          result = result && (hasAlertRadius() == other.hasAlertRadius());
          if (hasAlertRadius()) {
            result = result && (
                java.lang.Float.floatToIntBits(getAlertRadius())
                == java.lang.Float.floatToIntBits(
                    other.getAlertRadius()));
          }
          result = result && (hasRadiusUnitsEnum() == other.hasRadiusUnitsEnum());
          if (hasRadiusUnitsEnum()) {
            result = result && radiusUnitsEnum_ == other.radiusUnitsEnum_;
          }
          result = result && unknownFields.equals(other.unknownFields);
          return result;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptorForType().hashCode();
          if (hasIdentifier()) {
            hash = (37 * hash) + IDENTIFIER_FIELD_NUMBER;
            hash = (53 * hash) + getIdentifier().hashCode();
          }
          if (hasBeginTime()) {
            hash = (37 * hash) + BEGINTIME_FIELD_NUMBER;
            hash = (53 * hash) + getBeginTime();
          }
          if (hasEndTime()) {
            hash = (37 * hash) + ENDTIME_FIELD_NUMBER;
            hash = (53 * hash) + getEndTime();
          }
          if (getActiveDaysOfWeekCount() > 0) {
            hash = (37 * hash) + ACTIVEDAYSOFWEEK_FIELD_NUMBER;
            hash = (53 * hash) + getActiveDaysOfWeekList().hashCode();
          }
          if (hasAlertRadius()) {
            hash = (37 * hash) + ALERTRADIUS_FIELD_NUMBER;
            hash = (53 * hash) + java.lang.Float.floatToIntBits(
                getAlertRadius());
          }
          if (hasRadiusUnitsEnum()) {
            hash = (37 * hash) + RADIUSUNITSENUM_FIELD_NUMBER;
            hash = (53 * hash) + radiusUnitsEnum_;
          }
          hash = (29 * hash) + unknownFields.hashCode();
          memoizedHashCode = hash;
          return hash;
        }

        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig 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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig 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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
        }
        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig 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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig 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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig 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.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig)
            com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfigOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_ValetAlertConfig_descriptor;
          }

          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_ValetAlertConfig_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.class, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.Builder.class);
          }

          // Construct using com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.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();
            identifier_ = "";
            bitField0_ = (bitField0_ & ~0x00000001);
            beginTime_ = 0;
            bitField0_ = (bitField0_ & ~0x00000002);
            endTime_ = 0;
            bitField0_ = (bitField0_ & ~0x00000004);
            activeDaysOfWeek_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000008);
            alertRadius_ = 0F;
            bitField0_ = (bitField0_ & ~0x00000010);
            radiusUnitsEnum_ = 0;
            bitField0_ = (bitField0_ & ~0x00000020);
            return this;
          }

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

          public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig getDefaultInstanceForType() {
            return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.getDefaultInstance();
          }

          public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig build() {
            com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig buildPartial() {
            com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig result = new com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig(this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
              to_bitField0_ |= 0x00000001;
            }
            result.identifier_ = identifier_;
            if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
              to_bitField0_ |= 0x00000002;
            }
            result.beginTime_ = beginTime_;
            if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
              to_bitField0_ |= 0x00000004;
            }
            result.endTime_ = endTime_;
            if (((bitField0_ & 0x00000008) == 0x00000008)) {
              activeDaysOfWeek_ = java.util.Collections.unmodifiableList(activeDaysOfWeek_);
              bitField0_ = (bitField0_ & ~0x00000008);
            }
            result.activeDaysOfWeek_ = activeDaysOfWeek_;
            if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
              to_bitField0_ |= 0x00000008;
            }
            result.alertRadius_ = alertRadius_;
            if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
              to_bitField0_ |= 0x00000010;
            }
            result.radiusUnitsEnum_ = radiusUnitsEnum_;
            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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig) {
              return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig other) {
            if (other == com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.getDefaultInstance()) return this;
            if (other.hasIdentifier()) {
              bitField0_ |= 0x00000001;
              identifier_ = other.identifier_;
              onChanged();
            }
            if (other.hasBeginTime()) {
              setBeginTime(other.getBeginTime());
            }
            if (other.hasEndTime()) {
              setEndTime(other.getEndTime());
            }
            if (!other.activeDaysOfWeek_.isEmpty()) {
              if (activeDaysOfWeek_.isEmpty()) {
                activeDaysOfWeek_ = other.activeDaysOfWeek_;
                bitField0_ = (bitField0_ & ~0x00000008);
              } else {
                ensureActiveDaysOfWeekIsMutable();
                activeDaysOfWeek_.addAll(other.activeDaysOfWeek_);
              }
              onChanged();
            }
            if (other.hasAlertRadius()) {
              setAlertRadius(other.getAlertRadius());
            }
            if (other.hasRadiusUnitsEnum()) {
              setRadiusUnitsEnum(other.getRadiusUnitsEnum());
            }
            this.mergeUnknownFields(other.unknownFields);
            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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig) e.getUnfinishedMessage();
              throw e.unwrapIOException();
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;

          private java.lang.Object identifier_ = "";
          /**
           * <pre>
           *&#47; the identifier of the config that was triggered will be put in the generated alert	
           * </pre>
           *
           * <code>optional string identifier = 1;</code>
           */
          public boolean hasIdentifier() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }
          /**
           * <pre>
           *&#47; the identifier of the config that was triggered will be put in the generated alert	
           * </pre>
           *
           * <code>optional string identifier = 1;</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();
              if (bs.isValidUtf8()) {
                identifier_ = s;
              }
              return s;
            } else {
              return (java.lang.String) ref;
            }
          }
          /**
           * <pre>
           *&#47; the identifier of the config that was triggered will be put in the generated alert	
           * </pre>
           *
           * <code>optional string identifier = 1;</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; the identifier of the config that was triggered will be put in the generated alert	
           * </pre>
           *
           * <code>optional string identifier = 1;</code>
           */
          public Builder setIdentifier(
              java.lang.String value) {
            if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
            identifier_ = value;
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; the identifier of the config that was triggered will be put in the generated alert	
           * </pre>
           *
           * <code>optional string identifier = 1;</code>
           */
          public Builder clearIdentifier() {
            bitField0_ = (bitField0_ & ~0x00000001);
            identifier_ = getDefaultInstance().getIdentifier();
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; the identifier of the config that was triggered will be put in the generated alert	
           * </pre>
           *
           * <code>optional string identifier = 1;</code>
           */
          public Builder setIdentifierBytes(
              com.google.protobuf.ByteString value) {
            if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
            identifier_ = value;
            onChanged();
            return this;
          }

          private int beginTime_ ;
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 beginTime = 2;</code>
           */
          public boolean hasBeginTime() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
          }
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 beginTime = 2;</code>
           */
          public int getBeginTime() {
            return beginTime_;
          }
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 beginTime = 2;</code>
           */
          public Builder setBeginTime(int value) {
            bitField0_ |= 0x00000002;
            beginTime_ = value;
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 beginTime = 2;</code>
           */
          public Builder clearBeginTime() {
            bitField0_ = (bitField0_ & ~0x00000002);
            beginTime_ = 0;
            onChanged();
            return this;
          }

          private int endTime_ ;
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 endTime = 3;</code>
           */
          public boolean hasEndTime() {
            return ((bitField0_ & 0x00000004) == 0x00000004);
          }
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 endTime = 3;</code>
           */
          public int getEndTime() {
            return endTime_;
          }
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 endTime = 3;</code>
           */
          public Builder setEndTime(int value) {
            bitField0_ |= 0x00000004;
            endTime_ = value;
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 endTime = 3;</code>
           */
          public Builder clearEndTime() {
            bitField0_ = (bitField0_ & ~0x00000004);
            endTime_ = 0;
            onChanged();
            return this;
          }

          private java.util.List<java.lang.Integer> activeDaysOfWeek_ = java.util.Collections.emptyList();
          private void ensureActiveDaysOfWeekIsMutable() {
            if (!((bitField0_ & 0x00000008) == 0x00000008)) {
              activeDaysOfWeek_ = new java.util.ArrayList<java.lang.Integer>(activeDaysOfWeek_);
              bitField0_ |= 0x00000008;
             }
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday 
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public java.util.List<java.lang.Integer>
              getActiveDaysOfWeekList() {
            return java.util.Collections.unmodifiableList(activeDaysOfWeek_);
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday 
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public int getActiveDaysOfWeekCount() {
            return activeDaysOfWeek_.size();
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday 
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public int getActiveDaysOfWeek(int index) {
            return activeDaysOfWeek_.get(index);
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday 
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public Builder setActiveDaysOfWeek(
              int index, int value) {
            ensureActiveDaysOfWeekIsMutable();
            activeDaysOfWeek_.set(index, value);
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday 
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public Builder addActiveDaysOfWeek(int value) {
            ensureActiveDaysOfWeekIsMutable();
            activeDaysOfWeek_.add(value);
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday 
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public Builder addAllActiveDaysOfWeek(
              java.lang.Iterable<? extends java.lang.Integer> values) {
            ensureActiveDaysOfWeekIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, activeDaysOfWeek_);
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday 
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public Builder clearActiveDaysOfWeek() {
            activeDaysOfWeek_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000008);
            onChanged();
            return this;
          }

          private float alertRadius_ ;
          /**
           * <pre>
           *&#47; Radius Units
           * </pre>
           *
           * <code>optional float alertRadius = 5;</code>
           */
          public boolean hasAlertRadius() {
            return ((bitField0_ & 0x00000010) == 0x00000010);
          }
          /**
           * <pre>
           *&#47; Radius Units
           * </pre>
           *
           * <code>optional float alertRadius = 5;</code>
           */
          public float getAlertRadius() {
            return alertRadius_;
          }
          /**
           * <pre>
           *&#47; Radius Units
           * </pre>
           *
           * <code>optional float alertRadius = 5;</code>
           */
          public Builder setAlertRadius(float value) {
            bitField0_ |= 0x00000010;
            alertRadius_ = value;
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; Radius Units
           * </pre>
           *
           * <code>optional float alertRadius = 5;</code>
           */
          public Builder clearAlertRadius() {
            bitField0_ = (bitField0_ & ~0x00000010);
            alertRadius_ = 0F;
            onChanged();
            return this;
          }

          private int radiusUnitsEnum_ = 0;
          /**
           * <pre>
           *&#47; This represents whether alertRadius is in miles or kilometers.
           * </pre>
           *
           * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.RadiusUnitsEnum radiusUnitsEnum = 6;</code>
           */
          public boolean hasRadiusUnitsEnum() {
            return ((bitField0_ & 0x00000020) == 0x00000020);
          }
          /**
           * <pre>
           *&#47; This represents whether alertRadius is in miles or kilometers.
           * </pre>
           *
           * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.RadiusUnitsEnum radiusUnitsEnum = 6;</code>
           */
          public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.RadiusUnitsEnum getRadiusUnitsEnum() {
            com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.RadiusUnitsEnum result = com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.RadiusUnitsEnum.valueOf(radiusUnitsEnum_);
            return result == null ? com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.RadiusUnitsEnum.MILES : result;
          }
          /**
           * <pre>
           *&#47; This represents whether alertRadius is in miles or kilometers.
           * </pre>
           *
           * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.RadiusUnitsEnum radiusUnitsEnum = 6;</code>
           */
          public Builder setRadiusUnitsEnum(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.RadiusUnitsEnum value) {
            if (value == null) {
              throw new NullPointerException();
            }
            bitField0_ |= 0x00000020;
            radiusUnitsEnum_ = value.getNumber();
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; This represents whether alertRadius is in miles or kilometers.
           * </pre>
           *
           * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.RadiusUnitsEnum radiusUnitsEnum = 6;</code>
           */
          public Builder clearRadiusUnitsEnum() {
            bitField0_ = (bitField0_ & ~0x00000020);
            radiusUnitsEnum_ = 0;
            onChanged();
            return this;
          }
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

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


          // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig)
        }

        // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig)
        private static final com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig();
        }

        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

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

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

        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      public interface GeoFenceAlertConfigOrBuilder extends
          // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig)
          com.google.protobuf.MessageOrBuilder {

        /**
         * <pre>
         *&#47; the identifier of the config that was triggered will be put in the generated alert	
         * </pre>
         *
         * <code>optional string identifier = 1;</code>
         */
        boolean hasIdentifier();
        /**
         * <pre>
         *&#47; the identifier of the config that was triggered will be put in the generated alert	
         * </pre>
         *
         * <code>optional string identifier = 1;</code>
         */
        java.lang.String getIdentifier();
        /**
         * <pre>
         *&#47; the identifier of the config that was triggered will be put in the generated alert	
         * </pre>
         *
         * <code>optional string identifier = 1;</code>
         */
        com.google.protobuf.ByteString
            getIdentifierBytes();

        /**
         * <pre>
         *&#47; seconds after midnight.
         * </pre>
         *
         * <code>optional int32 beginTime = 2;</code>
         */
        boolean hasBeginTime();
        /**
         * <pre>
         *&#47; seconds after midnight.
         * </pre>
         *
         * <code>optional int32 beginTime = 2;</code>
         */
        int getBeginTime();

        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 endTime = 3;</code>
         */
        boolean hasEndTime();
        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 endTime = 3;</code>
         */
        int getEndTime();

        /**
         * <pre>
         *&#47; 0 == Sunday, 1 == Monday ... 
         * </pre>
         *
         * <code>repeated int32 activeDaysOfWeek = 4;</code>
         */
        java.util.List<java.lang.Integer> getActiveDaysOfWeekList();
        /**
         * <pre>
         *&#47; 0 == Sunday, 1 == Monday ... 
         * </pre>
         *
         * <code>repeated int32 activeDaysOfWeek = 4;</code>
         */
        int getActiveDaysOfWeekCount();
        /**
         * <pre>
         *&#47; 0 == Sunday, 1 == Monday ... 
         * </pre>
         *
         * <code>repeated int32 activeDaysOfWeek = 4;</code>
         */
        int getActiveDaysOfWeek(int index);

        /**
         * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
         */
        java.util.List<com.fca.uconnect.global.GlobalUconnectGNSS.Location> 
            getBoundaryPointsList();
        /**
         * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
         */
        com.fca.uconnect.global.GlobalUconnectGNSS.Location getBoundaryPoints(int index);
        /**
         * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
         */
        int getBoundaryPointsCount();
        /**
         * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
         */
        java.util.List<? extends com.fca.uconnect.global.GlobalUconnectGNSS.LocationOrBuilder> 
            getBoundaryPointsOrBuilderList();
        /**
         * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
         */
        com.fca.uconnect.global.GlobalUconnectGNSS.LocationOrBuilder getBoundaryPointsOrBuilder(
            int index);
      }
      /**
       * Protobuf type {@code com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig}
       */
      public  static final class GeoFenceAlertConfig extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig)
          GeoFenceAlertConfigOrBuilder {
        // Use GeoFenceAlertConfig.newBuilder() to construct.
        private GeoFenceAlertConfig(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private GeoFenceAlertConfig() {
          identifier_ = "";
          beginTime_ = 0;
          endTime_ = 0;
          activeDaysOfWeek_ = java.util.Collections.emptyList();
          boundaryPoints_ = java.util.Collections.emptyList();
        }

        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
          return this.unknownFields;
        }
        private GeoFenceAlertConfig(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          this();
          int mutable_bitField0_ = 0;
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
                case 10: {
                  com.google.protobuf.ByteString bs = input.readBytes();
                  bitField0_ |= 0x00000001;
                  identifier_ = bs;
                  break;
                }
                case 16: {
                  bitField0_ |= 0x00000002;
                  beginTime_ = input.readInt32();
                  break;
                }
                case 24: {
                  bitField0_ |= 0x00000004;
                  endTime_ = input.readInt32();
                  break;
                }
                case 32: {
                  if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                    activeDaysOfWeek_ = new java.util.ArrayList<java.lang.Integer>();
                    mutable_bitField0_ |= 0x00000008;
                  }
                  activeDaysOfWeek_.add(input.readInt32());
                  break;
                }
                case 34: {
                  int length = input.readRawVarint32();
                  int limit = input.pushLimit(length);
                  if (!((mutable_bitField0_ & 0x00000008) == 0x00000008) && input.getBytesUntilLimit() > 0) {
                    activeDaysOfWeek_ = new java.util.ArrayList<java.lang.Integer>();
                    mutable_bitField0_ |= 0x00000008;
                  }
                  while (input.getBytesUntilLimit() > 0) {
                    activeDaysOfWeek_.add(input.readInt32());
                  }
                  input.popLimit(limit);
                  break;
                }
                case 42: {
                  if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                    boundaryPoints_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectGNSS.Location>();
                    mutable_bitField0_ |= 0x00000010;
                  }
                  boundaryPoints_.add(
                      input.readMessage(com.fca.uconnect.global.GlobalUconnectGNSS.Location.PARSER, extensionRegistry));
                  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_ & 0x00000008) == 0x00000008)) {
              activeDaysOfWeek_ = java.util.Collections.unmodifiableList(activeDaysOfWeek_);
            }
            if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
              boundaryPoints_ = java.util.Collections.unmodifiableList(boundaryPoints_);
            }
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_GeoFenceAlertConfig_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_GeoFenceAlertConfig_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.class, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.Builder.class);
        }

        private int bitField0_;
        public static final int IDENTIFIER_FIELD_NUMBER = 1;
        private volatile java.lang.Object identifier_;
        /**
         * <pre>
         *&#47; the identifier of the config that was triggered will be put in the generated alert	
         * </pre>
         *
         * <code>optional string identifier = 1;</code>
         */
        public boolean hasIdentifier() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <pre>
         *&#47; the identifier of the config that was triggered will be put in the generated alert	
         * </pre>
         *
         * <code>optional string identifier = 1;</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();
            if (bs.isValidUtf8()) {
              identifier_ = s;
            }
            return s;
          }
        }
        /**
         * <pre>
         *&#47; the identifier of the config that was triggered will be put in the generated alert	
         * </pre>
         *
         * <code>optional string identifier = 1;</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 BEGINTIME_FIELD_NUMBER = 2;
        private int beginTime_;
        /**
         * <pre>
         *&#47; seconds after midnight.
         * </pre>
         *
         * <code>optional int32 beginTime = 2;</code>
         */
        public boolean hasBeginTime() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <pre>
         *&#47; seconds after midnight.
         * </pre>
         *
         * <code>optional int32 beginTime = 2;</code>
         */
        public int getBeginTime() {
          return beginTime_;
        }

        public static final int ENDTIME_FIELD_NUMBER = 3;
        private int endTime_;
        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 endTime = 3;</code>
         */
        public boolean hasEndTime() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <pre>
         *&#47; seconds after midnight
         * </pre>
         *
         * <code>optional int32 endTime = 3;</code>
         */
        public int getEndTime() {
          return endTime_;
        }

        public static final int ACTIVEDAYSOFWEEK_FIELD_NUMBER = 4;
        private java.util.List<java.lang.Integer> activeDaysOfWeek_;
        /**
         * <pre>
         *&#47; 0 == Sunday, 1 == Monday ... 
         * </pre>
         *
         * <code>repeated int32 activeDaysOfWeek = 4;</code>
         */
        public java.util.List<java.lang.Integer>
            getActiveDaysOfWeekList() {
          return activeDaysOfWeek_;
        }
        /**
         * <pre>
         *&#47; 0 == Sunday, 1 == Monday ... 
         * </pre>
         *
         * <code>repeated int32 activeDaysOfWeek = 4;</code>
         */
        public int getActiveDaysOfWeekCount() {
          return activeDaysOfWeek_.size();
        }
        /**
         * <pre>
         *&#47; 0 == Sunday, 1 == Monday ... 
         * </pre>
         *
         * <code>repeated int32 activeDaysOfWeek = 4;</code>
         */
        public int getActiveDaysOfWeek(int index) {
          return activeDaysOfWeek_.get(index);
        }

        public static final int BOUNDARYPOINTS_FIELD_NUMBER = 5;
        private java.util.List<com.fca.uconnect.global.GlobalUconnectGNSS.Location> boundaryPoints_;
        /**
         * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectGNSS.Location> getBoundaryPointsList() {
          return boundaryPoints_;
        }
        /**
         * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
         */
        public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectGNSS.LocationOrBuilder> 
            getBoundaryPointsOrBuilderList() {
          return boundaryPoints_;
        }
        /**
         * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
         */
        public int getBoundaryPointsCount() {
          return boundaryPoints_.size();
        }
        /**
         * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectGNSS.Location getBoundaryPoints(int index) {
          return boundaryPoints_.get(index);
        }
        /**
         * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectGNSS.LocationOrBuilder getBoundaryPointsOrBuilder(
            int index) {
          return boundaryPoints_.get(index);
        }

        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 (((bitField0_ & 0x00000001) == 0x00000001)) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 1, identifier_);
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeInt32(2, beginTime_);
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            output.writeInt32(3, endTime_);
          }
          for (int i = 0; i < activeDaysOfWeek_.size(); i++) {
            output.writeInt32(4, activeDaysOfWeek_.get(i));
          }
          for (int i = 0; i < boundaryPoints_.size(); i++) {
            output.writeMessage(5, boundaryPoints_.get(i));
          }
          unknownFields.writeTo(output);
        }

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

          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, identifier_);
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt32Size(2, beginTime_);
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt32Size(3, endTime_);
          }
          {
            int dataSize = 0;
            for (int i = 0; i < activeDaysOfWeek_.size(); i++) {
              dataSize += com.google.protobuf.CodedOutputStream
                .computeInt32SizeNoTag(activeDaysOfWeek_.get(i));
            }
            size += dataSize;
            size += 1 * getActiveDaysOfWeekList().size();
          }
          for (int i = 0; i < boundaryPoints_.size(); i++) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(5, boundaryPoints_.get(i));
          }
          size += unknownFields.getSerializedSize();
          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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig)) {
            return super.equals(obj);
          }
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig other = (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig) obj;

          boolean result = true;
          result = result && (hasIdentifier() == other.hasIdentifier());
          if (hasIdentifier()) {
            result = result && getIdentifier()
                .equals(other.getIdentifier());
          }
          result = result && (hasBeginTime() == other.hasBeginTime());
          if (hasBeginTime()) {
            result = result && (getBeginTime()
                == other.getBeginTime());
          }
          result = result && (hasEndTime() == other.hasEndTime());
          if (hasEndTime()) {
            result = result && (getEndTime()
                == other.getEndTime());
          }
          result = result && getActiveDaysOfWeekList()
              .equals(other.getActiveDaysOfWeekList());
          result = result && getBoundaryPointsList()
              .equals(other.getBoundaryPointsList());
          result = result && unknownFields.equals(other.unknownFields);
          return result;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptorForType().hashCode();
          if (hasIdentifier()) {
            hash = (37 * hash) + IDENTIFIER_FIELD_NUMBER;
            hash = (53 * hash) + getIdentifier().hashCode();
          }
          if (hasBeginTime()) {
            hash = (37 * hash) + BEGINTIME_FIELD_NUMBER;
            hash = (53 * hash) + getBeginTime();
          }
          if (hasEndTime()) {
            hash = (37 * hash) + ENDTIME_FIELD_NUMBER;
            hash = (53 * hash) + getEndTime();
          }
          if (getActiveDaysOfWeekCount() > 0) {
            hash = (37 * hash) + ACTIVEDAYSOFWEEK_FIELD_NUMBER;
            hash = (53 * hash) + getActiveDaysOfWeekList().hashCode();
          }
          if (getBoundaryPointsCount() > 0) {
            hash = (37 * hash) + BOUNDARYPOINTS_FIELD_NUMBER;
            hash = (53 * hash) + getBoundaryPointsList().hashCode();
          }
          hash = (29 * hash) + unknownFields.hashCode();
          memoizedHashCode = hash;
          return hash;
        }

        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig 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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig 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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
        }
        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig 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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig 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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig 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.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig)
            com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfigOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_GeoFenceAlertConfig_descriptor;
          }

          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_GeoFenceAlertConfig_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.class, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.Builder.class);
          }

          // Construct using com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessageV3
                    .alwaysUseFieldBuilders) {
              getBoundaryPointsFieldBuilder();
            }
          }
          public Builder clear() {
            super.clear();
            identifier_ = "";
            bitField0_ = (bitField0_ & ~0x00000001);
            beginTime_ = 0;
            bitField0_ = (bitField0_ & ~0x00000002);
            endTime_ = 0;
            bitField0_ = (bitField0_ & ~0x00000004);
            activeDaysOfWeek_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000008);
            if (boundaryPointsBuilder_ == null) {
              boundaryPoints_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              boundaryPointsBuilder_.clear();
            }
            return this;
          }

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

          public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig getDefaultInstanceForType() {
            return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.getDefaultInstance();
          }

          public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig build() {
            com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig buildPartial() {
            com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig result = new com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig(this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
              to_bitField0_ |= 0x00000001;
            }
            result.identifier_ = identifier_;
            if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
              to_bitField0_ |= 0x00000002;
            }
            result.beginTime_ = beginTime_;
            if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
              to_bitField0_ |= 0x00000004;
            }
            result.endTime_ = endTime_;
            if (((bitField0_ & 0x00000008) == 0x00000008)) {
              activeDaysOfWeek_ = java.util.Collections.unmodifiableList(activeDaysOfWeek_);
              bitField0_ = (bitField0_ & ~0x00000008);
            }
            result.activeDaysOfWeek_ = activeDaysOfWeek_;
            if (boundaryPointsBuilder_ == null) {
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                boundaryPoints_ = java.util.Collections.unmodifiableList(boundaryPoints_);
                bitField0_ = (bitField0_ & ~0x00000010);
              }
              result.boundaryPoints_ = boundaryPoints_;
            } else {
              result.boundaryPoints_ = boundaryPointsBuilder_.build();
            }
            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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig) {
              return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig other) {
            if (other == com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.getDefaultInstance()) return this;
            if (other.hasIdentifier()) {
              bitField0_ |= 0x00000001;
              identifier_ = other.identifier_;
              onChanged();
            }
            if (other.hasBeginTime()) {
              setBeginTime(other.getBeginTime());
            }
            if (other.hasEndTime()) {
              setEndTime(other.getEndTime());
            }
            if (!other.activeDaysOfWeek_.isEmpty()) {
              if (activeDaysOfWeek_.isEmpty()) {
                activeDaysOfWeek_ = other.activeDaysOfWeek_;
                bitField0_ = (bitField0_ & ~0x00000008);
              } else {
                ensureActiveDaysOfWeekIsMutable();
                activeDaysOfWeek_.addAll(other.activeDaysOfWeek_);
              }
              onChanged();
            }
            if (boundaryPointsBuilder_ == null) {
              if (!other.boundaryPoints_.isEmpty()) {
                if (boundaryPoints_.isEmpty()) {
                  boundaryPoints_ = other.boundaryPoints_;
                  bitField0_ = (bitField0_ & ~0x00000010);
                } else {
                  ensureBoundaryPointsIsMutable();
                  boundaryPoints_.addAll(other.boundaryPoints_);
                }
                onChanged();
              }
            } else {
              if (!other.boundaryPoints_.isEmpty()) {
                if (boundaryPointsBuilder_.isEmpty()) {
                  boundaryPointsBuilder_.dispose();
                  boundaryPointsBuilder_ = null;
                  boundaryPoints_ = other.boundaryPoints_;
                  bitField0_ = (bitField0_ & ~0x00000010);
                  boundaryPointsBuilder_ = 
                    com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                       getBoundaryPointsFieldBuilder() : null;
                } else {
                  boundaryPointsBuilder_.addAllMessages(other.boundaryPoints_);
                }
              }
            }
            this.mergeUnknownFields(other.unknownFields);
            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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig) e.getUnfinishedMessage();
              throw e.unwrapIOException();
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;

          private java.lang.Object identifier_ = "";
          /**
           * <pre>
           *&#47; the identifier of the config that was triggered will be put in the generated alert	
           * </pre>
           *
           * <code>optional string identifier = 1;</code>
           */
          public boolean hasIdentifier() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }
          /**
           * <pre>
           *&#47; the identifier of the config that was triggered will be put in the generated alert	
           * </pre>
           *
           * <code>optional string identifier = 1;</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();
              if (bs.isValidUtf8()) {
                identifier_ = s;
              }
              return s;
            } else {
              return (java.lang.String) ref;
            }
          }
          /**
           * <pre>
           *&#47; the identifier of the config that was triggered will be put in the generated alert	
           * </pre>
           *
           * <code>optional string identifier = 1;</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; the identifier of the config that was triggered will be put in the generated alert	
           * </pre>
           *
           * <code>optional string identifier = 1;</code>
           */
          public Builder setIdentifier(
              java.lang.String value) {
            if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
            identifier_ = value;
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; the identifier of the config that was triggered will be put in the generated alert	
           * </pre>
           *
           * <code>optional string identifier = 1;</code>
           */
          public Builder clearIdentifier() {
            bitField0_ = (bitField0_ & ~0x00000001);
            identifier_ = getDefaultInstance().getIdentifier();
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; the identifier of the config that was triggered will be put in the generated alert	
           * </pre>
           *
           * <code>optional string identifier = 1;</code>
           */
          public Builder setIdentifierBytes(
              com.google.protobuf.ByteString value) {
            if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
            identifier_ = value;
            onChanged();
            return this;
          }

          private int beginTime_ ;
          /**
           * <pre>
           *&#47; seconds after midnight.
           * </pre>
           *
           * <code>optional int32 beginTime = 2;</code>
           */
          public boolean hasBeginTime() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
          }
          /**
           * <pre>
           *&#47; seconds after midnight.
           * </pre>
           *
           * <code>optional int32 beginTime = 2;</code>
           */
          public int getBeginTime() {
            return beginTime_;
          }
          /**
           * <pre>
           *&#47; seconds after midnight.
           * </pre>
           *
           * <code>optional int32 beginTime = 2;</code>
           */
          public Builder setBeginTime(int value) {
            bitField0_ |= 0x00000002;
            beginTime_ = value;
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; seconds after midnight.
           * </pre>
           *
           * <code>optional int32 beginTime = 2;</code>
           */
          public Builder clearBeginTime() {
            bitField0_ = (bitField0_ & ~0x00000002);
            beginTime_ = 0;
            onChanged();
            return this;
          }

          private int endTime_ ;
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 endTime = 3;</code>
           */
          public boolean hasEndTime() {
            return ((bitField0_ & 0x00000004) == 0x00000004);
          }
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 endTime = 3;</code>
           */
          public int getEndTime() {
            return endTime_;
          }
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 endTime = 3;</code>
           */
          public Builder setEndTime(int value) {
            bitField0_ |= 0x00000004;
            endTime_ = value;
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; seconds after midnight
           * </pre>
           *
           * <code>optional int32 endTime = 3;</code>
           */
          public Builder clearEndTime() {
            bitField0_ = (bitField0_ & ~0x00000004);
            endTime_ = 0;
            onChanged();
            return this;
          }

          private java.util.List<java.lang.Integer> activeDaysOfWeek_ = java.util.Collections.emptyList();
          private void ensureActiveDaysOfWeekIsMutable() {
            if (!((bitField0_ & 0x00000008) == 0x00000008)) {
              activeDaysOfWeek_ = new java.util.ArrayList<java.lang.Integer>(activeDaysOfWeek_);
              bitField0_ |= 0x00000008;
             }
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday ... 
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public java.util.List<java.lang.Integer>
              getActiveDaysOfWeekList() {
            return java.util.Collections.unmodifiableList(activeDaysOfWeek_);
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday ... 
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public int getActiveDaysOfWeekCount() {
            return activeDaysOfWeek_.size();
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday ... 
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public int getActiveDaysOfWeek(int index) {
            return activeDaysOfWeek_.get(index);
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday ... 
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public Builder setActiveDaysOfWeek(
              int index, int value) {
            ensureActiveDaysOfWeekIsMutable();
            activeDaysOfWeek_.set(index, value);
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday ... 
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public Builder addActiveDaysOfWeek(int value) {
            ensureActiveDaysOfWeekIsMutable();
            activeDaysOfWeek_.add(value);
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday ... 
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public Builder addAllActiveDaysOfWeek(
              java.lang.Iterable<? extends java.lang.Integer> values) {
            ensureActiveDaysOfWeekIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, activeDaysOfWeek_);
            onChanged();
            return this;
          }
          /**
           * <pre>
           *&#47; 0 == Sunday, 1 == Monday ... 
           * </pre>
           *
           * <code>repeated int32 activeDaysOfWeek = 4;</code>
           */
          public Builder clearActiveDaysOfWeek() {
            activeDaysOfWeek_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000008);
            onChanged();
            return this;
          }

          private java.util.List<com.fca.uconnect.global.GlobalUconnectGNSS.Location> boundaryPoints_ =
            java.util.Collections.emptyList();
          private void ensureBoundaryPointsIsMutable() {
            if (!((bitField0_ & 0x00000010) == 0x00000010)) {
              boundaryPoints_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectGNSS.Location>(boundaryPoints_);
              bitField0_ |= 0x00000010;
             }
          }

          private com.google.protobuf.RepeatedFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectGNSS.Location, com.fca.uconnect.global.GlobalUconnectGNSS.Location.Builder, com.fca.uconnect.global.GlobalUconnectGNSS.LocationOrBuilder> boundaryPointsBuilder_;

          /**
           * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
           */
          public java.util.List<com.fca.uconnect.global.GlobalUconnectGNSS.Location> getBoundaryPointsList() {
            if (boundaryPointsBuilder_ == null) {
              return java.util.Collections.unmodifiableList(boundaryPoints_);
            } else {
              return boundaryPointsBuilder_.getMessageList();
            }
          }
          /**
           * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
           */
          public int getBoundaryPointsCount() {
            if (boundaryPointsBuilder_ == null) {
              return boundaryPoints_.size();
            } else {
              return boundaryPointsBuilder_.getCount();
            }
          }
          /**
           * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
           */
          public com.fca.uconnect.global.GlobalUconnectGNSS.Location getBoundaryPoints(int index) {
            if (boundaryPointsBuilder_ == null) {
              return boundaryPoints_.get(index);
            } else {
              return boundaryPointsBuilder_.getMessage(index);
            }
          }
          /**
           * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
           */
          public Builder setBoundaryPoints(
              int index, com.fca.uconnect.global.GlobalUconnectGNSS.Location value) {
            if (boundaryPointsBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureBoundaryPointsIsMutable();
              boundaryPoints_.set(index, value);
              onChanged();
            } else {
              boundaryPointsBuilder_.setMessage(index, value);
            }
            return this;
          }
          /**
           * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
           */
          public Builder setBoundaryPoints(
              int index, com.fca.uconnect.global.GlobalUconnectGNSS.Location.Builder builderForValue) {
            if (boundaryPointsBuilder_ == null) {
              ensureBoundaryPointsIsMutable();
              boundaryPoints_.set(index, builderForValue.build());
              onChanged();
            } else {
              boundaryPointsBuilder_.setMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
           */
          public Builder addBoundaryPoints(com.fca.uconnect.global.GlobalUconnectGNSS.Location value) {
            if (boundaryPointsBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureBoundaryPointsIsMutable();
              boundaryPoints_.add(value);
              onChanged();
            } else {
              boundaryPointsBuilder_.addMessage(value);
            }
            return this;
          }
          /**
           * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
           */
          public Builder addBoundaryPoints(
              int index, com.fca.uconnect.global.GlobalUconnectGNSS.Location value) {
            if (boundaryPointsBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureBoundaryPointsIsMutable();
              boundaryPoints_.add(index, value);
              onChanged();
            } else {
              boundaryPointsBuilder_.addMessage(index, value);
            }
            return this;
          }
          /**
           * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
           */
          public Builder addBoundaryPoints(
              com.fca.uconnect.global.GlobalUconnectGNSS.Location.Builder builderForValue) {
            if (boundaryPointsBuilder_ == null) {
              ensureBoundaryPointsIsMutable();
              boundaryPoints_.add(builderForValue.build());
              onChanged();
            } else {
              boundaryPointsBuilder_.addMessage(builderForValue.build());
            }
            return this;
          }
          /**
           * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
           */
          public Builder addBoundaryPoints(
              int index, com.fca.uconnect.global.GlobalUconnectGNSS.Location.Builder builderForValue) {
            if (boundaryPointsBuilder_ == null) {
              ensureBoundaryPointsIsMutable();
              boundaryPoints_.add(index, builderForValue.build());
              onChanged();
            } else {
              boundaryPointsBuilder_.addMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
           */
          public Builder addAllBoundaryPoints(
              java.lang.Iterable<? extends com.fca.uconnect.global.GlobalUconnectGNSS.Location> values) {
            if (boundaryPointsBuilder_ == null) {
              ensureBoundaryPointsIsMutable();
              com.google.protobuf.AbstractMessageLite.Builder.addAll(
                  values, boundaryPoints_);
              onChanged();
            } else {
              boundaryPointsBuilder_.addAllMessages(values);
            }
            return this;
          }
          /**
           * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
           */
          public Builder clearBoundaryPoints() {
            if (boundaryPointsBuilder_ == null) {
              boundaryPoints_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000010);
              onChanged();
            } else {
              boundaryPointsBuilder_.clear();
            }
            return this;
          }
          /**
           * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
           */
          public Builder removeBoundaryPoints(int index) {
            if (boundaryPointsBuilder_ == null) {
              ensureBoundaryPointsIsMutable();
              boundaryPoints_.remove(index);
              onChanged();
            } else {
              boundaryPointsBuilder_.remove(index);
            }
            return this;
          }
          /**
           * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
           */
          public com.fca.uconnect.global.GlobalUconnectGNSS.Location.Builder getBoundaryPointsBuilder(
              int index) {
            return getBoundaryPointsFieldBuilder().getBuilder(index);
          }
          /**
           * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
           */
          public com.fca.uconnect.global.GlobalUconnectGNSS.LocationOrBuilder getBoundaryPointsOrBuilder(
              int index) {
            if (boundaryPointsBuilder_ == null) {
              return boundaryPoints_.get(index);  } else {
              return boundaryPointsBuilder_.getMessageOrBuilder(index);
            }
          }
          /**
           * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
           */
          public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectGNSS.LocationOrBuilder> 
               getBoundaryPointsOrBuilderList() {
            if (boundaryPointsBuilder_ != null) {
              return boundaryPointsBuilder_.getMessageOrBuilderList();
            } else {
              return java.util.Collections.unmodifiableList(boundaryPoints_);
            }
          }
          /**
           * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
           */
          public com.fca.uconnect.global.GlobalUconnectGNSS.Location.Builder addBoundaryPointsBuilder() {
            return getBoundaryPointsFieldBuilder().addBuilder(
                com.fca.uconnect.global.GlobalUconnectGNSS.Location.getDefaultInstance());
          }
          /**
           * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
           */
          public com.fca.uconnect.global.GlobalUconnectGNSS.Location.Builder addBoundaryPointsBuilder(
              int index) {
            return getBoundaryPointsFieldBuilder().addBuilder(
                index, com.fca.uconnect.global.GlobalUconnectGNSS.Location.getDefaultInstance());
          }
          /**
           * <code>repeated .com.fca.uconnect.global.Location boundaryPoints = 5;</code>
           */
          public java.util.List<com.fca.uconnect.global.GlobalUconnectGNSS.Location.Builder> 
               getBoundaryPointsBuilderList() {
            return getBoundaryPointsFieldBuilder().getBuilderList();
          }
          private com.google.protobuf.RepeatedFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectGNSS.Location, com.fca.uconnect.global.GlobalUconnectGNSS.Location.Builder, com.fca.uconnect.global.GlobalUconnectGNSS.LocationOrBuilder> 
              getBoundaryPointsFieldBuilder() {
            if (boundaryPointsBuilder_ == null) {
              boundaryPointsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                  com.fca.uconnect.global.GlobalUconnectGNSS.Location, com.fca.uconnect.global.GlobalUconnectGNSS.Location.Builder, com.fca.uconnect.global.GlobalUconnectGNSS.LocationOrBuilder>(
                      boundaryPoints_,
                      ((bitField0_ & 0x00000010) == 0x00000010),
                      getParentForChildren(),
                      isClean());
              boundaryPoints_ = null;
            }
            return boundaryPointsBuilder_;
          }
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

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


          // @@protoc_insertion_point(builder_scope:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig)
        }

        // @@protoc_insertion_point(class_scope:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig)
        private static final com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig();
        }

        public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

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

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

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

        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      private int bitField0_;
      public static final int CURFEWALERTS_FIELD_NUMBER = 1;
      private java.util.List<com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig> curfewAlerts_;
      /**
       * <pre>
       *&#47; 0 to 5 ranges
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig> getCurfewAlertsList() {
        return curfewAlerts_;
      }
      /**
       * <pre>
       *&#47; 0 to 5 ranges
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
       */
      public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfigOrBuilder> 
          getCurfewAlertsOrBuilderList() {
        return curfewAlerts_;
      }
      /**
       * <pre>
       *&#47; 0 to 5 ranges
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
       */
      public int getCurfewAlertsCount() {
        return curfewAlerts_.size();
      }
      /**
       * <pre>
       *&#47; 0 to 5 ranges
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig getCurfewAlerts(int index) {
        return curfewAlerts_.get(index);
      }
      /**
       * <pre>
       *&#47; 0 to 5 ranges
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfigOrBuilder getCurfewAlertsOrBuilder(
          int index) {
        return curfewAlerts_.get(index);
      }

      public static final int UPDATECURFEWALERTCONFIG_FIELD_NUMBER = 2;
      private boolean updateCurfewAlertConfig_;
      /**
       * <pre>
       *&#47; If false, this message should not update curfewAlerts. 
       * </pre>
       *
       * <code>optional bool updateCurfewAlertConfig = 2;</code>
       */
      public boolean hasUpdateCurfewAlertConfig() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       *&#47; If false, this message should not update curfewAlerts. 
       * </pre>
       *
       * <code>optional bool updateCurfewAlertConfig = 2;</code>
       */
      public boolean getUpdateCurfewAlertConfig() {
        return updateCurfewAlertConfig_;
      }

      public static final int SPEEDALERTS_FIELD_NUMBER = 3;
      private java.util.List<com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig> speedAlerts_;
      /**
       * <pre>
       *&#47; 0 to 5 ranges
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig> getSpeedAlertsList() {
        return speedAlerts_;
      }
      /**
       * <pre>
       *&#47; 0 to 5 ranges
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
       */
      public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfigOrBuilder> 
          getSpeedAlertsOrBuilderList() {
        return speedAlerts_;
      }
      /**
       * <pre>
       *&#47; 0 to 5 ranges
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
       */
      public int getSpeedAlertsCount() {
        return speedAlerts_.size();
      }
      /**
       * <pre>
       *&#47; 0 to 5 ranges
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig getSpeedAlerts(int index) {
        return speedAlerts_.get(index);
      }
      /**
       * <pre>
       *&#47; 0 to 5 ranges
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfigOrBuilder getSpeedAlertsOrBuilder(
          int index) {
        return speedAlerts_.get(index);
      }

      public static final int UPDATESPEEDALERTCONFIG_FIELD_NUMBER = 4;
      private boolean updateSpeedAlertConfig_;
      /**
       * <pre>
       *&#47; If false, this message should not update speedAlerts. 
       * </pre>
       *
       * <code>optional bool updateSpeedAlertConfig = 4;</code>
       */
      public boolean hasUpdateSpeedAlertConfig() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       *&#47; If false, this message should not update speedAlerts. 
       * </pre>
       *
       * <code>optional bool updateSpeedAlertConfig = 4;</code>
       */
      public boolean getUpdateSpeedAlertConfig() {
        return updateSpeedAlertConfig_;
      }

      public static final int VALETALERT_FIELD_NUMBER = 5;
      private com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlert_;
      /**
       * <pre>
       *&#47; 0 or 1 configurations
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlert = 5;</code>
       */
      public boolean hasValetAlert() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       *&#47; 0 or 1 configurations
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlert = 5;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig getValetAlert() {
        return valetAlert_ == null ? com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.getDefaultInstance() : valetAlert_;
      }
      /**
       * <pre>
       *&#47; 0 or 1 configurations
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlert = 5;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfigOrBuilder getValetAlertOrBuilder() {
        return valetAlert_ == null ? com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.getDefaultInstance() : valetAlert_;
      }

      public static final int UPDATEVALETALERTCONFIG_FIELD_NUMBER = 6;
      private boolean updateValetAlertConfig_;
      /**
       * <pre>
       *&#47; If false, this message should not update valetAlert. 
       * </pre>
       *
       * <code>optional bool updateValetAlertConfig = 6;</code>
       */
      public boolean hasUpdateValetAlertConfig() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <pre>
       *&#47; If false, this message should not update valetAlert. 
       * </pre>
       *
       * <code>optional bool updateValetAlertConfig = 6;</code>
       */
      public boolean getUpdateValetAlertConfig() {
        return updateValetAlertConfig_;
      }

      public static final int GEOFENCEALERTS_FIELD_NUMBER = 7;
      private java.util.List<com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig> geoFenceAlerts_;
      /**
       * <pre>
       *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
       */
      public java.util.List<com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig> getGeoFenceAlertsList() {
        return geoFenceAlerts_;
      }
      /**
       * <pre>
       *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
       */
      public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfigOrBuilder> 
          getGeoFenceAlertsOrBuilderList() {
        return geoFenceAlerts_;
      }
      /**
       * <pre>
       *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
       */
      public int getGeoFenceAlertsCount() {
        return geoFenceAlerts_.size();
      }
      /**
       * <pre>
       *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig getGeoFenceAlerts(int index) {
        return geoFenceAlerts_.get(index);
      }
      /**
       * <pre>
       *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
       * </pre>
       *
       * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfigOrBuilder getGeoFenceAlertsOrBuilder(
          int index) {
        return geoFenceAlerts_.get(index);
      }

      public static final int UPDATEGEOFENCEALERTCONFIG_FIELD_NUMBER = 8;
      private boolean updateGeoFenceAlertConfig_;
      /**
       * <pre>
       *&#47; If false, this message should not update geoFenceAlerts. 
       * </pre>
       *
       * <code>optional bool updateGeoFenceAlertConfig = 8;</code>
       */
      public boolean hasUpdateGeoFenceAlertConfig() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <pre>
       *&#47; If false, this message should not update geoFenceAlerts. 
       * </pre>
       *
       * <code>optional bool updateGeoFenceAlertConfig = 8;</code>
       */
      public boolean getUpdateGeoFenceAlertConfig() {
        return updateGeoFenceAlertConfig_;
      }

      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 {
        for (int i = 0; i < curfewAlerts_.size(); i++) {
          output.writeMessage(1, curfewAlerts_.get(i));
        }
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBool(2, updateCurfewAlertConfig_);
        }
        for (int i = 0; i < speedAlerts_.size(); i++) {
          output.writeMessage(3, speedAlerts_.get(i));
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBool(4, updateSpeedAlertConfig_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeMessage(5, getValetAlert());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeBool(6, updateValetAlertConfig_);
        }
        for (int i = 0; i < geoFenceAlerts_.size(); i++) {
          output.writeMessage(7, geoFenceAlerts_.get(i));
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeBool(8, updateGeoFenceAlertConfig_);
        }
        unknownFields.writeTo(output);
      }

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

        size = 0;
        for (int i = 0; i < curfewAlerts_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, curfewAlerts_.get(i));
        }
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(2, updateCurfewAlertConfig_);
        }
        for (int i = 0; i < speedAlerts_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, speedAlerts_.get(i));
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(4, updateSpeedAlertConfig_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, getValetAlert());
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(6, updateValetAlertConfig_);
        }
        for (int i = 0; i < geoFenceAlerts_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(7, geoFenceAlerts_.get(i));
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(8, updateGeoFenceAlertConfig_);
        }
        size += unknownFields.getSerializedSize();
        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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle)) {
          return super.equals(obj);
        }
        com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle other = (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle) obj;

        boolean result = true;
        result = result && getCurfewAlertsList()
            .equals(other.getCurfewAlertsList());
        result = result && (hasUpdateCurfewAlertConfig() == other.hasUpdateCurfewAlertConfig());
        if (hasUpdateCurfewAlertConfig()) {
          result = result && (getUpdateCurfewAlertConfig()
              == other.getUpdateCurfewAlertConfig());
        }
        result = result && getSpeedAlertsList()
            .equals(other.getSpeedAlertsList());
        result = result && (hasUpdateSpeedAlertConfig() == other.hasUpdateSpeedAlertConfig());
        if (hasUpdateSpeedAlertConfig()) {
          result = result && (getUpdateSpeedAlertConfig()
              == other.getUpdateSpeedAlertConfig());
        }
        result = result && (hasValetAlert() == other.hasValetAlert());
        if (hasValetAlert()) {
          result = result && getValetAlert()
              .equals(other.getValetAlert());
        }
        result = result && (hasUpdateValetAlertConfig() == other.hasUpdateValetAlertConfig());
        if (hasUpdateValetAlertConfig()) {
          result = result && (getUpdateValetAlertConfig()
              == other.getUpdateValetAlertConfig());
        }
        result = result && getGeoFenceAlertsList()
            .equals(other.getGeoFenceAlertsList());
        result = result && (hasUpdateGeoFenceAlertConfig() == other.hasUpdateGeoFenceAlertConfig());
        if (hasUpdateGeoFenceAlertConfig()) {
          result = result && (getUpdateGeoFenceAlertConfig()
              == other.getUpdateGeoFenceAlertConfig());
        }
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptorForType().hashCode();
        if (getCurfewAlertsCount() > 0) {
          hash = (37 * hash) + CURFEWALERTS_FIELD_NUMBER;
          hash = (53 * hash) + getCurfewAlertsList().hashCode();
        }
        if (hasUpdateCurfewAlertConfig()) {
          hash = (37 * hash) + UPDATECURFEWALERTCONFIG_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getUpdateCurfewAlertConfig());
        }
        if (getSpeedAlertsCount() > 0) {
          hash = (37 * hash) + SPEEDALERTS_FIELD_NUMBER;
          hash = (53 * hash) + getSpeedAlertsList().hashCode();
        }
        if (hasUpdateSpeedAlertConfig()) {
          hash = (37 * hash) + UPDATESPEEDALERTCONFIG_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getUpdateSpeedAlertConfig());
        }
        if (hasValetAlert()) {
          hash = (37 * hash) + VALETALERT_FIELD_NUMBER;
          hash = (53 * hash) + getValetAlert().hashCode();
        }
        if (hasUpdateValetAlertConfig()) {
          hash = (37 * hash) + UPDATEVALETALERTCONFIG_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getUpdateValetAlertConfig());
        }
        if (getGeoFenceAlertsCount() > 0) {
          hash = (37 * hash) + GEOFENCEALERTS_FIELD_NUMBER;
          hash = (53 * hash) + getGeoFenceAlertsList().hashCode();
        }
        if (hasUpdateGeoFenceAlertConfig()) {
          hash = (37 * hash) + UPDATEGEOFENCEALERTCONFIG_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getUpdateGeoFenceAlertConfig());
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle 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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle 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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle 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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle 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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle 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>
       **
       * Set of rules used by the TBM to generate asynchronous alerts based on time, position and vehicle behavior.
       * Each message may be a complete set of configuration data, or may use the boolean 'update' fields to update only particular configuration types.
       * </pre>
       *
       * Protobuf type {@code com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle)
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicleOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.class, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.Builder.class);
        }

        // Construct using com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getCurfewAlertsFieldBuilder();
            getSpeedAlertsFieldBuilder();
            getValetAlertFieldBuilder();
            getGeoFenceAlertsFieldBuilder();
          }
        }
        public Builder clear() {
          super.clear();
          if (curfewAlertsBuilder_ == null) {
            curfewAlerts_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            curfewAlertsBuilder_.clear();
          }
          updateCurfewAlertConfig_ = false;
          bitField0_ = (bitField0_ & ~0x00000002);
          if (speedAlertsBuilder_ == null) {
            speedAlerts_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            speedAlertsBuilder_.clear();
          }
          updateSpeedAlertConfig_ = false;
          bitField0_ = (bitField0_ & ~0x00000008);
          if (valetAlertBuilder_ == null) {
            valetAlert_ = null;
          } else {
            valetAlertBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000010);
          updateValetAlertConfig_ = false;
          bitField0_ = (bitField0_ & ~0x00000020);
          if (geoFenceAlertsBuilder_ == null) {
            geoFenceAlerts_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000040);
          } else {
            geoFenceAlertsBuilder_.clear();
          }
          updateGeoFenceAlertConfig_ = false;
          bitField0_ = (bitField0_ & ~0x00000080);
          return this;
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle getDefaultInstanceForType() {
          return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.getDefaultInstance();
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle buildPartial() {
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle result = new com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (curfewAlertsBuilder_ == null) {
            if (((bitField0_ & 0x00000001) == 0x00000001)) {
              curfewAlerts_ = java.util.Collections.unmodifiableList(curfewAlerts_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.curfewAlerts_ = curfewAlerts_;
          } else {
            result.curfewAlerts_ = curfewAlertsBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000001;
          }
          result.updateCurfewAlertConfig_ = updateCurfewAlertConfig_;
          if (speedAlertsBuilder_ == null) {
            if (((bitField0_ & 0x00000004) == 0x00000004)) {
              speedAlerts_ = java.util.Collections.unmodifiableList(speedAlerts_);
              bitField0_ = (bitField0_ & ~0x00000004);
            }
            result.speedAlerts_ = speedAlerts_;
          } else {
            result.speedAlerts_ = speedAlertsBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000002;
          }
          result.updateSpeedAlertConfig_ = updateSpeedAlertConfig_;
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000004;
          }
          if (valetAlertBuilder_ == null) {
            result.valetAlert_ = valetAlert_;
          } else {
            result.valetAlert_ = valetAlertBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
            to_bitField0_ |= 0x00000008;
          }
          result.updateValetAlertConfig_ = updateValetAlertConfig_;
          if (geoFenceAlertsBuilder_ == null) {
            if (((bitField0_ & 0x00000040) == 0x00000040)) {
              geoFenceAlerts_ = java.util.Collections.unmodifiableList(geoFenceAlerts_);
              bitField0_ = (bitField0_ & ~0x00000040);
            }
            result.geoFenceAlerts_ = geoFenceAlerts_;
          } else {
            result.geoFenceAlerts_ = geoFenceAlertsBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
            to_bitField0_ |= 0x00000010;
          }
          result.updateGeoFenceAlertConfig_ = updateGeoFenceAlertConfig_;
          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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle) {
            return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle other) {
          if (other == com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.getDefaultInstance()) return this;
          if (curfewAlertsBuilder_ == null) {
            if (!other.curfewAlerts_.isEmpty()) {
              if (curfewAlerts_.isEmpty()) {
                curfewAlerts_ = other.curfewAlerts_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureCurfewAlertsIsMutable();
                curfewAlerts_.addAll(other.curfewAlerts_);
              }
              onChanged();
            }
          } else {
            if (!other.curfewAlerts_.isEmpty()) {
              if (curfewAlertsBuilder_.isEmpty()) {
                curfewAlertsBuilder_.dispose();
                curfewAlertsBuilder_ = null;
                curfewAlerts_ = other.curfewAlerts_;
                bitField0_ = (bitField0_ & ~0x00000001);
                curfewAlertsBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getCurfewAlertsFieldBuilder() : null;
              } else {
                curfewAlertsBuilder_.addAllMessages(other.curfewAlerts_);
              }
            }
          }
          if (other.hasUpdateCurfewAlertConfig()) {
            setUpdateCurfewAlertConfig(other.getUpdateCurfewAlertConfig());
          }
          if (speedAlertsBuilder_ == null) {
            if (!other.speedAlerts_.isEmpty()) {
              if (speedAlerts_.isEmpty()) {
                speedAlerts_ = other.speedAlerts_;
                bitField0_ = (bitField0_ & ~0x00000004);
              } else {
                ensureSpeedAlertsIsMutable();
                speedAlerts_.addAll(other.speedAlerts_);
              }
              onChanged();
            }
          } else {
            if (!other.speedAlerts_.isEmpty()) {
              if (speedAlertsBuilder_.isEmpty()) {
                speedAlertsBuilder_.dispose();
                speedAlertsBuilder_ = null;
                speedAlerts_ = other.speedAlerts_;
                bitField0_ = (bitField0_ & ~0x00000004);
                speedAlertsBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getSpeedAlertsFieldBuilder() : null;
              } else {
                speedAlertsBuilder_.addAllMessages(other.speedAlerts_);
              }
            }
          }
          if (other.hasUpdateSpeedAlertConfig()) {
            setUpdateSpeedAlertConfig(other.getUpdateSpeedAlertConfig());
          }
          if (other.hasValetAlert()) {
            mergeValetAlert(other.getValetAlert());
          }
          if (other.hasUpdateValetAlertConfig()) {
            setUpdateValetAlertConfig(other.getUpdateValetAlertConfig());
          }
          if (geoFenceAlertsBuilder_ == null) {
            if (!other.geoFenceAlerts_.isEmpty()) {
              if (geoFenceAlerts_.isEmpty()) {
                geoFenceAlerts_ = other.geoFenceAlerts_;
                bitField0_ = (bitField0_ & ~0x00000040);
              } else {
                ensureGeoFenceAlertsIsMutable();
                geoFenceAlerts_.addAll(other.geoFenceAlerts_);
              }
              onChanged();
            }
          } else {
            if (!other.geoFenceAlerts_.isEmpty()) {
              if (geoFenceAlertsBuilder_.isEmpty()) {
                geoFenceAlertsBuilder_.dispose();
                geoFenceAlertsBuilder_ = null;
                geoFenceAlerts_ = other.geoFenceAlerts_;
                bitField0_ = (bitField0_ & ~0x00000040);
                geoFenceAlertsBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getGeoFenceAlertsFieldBuilder() : null;
              } else {
                geoFenceAlertsBuilder_.addAllMessages(other.geoFenceAlerts_);
              }
            }
          }
          if (other.hasUpdateGeoFenceAlertConfig()) {
            setUpdateGeoFenceAlertConfig(other.getUpdateGeoFenceAlertConfig());
          }
          this.mergeUnknownFields(other.unknownFields);
          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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private java.util.List<com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig> curfewAlerts_ =
          java.util.Collections.emptyList();
        private void ensureCurfewAlertsIsMutable() {
          if (!((bitField0_ & 0x00000001) == 0x00000001)) {
            curfewAlerts_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig>(curfewAlerts_);
            bitField0_ |= 0x00000001;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfigOrBuilder> curfewAlertsBuilder_;

        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig> getCurfewAlertsList() {
          if (curfewAlertsBuilder_ == null) {
            return java.util.Collections.unmodifiableList(curfewAlerts_);
          } else {
            return curfewAlertsBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
         */
        public int getCurfewAlertsCount() {
          if (curfewAlertsBuilder_ == null) {
            return curfewAlerts_.size();
          } else {
            return curfewAlertsBuilder_.getCount();
          }
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig getCurfewAlerts(int index) {
          if (curfewAlertsBuilder_ == null) {
            return curfewAlerts_.get(index);
          } else {
            return curfewAlertsBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
         */
        public Builder setCurfewAlerts(
            int index, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig value) {
          if (curfewAlertsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureCurfewAlertsIsMutable();
            curfewAlerts_.set(index, value);
            onChanged();
          } else {
            curfewAlertsBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
         */
        public Builder setCurfewAlerts(
            int index, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.Builder builderForValue) {
          if (curfewAlertsBuilder_ == null) {
            ensureCurfewAlertsIsMutable();
            curfewAlerts_.set(index, builderForValue.build());
            onChanged();
          } else {
            curfewAlertsBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
         */
        public Builder addCurfewAlerts(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig value) {
          if (curfewAlertsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureCurfewAlertsIsMutable();
            curfewAlerts_.add(value);
            onChanged();
          } else {
            curfewAlertsBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
         */
        public Builder addCurfewAlerts(
            int index, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig value) {
          if (curfewAlertsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureCurfewAlertsIsMutable();
            curfewAlerts_.add(index, value);
            onChanged();
          } else {
            curfewAlertsBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
         */
        public Builder addCurfewAlerts(
            com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.Builder builderForValue) {
          if (curfewAlertsBuilder_ == null) {
            ensureCurfewAlertsIsMutable();
            curfewAlerts_.add(builderForValue.build());
            onChanged();
          } else {
            curfewAlertsBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
         */
        public Builder addCurfewAlerts(
            int index, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.Builder builderForValue) {
          if (curfewAlertsBuilder_ == null) {
            ensureCurfewAlertsIsMutable();
            curfewAlerts_.add(index, builderForValue.build());
            onChanged();
          } else {
            curfewAlertsBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
         */
        public Builder addAllCurfewAlerts(
            java.lang.Iterable<? extends com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig> values) {
          if (curfewAlertsBuilder_ == null) {
            ensureCurfewAlertsIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, curfewAlerts_);
            onChanged();
          } else {
            curfewAlertsBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
         */
        public Builder clearCurfewAlerts() {
          if (curfewAlertsBuilder_ == null) {
            curfewAlerts_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
          } else {
            curfewAlertsBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
         */
        public Builder removeCurfewAlerts(int index) {
          if (curfewAlertsBuilder_ == null) {
            ensureCurfewAlertsIsMutable();
            curfewAlerts_.remove(index);
            onChanged();
          } else {
            curfewAlertsBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.Builder getCurfewAlertsBuilder(
            int index) {
          return getCurfewAlertsFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfigOrBuilder getCurfewAlertsOrBuilder(
            int index) {
          if (curfewAlertsBuilder_ == null) {
            return curfewAlerts_.get(index);  } else {
            return curfewAlertsBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
         */
        public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfigOrBuilder> 
             getCurfewAlertsOrBuilderList() {
          if (curfewAlertsBuilder_ != null) {
            return curfewAlertsBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(curfewAlerts_);
          }
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.Builder addCurfewAlertsBuilder() {
          return getCurfewAlertsFieldBuilder().addBuilder(
              com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.getDefaultInstance());
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.Builder addCurfewAlertsBuilder(
            int index) {
          return getCurfewAlertsFieldBuilder().addBuilder(
              index, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.getDefaultInstance());
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlerts = 1;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.Builder> 
             getCurfewAlertsBuilderList() {
          return getCurfewAlertsFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfigOrBuilder> 
            getCurfewAlertsFieldBuilder() {
          if (curfewAlertsBuilder_ == null) {
            curfewAlertsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfigOrBuilder>(
                    curfewAlerts_,
                    ((bitField0_ & 0x00000001) == 0x00000001),
                    getParentForChildren(),
                    isClean());
            curfewAlerts_ = null;
          }
          return curfewAlertsBuilder_;
        }

        private boolean updateCurfewAlertConfig_ ;
        /**
         * <pre>
         *&#47; If false, this message should not update curfewAlerts. 
         * </pre>
         *
         * <code>optional bool updateCurfewAlertConfig = 2;</code>
         */
        public boolean hasUpdateCurfewAlertConfig() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <pre>
         *&#47; If false, this message should not update curfewAlerts. 
         * </pre>
         *
         * <code>optional bool updateCurfewAlertConfig = 2;</code>
         */
        public boolean getUpdateCurfewAlertConfig() {
          return updateCurfewAlertConfig_;
        }
        /**
         * <pre>
         *&#47; If false, this message should not update curfewAlerts. 
         * </pre>
         *
         * <code>optional bool updateCurfewAlertConfig = 2;</code>
         */
        public Builder setUpdateCurfewAlertConfig(boolean value) {
          bitField0_ |= 0x00000002;
          updateCurfewAlertConfig_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; If false, this message should not update curfewAlerts. 
         * </pre>
         *
         * <code>optional bool updateCurfewAlertConfig = 2;</code>
         */
        public Builder clearUpdateCurfewAlertConfig() {
          bitField0_ = (bitField0_ & ~0x00000002);
          updateCurfewAlertConfig_ = false;
          onChanged();
          return this;
        }

        private java.util.List<com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig> speedAlerts_ =
          java.util.Collections.emptyList();
        private void ensureSpeedAlertsIsMutable() {
          if (!((bitField0_ & 0x00000004) == 0x00000004)) {
            speedAlerts_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig>(speedAlerts_);
            bitField0_ |= 0x00000004;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfigOrBuilder> speedAlertsBuilder_;

        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig> getSpeedAlertsList() {
          if (speedAlertsBuilder_ == null) {
            return java.util.Collections.unmodifiableList(speedAlerts_);
          } else {
            return speedAlertsBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
         */
        public int getSpeedAlertsCount() {
          if (speedAlertsBuilder_ == null) {
            return speedAlerts_.size();
          } else {
            return speedAlertsBuilder_.getCount();
          }
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig getSpeedAlerts(int index) {
          if (speedAlertsBuilder_ == null) {
            return speedAlerts_.get(index);
          } else {
            return speedAlertsBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
         */
        public Builder setSpeedAlerts(
            int index, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig value) {
          if (speedAlertsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureSpeedAlertsIsMutable();
            speedAlerts_.set(index, value);
            onChanged();
          } else {
            speedAlertsBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
         */
        public Builder setSpeedAlerts(
            int index, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.Builder builderForValue) {
          if (speedAlertsBuilder_ == null) {
            ensureSpeedAlertsIsMutable();
            speedAlerts_.set(index, builderForValue.build());
            onChanged();
          } else {
            speedAlertsBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
         */
        public Builder addSpeedAlerts(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig value) {
          if (speedAlertsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureSpeedAlertsIsMutable();
            speedAlerts_.add(value);
            onChanged();
          } else {
            speedAlertsBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
         */
        public Builder addSpeedAlerts(
            int index, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig value) {
          if (speedAlertsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureSpeedAlertsIsMutable();
            speedAlerts_.add(index, value);
            onChanged();
          } else {
            speedAlertsBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
         */
        public Builder addSpeedAlerts(
            com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.Builder builderForValue) {
          if (speedAlertsBuilder_ == null) {
            ensureSpeedAlertsIsMutable();
            speedAlerts_.add(builderForValue.build());
            onChanged();
          } else {
            speedAlertsBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
         */
        public Builder addSpeedAlerts(
            int index, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.Builder builderForValue) {
          if (speedAlertsBuilder_ == null) {
            ensureSpeedAlertsIsMutable();
            speedAlerts_.add(index, builderForValue.build());
            onChanged();
          } else {
            speedAlertsBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
         */
        public Builder addAllSpeedAlerts(
            java.lang.Iterable<? extends com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig> values) {
          if (speedAlertsBuilder_ == null) {
            ensureSpeedAlertsIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, speedAlerts_);
            onChanged();
          } else {
            speedAlertsBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
         */
        public Builder clearSpeedAlerts() {
          if (speedAlertsBuilder_ == null) {
            speedAlerts_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000004);
            onChanged();
          } else {
            speedAlertsBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
         */
        public Builder removeSpeedAlerts(int index) {
          if (speedAlertsBuilder_ == null) {
            ensureSpeedAlertsIsMutable();
            speedAlerts_.remove(index);
            onChanged();
          } else {
            speedAlertsBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.Builder getSpeedAlertsBuilder(
            int index) {
          return getSpeedAlertsFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfigOrBuilder getSpeedAlertsOrBuilder(
            int index) {
          if (speedAlertsBuilder_ == null) {
            return speedAlerts_.get(index);  } else {
            return speedAlertsBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
         */
        public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfigOrBuilder> 
             getSpeedAlertsOrBuilderList() {
          if (speedAlertsBuilder_ != null) {
            return speedAlertsBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(speedAlerts_);
          }
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.Builder addSpeedAlertsBuilder() {
          return getSpeedAlertsFieldBuilder().addBuilder(
              com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.getDefaultInstance());
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.Builder addSpeedAlertsBuilder(
            int index) {
          return getSpeedAlertsFieldBuilder().addBuilder(
              index, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.getDefaultInstance());
        }
        /**
         * <pre>
         *&#47; 0 to 5 ranges
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlerts = 3;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.Builder> 
             getSpeedAlertsBuilderList() {
          return getSpeedAlertsFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfigOrBuilder> 
            getSpeedAlertsFieldBuilder() {
          if (speedAlertsBuilder_ == null) {
            speedAlertsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfigOrBuilder>(
                    speedAlerts_,
                    ((bitField0_ & 0x00000004) == 0x00000004),
                    getParentForChildren(),
                    isClean());
            speedAlerts_ = null;
          }
          return speedAlertsBuilder_;
        }

        private boolean updateSpeedAlertConfig_ ;
        /**
         * <pre>
         *&#47; If false, this message should not update speedAlerts. 
         * </pre>
         *
         * <code>optional bool updateSpeedAlertConfig = 4;</code>
         */
        public boolean hasUpdateSpeedAlertConfig() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * <pre>
         *&#47; If false, this message should not update speedAlerts. 
         * </pre>
         *
         * <code>optional bool updateSpeedAlertConfig = 4;</code>
         */
        public boolean getUpdateSpeedAlertConfig() {
          return updateSpeedAlertConfig_;
        }
        /**
         * <pre>
         *&#47; If false, this message should not update speedAlerts. 
         * </pre>
         *
         * <code>optional bool updateSpeedAlertConfig = 4;</code>
         */
        public Builder setUpdateSpeedAlertConfig(boolean value) {
          bitField0_ |= 0x00000008;
          updateSpeedAlertConfig_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; If false, this message should not update speedAlerts. 
         * </pre>
         *
         * <code>optional bool updateSpeedAlertConfig = 4;</code>
         */
        public Builder clearUpdateSpeedAlertConfig() {
          bitField0_ = (bitField0_ & ~0x00000008);
          updateSpeedAlertConfig_ = false;
          onChanged();
          return this;
        }

        private com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlert_ = null;
        private com.google.protobuf.SingleFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfigOrBuilder> valetAlertBuilder_;
        /**
         * <pre>
         *&#47; 0 or 1 configurations
         * </pre>
         *
         * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlert = 5;</code>
         */
        public boolean hasValetAlert() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        /**
         * <pre>
         *&#47; 0 or 1 configurations
         * </pre>
         *
         * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlert = 5;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig getValetAlert() {
          if (valetAlertBuilder_ == null) {
            return valetAlert_ == null ? com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.getDefaultInstance() : valetAlert_;
          } else {
            return valetAlertBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         *&#47; 0 or 1 configurations
         * </pre>
         *
         * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlert = 5;</code>
         */
        public Builder setValetAlert(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig value) {
          if (valetAlertBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            valetAlert_ = value;
            onChanged();
          } else {
            valetAlertBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000010;
          return this;
        }
        /**
         * <pre>
         *&#47; 0 or 1 configurations
         * </pre>
         *
         * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlert = 5;</code>
         */
        public Builder setValetAlert(
            com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.Builder builderForValue) {
          if (valetAlertBuilder_ == null) {
            valetAlert_ = builderForValue.build();
            onChanged();
          } else {
            valetAlertBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000010;
          return this;
        }
        /**
         * <pre>
         *&#47; 0 or 1 configurations
         * </pre>
         *
         * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlert = 5;</code>
         */
        public Builder mergeValetAlert(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig value) {
          if (valetAlertBuilder_ == null) {
            if (((bitField0_ & 0x00000010) == 0x00000010) &&
                valetAlert_ != null &&
                valetAlert_ != com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.getDefaultInstance()) {
              valetAlert_ =
                com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.newBuilder(valetAlert_).mergeFrom(value).buildPartial();
            } else {
              valetAlert_ = value;
            }
            onChanged();
          } else {
            valetAlertBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000010;
          return this;
        }
        /**
         * <pre>
         *&#47; 0 or 1 configurations
         * </pre>
         *
         * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlert = 5;</code>
         */
        public Builder clearValetAlert() {
          if (valetAlertBuilder_ == null) {
            valetAlert_ = null;
            onChanged();
          } else {
            valetAlertBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000010);
          return this;
        }
        /**
         * <pre>
         *&#47; 0 or 1 configurations
         * </pre>
         *
         * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlert = 5;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.Builder getValetAlertBuilder() {
          bitField0_ |= 0x00000010;
          onChanged();
          return getValetAlertFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         *&#47; 0 or 1 configurations
         * </pre>
         *
         * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlert = 5;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfigOrBuilder getValetAlertOrBuilder() {
          if (valetAlertBuilder_ != null) {
            return valetAlertBuilder_.getMessageOrBuilder();
          } else {
            return valetAlert_ == null ?
                com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.getDefaultInstance() : valetAlert_;
          }
        }
        /**
         * <pre>
         *&#47; 0 or 1 configurations
         * </pre>
         *
         * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlert = 5;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfigOrBuilder> 
            getValetAlertFieldBuilder() {
          if (valetAlertBuilder_ == null) {
            valetAlertBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfigOrBuilder>(
                    getValetAlert(),
                    getParentForChildren(),
                    isClean());
            valetAlert_ = null;
          }
          return valetAlertBuilder_;
        }

        private boolean updateValetAlertConfig_ ;
        /**
         * <pre>
         *&#47; If false, this message should not update valetAlert. 
         * </pre>
         *
         * <code>optional bool updateValetAlertConfig = 6;</code>
         */
        public boolean hasUpdateValetAlertConfig() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }
        /**
         * <pre>
         *&#47; If false, this message should not update valetAlert. 
         * </pre>
         *
         * <code>optional bool updateValetAlertConfig = 6;</code>
         */
        public boolean getUpdateValetAlertConfig() {
          return updateValetAlertConfig_;
        }
        /**
         * <pre>
         *&#47; If false, this message should not update valetAlert. 
         * </pre>
         *
         * <code>optional bool updateValetAlertConfig = 6;</code>
         */
        public Builder setUpdateValetAlertConfig(boolean value) {
          bitField0_ |= 0x00000020;
          updateValetAlertConfig_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; If false, this message should not update valetAlert. 
         * </pre>
         *
         * <code>optional bool updateValetAlertConfig = 6;</code>
         */
        public Builder clearUpdateValetAlertConfig() {
          bitField0_ = (bitField0_ & ~0x00000020);
          updateValetAlertConfig_ = false;
          onChanged();
          return this;
        }

        private java.util.List<com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig> geoFenceAlerts_ =
          java.util.Collections.emptyList();
        private void ensureGeoFenceAlertsIsMutable() {
          if (!((bitField0_ & 0x00000040) == 0x00000040)) {
            geoFenceAlerts_ = new java.util.ArrayList<com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig>(geoFenceAlerts_);
            bitField0_ |= 0x00000040;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfigOrBuilder> geoFenceAlertsBuilder_;

        /**
         * <pre>
         *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig> getGeoFenceAlertsList() {
          if (geoFenceAlertsBuilder_ == null) {
            return java.util.Collections.unmodifiableList(geoFenceAlerts_);
          } else {
            return geoFenceAlertsBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
         */
        public int getGeoFenceAlertsCount() {
          if (geoFenceAlertsBuilder_ == null) {
            return geoFenceAlerts_.size();
          } else {
            return geoFenceAlertsBuilder_.getCount();
          }
        }
        /**
         * <pre>
         *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig getGeoFenceAlerts(int index) {
          if (geoFenceAlertsBuilder_ == null) {
            return geoFenceAlerts_.get(index);
          } else {
            return geoFenceAlertsBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
         */
        public Builder setGeoFenceAlerts(
            int index, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig value) {
          if (geoFenceAlertsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureGeoFenceAlertsIsMutable();
            geoFenceAlerts_.set(index, value);
            onChanged();
          } else {
            geoFenceAlertsBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
         */
        public Builder setGeoFenceAlerts(
            int index, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.Builder builderForValue) {
          if (geoFenceAlertsBuilder_ == null) {
            ensureGeoFenceAlertsIsMutable();
            geoFenceAlerts_.set(index, builderForValue.build());
            onChanged();
          } else {
            geoFenceAlertsBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
         */
        public Builder addGeoFenceAlerts(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig value) {
          if (geoFenceAlertsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureGeoFenceAlertsIsMutable();
            geoFenceAlerts_.add(value);
            onChanged();
          } else {
            geoFenceAlertsBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
         */
        public Builder addGeoFenceAlerts(
            int index, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig value) {
          if (geoFenceAlertsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureGeoFenceAlertsIsMutable();
            geoFenceAlerts_.add(index, value);
            onChanged();
          } else {
            geoFenceAlertsBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
         */
        public Builder addGeoFenceAlerts(
            com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.Builder builderForValue) {
          if (geoFenceAlertsBuilder_ == null) {
            ensureGeoFenceAlertsIsMutable();
            geoFenceAlerts_.add(builderForValue.build());
            onChanged();
          } else {
            geoFenceAlertsBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
         */
        public Builder addGeoFenceAlerts(
            int index, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.Builder builderForValue) {
          if (geoFenceAlertsBuilder_ == null) {
            ensureGeoFenceAlertsIsMutable();
            geoFenceAlerts_.add(index, builderForValue.build());
            onChanged();
          } else {
            geoFenceAlertsBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
         */
        public Builder addAllGeoFenceAlerts(
            java.lang.Iterable<? extends com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig> values) {
          if (geoFenceAlertsBuilder_ == null) {
            ensureGeoFenceAlertsIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, geoFenceAlerts_);
            onChanged();
          } else {
            geoFenceAlertsBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
         */
        public Builder clearGeoFenceAlerts() {
          if (geoFenceAlertsBuilder_ == null) {
            geoFenceAlerts_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000040);
            onChanged();
          } else {
            geoFenceAlertsBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
         */
        public Builder removeGeoFenceAlerts(int index) {
          if (geoFenceAlertsBuilder_ == null) {
            ensureGeoFenceAlertsIsMutable();
            geoFenceAlerts_.remove(index);
            onChanged();
          } else {
            geoFenceAlertsBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.Builder getGeoFenceAlertsBuilder(
            int index) {
          return getGeoFenceAlertsFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfigOrBuilder getGeoFenceAlertsOrBuilder(
            int index) {
          if (geoFenceAlertsBuilder_ == null) {
            return geoFenceAlerts_.get(index);  } else {
            return geoFenceAlertsBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
         */
        public java.util.List<? extends com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfigOrBuilder> 
             getGeoFenceAlertsOrBuilderList() {
          if (geoFenceAlertsBuilder_ != null) {
            return geoFenceAlertsBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(geoFenceAlerts_);
          }
        }
        /**
         * <pre>
         *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.Builder addGeoFenceAlertsBuilder() {
          return getGeoFenceAlertsFieldBuilder().addBuilder(
              com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.getDefaultInstance());
        }
        /**
         * <pre>
         *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.Builder addGeoFenceAlertsBuilder(
            int index) {
          return getGeoFenceAlertsFieldBuilder().addBuilder(
              index, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.getDefaultInstance());
        }
        /**
         * <pre>
         *&#47; If exactly one GeoFenceAlert is sent, begin and end time may both be set to zero to indicate the boundary is always active
         * </pre>
         *
         * <code>repeated .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlerts = 7;</code>
         */
        public java.util.List<com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.Builder> 
             getGeoFenceAlertsBuilderList() {
          return getGeoFenceAlertsFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfigOrBuilder> 
            getGeoFenceAlertsFieldBuilder() {
          if (geoFenceAlertsBuilder_ == null) {
            geoFenceAlertsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfigOrBuilder>(
                    geoFenceAlerts_,
                    ((bitField0_ & 0x00000040) == 0x00000040),
                    getParentForChildren(),
                    isClean());
            geoFenceAlerts_ = null;
          }
          return geoFenceAlertsBuilder_;
        }

        private boolean updateGeoFenceAlertConfig_ ;
        /**
         * <pre>
         *&#47; If false, this message should not update geoFenceAlerts. 
         * </pre>
         *
         * <code>optional bool updateGeoFenceAlertConfig = 8;</code>
         */
        public boolean hasUpdateGeoFenceAlertConfig() {
          return ((bitField0_ & 0x00000080) == 0x00000080);
        }
        /**
         * <pre>
         *&#47; If false, this message should not update geoFenceAlerts. 
         * </pre>
         *
         * <code>optional bool updateGeoFenceAlertConfig = 8;</code>
         */
        public boolean getUpdateGeoFenceAlertConfig() {
          return updateGeoFenceAlertConfig_;
        }
        /**
         * <pre>
         *&#47; If false, this message should not update geoFenceAlerts. 
         * </pre>
         *
         * <code>optional bool updateGeoFenceAlertConfig = 8;</code>
         */
        public Builder setUpdateGeoFenceAlertConfig(boolean value) {
          bitField0_ |= 0x00000080;
          updateGeoFenceAlertConfig_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; If false, this message should not update geoFenceAlerts. 
         * </pre>
         *
         * <code>optional bool updateGeoFenceAlertConfig = 8;</code>
         */
        public Builder clearUpdateGeoFenceAlertConfig() {
          bitField0_ = (bitField0_ & ~0x00000080);
          updateGeoFenceAlertConfig_ = false;
          onChanged();
          return this;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


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

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

      public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public interface ConfigTypeSDPOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeSDP)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       *&#47; send position updates if true
       * </pre>
       *
       * <code>optional bool enablePositionSending = 1;</code>
       */
      boolean hasEnablePositionSending();
      /**
       * <pre>
       *&#47; send position updates if true
       * </pre>
       *
       * <code>optional bool enablePositionSending = 1;</code>
       */
      boolean getEnablePositionSending();

      /**
       * <pre>
       *&#47; interval in seconds between position updates, ignored if enablePositionSending is false
       * </pre>
       *
       * <code>optional int32 positionSendingFrequency = 2;</code>
       */
      boolean hasPositionSendingFrequency();
      /**
       * <pre>
       *&#47; interval in seconds between position updates, ignored if enablePositionSending is false
       * </pre>
       *
       * <code>optional int32 positionSendingFrequency = 2;</code>
       */
      int getPositionSendingFrequency();

      /**
       * <pre>
       *&#47; if enablePositionSending is on, the TBM shall notify the HU/IPC at this interval in seconds
       * </pre>
       *
       * <code>optional int32 positionSendingActiveFrequency = 4;</code>
       */
      boolean hasPositionSendingActiveFrequency();
      /**
       * <pre>
       *&#47; if enablePositionSending is on, the TBM shall notify the HU/IPC at this interval in seconds
       * </pre>
       *
       * <code>optional int32 positionSendingActiveFrequency = 4;</code>
       */
      int getPositionSendingActiveFrequency();

      /**
       * <pre>
       *&#47; enable or disable periodic sending of speed
       * </pre>
       *
       * <code>optional bool enableSpeedSending = 5;</code>
       */
      boolean hasEnableSpeedSending();
      /**
       * <pre>
       *&#47; enable or disable periodic sending of speed
       * </pre>
       *
       * <code>optional bool enableSpeedSending = 5;</code>
       */
      boolean getEnableSpeedSending();

      /**
       * <pre>
       *&#47; interval in seconds between speed updates, ignored if enableSpeedSending is false
       * </pre>
       *
       * <code>optional int32 speedSendingFrequency = 6;</code>
       */
      boolean hasSpeedSendingFrequency();
      /**
       * <pre>
       *&#47; interval in seconds between speed updates, ignored if enableSpeedSending is false
       * </pre>
       *
       * <code>optional int32 speedSendingFrequency = 6;</code>
       */
      int getSpeedSendingFrequency();

      /**
       * <pre>
       *&#47; alert if positive acceleration is greater than this value, in m/s^2. Ignored if less than or equal to 0.0f;
       * </pre>
       *
       * <code>optional float harshAccelerationThreshold = 7;</code>
       */
      boolean hasHarshAccelerationThreshold();
      /**
       * <pre>
       *&#47; alert if positive acceleration is greater than this value, in m/s^2. Ignored if less than or equal to 0.0f;
       * </pre>
       *
       * <code>optional float harshAccelerationThreshold = 7;</code>
       */
      float getHarshAccelerationThreshold();

      /**
       * <pre>
       *&#47; alert if negative acceleration is below this value, in m/s^2.  Ignored if greater than or equal to 0.0f;
       * </pre>
       *
       * <code>optional float harshBrakingThreshold = 8;</code>
       */
      boolean hasHarshBrakingThreshold();
      /**
       * <pre>
       *&#47; alert if negative acceleration is below this value, in m/s^2.  Ignored if greater than or equal to 0.0f;
       * </pre>
       *
       * <code>optional float harshBrakingThreshold = 8;</code>
       */
      float getHarshBrakingThreshold();

      /**
       * <pre>
       *&#47; steering wheel rotation in RPM
       * </pre>
       *
       * <code>optional float suddenCorneringThreshold = 9;</code>
       */
      boolean hasSuddenCorneringThreshold();
      /**
       * <pre>
       *&#47; steering wheel rotation in RPM
       * </pre>
       *
       * <code>optional float suddenCorneringThreshold = 9;</code>
       */
      float getSuddenCorneringThreshold();

      /**
       * <pre>
       *&#47; if true, no GPS values will be sent from the vehicle
       * </pre>
       *
       * <code>optional bool userDeclinedGPSSending = 10;</code>
       */
      boolean hasUserDeclinedGPSSending();
      /**
       * <pre>
       *&#47; if true, no GPS values will be sent from the vehicle
       * </pre>
       *
       * <code>optional bool userDeclinedGPSSending = 10;</code>
       */
      boolean getUserDeclinedGPSSending();
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeSDP}
     */
    public  static final class ConfigTypeSDP extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeSDP)
        ConfigTypeSDPOrBuilder {
      // Use ConfigTypeSDP.newBuilder() to construct.
      private ConfigTypeSDP(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private ConfigTypeSDP() {
        enablePositionSending_ = false;
        positionSendingFrequency_ = 0;
        positionSendingActiveFrequency_ = 0;
        enableSpeedSending_ = false;
        speedSendingFrequency_ = 0;
        harshAccelerationThreshold_ = 0F;
        harshBrakingThreshold_ = 0F;
        suddenCorneringThreshold_ = 0F;
        userDeclinedGPSSending_ = false;
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private ConfigTypeSDP(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                enablePositionSending_ = input.readBool();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                positionSendingFrequency_ = input.readInt32();
                break;
              }
              case 32: {
                bitField0_ |= 0x00000004;
                positionSendingActiveFrequency_ = input.readInt32();
                break;
              }
              case 40: {
                bitField0_ |= 0x00000008;
                enableSpeedSending_ = input.readBool();
                break;
              }
              case 48: {
                bitField0_ |= 0x00000010;
                speedSendingFrequency_ = input.readInt32();
                break;
              }
              case 61: {
                bitField0_ |= 0x00000020;
                harshAccelerationThreshold_ = input.readFloat();
                break;
              }
              case 69: {
                bitField0_ |= 0x00000040;
                harshBrakingThreshold_ = input.readFloat();
                break;
              }
              case 77: {
                bitField0_ |= 0x00000080;
                suddenCorneringThreshold_ = input.readFloat();
                break;
              }
              case 80: {
                bitField0_ |= 0x00000100;
                userDeclinedGPSSending_ = input.readBool();
                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 {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeSDP_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeSDP_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP.class, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP.Builder.class);
      }

      private int bitField0_;
      public static final int ENABLEPOSITIONSENDING_FIELD_NUMBER = 1;
      private boolean enablePositionSending_;
      /**
       * <pre>
       *&#47; send position updates if true
       * </pre>
       *
       * <code>optional bool enablePositionSending = 1;</code>
       */
      public boolean hasEnablePositionSending() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       *&#47; send position updates if true
       * </pre>
       *
       * <code>optional bool enablePositionSending = 1;</code>
       */
      public boolean getEnablePositionSending() {
        return enablePositionSending_;
      }

      public static final int POSITIONSENDINGFREQUENCY_FIELD_NUMBER = 2;
      private int positionSendingFrequency_;
      /**
       * <pre>
       *&#47; interval in seconds between position updates, ignored if enablePositionSending is false
       * </pre>
       *
       * <code>optional int32 positionSendingFrequency = 2;</code>
       */
      public boolean hasPositionSendingFrequency() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       *&#47; interval in seconds between position updates, ignored if enablePositionSending is false
       * </pre>
       *
       * <code>optional int32 positionSendingFrequency = 2;</code>
       */
      public int getPositionSendingFrequency() {
        return positionSendingFrequency_;
      }

      public static final int POSITIONSENDINGACTIVEFREQUENCY_FIELD_NUMBER = 4;
      private int positionSendingActiveFrequency_;
      /**
       * <pre>
       *&#47; if enablePositionSending is on, the TBM shall notify the HU/IPC at this interval in seconds
       * </pre>
       *
       * <code>optional int32 positionSendingActiveFrequency = 4;</code>
       */
      public boolean hasPositionSendingActiveFrequency() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       *&#47; if enablePositionSending is on, the TBM shall notify the HU/IPC at this interval in seconds
       * </pre>
       *
       * <code>optional int32 positionSendingActiveFrequency = 4;</code>
       */
      public int getPositionSendingActiveFrequency() {
        return positionSendingActiveFrequency_;
      }

      public static final int ENABLESPEEDSENDING_FIELD_NUMBER = 5;
      private boolean enableSpeedSending_;
      /**
       * <pre>
       *&#47; enable or disable periodic sending of speed
       * </pre>
       *
       * <code>optional bool enableSpeedSending = 5;</code>
       */
      public boolean hasEnableSpeedSending() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <pre>
       *&#47; enable or disable periodic sending of speed
       * </pre>
       *
       * <code>optional bool enableSpeedSending = 5;</code>
       */
      public boolean getEnableSpeedSending() {
        return enableSpeedSending_;
      }

      public static final int SPEEDSENDINGFREQUENCY_FIELD_NUMBER = 6;
      private int speedSendingFrequency_;
      /**
       * <pre>
       *&#47; interval in seconds between speed updates, ignored if enableSpeedSending is false
       * </pre>
       *
       * <code>optional int32 speedSendingFrequency = 6;</code>
       */
      public boolean hasSpeedSendingFrequency() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <pre>
       *&#47; interval in seconds between speed updates, ignored if enableSpeedSending is false
       * </pre>
       *
       * <code>optional int32 speedSendingFrequency = 6;</code>
       */
      public int getSpeedSendingFrequency() {
        return speedSendingFrequency_;
      }

      public static final int HARSHACCELERATIONTHRESHOLD_FIELD_NUMBER = 7;
      private float harshAccelerationThreshold_;
      /**
       * <pre>
       *&#47; alert if positive acceleration is greater than this value, in m/s^2. Ignored if less than or equal to 0.0f;
       * </pre>
       *
       * <code>optional float harshAccelerationThreshold = 7;</code>
       */
      public boolean hasHarshAccelerationThreshold() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <pre>
       *&#47; alert if positive acceleration is greater than this value, in m/s^2. Ignored if less than or equal to 0.0f;
       * </pre>
       *
       * <code>optional float harshAccelerationThreshold = 7;</code>
       */
      public float getHarshAccelerationThreshold() {
        return harshAccelerationThreshold_;
      }

      public static final int HARSHBRAKINGTHRESHOLD_FIELD_NUMBER = 8;
      private float harshBrakingThreshold_;
      /**
       * <pre>
       *&#47; alert if negative acceleration is below this value, in m/s^2.  Ignored if greater than or equal to 0.0f;
       * </pre>
       *
       * <code>optional float harshBrakingThreshold = 8;</code>
       */
      public boolean hasHarshBrakingThreshold() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <pre>
       *&#47; alert if negative acceleration is below this value, in m/s^2.  Ignored if greater than or equal to 0.0f;
       * </pre>
       *
       * <code>optional float harshBrakingThreshold = 8;</code>
       */
      public float getHarshBrakingThreshold() {
        return harshBrakingThreshold_;
      }

      public static final int SUDDENCORNERINGTHRESHOLD_FIELD_NUMBER = 9;
      private float suddenCorneringThreshold_;
      /**
       * <pre>
       *&#47; steering wheel rotation in RPM
       * </pre>
       *
       * <code>optional float suddenCorneringThreshold = 9;</code>
       */
      public boolean hasSuddenCorneringThreshold() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * <pre>
       *&#47; steering wheel rotation in RPM
       * </pre>
       *
       * <code>optional float suddenCorneringThreshold = 9;</code>
       */
      public float getSuddenCorneringThreshold() {
        return suddenCorneringThreshold_;
      }

      public static final int USERDECLINEDGPSSENDING_FIELD_NUMBER = 10;
      private boolean userDeclinedGPSSending_;
      /**
       * <pre>
       *&#47; if true, no GPS values will be sent from the vehicle
       * </pre>
       *
       * <code>optional bool userDeclinedGPSSending = 10;</code>
       */
      public boolean hasUserDeclinedGPSSending() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * <pre>
       *&#47; if true, no GPS values will be sent from the vehicle
       * </pre>
       *
       * <code>optional bool userDeclinedGPSSending = 10;</code>
       */
      public boolean getUserDeclinedGPSSending() {
        return userDeclinedGPSSending_;
      }

      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 (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBool(1, enablePositionSending_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(2, positionSendingFrequency_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeInt32(4, positionSendingActiveFrequency_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeBool(5, enableSpeedSending_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeInt32(6, speedSendingFrequency_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          output.writeFloat(7, harshAccelerationThreshold_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          output.writeFloat(8, harshBrakingThreshold_);
        }
        if (((bitField0_ & 0x00000080) == 0x00000080)) {
          output.writeFloat(9, suddenCorneringThreshold_);
        }
        if (((bitField0_ & 0x00000100) == 0x00000100)) {
          output.writeBool(10, userDeclinedGPSSending_);
        }
        unknownFields.writeTo(output);
      }

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

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(1, enablePositionSending_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, positionSendingFrequency_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(4, positionSendingActiveFrequency_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(5, enableSpeedSending_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(6, speedSendingFrequency_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFloatSize(7, harshAccelerationThreshold_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFloatSize(8, harshBrakingThreshold_);
        }
        if (((bitField0_ & 0x00000080) == 0x00000080)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFloatSize(9, suddenCorneringThreshold_);
        }
        if (((bitField0_ & 0x00000100) == 0x00000100)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(10, userDeclinedGPSSending_);
        }
        size += unknownFields.getSerializedSize();
        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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP)) {
          return super.equals(obj);
        }
        com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP other = (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP) obj;

        boolean result = true;
        result = result && (hasEnablePositionSending() == other.hasEnablePositionSending());
        if (hasEnablePositionSending()) {
          result = result && (getEnablePositionSending()
              == other.getEnablePositionSending());
        }
        result = result && (hasPositionSendingFrequency() == other.hasPositionSendingFrequency());
        if (hasPositionSendingFrequency()) {
          result = result && (getPositionSendingFrequency()
              == other.getPositionSendingFrequency());
        }
        result = result && (hasPositionSendingActiveFrequency() == other.hasPositionSendingActiveFrequency());
        if (hasPositionSendingActiveFrequency()) {
          result = result && (getPositionSendingActiveFrequency()
              == other.getPositionSendingActiveFrequency());
        }
        result = result && (hasEnableSpeedSending() == other.hasEnableSpeedSending());
        if (hasEnableSpeedSending()) {
          result = result && (getEnableSpeedSending()
              == other.getEnableSpeedSending());
        }
        result = result && (hasSpeedSendingFrequency() == other.hasSpeedSendingFrequency());
        if (hasSpeedSendingFrequency()) {
          result = result && (getSpeedSendingFrequency()
              == other.getSpeedSendingFrequency());
        }
        result = result && (hasHarshAccelerationThreshold() == other.hasHarshAccelerationThreshold());
        if (hasHarshAccelerationThreshold()) {
          result = result && (
              java.lang.Float.floatToIntBits(getHarshAccelerationThreshold())
              == java.lang.Float.floatToIntBits(
                  other.getHarshAccelerationThreshold()));
        }
        result = result && (hasHarshBrakingThreshold() == other.hasHarshBrakingThreshold());
        if (hasHarshBrakingThreshold()) {
          result = result && (
              java.lang.Float.floatToIntBits(getHarshBrakingThreshold())
              == java.lang.Float.floatToIntBits(
                  other.getHarshBrakingThreshold()));
        }
        result = result && (hasSuddenCorneringThreshold() == other.hasSuddenCorneringThreshold());
        if (hasSuddenCorneringThreshold()) {
          result = result && (
              java.lang.Float.floatToIntBits(getSuddenCorneringThreshold())
              == java.lang.Float.floatToIntBits(
                  other.getSuddenCorneringThreshold()));
        }
        result = result && (hasUserDeclinedGPSSending() == other.hasUserDeclinedGPSSending());
        if (hasUserDeclinedGPSSending()) {
          result = result && (getUserDeclinedGPSSending()
              == other.getUserDeclinedGPSSending());
        }
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptorForType().hashCode();
        if (hasEnablePositionSending()) {
          hash = (37 * hash) + ENABLEPOSITIONSENDING_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getEnablePositionSending());
        }
        if (hasPositionSendingFrequency()) {
          hash = (37 * hash) + POSITIONSENDINGFREQUENCY_FIELD_NUMBER;
          hash = (53 * hash) + getPositionSendingFrequency();
        }
        if (hasPositionSendingActiveFrequency()) {
          hash = (37 * hash) + POSITIONSENDINGACTIVEFREQUENCY_FIELD_NUMBER;
          hash = (53 * hash) + getPositionSendingActiveFrequency();
        }
        if (hasEnableSpeedSending()) {
          hash = (37 * hash) + ENABLESPEEDSENDING_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getEnableSpeedSending());
        }
        if (hasSpeedSendingFrequency()) {
          hash = (37 * hash) + SPEEDSENDINGFREQUENCY_FIELD_NUMBER;
          hash = (53 * hash) + getSpeedSendingFrequency();
        }
        if (hasHarshAccelerationThreshold()) {
          hash = (37 * hash) + HARSHACCELERATIONTHRESHOLD_FIELD_NUMBER;
          hash = (53 * hash) + java.lang.Float.floatToIntBits(
              getHarshAccelerationThreshold());
        }
        if (hasHarshBrakingThreshold()) {
          hash = (37 * hash) + HARSHBRAKINGTHRESHOLD_FIELD_NUMBER;
          hash = (53 * hash) + java.lang.Float.floatToIntBits(
              getHarshBrakingThreshold());
        }
        if (hasSuddenCorneringThreshold()) {
          hash = (37 * hash) + SUDDENCORNERINGTHRESHOLD_FIELD_NUMBER;
          hash = (53 * hash) + java.lang.Float.floatToIntBits(
              getSuddenCorneringThreshold());
        }
        if (hasUserDeclinedGPSSending()) {
          hash = (37 * hash) + USERDECLINEDGPSSENDING_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getUserDeclinedGPSSending());
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP 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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP 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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP 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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP 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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP 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.PCUpdateConfigRequest.ConfigTypeSDP}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeSDP)
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDPOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeSDP_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeSDP_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP.class, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP.Builder.class);
        }

        // Construct using com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP.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();
          enablePositionSending_ = false;
          bitField0_ = (bitField0_ & ~0x00000001);
          positionSendingFrequency_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          positionSendingActiveFrequency_ = 0;
          bitField0_ = (bitField0_ & ~0x00000004);
          enableSpeedSending_ = false;
          bitField0_ = (bitField0_ & ~0x00000008);
          speedSendingFrequency_ = 0;
          bitField0_ = (bitField0_ & ~0x00000010);
          harshAccelerationThreshold_ = 0F;
          bitField0_ = (bitField0_ & ~0x00000020);
          harshBrakingThreshold_ = 0F;
          bitField0_ = (bitField0_ & ~0x00000040);
          suddenCorneringThreshold_ = 0F;
          bitField0_ = (bitField0_ & ~0x00000080);
          userDeclinedGPSSending_ = false;
          bitField0_ = (bitField0_ & ~0x00000100);
          return this;
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP getDefaultInstanceForType() {
          return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP.getDefaultInstance();
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP buildPartial() {
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP result = new com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.enablePositionSending_ = enablePositionSending_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.positionSendingFrequency_ = positionSendingFrequency_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.positionSendingActiveFrequency_ = positionSendingActiveFrequency_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.enableSpeedSending_ = enableSpeedSending_;
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000010;
          }
          result.speedSendingFrequency_ = speedSendingFrequency_;
          if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
            to_bitField0_ |= 0x00000020;
          }
          result.harshAccelerationThreshold_ = harshAccelerationThreshold_;
          if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
            to_bitField0_ |= 0x00000040;
          }
          result.harshBrakingThreshold_ = harshBrakingThreshold_;
          if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
            to_bitField0_ |= 0x00000080;
          }
          result.suddenCorneringThreshold_ = suddenCorneringThreshold_;
          if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
            to_bitField0_ |= 0x00000100;
          }
          result.userDeclinedGPSSending_ = userDeclinedGPSSending_;
          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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP) {
            return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP other) {
          if (other == com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP.getDefaultInstance()) return this;
          if (other.hasEnablePositionSending()) {
            setEnablePositionSending(other.getEnablePositionSending());
          }
          if (other.hasPositionSendingFrequency()) {
            setPositionSendingFrequency(other.getPositionSendingFrequency());
          }
          if (other.hasPositionSendingActiveFrequency()) {
            setPositionSendingActiveFrequency(other.getPositionSendingActiveFrequency());
          }
          if (other.hasEnableSpeedSending()) {
            setEnableSpeedSending(other.getEnableSpeedSending());
          }
          if (other.hasSpeedSendingFrequency()) {
            setSpeedSendingFrequency(other.getSpeedSendingFrequency());
          }
          if (other.hasHarshAccelerationThreshold()) {
            setHarshAccelerationThreshold(other.getHarshAccelerationThreshold());
          }
          if (other.hasHarshBrakingThreshold()) {
            setHarshBrakingThreshold(other.getHarshBrakingThreshold());
          }
          if (other.hasSuddenCorneringThreshold()) {
            setSuddenCorneringThreshold(other.getSuddenCorneringThreshold());
          }
          if (other.hasUserDeclinedGPSSending()) {
            setUserDeclinedGPSSending(other.getUserDeclinedGPSSending());
          }
          this.mergeUnknownFields(other.unknownFields);
          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.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private boolean enablePositionSending_ ;
        /**
         * <pre>
         *&#47; send position updates if true
         * </pre>
         *
         * <code>optional bool enablePositionSending = 1;</code>
         */
        public boolean hasEnablePositionSending() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <pre>
         *&#47; send position updates if true
         * </pre>
         *
         * <code>optional bool enablePositionSending = 1;</code>
         */
        public boolean getEnablePositionSending() {
          return enablePositionSending_;
        }
        /**
         * <pre>
         *&#47; send position updates if true
         * </pre>
         *
         * <code>optional bool enablePositionSending = 1;</code>
         */
        public Builder setEnablePositionSending(boolean value) {
          bitField0_ |= 0x00000001;
          enablePositionSending_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; send position updates if true
         * </pre>
         *
         * <code>optional bool enablePositionSending = 1;</code>
         */
        public Builder clearEnablePositionSending() {
          bitField0_ = (bitField0_ & ~0x00000001);
          enablePositionSending_ = false;
          onChanged();
          return this;
        }

        private int positionSendingFrequency_ ;
        /**
         * <pre>
         *&#47; interval in seconds between position updates, ignored if enablePositionSending is false
         * </pre>
         *
         * <code>optional int32 positionSendingFrequency = 2;</code>
         */
        public boolean hasPositionSendingFrequency() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <pre>
         *&#47; interval in seconds between position updates, ignored if enablePositionSending is false
         * </pre>
         *
         * <code>optional int32 positionSendingFrequency = 2;</code>
         */
        public int getPositionSendingFrequency() {
          return positionSendingFrequency_;
        }
        /**
         * <pre>
         *&#47; interval in seconds between position updates, ignored if enablePositionSending is false
         * </pre>
         *
         * <code>optional int32 positionSendingFrequency = 2;</code>
         */
        public Builder setPositionSendingFrequency(int value) {
          bitField0_ |= 0x00000002;
          positionSendingFrequency_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; interval in seconds between position updates, ignored if enablePositionSending is false
         * </pre>
         *
         * <code>optional int32 positionSendingFrequency = 2;</code>
         */
        public Builder clearPositionSendingFrequency() {
          bitField0_ = (bitField0_ & ~0x00000002);
          positionSendingFrequency_ = 0;
          onChanged();
          return this;
        }

        private int positionSendingActiveFrequency_ ;
        /**
         * <pre>
         *&#47; if enablePositionSending is on, the TBM shall notify the HU/IPC at this interval in seconds
         * </pre>
         *
         * <code>optional int32 positionSendingActiveFrequency = 4;</code>
         */
        public boolean hasPositionSendingActiveFrequency() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <pre>
         *&#47; if enablePositionSending is on, the TBM shall notify the HU/IPC at this interval in seconds
         * </pre>
         *
         * <code>optional int32 positionSendingActiveFrequency = 4;</code>
         */
        public int getPositionSendingActiveFrequency() {
          return positionSendingActiveFrequency_;
        }
        /**
         * <pre>
         *&#47; if enablePositionSending is on, the TBM shall notify the HU/IPC at this interval in seconds
         * </pre>
         *
         * <code>optional int32 positionSendingActiveFrequency = 4;</code>
         */
        public Builder setPositionSendingActiveFrequency(int value) {
          bitField0_ |= 0x00000004;
          positionSendingActiveFrequency_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; if enablePositionSending is on, the TBM shall notify the HU/IPC at this interval in seconds
         * </pre>
         *
         * <code>optional int32 positionSendingActiveFrequency = 4;</code>
         */
        public Builder clearPositionSendingActiveFrequency() {
          bitField0_ = (bitField0_ & ~0x00000004);
          positionSendingActiveFrequency_ = 0;
          onChanged();
          return this;
        }

        private boolean enableSpeedSending_ ;
        /**
         * <pre>
         *&#47; enable or disable periodic sending of speed
         * </pre>
         *
         * <code>optional bool enableSpeedSending = 5;</code>
         */
        public boolean hasEnableSpeedSending() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * <pre>
         *&#47; enable or disable periodic sending of speed
         * </pre>
         *
         * <code>optional bool enableSpeedSending = 5;</code>
         */
        public boolean getEnableSpeedSending() {
          return enableSpeedSending_;
        }
        /**
         * <pre>
         *&#47; enable or disable periodic sending of speed
         * </pre>
         *
         * <code>optional bool enableSpeedSending = 5;</code>
         */
        public Builder setEnableSpeedSending(boolean value) {
          bitField0_ |= 0x00000008;
          enableSpeedSending_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; enable or disable periodic sending of speed
         * </pre>
         *
         * <code>optional bool enableSpeedSending = 5;</code>
         */
        public Builder clearEnableSpeedSending() {
          bitField0_ = (bitField0_ & ~0x00000008);
          enableSpeedSending_ = false;
          onChanged();
          return this;
        }

        private int speedSendingFrequency_ ;
        /**
         * <pre>
         *&#47; interval in seconds between speed updates, ignored if enableSpeedSending is false
         * </pre>
         *
         * <code>optional int32 speedSendingFrequency = 6;</code>
         */
        public boolean hasSpeedSendingFrequency() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        /**
         * <pre>
         *&#47; interval in seconds between speed updates, ignored if enableSpeedSending is false
         * </pre>
         *
         * <code>optional int32 speedSendingFrequency = 6;</code>
         */
        public int getSpeedSendingFrequency() {
          return speedSendingFrequency_;
        }
        /**
         * <pre>
         *&#47; interval in seconds between speed updates, ignored if enableSpeedSending is false
         * </pre>
         *
         * <code>optional int32 speedSendingFrequency = 6;</code>
         */
        public Builder setSpeedSendingFrequency(int value) {
          bitField0_ |= 0x00000010;
          speedSendingFrequency_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; interval in seconds between speed updates, ignored if enableSpeedSending is false
         * </pre>
         *
         * <code>optional int32 speedSendingFrequency = 6;</code>
         */
        public Builder clearSpeedSendingFrequency() {
          bitField0_ = (bitField0_ & ~0x00000010);
          speedSendingFrequency_ = 0;
          onChanged();
          return this;
        }

        private float harshAccelerationThreshold_ ;
        /**
         * <pre>
         *&#47; alert if positive acceleration is greater than this value, in m/s^2. Ignored if less than or equal to 0.0f;
         * </pre>
         *
         * <code>optional float harshAccelerationThreshold = 7;</code>
         */
        public boolean hasHarshAccelerationThreshold() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }
        /**
         * <pre>
         *&#47; alert if positive acceleration is greater than this value, in m/s^2. Ignored if less than or equal to 0.0f;
         * </pre>
         *
         * <code>optional float harshAccelerationThreshold = 7;</code>
         */
        public float getHarshAccelerationThreshold() {
          return harshAccelerationThreshold_;
        }
        /**
         * <pre>
         *&#47; alert if positive acceleration is greater than this value, in m/s^2. Ignored if less than or equal to 0.0f;
         * </pre>
         *
         * <code>optional float harshAccelerationThreshold = 7;</code>
         */
        public Builder setHarshAccelerationThreshold(float value) {
          bitField0_ |= 0x00000020;
          harshAccelerationThreshold_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; alert if positive acceleration is greater than this value, in m/s^2. Ignored if less than or equal to 0.0f;
         * </pre>
         *
         * <code>optional float harshAccelerationThreshold = 7;</code>
         */
        public Builder clearHarshAccelerationThreshold() {
          bitField0_ = (bitField0_ & ~0x00000020);
          harshAccelerationThreshold_ = 0F;
          onChanged();
          return this;
        }

        private float harshBrakingThreshold_ ;
        /**
         * <pre>
         *&#47; alert if negative acceleration is below this value, in m/s^2.  Ignored if greater than or equal to 0.0f;
         * </pre>
         *
         * <code>optional float harshBrakingThreshold = 8;</code>
         */
        public boolean hasHarshBrakingThreshold() {
          return ((bitField0_ & 0x00000040) == 0x00000040);
        }
        /**
         * <pre>
         *&#47; alert if negative acceleration is below this value, in m/s^2.  Ignored if greater than or equal to 0.0f;
         * </pre>
         *
         * <code>optional float harshBrakingThreshold = 8;</code>
         */
        public float getHarshBrakingThreshold() {
          return harshBrakingThreshold_;
        }
        /**
         * <pre>
         *&#47; alert if negative acceleration is below this value, in m/s^2.  Ignored if greater than or equal to 0.0f;
         * </pre>
         *
         * <code>optional float harshBrakingThreshold = 8;</code>
         */
        public Builder setHarshBrakingThreshold(float value) {
          bitField0_ |= 0x00000040;
          harshBrakingThreshold_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; alert if negative acceleration is below this value, in m/s^2.  Ignored if greater than or equal to 0.0f;
         * </pre>
         *
         * <code>optional float harshBrakingThreshold = 8;</code>
         */
        public Builder clearHarshBrakingThreshold() {
          bitField0_ = (bitField0_ & ~0x00000040);
          harshBrakingThreshold_ = 0F;
          onChanged();
          return this;
        }

        private float suddenCorneringThreshold_ ;
        /**
         * <pre>
         *&#47; steering wheel rotation in RPM
         * </pre>
         *
         * <code>optional float suddenCorneringThreshold = 9;</code>
         */
        public boolean hasSuddenCorneringThreshold() {
          return ((bitField0_ & 0x00000080) == 0x00000080);
        }
        /**
         * <pre>
         *&#47; steering wheel rotation in RPM
         * </pre>
         *
         * <code>optional float suddenCorneringThreshold = 9;</code>
         */
        public float getSuddenCorneringThreshold() {
          return suddenCorneringThreshold_;
        }
        /**
         * <pre>
         *&#47; steering wheel rotation in RPM
         * </pre>
         *
         * <code>optional float suddenCorneringThreshold = 9;</code>
         */
        public Builder setSuddenCorneringThreshold(float value) {
          bitField0_ |= 0x00000080;
          suddenCorneringThreshold_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; steering wheel rotation in RPM
         * </pre>
         *
         * <code>optional float suddenCorneringThreshold = 9;</code>
         */
        public Builder clearSuddenCorneringThreshold() {
          bitField0_ = (bitField0_ & ~0x00000080);
          suddenCorneringThreshold_ = 0F;
          onChanged();
          return this;
        }

        private boolean userDeclinedGPSSending_ ;
        /**
         * <pre>
         *&#47; if true, no GPS values will be sent from the vehicle
         * </pre>
         *
         * <code>optional bool userDeclinedGPSSending = 10;</code>
         */
        public boolean hasUserDeclinedGPSSending() {
          return ((bitField0_ & 0x00000100) == 0x00000100);
        }
        /**
         * <pre>
         *&#47; if true, no GPS values will be sent from the vehicle
         * </pre>
         *
         * <code>optional bool userDeclinedGPSSending = 10;</code>
         */
        public boolean getUserDeclinedGPSSending() {
          return userDeclinedGPSSending_;
        }
        /**
         * <pre>
         *&#47; if true, no GPS values will be sent from the vehicle
         * </pre>
         *
         * <code>optional bool userDeclinedGPSSending = 10;</code>
         */
        public Builder setUserDeclinedGPSSending(boolean value) {
          bitField0_ |= 0x00000100;
          userDeclinedGPSSending_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; if true, no GPS values will be sent from the vehicle
         * </pre>
         *
         * <code>optional bool userDeclinedGPSSending = 10;</code>
         */
        public Builder clearUserDeclinedGPSSending() {
          bitField0_ = (bitField0_ & ~0x00000100);
          userDeclinedGPSSending_ = false;
          onChanged();
          return this;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


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

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

      public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    private int configCase_ = 0;
    private java.lang.Object config_;
    public enum ConfigCase
        implements com.google.protobuf.Internal.EnumLite {
      CONFIGTYPEVEHICLE(1),
      CONFIGTYPESDP(2),
      CONFIG_NOT_SET(0);
      private final int value;
      private ConfigCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ConfigCase valueOf(int value) {
        return forNumber(value);
      }

      public static ConfigCase forNumber(int value) {
        switch (value) {
          case 1: return CONFIGTYPEVEHICLE;
          case 2: return CONFIGTYPESDP;
          case 0: return CONFIG_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public ConfigCase
    getConfigCase() {
      return ConfigCase.forNumber(
          configCase_);
    }

    public static final int CONFIGTYPEVEHICLE_FIELD_NUMBER = 1;
    /**
     * <pre>
     *&#47; supported in NAFTA 
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle configTypeVehicle = 1;</code>
     */
    public boolean hasConfigTypeVehicle() {
      return configCase_ == 1;
    }
    /**
     * <pre>
     *&#47; supported in NAFTA 
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle configTypeVehicle = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle getConfigTypeVehicle() {
      if (configCase_ == 1) {
         return (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle) config_;
      }
      return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.getDefaultInstance();
    }
    /**
     * <pre>
     *&#47; supported in NAFTA 
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle configTypeVehicle = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicleOrBuilder getConfigTypeVehicleOrBuilder() {
      if (configCase_ == 1) {
         return (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle) config_;
      }
      return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.getDefaultInstance();
    }

    public static final int CONFIGTYPESDP_FIELD_NUMBER = 2;
    /**
     * <pre>
     *&#47; supported in EMEA, APAC
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeSDP configTypeSDP = 2;</code>
     */
    public boolean hasConfigTypeSDP() {
      return configCase_ == 2;
    }
    /**
     * <pre>
     *&#47; supported in EMEA, APAC
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeSDP configTypeSDP = 2;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP getConfigTypeSDP() {
      if (configCase_ == 2) {
         return (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP) config_;
      }
      return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP.getDefaultInstance();
    }
    /**
     * <pre>
     *&#47; supported in EMEA, APAC
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeSDP configTypeSDP = 2;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDPOrBuilder getConfigTypeSDPOrBuilder() {
      if (configCase_ == 2) {
         return (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP) config_;
      }
      return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP.getDefaultInstance();
    }

    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 (configCase_ == 1) {
        output.writeMessage(1, (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle) config_);
      }
      if (configCase_ == 2) {
        output.writeMessage(2, (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP) config_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (configCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle) config_);
      }
      if (configCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP) config_);
      }
      size += unknownFields.getSerializedSize();
      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.GlobalUconnectExtPC.PCUpdateConfigRequest)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest other = (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest) obj;

      boolean result = true;
      result = result && getConfigCase().equals(
          other.getConfigCase());
      if (!result) return false;
      switch (configCase_) {
        case 1:
          result = result && getConfigTypeVehicle()
              .equals(other.getConfigTypeVehicle());
          break;
        case 2:
          result = result && getConfigTypeSDP()
              .equals(other.getConfigTypeSDP());
          break;
        case 0:
        default:
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      switch (configCase_) {
        case 1:
          hash = (37 * hash) + CONFIGTYPEVEHICLE_FIELD_NUMBER;
          hash = (53 * hash) + getConfigTypeVehicle().hashCode();
          break;
        case 2:
          hash = (37 * hash) + CONFIGTYPESDP_FIELD_NUMBER;
          hash = (53 * hash) + getConfigTypeSDP().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest 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.GlobalUconnectExtPC.PCUpdateConfigRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest 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.GlobalUconnectExtPC.PCUpdateConfigRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest 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.GlobalUconnectExtPC.PCUpdateConfigRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest 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.GlobalUconnectExtPC.PCUpdateConfigRequest 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 message represents  PCUpdateConfigRequest which triggers from SDP.
     * &lt;div class=exmsg-main&gt;
     * &lt;h4&gt;PCUpdateConfigRequest Example Message:&lt;/h4&gt;
     * &lt;div class=ex-msg&gt;
     *	&lt;code&gt;
     *		timestamp: 1490711212633
     * 		messageId: 11
     * 		messages
     * 		{
     * 		 [com.fca.uconnect.global.pcUpdateConfigRequest]
     * 		 {
     * 		  configTypeVehicle
     * 		  {
     * 			speedAlerts
     * 			{
     * 			 beginTime: 1000
     * 			 endTime: 10000
     * 			 activeDaysOfWeek: 1
     * 			 activeDaysOfWeek: 2
     * 			 thresholdAbovePostedSpeed: 60
     * 			 thresholdPostedSpeedAbsent: 80
     * 			 thresholdAbsolute: 70
     * 			}
     * 		   updateSpeedAlertConfig: true
     * 		  }
     * 		 }
     * 		}
     *	&lt;/code&gt;
     *   &lt;/div&gt;
     * &lt;/div&gt;
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.PCUpdateConfigRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.PCUpdateConfigRequest)
        com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.class, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.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();
        configCase_ = 0;
        config_ = null;
        return this;
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.getDefaultInstance();
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest result = new com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (configCase_ == 1) {
          if (configTypeVehicleBuilder_ == null) {
            result.config_ = config_;
          } else {
            result.config_ = configTypeVehicleBuilder_.build();
          }
        }
        if (configCase_ == 2) {
          if (configTypeSDPBuilder_ == null) {
            result.config_ = config_;
          } else {
            result.config_ = configTypeSDPBuilder_.build();
          }
        }
        result.bitField0_ = to_bitField0_;
        result.configCase_ = configCase_;
        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.GlobalUconnectExtPC.PCUpdateConfigRequest) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.getDefaultInstance()) return this;
        switch (other.getConfigCase()) {
          case CONFIGTYPEVEHICLE: {
            mergeConfigTypeVehicle(other.getConfigTypeVehicle());
            break;
          }
          case CONFIGTYPESDP: {
            mergeConfigTypeSDP(other.getConfigTypeSDP());
            break;
          }
          case CONFIG_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        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.GlobalUconnectExtPC.PCUpdateConfigRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int configCase_ = 0;
      private java.lang.Object config_;
      public ConfigCase
          getConfigCase() {
        return ConfigCase.forNumber(
            configCase_);
      }

      public Builder clearConfig() {
        configCase_ = 0;
        config_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicleOrBuilder> configTypeVehicleBuilder_;
      /**
       * <pre>
       *&#47; supported in NAFTA 
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle configTypeVehicle = 1;</code>
       */
      public boolean hasConfigTypeVehicle() {
        return configCase_ == 1;
      }
      /**
       * <pre>
       *&#47; supported in NAFTA 
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle configTypeVehicle = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle getConfigTypeVehicle() {
        if (configTypeVehicleBuilder_ == null) {
          if (configCase_ == 1) {
            return (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle) config_;
          }
          return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.getDefaultInstance();
        } else {
          if (configCase_ == 1) {
            return configTypeVehicleBuilder_.getMessage();
          }
          return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.getDefaultInstance();
        }
      }
      /**
       * <pre>
       *&#47; supported in NAFTA 
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle configTypeVehicle = 1;</code>
       */
      public Builder setConfigTypeVehicle(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle value) {
        if (configTypeVehicleBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          config_ = value;
          onChanged();
        } else {
          configTypeVehicleBuilder_.setMessage(value);
        }
        configCase_ = 1;
        return this;
      }
      /**
       * <pre>
       *&#47; supported in NAFTA 
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle configTypeVehicle = 1;</code>
       */
      public Builder setConfigTypeVehicle(
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.Builder builderForValue) {
        if (configTypeVehicleBuilder_ == null) {
          config_ = builderForValue.build();
          onChanged();
        } else {
          configTypeVehicleBuilder_.setMessage(builderForValue.build());
        }
        configCase_ = 1;
        return this;
      }
      /**
       * <pre>
       *&#47; supported in NAFTA 
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle configTypeVehicle = 1;</code>
       */
      public Builder mergeConfigTypeVehicle(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle value) {
        if (configTypeVehicleBuilder_ == null) {
          if (configCase_ == 1 &&
              config_ != com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.getDefaultInstance()) {
            config_ = com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.newBuilder((com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle) config_)
                .mergeFrom(value).buildPartial();
          } else {
            config_ = value;
          }
          onChanged();
        } else {
          if (configCase_ == 1) {
            configTypeVehicleBuilder_.mergeFrom(value);
          }
          configTypeVehicleBuilder_.setMessage(value);
        }
        configCase_ = 1;
        return this;
      }
      /**
       * <pre>
       *&#47; supported in NAFTA 
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle configTypeVehicle = 1;</code>
       */
      public Builder clearConfigTypeVehicle() {
        if (configTypeVehicleBuilder_ == null) {
          if (configCase_ == 1) {
            configCase_ = 0;
            config_ = null;
            onChanged();
          }
        } else {
          if (configCase_ == 1) {
            configCase_ = 0;
            config_ = null;
          }
          configTypeVehicleBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *&#47; supported in NAFTA 
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle configTypeVehicle = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.Builder getConfigTypeVehicleBuilder() {
        return getConfigTypeVehicleFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *&#47; supported in NAFTA 
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle configTypeVehicle = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicleOrBuilder getConfigTypeVehicleOrBuilder() {
        if ((configCase_ == 1) && (configTypeVehicleBuilder_ != null)) {
          return configTypeVehicleBuilder_.getMessageOrBuilder();
        } else {
          if (configCase_ == 1) {
            return (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle) config_;
          }
          return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.getDefaultInstance();
        }
      }
      /**
       * <pre>
       *&#47; supported in NAFTA 
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle configTypeVehicle = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicleOrBuilder> 
          getConfigTypeVehicleFieldBuilder() {
        if (configTypeVehicleBuilder_ == null) {
          if (!(configCase_ == 1)) {
            config_ = com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.getDefaultInstance();
          }
          configTypeVehicleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicleOrBuilder>(
                  (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle) config_,
                  getParentForChildren(),
                  isClean());
          config_ = null;
        }
        configCase_ = 1;
        onChanged();;
        return configTypeVehicleBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDPOrBuilder> configTypeSDPBuilder_;
      /**
       * <pre>
       *&#47; supported in EMEA, APAC
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeSDP configTypeSDP = 2;</code>
       */
      public boolean hasConfigTypeSDP() {
        return configCase_ == 2;
      }
      /**
       * <pre>
       *&#47; supported in EMEA, APAC
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeSDP configTypeSDP = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP getConfigTypeSDP() {
        if (configTypeSDPBuilder_ == null) {
          if (configCase_ == 2) {
            return (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP) config_;
          }
          return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP.getDefaultInstance();
        } else {
          if (configCase_ == 2) {
            return configTypeSDPBuilder_.getMessage();
          }
          return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP.getDefaultInstance();
        }
      }
      /**
       * <pre>
       *&#47; supported in EMEA, APAC
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeSDP configTypeSDP = 2;</code>
       */
      public Builder setConfigTypeSDP(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP value) {
        if (configTypeSDPBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          config_ = value;
          onChanged();
        } else {
          configTypeSDPBuilder_.setMessage(value);
        }
        configCase_ = 2;
        return this;
      }
      /**
       * <pre>
       *&#47; supported in EMEA, APAC
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeSDP configTypeSDP = 2;</code>
       */
      public Builder setConfigTypeSDP(
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP.Builder builderForValue) {
        if (configTypeSDPBuilder_ == null) {
          config_ = builderForValue.build();
          onChanged();
        } else {
          configTypeSDPBuilder_.setMessage(builderForValue.build());
        }
        configCase_ = 2;
        return this;
      }
      /**
       * <pre>
       *&#47; supported in EMEA, APAC
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeSDP configTypeSDP = 2;</code>
       */
      public Builder mergeConfigTypeSDP(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP value) {
        if (configTypeSDPBuilder_ == null) {
          if (configCase_ == 2 &&
              config_ != com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP.getDefaultInstance()) {
            config_ = com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP.newBuilder((com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP) config_)
                .mergeFrom(value).buildPartial();
          } else {
            config_ = value;
          }
          onChanged();
        } else {
          if (configCase_ == 2) {
            configTypeSDPBuilder_.mergeFrom(value);
          }
          configTypeSDPBuilder_.setMessage(value);
        }
        configCase_ = 2;
        return this;
      }
      /**
       * <pre>
       *&#47; supported in EMEA, APAC
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeSDP configTypeSDP = 2;</code>
       */
      public Builder clearConfigTypeSDP() {
        if (configTypeSDPBuilder_ == null) {
          if (configCase_ == 2) {
            configCase_ = 0;
            config_ = null;
            onChanged();
          }
        } else {
          if (configCase_ == 2) {
            configCase_ = 0;
            config_ = null;
          }
          configTypeSDPBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *&#47; supported in EMEA, APAC
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeSDP configTypeSDP = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP.Builder getConfigTypeSDPBuilder() {
        return getConfigTypeSDPFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *&#47; supported in EMEA, APAC
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeSDP configTypeSDP = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDPOrBuilder getConfigTypeSDPOrBuilder() {
        if ((configCase_ == 2) && (configTypeSDPBuilder_ != null)) {
          return configTypeSDPBuilder_.getMessageOrBuilder();
        } else {
          if (configCase_ == 2) {
            return (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP) config_;
          }
          return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP.getDefaultInstance();
        }
      }
      /**
       * <pre>
       *&#47; supported in EMEA, APAC
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeSDP configTypeSDP = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDPOrBuilder> 
          getConfigTypeSDPFieldBuilder() {
        if (configTypeSDPBuilder_ == null) {
          if (!(configCase_ == 2)) {
            config_ = com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP.getDefaultInstance();
          }
          configTypeSDPBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDPOrBuilder>(
                  (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeSDP) config_,
                  getParentForChildren(),
                  isClean());
          config_ = null;
        }
        configCase_ = 2;
        onChanged();;
        return configTypeSDPBuilder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


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

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

    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigResponse.ResponseEnum response = 1;</code>
     */
    boolean hasResponse();
    /**
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigResponse.ResponseEnum response = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse.ResponseEnum getResponse();

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

    /**
     * <pre>
     *&#47; Specific error code.
     * </pre>
     *
     * <code>optional int32 failureReasonCode = 3;</code>
     */
    boolean hasFailureReasonCode();
    /**
     * <pre>
     *&#47; Specific error code.
     * </pre>
     *
     * <code>optional int32 failureReasonCode = 3;</code>
     */
    int getFailureReasonCode();
  }
  /**
   * <pre>
   **
   * This message is response to PCUpdateConfigRequest .
   * &lt;div class=exmsg-main&gt;
   * &lt;h4&gt;PCUpdateConfigResponse Example Message:&lt;/h4&gt;
   * &lt;div class=ex-msg&gt;
   *	&lt;code&gt;
   * 		timestamp: 1490712208347
   * 		messageId: 1
   * 		messages
   * 		{
   * 		 [com.fca.uconnect.global.pcUpdateConfigResponse]
   * 		 {
   * 			responseEnum: SUCCESS
   * 		 }
   * 		}
   *	&lt;/code&gt;
   *   &lt;/div&gt;
   * &lt;/div&gt;
   * </pre>
   *
   * Protobuf type {@code com.fca.uconnect.global.PCUpdateConfigResponse}
   */
  public  static final class PCUpdateConfigResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.PCUpdateConfigResponse)
      PCUpdateConfigResponseOrBuilder {
    // Use PCUpdateConfigResponse.newBuilder() to construct.
    private PCUpdateConfigResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PCUpdateConfigResponse() {
      response_ = 0;
      isTransient_ = false;
      failureReasonCode_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PCUpdateConfigResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse.ResponseEnum value = com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse.ResponseEnum.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                response_ = rawValue;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              isTransient_ = input.readBool();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse.class, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.PCUpdateConfigResponse.ResponseEnum}
     */
    public enum ResponseEnum
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       *&#47; Config successful
       * </pre>
       *
       * <code>SUCCESS = 0;</code>
       */
      SUCCESS(0),
      /**
       * <pre>
       *&#47; Config failed
       * </pre>
       *
       * <code>FAILURE = 1;</code>
       */
      FAILURE(1),
      /**
       * <pre>
       *&#47; Config type not supported in this region 
       * </pre>
       *
       * <code>CONFIG_TYPE_NOT_ALLOWED = 3;</code>
       */
      CONFIG_TYPE_NOT_ALLOWED(3),
      ;

      /**
       * <pre>
       *&#47; Config successful
       * </pre>
       *
       * <code>SUCCESS = 0;</code>
       */
      public static final int SUCCESS_VALUE = 0;
      /**
       * <pre>
       *&#47; Config failed
       * </pre>
       *
       * <code>FAILURE = 1;</code>
       */
      public static final int FAILURE_VALUE = 1;
      /**
       * <pre>
       *&#47; Config type not supported in this region 
       * </pre>
       *
       * <code>CONFIG_TYPE_NOT_ALLOWED = 3;</code>
       */
      public static final int CONFIG_TYPE_NOT_ALLOWED_VALUE = 3;


      public final int getNumber() {
        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 FAILURE;
          case 3: return CONFIG_TYPE_NOT_ALLOWED;
          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.GlobalUconnectExtPC.PCUpdateConfigResponse.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.");
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

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

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

    private int bitField0_;
    public static final int RESPONSE_FIELD_NUMBER = 1;
    private int response_;
    /**
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigResponse.ResponseEnum response = 1;</code>
     */
    public boolean hasResponse() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigResponse.ResponseEnum response = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse.ResponseEnum getResponse() {
      com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse.ResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse.ResponseEnum.valueOf(response_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse.ResponseEnum.SUCCESS : 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>optional bool isTransient = 2;</code>
     */
    public boolean hasIsTransient() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     *&#47; Indicates a transient error and a retry can be attempted.
     * </pre>
     *
     * <code>optional 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>optional int32 failureReasonCode = 3;</code>
     */
    public boolean hasFailureReasonCode() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <pre>
     *&#47; Specific error code.
     * </pre>
     *
     * <code>optional 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 (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, response_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, isTransient_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, failureReasonCode_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, response_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, isTransient_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, failureReasonCode_);
      }
      size += unknownFields.getSerializedSize();
      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.GlobalUconnectExtPC.PCUpdateConfigResponse)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse other = (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse) obj;

      boolean result = true;
      result = result && (hasResponse() == other.hasResponse());
      if (hasResponse()) {
        result = result && response_ == other.response_;
      }
      result = result && (hasIsTransient() == other.hasIsTransient());
      if (hasIsTransient()) {
        result = result && (getIsTransient()
            == other.getIsTransient());
      }
      result = result && (hasFailureReasonCode() == other.hasFailureReasonCode());
      if (hasFailureReasonCode()) {
        result = result && (getFailureReasonCode()
            == other.getFailureReasonCode());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasResponse()) {
        hash = (37 * hash) + RESPONSE_FIELD_NUMBER;
        hash = (53 * hash) + response_;
      }
      if (hasIsTransient()) {
        hash = (37 * hash) + ISTRANSIENT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsTransient());
      }
      if (hasFailureReasonCode()) {
        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.GlobalUconnectExtPC.PCUpdateConfigResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse 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.GlobalUconnectExtPC.PCUpdateConfigResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse 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.GlobalUconnectExtPC.PCUpdateConfigResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse 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.GlobalUconnectExtPC.PCUpdateConfigResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse 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.GlobalUconnectExtPC.PCUpdateConfigResponse 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 message is response to PCUpdateConfigRequest .
     * &lt;div class=exmsg-main&gt;
     * &lt;h4&gt;PCUpdateConfigResponse Example Message:&lt;/h4&gt;
     * &lt;div class=ex-msg&gt;
     *	&lt;code&gt;
     * 		timestamp: 1490712208347
     * 		messageId: 1
     * 		messages
     * 		{
     * 		 [com.fca.uconnect.global.pcUpdateConfigResponse]
     * 		 {
     * 			responseEnum: SUCCESS
     * 		 }
     * 		}
     *	&lt;/code&gt;
     *   &lt;/div&gt;
     * &lt;/div&gt;
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.PCUpdateConfigResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.PCUpdateConfigResponse)
        com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCUpdateConfigResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse.class, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse.Builder.class);
      }

      // Construct using com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse.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;
        bitField0_ = (bitField0_ & ~0x00000001);
        isTransient_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        failureReasonCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse.getDefaultInstance();
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse result = new com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.response_ = response_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.isTransient_ = isTransient_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.failureReasonCode_ = failureReasonCode_;
        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.GlobalUconnectExtPC.PCUpdateConfigResponse) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse.getDefaultInstance()) return this;
        if (other.hasResponse()) {
          setResponse(other.getResponse());
        }
        if (other.hasIsTransient()) {
          setIsTransient(other.getIsTransient());
        }
        if (other.hasFailureReasonCode()) {
          setFailureReasonCode(other.getFailureReasonCode());
        }
        this.mergeUnknownFields(other.unknownFields);
        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.GlobalUconnectExtPC.PCUpdateConfigResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int response_ = 0;
      /**
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigResponse.ResponseEnum response = 1;</code>
       */
      public boolean hasResponse() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigResponse.ResponseEnum response = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse.ResponseEnum getResponse() {
        com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse.ResponseEnum result = com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse.ResponseEnum.valueOf(response_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse.ResponseEnum.SUCCESS : result;
      }
      /**
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigResponse.ResponseEnum response = 1;</code>
       */
      public Builder setResponse(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse.ResponseEnum value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        response_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigResponse.ResponseEnum response = 1;</code>
       */
      public Builder clearResponse() {
        bitField0_ = (bitField0_ & ~0x00000001);
        response_ = 0;
        onChanged();
        return this;
      }

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

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

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


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

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

    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *&#47; the configuration that triggered this alert
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlertConfig = 1;</code>
     */
    boolean hasCurfewAlertConfig();
    /**
     * <pre>
     *&#47; the configuration that triggered this alert
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlertConfig = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig getCurfewAlertConfig();
    /**
     * <pre>
     *&#47; the configuration that triggered this alert
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlertConfig = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfigOrBuilder getCurfewAlertConfigOrBuilder();

    /**
     * <pre>
     *&#47; the configuration that triggered this alert
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlertConfig = 2;</code>
     */
    boolean hasSpeedAlertConfig();
    /**
     * <pre>
     *&#47; the configuration that triggered this alert
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlertConfig = 2;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig getSpeedAlertConfig();
    /**
     * <pre>
     *&#47; the configuration that triggered this alert
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlertConfig = 2;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfigOrBuilder getSpeedAlertConfigOrBuilder();

    /**
     * <pre>
     *&#47; the configuration that triggered this alert
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlertConfig = 3;</code>
     */
    boolean hasValetAlertConfig();
    /**
     * <pre>
     *&#47; the configuration that triggered this alert
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlertConfig = 3;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig getValetAlertConfig();
    /**
     * <pre>
     *&#47; the configuration that triggered this alert
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlertConfig = 3;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfigOrBuilder getValetAlertConfigOrBuilder();

    /**
     * <pre>
     *&#47; the configuration that triggered this alert
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlertConfig = 4;</code>
     */
    boolean hasGeoFenceAlertConfig();
    /**
     * <pre>
     *&#47; the configuration that triggered this alert
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlertConfig = 4;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig getGeoFenceAlertConfig();
    /**
     * <pre>
     *&#47; the configuration that triggered this alert
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlertConfig = 4;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfigOrBuilder getGeoFenceAlertConfigOrBuilder();

    /**
     * <pre>
     *&#47; location of the vehicle when the event was triggered
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.Location eventLocation = 5;</code>
     */
    boolean hasEventLocation();
    /**
     * <pre>
     *&#47; location of the vehicle when the event was triggered
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.Location eventLocation = 5;</code>
     */
    com.fca.uconnect.global.GlobalUconnectGNSS.Location getEventLocation();
    /**
     * <pre>
     *&#47; location of the vehicle when the event was triggered
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.Location eventLocation = 5;</code>
     */
    com.fca.uconnect.global.GlobalUconnectGNSS.LocationOrBuilder getEventLocationOrBuilder();

    /**
     * <pre>
     *&#47; UTC time the event was triggered
     * </pre>
     *
     * <code>optional int64 eventTimestampUTC = 6;</code>
     */
    boolean hasEventTimestampUTC();
    /**
     * <pre>
     *&#47; UTC time the event was triggered
     * </pre>
     *
     * <code>optional int64 eventTimestampUTC = 6;</code>
     */
    long getEventTimestampUTC();

    /**
     * <pre>
     *&#47; offset in seconds of the vehicle time zone from UTC
     * </pre>
     *
     * <code>optional int32 eventTimeUTCOffset = 7;</code>
     */
    boolean hasEventTimeUTCOffset();
    /**
     * <pre>
     *&#47; offset in seconds of the vehicle time zone from UTC
     * </pre>
     *
     * <code>optional int32 eventTimeUTCOffset = 7;</code>
     */
    int getEventTimeUTCOffset();

    /**
     * <pre>
     *&#47; speed in km/h  when the event was triggered
     * </pre>
     *
     * <code>optional int32 vehicleSpeed = 8;</code>
     */
    boolean hasVehicleSpeed();
    /**
     * <pre>
     *&#47; speed in km/h  when the event was triggered
     * </pre>
     *
     * <code>optional int32 vehicleSpeed = 8;</code>
     */
    int getVehicleSpeed();

    /**
     * <pre>
     *&#47; posted speed value from NAV system 
     * </pre>
     *
     * <code>optional int32 postedSpeed = 9;</code>
     */
    boolean hasPostedSpeed();
    /**
     * <pre>
     *&#47; posted speed value from NAV system 
     * </pre>
     *
     * <code>optional int32 postedSpeed = 9;</code>
     */
    int getPostedSpeed();

    /**
     * <pre>
     *&#47; if false, postedSpeed was not available and/or did not participate in the trigger
     * </pre>
     *
     * <code>optional bool postedSpeedValid = 10;</code>
     */
    boolean hasPostedSpeedValid();
    /**
     * <pre>
     *&#47; if false, postedSpeed was not available and/or did not participate in the trigger
     * </pre>
     *
     * <code>optional bool postedSpeedValid = 10;</code>
     */
    boolean getPostedSpeedValid();

    public com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish.EventSourceCase getEventSourceCase();
  }
  /**
   * <pre>
   **
   * This message is to notify SDP for Parental Controlconfigured Alert.
   * &lt;div class=exmsg-main&gt;
   * &lt;/div&gt;
   * </pre>
   *
   * Protobuf type {@code com.fca.uconnect.global.PCConfiguredAlertPublish}
   */
  public  static final class PCConfiguredAlertPublish extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.PCConfiguredAlertPublish)
      PCConfiguredAlertPublishOrBuilder {
    // Use PCConfiguredAlertPublish.newBuilder() to construct.
    private PCConfiguredAlertPublish(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PCConfiguredAlertPublish() {
      eventTimestampUTC_ = 0L;
      eventTimeUTCOffset_ = 0;
      vehicleSpeed_ = 0;
      postedSpeed_ = 0;
      postedSpeedValid_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PCConfiguredAlertPublish(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.Builder subBuilder = null;
              if (eventSourceCase_ == 1) {
                subBuilder = ((com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig) eventSource_).toBuilder();
              }
              eventSource_ =
                  input.readMessage(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig) eventSource_);
                eventSource_ = subBuilder.buildPartial();
              }
              eventSourceCase_ = 1;
              break;
            }
            case 18: {
              com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.Builder subBuilder = null;
              if (eventSourceCase_ == 2) {
                subBuilder = ((com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig) eventSource_).toBuilder();
              }
              eventSource_ =
                  input.readMessage(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig) eventSource_);
                eventSource_ = subBuilder.buildPartial();
              }
              eventSourceCase_ = 2;
              break;
            }
            case 26: {
              com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.Builder subBuilder = null;
              if (eventSourceCase_ == 3) {
                subBuilder = ((com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig) eventSource_).toBuilder();
              }
              eventSource_ =
                  input.readMessage(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig) eventSource_);
                eventSource_ = subBuilder.buildPartial();
              }
              eventSourceCase_ = 3;
              break;
            }
            case 34: {
              com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.Builder subBuilder = null;
              if (eventSourceCase_ == 4) {
                subBuilder = ((com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig) eventSource_).toBuilder();
              }
              eventSource_ =
                  input.readMessage(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig) eventSource_);
                eventSource_ = subBuilder.buildPartial();
              }
              eventSourceCase_ = 4;
              break;
            }
            case 42: {
              com.fca.uconnect.global.GlobalUconnectGNSS.Location.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                subBuilder = eventLocation_.toBuilder();
              }
              eventLocation_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectGNSS.Location.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(eventLocation_);
                eventLocation_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              eventTimestampUTC_ = input.readInt64();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              eventTimeUTCOffset_ = input.readInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              vehicleSpeed_ = input.readInt32();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              postedSpeed_ = input.readInt32();
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              postedSpeedValid_ = input.readBool();
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCConfiguredAlertPublish_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCConfiguredAlertPublish_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish.class, com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish.Builder.class);
    }

    private int bitField0_;
    private int eventSourceCase_ = 0;
    private java.lang.Object eventSource_;
    public enum EventSourceCase
        implements com.google.protobuf.Internal.EnumLite {
      CURFEWALERTCONFIG(1),
      SPEEDALERTCONFIG(2),
      VALETALERTCONFIG(3),
      GEOFENCEALERTCONFIG(4),
      EVENTSOURCE_NOT_SET(0);
      private final int value;
      private EventSourceCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static EventSourceCase valueOf(int value) {
        return forNumber(value);
      }

      public static EventSourceCase forNumber(int value) {
        switch (value) {
          case 1: return CURFEWALERTCONFIG;
          case 2: return SPEEDALERTCONFIG;
          case 3: return VALETALERTCONFIG;
          case 4: return GEOFENCEALERTCONFIG;
          case 0: return EVENTSOURCE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public EventSourceCase
    getEventSourceCase() {
      return EventSourceCase.forNumber(
          eventSourceCase_);
    }

    public static final int CURFEWALERTCONFIG_FIELD_NUMBER = 1;
    /**
     * <pre>
     *&#47; the configuration that triggered this alert
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlertConfig = 1;</code>
     */
    public boolean hasCurfewAlertConfig() {
      return eventSourceCase_ == 1;
    }
    /**
     * <pre>
     *&#47; the configuration that triggered this alert
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlertConfig = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig getCurfewAlertConfig() {
      if (eventSourceCase_ == 1) {
         return (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig) eventSource_;
      }
      return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.getDefaultInstance();
    }
    /**
     * <pre>
     *&#47; the configuration that triggered this alert
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlertConfig = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfigOrBuilder getCurfewAlertConfigOrBuilder() {
      if (eventSourceCase_ == 1) {
         return (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig) eventSource_;
      }
      return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.getDefaultInstance();
    }

    public static final int SPEEDALERTCONFIG_FIELD_NUMBER = 2;
    /**
     * <pre>
     *&#47; the configuration that triggered this alert
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlertConfig = 2;</code>
     */
    public boolean hasSpeedAlertConfig() {
      return eventSourceCase_ == 2;
    }
    /**
     * <pre>
     *&#47; the configuration that triggered this alert
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlertConfig = 2;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig getSpeedAlertConfig() {
      if (eventSourceCase_ == 2) {
         return (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig) eventSource_;
      }
      return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.getDefaultInstance();
    }
    /**
     * <pre>
     *&#47; the configuration that triggered this alert
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlertConfig = 2;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfigOrBuilder getSpeedAlertConfigOrBuilder() {
      if (eventSourceCase_ == 2) {
         return (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig) eventSource_;
      }
      return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.getDefaultInstance();
    }

    public static final int VALETALERTCONFIG_FIELD_NUMBER = 3;
    /**
     * <pre>
     *&#47; the configuration that triggered this alert
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlertConfig = 3;</code>
     */
    public boolean hasValetAlertConfig() {
      return eventSourceCase_ == 3;
    }
    /**
     * <pre>
     *&#47; the configuration that triggered this alert
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlertConfig = 3;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig getValetAlertConfig() {
      if (eventSourceCase_ == 3) {
         return (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig) eventSource_;
      }
      return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.getDefaultInstance();
    }
    /**
     * <pre>
     *&#47; the configuration that triggered this alert
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlertConfig = 3;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfigOrBuilder getValetAlertConfigOrBuilder() {
      if (eventSourceCase_ == 3) {
         return (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig) eventSource_;
      }
      return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.getDefaultInstance();
    }

    public static final int GEOFENCEALERTCONFIG_FIELD_NUMBER = 4;
    /**
     * <pre>
     *&#47; the configuration that triggered this alert
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlertConfig = 4;</code>
     */
    public boolean hasGeoFenceAlertConfig() {
      return eventSourceCase_ == 4;
    }
    /**
     * <pre>
     *&#47; the configuration that triggered this alert
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlertConfig = 4;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig getGeoFenceAlertConfig() {
      if (eventSourceCase_ == 4) {
         return (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig) eventSource_;
      }
      return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.getDefaultInstance();
    }
    /**
     * <pre>
     *&#47; the configuration that triggered this alert
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlertConfig = 4;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfigOrBuilder getGeoFenceAlertConfigOrBuilder() {
      if (eventSourceCase_ == 4) {
         return (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig) eventSource_;
      }
      return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.getDefaultInstance();
    }

    public static final int EVENTLOCATION_FIELD_NUMBER = 5;
    private com.fca.uconnect.global.GlobalUconnectGNSS.Location eventLocation_;
    /**
     * <pre>
     *&#47; location of the vehicle when the event was triggered
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.Location eventLocation = 5;</code>
     */
    public boolean hasEventLocation() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <pre>
     *&#47; location of the vehicle when the event was triggered
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.Location eventLocation = 5;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectGNSS.Location getEventLocation() {
      return eventLocation_ == null ? com.fca.uconnect.global.GlobalUconnectGNSS.Location.getDefaultInstance() : eventLocation_;
    }
    /**
     * <pre>
     *&#47; location of the vehicle when the event was triggered
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.Location eventLocation = 5;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectGNSS.LocationOrBuilder getEventLocationOrBuilder() {
      return eventLocation_ == null ? com.fca.uconnect.global.GlobalUconnectGNSS.Location.getDefaultInstance() : eventLocation_;
    }

    public static final int EVENTTIMESTAMPUTC_FIELD_NUMBER = 6;
    private long eventTimestampUTC_;
    /**
     * <pre>
     *&#47; UTC time the event was triggered
     * </pre>
     *
     * <code>optional int64 eventTimestampUTC = 6;</code>
     */
    public boolean hasEventTimestampUTC() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <pre>
     *&#47; UTC time the event was triggered
     * </pre>
     *
     * <code>optional int64 eventTimestampUTC = 6;</code>
     */
    public long getEventTimestampUTC() {
      return eventTimestampUTC_;
    }

    public static final int EVENTTIMEUTCOFFSET_FIELD_NUMBER = 7;
    private int eventTimeUTCOffset_;
    /**
     * <pre>
     *&#47; offset in seconds of the vehicle time zone from UTC
     * </pre>
     *
     * <code>optional int32 eventTimeUTCOffset = 7;</code>
     */
    public boolean hasEventTimeUTCOffset() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * <pre>
     *&#47; offset in seconds of the vehicle time zone from UTC
     * </pre>
     *
     * <code>optional int32 eventTimeUTCOffset = 7;</code>
     */
    public int getEventTimeUTCOffset() {
      return eventTimeUTCOffset_;
    }

    public static final int VEHICLESPEED_FIELD_NUMBER = 8;
    private int vehicleSpeed_;
    /**
     * <pre>
     *&#47; speed in km/h  when the event was triggered
     * </pre>
     *
     * <code>optional int32 vehicleSpeed = 8;</code>
     */
    public boolean hasVehicleSpeed() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * <pre>
     *&#47; speed in km/h  when the event was triggered
     * </pre>
     *
     * <code>optional int32 vehicleSpeed = 8;</code>
     */
    public int getVehicleSpeed() {
      return vehicleSpeed_;
    }

    public static final int POSTEDSPEED_FIELD_NUMBER = 9;
    private int postedSpeed_;
    /**
     * <pre>
     *&#47; posted speed value from NAV system 
     * </pre>
     *
     * <code>optional int32 postedSpeed = 9;</code>
     */
    public boolean hasPostedSpeed() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * <pre>
     *&#47; posted speed value from NAV system 
     * </pre>
     *
     * <code>optional int32 postedSpeed = 9;</code>
     */
    public int getPostedSpeed() {
      return postedSpeed_;
    }

    public static final int POSTEDSPEEDVALID_FIELD_NUMBER = 10;
    private boolean postedSpeedValid_;
    /**
     * <pre>
     *&#47; if false, postedSpeed was not available and/or did not participate in the trigger
     * </pre>
     *
     * <code>optional bool postedSpeedValid = 10;</code>
     */
    public boolean hasPostedSpeedValid() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * <pre>
     *&#47; if false, postedSpeed was not available and/or did not participate in the trigger
     * </pre>
     *
     * <code>optional bool postedSpeedValid = 10;</code>
     */
    public boolean getPostedSpeedValid() {
      return postedSpeedValid_;
    }

    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 (eventSourceCase_ == 1) {
        output.writeMessage(1, (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig) eventSource_);
      }
      if (eventSourceCase_ == 2) {
        output.writeMessage(2, (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig) eventSource_);
      }
      if (eventSourceCase_ == 3) {
        output.writeMessage(3, (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig) eventSource_);
      }
      if (eventSourceCase_ == 4) {
        output.writeMessage(4, (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig) eventSource_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, getEventLocation());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeInt64(6, eventTimestampUTC_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeInt32(7, eventTimeUTCOffset_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeInt32(8, vehicleSpeed_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeInt32(9, postedSpeed_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeBool(10, postedSpeedValid_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (eventSourceCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig) eventSource_);
      }
      if (eventSourceCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig) eventSource_);
      }
      if (eventSourceCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig) eventSource_);
      }
      if (eventSourceCase_ == 4) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig) eventSource_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getEventLocation());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(6, eventTimestampUTC_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, eventTimeUTCOffset_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(8, vehicleSpeed_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(9, postedSpeed_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(10, postedSpeedValid_);
      }
      size += unknownFields.getSerializedSize();
      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.GlobalUconnectExtPC.PCConfiguredAlertPublish)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish other = (com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish) obj;

      boolean result = true;
      result = result && (hasEventLocation() == other.hasEventLocation());
      if (hasEventLocation()) {
        result = result && getEventLocation()
            .equals(other.getEventLocation());
      }
      result = result && (hasEventTimestampUTC() == other.hasEventTimestampUTC());
      if (hasEventTimestampUTC()) {
        result = result && (getEventTimestampUTC()
            == other.getEventTimestampUTC());
      }
      result = result && (hasEventTimeUTCOffset() == other.hasEventTimeUTCOffset());
      if (hasEventTimeUTCOffset()) {
        result = result && (getEventTimeUTCOffset()
            == other.getEventTimeUTCOffset());
      }
      result = result && (hasVehicleSpeed() == other.hasVehicleSpeed());
      if (hasVehicleSpeed()) {
        result = result && (getVehicleSpeed()
            == other.getVehicleSpeed());
      }
      result = result && (hasPostedSpeed() == other.hasPostedSpeed());
      if (hasPostedSpeed()) {
        result = result && (getPostedSpeed()
            == other.getPostedSpeed());
      }
      result = result && (hasPostedSpeedValid() == other.hasPostedSpeedValid());
      if (hasPostedSpeedValid()) {
        result = result && (getPostedSpeedValid()
            == other.getPostedSpeedValid());
      }
      result = result && getEventSourceCase().equals(
          other.getEventSourceCase());
      if (!result) return false;
      switch (eventSourceCase_) {
        case 1:
          result = result && getCurfewAlertConfig()
              .equals(other.getCurfewAlertConfig());
          break;
        case 2:
          result = result && getSpeedAlertConfig()
              .equals(other.getSpeedAlertConfig());
          break;
        case 3:
          result = result && getValetAlertConfig()
              .equals(other.getValetAlertConfig());
          break;
        case 4:
          result = result && getGeoFenceAlertConfig()
              .equals(other.getGeoFenceAlertConfig());
          break;
        case 0:
        default:
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasEventLocation()) {
        hash = (37 * hash) + EVENTLOCATION_FIELD_NUMBER;
        hash = (53 * hash) + getEventLocation().hashCode();
      }
      if (hasEventTimestampUTC()) {
        hash = (37 * hash) + EVENTTIMESTAMPUTC_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getEventTimestampUTC());
      }
      if (hasEventTimeUTCOffset()) {
        hash = (37 * hash) + EVENTTIMEUTCOFFSET_FIELD_NUMBER;
        hash = (53 * hash) + getEventTimeUTCOffset();
      }
      if (hasVehicleSpeed()) {
        hash = (37 * hash) + VEHICLESPEED_FIELD_NUMBER;
        hash = (53 * hash) + getVehicleSpeed();
      }
      if (hasPostedSpeed()) {
        hash = (37 * hash) + POSTEDSPEED_FIELD_NUMBER;
        hash = (53 * hash) + getPostedSpeed();
      }
      if (hasPostedSpeedValid()) {
        hash = (37 * hash) + POSTEDSPEEDVALID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getPostedSpeedValid());
      }
      switch (eventSourceCase_) {
        case 1:
          hash = (37 * hash) + CURFEWALERTCONFIG_FIELD_NUMBER;
          hash = (53 * hash) + getCurfewAlertConfig().hashCode();
          break;
        case 2:
          hash = (37 * hash) + SPEEDALERTCONFIG_FIELD_NUMBER;
          hash = (53 * hash) + getSpeedAlertConfig().hashCode();
          break;
        case 3:
          hash = (37 * hash) + VALETALERTCONFIG_FIELD_NUMBER;
          hash = (53 * hash) + getValetAlertConfig().hashCode();
          break;
        case 4:
          hash = (37 * hash) + GEOFENCEALERTCONFIG_FIELD_NUMBER;
          hash = (53 * hash) + getGeoFenceAlertConfig().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish 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.GlobalUconnectExtPC.PCConfiguredAlertPublish parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish 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.GlobalUconnectExtPC.PCConfiguredAlertPublish parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish 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.GlobalUconnectExtPC.PCConfiguredAlertPublish parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish 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.GlobalUconnectExtPC.PCConfiguredAlertPublish 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 message is to notify SDP for Parental Controlconfigured Alert.
     * &lt;div class=exmsg-main&gt;
     * &lt;/div&gt;
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.PCConfiguredAlertPublish}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.PCConfiguredAlertPublish)
        com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublishOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCConfiguredAlertPublish_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCConfiguredAlertPublish_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish.class, com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish.Builder.class);
      }

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getEventLocationFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        if (eventLocationBuilder_ == null) {
          eventLocation_ = null;
        } else {
          eventLocationBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        eventTimestampUTC_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000020);
        eventTimeUTCOffset_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        vehicleSpeed_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        postedSpeed_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        postedSpeedValid_ = false;
        bitField0_ = (bitField0_ & ~0x00000200);
        eventSourceCase_ = 0;
        eventSource_ = null;
        return this;
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish.getDefaultInstance();
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish result = new com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (eventSourceCase_ == 1) {
          if (curfewAlertConfigBuilder_ == null) {
            result.eventSource_ = eventSource_;
          } else {
            result.eventSource_ = curfewAlertConfigBuilder_.build();
          }
        }
        if (eventSourceCase_ == 2) {
          if (speedAlertConfigBuilder_ == null) {
            result.eventSource_ = eventSource_;
          } else {
            result.eventSource_ = speedAlertConfigBuilder_.build();
          }
        }
        if (eventSourceCase_ == 3) {
          if (valetAlertConfigBuilder_ == null) {
            result.eventSource_ = eventSource_;
          } else {
            result.eventSource_ = valetAlertConfigBuilder_.build();
          }
        }
        if (eventSourceCase_ == 4) {
          if (geoFenceAlertConfigBuilder_ == null) {
            result.eventSource_ = eventSource_;
          } else {
            result.eventSource_ = geoFenceAlertConfigBuilder_.build();
          }
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (eventLocationBuilder_ == null) {
          result.eventLocation_ = eventLocation_;
        } else {
          result.eventLocation_ = eventLocationBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.eventTimestampUTC_ = eventTimestampUTC_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.eventTimeUTCOffset_ = eventTimeUTCOffset_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.vehicleSpeed_ = vehicleSpeed_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.postedSpeed_ = postedSpeed_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.postedSpeedValid_ = postedSpeedValid_;
        result.bitField0_ = to_bitField0_;
        result.eventSourceCase_ = eventSourceCase_;
        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.GlobalUconnectExtPC.PCConfiguredAlertPublish) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish.getDefaultInstance()) return this;
        if (other.hasEventLocation()) {
          mergeEventLocation(other.getEventLocation());
        }
        if (other.hasEventTimestampUTC()) {
          setEventTimestampUTC(other.getEventTimestampUTC());
        }
        if (other.hasEventTimeUTCOffset()) {
          setEventTimeUTCOffset(other.getEventTimeUTCOffset());
        }
        if (other.hasVehicleSpeed()) {
          setVehicleSpeed(other.getVehicleSpeed());
        }
        if (other.hasPostedSpeed()) {
          setPostedSpeed(other.getPostedSpeed());
        }
        if (other.hasPostedSpeedValid()) {
          setPostedSpeedValid(other.getPostedSpeedValid());
        }
        switch (other.getEventSourceCase()) {
          case CURFEWALERTCONFIG: {
            mergeCurfewAlertConfig(other.getCurfewAlertConfig());
            break;
          }
          case SPEEDALERTCONFIG: {
            mergeSpeedAlertConfig(other.getSpeedAlertConfig());
            break;
          }
          case VALETALERTCONFIG: {
            mergeValetAlertConfig(other.getValetAlertConfig());
            break;
          }
          case GEOFENCEALERTCONFIG: {
            mergeGeoFenceAlertConfig(other.getGeoFenceAlertConfig());
            break;
          }
          case EVENTSOURCE_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        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.GlobalUconnectExtPC.PCConfiguredAlertPublish parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int eventSourceCase_ = 0;
      private java.lang.Object eventSource_;
      public EventSourceCase
          getEventSourceCase() {
        return EventSourceCase.forNumber(
            eventSourceCase_);
      }

      public Builder clearEventSource() {
        eventSourceCase_ = 0;
        eventSource_ = null;
        onChanged();
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfigOrBuilder> curfewAlertConfigBuilder_;
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlertConfig = 1;</code>
       */
      public boolean hasCurfewAlertConfig() {
        return eventSourceCase_ == 1;
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlertConfig = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig getCurfewAlertConfig() {
        if (curfewAlertConfigBuilder_ == null) {
          if (eventSourceCase_ == 1) {
            return (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig) eventSource_;
          }
          return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.getDefaultInstance();
        } else {
          if (eventSourceCase_ == 1) {
            return curfewAlertConfigBuilder_.getMessage();
          }
          return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.getDefaultInstance();
        }
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlertConfig = 1;</code>
       */
      public Builder setCurfewAlertConfig(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig value) {
        if (curfewAlertConfigBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          eventSource_ = value;
          onChanged();
        } else {
          curfewAlertConfigBuilder_.setMessage(value);
        }
        eventSourceCase_ = 1;
        return this;
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlertConfig = 1;</code>
       */
      public Builder setCurfewAlertConfig(
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.Builder builderForValue) {
        if (curfewAlertConfigBuilder_ == null) {
          eventSource_ = builderForValue.build();
          onChanged();
        } else {
          curfewAlertConfigBuilder_.setMessage(builderForValue.build());
        }
        eventSourceCase_ = 1;
        return this;
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlertConfig = 1;</code>
       */
      public Builder mergeCurfewAlertConfig(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig value) {
        if (curfewAlertConfigBuilder_ == null) {
          if (eventSourceCase_ == 1 &&
              eventSource_ != com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.getDefaultInstance()) {
            eventSource_ = com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.newBuilder((com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig) eventSource_)
                .mergeFrom(value).buildPartial();
          } else {
            eventSource_ = value;
          }
          onChanged();
        } else {
          if (eventSourceCase_ == 1) {
            curfewAlertConfigBuilder_.mergeFrom(value);
          }
          curfewAlertConfigBuilder_.setMessage(value);
        }
        eventSourceCase_ = 1;
        return this;
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlertConfig = 1;</code>
       */
      public Builder clearCurfewAlertConfig() {
        if (curfewAlertConfigBuilder_ == null) {
          if (eventSourceCase_ == 1) {
            eventSourceCase_ = 0;
            eventSource_ = null;
            onChanged();
          }
        } else {
          if (eventSourceCase_ == 1) {
            eventSourceCase_ = 0;
            eventSource_ = null;
          }
          curfewAlertConfigBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlertConfig = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.Builder getCurfewAlertConfigBuilder() {
        return getCurfewAlertConfigFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlertConfig = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfigOrBuilder getCurfewAlertConfigOrBuilder() {
        if ((eventSourceCase_ == 1) && (curfewAlertConfigBuilder_ != null)) {
          return curfewAlertConfigBuilder_.getMessageOrBuilder();
        } else {
          if (eventSourceCase_ == 1) {
            return (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig) eventSource_;
          }
          return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.getDefaultInstance();
        }
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig curfewAlertConfig = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfigOrBuilder> 
          getCurfewAlertConfigFieldBuilder() {
        if (curfewAlertConfigBuilder_ == null) {
          if (!(eventSourceCase_ == 1)) {
            eventSource_ = com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.getDefaultInstance();
          }
          curfewAlertConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfigOrBuilder>(
                  (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.CurfewAlertConfig) eventSource_,
                  getParentForChildren(),
                  isClean());
          eventSource_ = null;
        }
        eventSourceCase_ = 1;
        onChanged();;
        return curfewAlertConfigBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfigOrBuilder> speedAlertConfigBuilder_;
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlertConfig = 2;</code>
       */
      public boolean hasSpeedAlertConfig() {
        return eventSourceCase_ == 2;
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlertConfig = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig getSpeedAlertConfig() {
        if (speedAlertConfigBuilder_ == null) {
          if (eventSourceCase_ == 2) {
            return (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig) eventSource_;
          }
          return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.getDefaultInstance();
        } else {
          if (eventSourceCase_ == 2) {
            return speedAlertConfigBuilder_.getMessage();
          }
          return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.getDefaultInstance();
        }
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlertConfig = 2;</code>
       */
      public Builder setSpeedAlertConfig(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig value) {
        if (speedAlertConfigBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          eventSource_ = value;
          onChanged();
        } else {
          speedAlertConfigBuilder_.setMessage(value);
        }
        eventSourceCase_ = 2;
        return this;
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlertConfig = 2;</code>
       */
      public Builder setSpeedAlertConfig(
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.Builder builderForValue) {
        if (speedAlertConfigBuilder_ == null) {
          eventSource_ = builderForValue.build();
          onChanged();
        } else {
          speedAlertConfigBuilder_.setMessage(builderForValue.build());
        }
        eventSourceCase_ = 2;
        return this;
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlertConfig = 2;</code>
       */
      public Builder mergeSpeedAlertConfig(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig value) {
        if (speedAlertConfigBuilder_ == null) {
          if (eventSourceCase_ == 2 &&
              eventSource_ != com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.getDefaultInstance()) {
            eventSource_ = com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.newBuilder((com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig) eventSource_)
                .mergeFrom(value).buildPartial();
          } else {
            eventSource_ = value;
          }
          onChanged();
        } else {
          if (eventSourceCase_ == 2) {
            speedAlertConfigBuilder_.mergeFrom(value);
          }
          speedAlertConfigBuilder_.setMessage(value);
        }
        eventSourceCase_ = 2;
        return this;
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlertConfig = 2;</code>
       */
      public Builder clearSpeedAlertConfig() {
        if (speedAlertConfigBuilder_ == null) {
          if (eventSourceCase_ == 2) {
            eventSourceCase_ = 0;
            eventSource_ = null;
            onChanged();
          }
        } else {
          if (eventSourceCase_ == 2) {
            eventSourceCase_ = 0;
            eventSource_ = null;
          }
          speedAlertConfigBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlertConfig = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.Builder getSpeedAlertConfigBuilder() {
        return getSpeedAlertConfigFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlertConfig = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfigOrBuilder getSpeedAlertConfigOrBuilder() {
        if ((eventSourceCase_ == 2) && (speedAlertConfigBuilder_ != null)) {
          return speedAlertConfigBuilder_.getMessageOrBuilder();
        } else {
          if (eventSourceCase_ == 2) {
            return (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig) eventSource_;
          }
          return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.getDefaultInstance();
        }
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig speedAlertConfig = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfigOrBuilder> 
          getSpeedAlertConfigFieldBuilder() {
        if (speedAlertConfigBuilder_ == null) {
          if (!(eventSourceCase_ == 2)) {
            eventSource_ = com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.getDefaultInstance();
          }
          speedAlertConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfigOrBuilder>(
                  (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.SpeedAlertConfig) eventSource_,
                  getParentForChildren(),
                  isClean());
          eventSource_ = null;
        }
        eventSourceCase_ = 2;
        onChanged();;
        return speedAlertConfigBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfigOrBuilder> valetAlertConfigBuilder_;
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlertConfig = 3;</code>
       */
      public boolean hasValetAlertConfig() {
        return eventSourceCase_ == 3;
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlertConfig = 3;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig getValetAlertConfig() {
        if (valetAlertConfigBuilder_ == null) {
          if (eventSourceCase_ == 3) {
            return (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig) eventSource_;
          }
          return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.getDefaultInstance();
        } else {
          if (eventSourceCase_ == 3) {
            return valetAlertConfigBuilder_.getMessage();
          }
          return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.getDefaultInstance();
        }
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlertConfig = 3;</code>
       */
      public Builder setValetAlertConfig(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig value) {
        if (valetAlertConfigBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          eventSource_ = value;
          onChanged();
        } else {
          valetAlertConfigBuilder_.setMessage(value);
        }
        eventSourceCase_ = 3;
        return this;
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlertConfig = 3;</code>
       */
      public Builder setValetAlertConfig(
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.Builder builderForValue) {
        if (valetAlertConfigBuilder_ == null) {
          eventSource_ = builderForValue.build();
          onChanged();
        } else {
          valetAlertConfigBuilder_.setMessage(builderForValue.build());
        }
        eventSourceCase_ = 3;
        return this;
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlertConfig = 3;</code>
       */
      public Builder mergeValetAlertConfig(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig value) {
        if (valetAlertConfigBuilder_ == null) {
          if (eventSourceCase_ == 3 &&
              eventSource_ != com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.getDefaultInstance()) {
            eventSource_ = com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.newBuilder((com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig) eventSource_)
                .mergeFrom(value).buildPartial();
          } else {
            eventSource_ = value;
          }
          onChanged();
        } else {
          if (eventSourceCase_ == 3) {
            valetAlertConfigBuilder_.mergeFrom(value);
          }
          valetAlertConfigBuilder_.setMessage(value);
        }
        eventSourceCase_ = 3;
        return this;
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlertConfig = 3;</code>
       */
      public Builder clearValetAlertConfig() {
        if (valetAlertConfigBuilder_ == null) {
          if (eventSourceCase_ == 3) {
            eventSourceCase_ = 0;
            eventSource_ = null;
            onChanged();
          }
        } else {
          if (eventSourceCase_ == 3) {
            eventSourceCase_ = 0;
            eventSource_ = null;
          }
          valetAlertConfigBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlertConfig = 3;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.Builder getValetAlertConfigBuilder() {
        return getValetAlertConfigFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlertConfig = 3;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfigOrBuilder getValetAlertConfigOrBuilder() {
        if ((eventSourceCase_ == 3) && (valetAlertConfigBuilder_ != null)) {
          return valetAlertConfigBuilder_.getMessageOrBuilder();
        } else {
          if (eventSourceCase_ == 3) {
            return (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig) eventSource_;
          }
          return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.getDefaultInstance();
        }
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig valetAlertConfig = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfigOrBuilder> 
          getValetAlertConfigFieldBuilder() {
        if (valetAlertConfigBuilder_ == null) {
          if (!(eventSourceCase_ == 3)) {
            eventSource_ = com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.getDefaultInstance();
          }
          valetAlertConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfigOrBuilder>(
                  (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.ValetAlertConfig) eventSource_,
                  getParentForChildren(),
                  isClean());
          eventSource_ = null;
        }
        eventSourceCase_ = 3;
        onChanged();;
        return valetAlertConfigBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfigOrBuilder> geoFenceAlertConfigBuilder_;
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlertConfig = 4;</code>
       */
      public boolean hasGeoFenceAlertConfig() {
        return eventSourceCase_ == 4;
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlertConfig = 4;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig getGeoFenceAlertConfig() {
        if (geoFenceAlertConfigBuilder_ == null) {
          if (eventSourceCase_ == 4) {
            return (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig) eventSource_;
          }
          return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.getDefaultInstance();
        } else {
          if (eventSourceCase_ == 4) {
            return geoFenceAlertConfigBuilder_.getMessage();
          }
          return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.getDefaultInstance();
        }
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlertConfig = 4;</code>
       */
      public Builder setGeoFenceAlertConfig(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig value) {
        if (geoFenceAlertConfigBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          eventSource_ = value;
          onChanged();
        } else {
          geoFenceAlertConfigBuilder_.setMessage(value);
        }
        eventSourceCase_ = 4;
        return this;
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlertConfig = 4;</code>
       */
      public Builder setGeoFenceAlertConfig(
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.Builder builderForValue) {
        if (geoFenceAlertConfigBuilder_ == null) {
          eventSource_ = builderForValue.build();
          onChanged();
        } else {
          geoFenceAlertConfigBuilder_.setMessage(builderForValue.build());
        }
        eventSourceCase_ = 4;
        return this;
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlertConfig = 4;</code>
       */
      public Builder mergeGeoFenceAlertConfig(com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig value) {
        if (geoFenceAlertConfigBuilder_ == null) {
          if (eventSourceCase_ == 4 &&
              eventSource_ != com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.getDefaultInstance()) {
            eventSource_ = com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.newBuilder((com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig) eventSource_)
                .mergeFrom(value).buildPartial();
          } else {
            eventSource_ = value;
          }
          onChanged();
        } else {
          if (eventSourceCase_ == 4) {
            geoFenceAlertConfigBuilder_.mergeFrom(value);
          }
          geoFenceAlertConfigBuilder_.setMessage(value);
        }
        eventSourceCase_ = 4;
        return this;
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlertConfig = 4;</code>
       */
      public Builder clearGeoFenceAlertConfig() {
        if (geoFenceAlertConfigBuilder_ == null) {
          if (eventSourceCase_ == 4) {
            eventSourceCase_ = 0;
            eventSource_ = null;
            onChanged();
          }
        } else {
          if (eventSourceCase_ == 4) {
            eventSourceCase_ = 0;
            eventSource_ = null;
          }
          geoFenceAlertConfigBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlertConfig = 4;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.Builder getGeoFenceAlertConfigBuilder() {
        return getGeoFenceAlertConfigFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlertConfig = 4;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfigOrBuilder getGeoFenceAlertConfigOrBuilder() {
        if ((eventSourceCase_ == 4) && (geoFenceAlertConfigBuilder_ != null)) {
          return geoFenceAlertConfigBuilder_.getMessageOrBuilder();
        } else {
          if (eventSourceCase_ == 4) {
            return (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig) eventSource_;
          }
          return com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.getDefaultInstance();
        }
      }
      /**
       * <pre>
       *&#47; the configuration that triggered this alert
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig geoFenceAlertConfig = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfigOrBuilder> 
          getGeoFenceAlertConfigFieldBuilder() {
        if (geoFenceAlertConfigBuilder_ == null) {
          if (!(eventSourceCase_ == 4)) {
            eventSource_ = com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.getDefaultInstance();
          }
          geoFenceAlertConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfigOrBuilder>(
                  (com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.ConfigTypeVehicle.GeoFenceAlertConfig) eventSource_,
                  getParentForChildren(),
                  isClean());
          eventSource_ = null;
        }
        eventSourceCase_ = 4;
        onChanged();;
        return geoFenceAlertConfigBuilder_;
      }

      private com.fca.uconnect.global.GlobalUconnectGNSS.Location eventLocation_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectGNSS.Location, com.fca.uconnect.global.GlobalUconnectGNSS.Location.Builder, com.fca.uconnect.global.GlobalUconnectGNSS.LocationOrBuilder> eventLocationBuilder_;
      /**
       * <pre>
       *&#47; location of the vehicle when the event was triggered
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.Location eventLocation = 5;</code>
       */
      public boolean hasEventLocation() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <pre>
       *&#47; location of the vehicle when the event was triggered
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.Location eventLocation = 5;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectGNSS.Location getEventLocation() {
        if (eventLocationBuilder_ == null) {
          return eventLocation_ == null ? com.fca.uconnect.global.GlobalUconnectGNSS.Location.getDefaultInstance() : eventLocation_;
        } else {
          return eventLocationBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       *&#47; location of the vehicle when the event was triggered
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.Location eventLocation = 5;</code>
       */
      public Builder setEventLocation(com.fca.uconnect.global.GlobalUconnectGNSS.Location value) {
        if (eventLocationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          eventLocation_ = value;
          onChanged();
        } else {
          eventLocationBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <pre>
       *&#47; location of the vehicle when the event was triggered
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.Location eventLocation = 5;</code>
       */
      public Builder setEventLocation(
          com.fca.uconnect.global.GlobalUconnectGNSS.Location.Builder builderForValue) {
        if (eventLocationBuilder_ == null) {
          eventLocation_ = builderForValue.build();
          onChanged();
        } else {
          eventLocationBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <pre>
       *&#47; location of the vehicle when the event was triggered
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.Location eventLocation = 5;</code>
       */
      public Builder mergeEventLocation(com.fca.uconnect.global.GlobalUconnectGNSS.Location value) {
        if (eventLocationBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010) &&
              eventLocation_ != null &&
              eventLocation_ != com.fca.uconnect.global.GlobalUconnectGNSS.Location.getDefaultInstance()) {
            eventLocation_ =
              com.fca.uconnect.global.GlobalUconnectGNSS.Location.newBuilder(eventLocation_).mergeFrom(value).buildPartial();
          } else {
            eventLocation_ = value;
          }
          onChanged();
        } else {
          eventLocationBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <pre>
       *&#47; location of the vehicle when the event was triggered
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.Location eventLocation = 5;</code>
       */
      public Builder clearEventLocation() {
        if (eventLocationBuilder_ == null) {
          eventLocation_ = null;
          onChanged();
        } else {
          eventLocationBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       * <pre>
       *&#47; location of the vehicle when the event was triggered
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.Location eventLocation = 5;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectGNSS.Location.Builder getEventLocationBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getEventLocationFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *&#47; location of the vehicle when the event was triggered
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.Location eventLocation = 5;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectGNSS.LocationOrBuilder getEventLocationOrBuilder() {
        if (eventLocationBuilder_ != null) {
          return eventLocationBuilder_.getMessageOrBuilder();
        } else {
          return eventLocation_ == null ?
              com.fca.uconnect.global.GlobalUconnectGNSS.Location.getDefaultInstance() : eventLocation_;
        }
      }
      /**
       * <pre>
       *&#47; location of the vehicle when the event was triggered
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.Location eventLocation = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectGNSS.Location, com.fca.uconnect.global.GlobalUconnectGNSS.Location.Builder, com.fca.uconnect.global.GlobalUconnectGNSS.LocationOrBuilder> 
          getEventLocationFieldBuilder() {
        if (eventLocationBuilder_ == null) {
          eventLocationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectGNSS.Location, com.fca.uconnect.global.GlobalUconnectGNSS.Location.Builder, com.fca.uconnect.global.GlobalUconnectGNSS.LocationOrBuilder>(
                  getEventLocation(),
                  getParentForChildren(),
                  isClean());
          eventLocation_ = null;
        }
        return eventLocationBuilder_;
      }

      private long eventTimestampUTC_ ;
      /**
       * <pre>
       *&#47; UTC time the event was triggered
       * </pre>
       *
       * <code>optional int64 eventTimestampUTC = 6;</code>
       */
      public boolean hasEventTimestampUTC() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <pre>
       *&#47; UTC time the event was triggered
       * </pre>
       *
       * <code>optional int64 eventTimestampUTC = 6;</code>
       */
      public long getEventTimestampUTC() {
        return eventTimestampUTC_;
      }
      /**
       * <pre>
       *&#47; UTC time the event was triggered
       * </pre>
       *
       * <code>optional int64 eventTimestampUTC = 6;</code>
       */
      public Builder setEventTimestampUTC(long value) {
        bitField0_ |= 0x00000020;
        eventTimestampUTC_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; UTC time the event was triggered
       * </pre>
       *
       * <code>optional int64 eventTimestampUTC = 6;</code>
       */
      public Builder clearEventTimestampUTC() {
        bitField0_ = (bitField0_ & ~0x00000020);
        eventTimestampUTC_ = 0L;
        onChanged();
        return this;
      }

      private int eventTimeUTCOffset_ ;
      /**
       * <pre>
       *&#47; offset in seconds of the vehicle time zone from UTC
       * </pre>
       *
       * <code>optional int32 eventTimeUTCOffset = 7;</code>
       */
      public boolean hasEventTimeUTCOffset() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <pre>
       *&#47; offset in seconds of the vehicle time zone from UTC
       * </pre>
       *
       * <code>optional int32 eventTimeUTCOffset = 7;</code>
       */
      public int getEventTimeUTCOffset() {
        return eventTimeUTCOffset_;
      }
      /**
       * <pre>
       *&#47; offset in seconds of the vehicle time zone from UTC
       * </pre>
       *
       * <code>optional int32 eventTimeUTCOffset = 7;</code>
       */
      public Builder setEventTimeUTCOffset(int value) {
        bitField0_ |= 0x00000040;
        eventTimeUTCOffset_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; offset in seconds of the vehicle time zone from UTC
       * </pre>
       *
       * <code>optional int32 eventTimeUTCOffset = 7;</code>
       */
      public Builder clearEventTimeUTCOffset() {
        bitField0_ = (bitField0_ & ~0x00000040);
        eventTimeUTCOffset_ = 0;
        onChanged();
        return this;
      }

      private int vehicleSpeed_ ;
      /**
       * <pre>
       *&#47; speed in km/h  when the event was triggered
       * </pre>
       *
       * <code>optional int32 vehicleSpeed = 8;</code>
       */
      public boolean hasVehicleSpeed() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * <pre>
       *&#47; speed in km/h  when the event was triggered
       * </pre>
       *
       * <code>optional int32 vehicleSpeed = 8;</code>
       */
      public int getVehicleSpeed() {
        return vehicleSpeed_;
      }
      /**
       * <pre>
       *&#47; speed in km/h  when the event was triggered
       * </pre>
       *
       * <code>optional int32 vehicleSpeed = 8;</code>
       */
      public Builder setVehicleSpeed(int value) {
        bitField0_ |= 0x00000080;
        vehicleSpeed_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; speed in km/h  when the event was triggered
       * </pre>
       *
       * <code>optional int32 vehicleSpeed = 8;</code>
       */
      public Builder clearVehicleSpeed() {
        bitField0_ = (bitField0_ & ~0x00000080);
        vehicleSpeed_ = 0;
        onChanged();
        return this;
      }

      private int postedSpeed_ ;
      /**
       * <pre>
       *&#47; posted speed value from NAV system 
       * </pre>
       *
       * <code>optional int32 postedSpeed = 9;</code>
       */
      public boolean hasPostedSpeed() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * <pre>
       *&#47; posted speed value from NAV system 
       * </pre>
       *
       * <code>optional int32 postedSpeed = 9;</code>
       */
      public int getPostedSpeed() {
        return postedSpeed_;
      }
      /**
       * <pre>
       *&#47; posted speed value from NAV system 
       * </pre>
       *
       * <code>optional int32 postedSpeed = 9;</code>
       */
      public Builder setPostedSpeed(int value) {
        bitField0_ |= 0x00000100;
        postedSpeed_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; posted speed value from NAV system 
       * </pre>
       *
       * <code>optional int32 postedSpeed = 9;</code>
       */
      public Builder clearPostedSpeed() {
        bitField0_ = (bitField0_ & ~0x00000100);
        postedSpeed_ = 0;
        onChanged();
        return this;
      }

      private boolean postedSpeedValid_ ;
      /**
       * <pre>
       *&#47; if false, postedSpeed was not available and/or did not participate in the trigger
       * </pre>
       *
       * <code>optional bool postedSpeedValid = 10;</code>
       */
      public boolean hasPostedSpeedValid() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * <pre>
       *&#47; if false, postedSpeed was not available and/or did not participate in the trigger
       * </pre>
       *
       * <code>optional bool postedSpeedValid = 10;</code>
       */
      public boolean getPostedSpeedValid() {
        return postedSpeedValid_;
      }
      /**
       * <pre>
       *&#47; if false, postedSpeed was not available and/or did not participate in the trigger
       * </pre>
       *
       * <code>optional bool postedSpeedValid = 10;</code>
       */
      public Builder setPostedSpeedValid(boolean value) {
        bitField0_ |= 0x00000200;
        postedSpeedValid_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; if false, postedSpeed was not available and/or did not participate in the trigger
       * </pre>
       *
       * <code>optional bool postedSpeedValid = 10;</code>
       */
      public Builder clearPostedSpeedValid() {
        bitField0_ = (bitField0_ & ~0x00000200);
        postedSpeedValid_ = false;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


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

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

    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *&#47; the event or periodic send the triggered this message
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCNotificationPublish.NotificationType notificatonType = 1;</code>
     */
    boolean hasNotificatonType();
    /**
     * <pre>
     *&#47; the event or periodic send the triggered this message
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCNotificationPublish.NotificationType notificatonType = 1;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.NotificationType getNotificatonType();

    /**
     * <pre>
     *&#47;  The time in milliseconds since Unix Epoch (Jan 1, 1970 00:00:00 UTC) when the signals sent in this message were captured
     * </pre>
     *
     * <code>optional int64 signalTimestamp = 2;</code>
     */
    boolean hasSignalTimestamp();
    /**
     * <pre>
     *&#47;  The time in milliseconds since Unix Epoch (Jan 1, 1970 00:00:00 UTC) when the signals sent in this message were captured
     * </pre>
     *
     * <code>optional int64 signalTimestamp = 2;</code>
     */
    long getSignalTimestamp();

    /**
     * <pre>
     *&#47; vehicle speed in kph
     * </pre>
     *
     * <code>optional int32 speed = 3;</code>
     */
    boolean hasSpeed();
    /**
     * <pre>
     *&#47; vehicle speed in kph
     * </pre>
     *
     * <code>optional int32 speed = 3;</code>
     */
    int getSpeed();

    /**
     * <pre>
     *&#47; validity &amp; source of reported speed
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource speedSource = 4;</code>
     */
    boolean hasSpeedSource();
    /**
     * <pre>
     *&#47; validity &amp; source of reported speed
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource speedSource = 4;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource getSpeedSource();

    /**
     * <pre>
     *&#47; acceleration in m/s/s. must be sent if notification type is HARSH_ACCELERATION/HARSH_BREAKING
     * </pre>
     *
     * <code>optional float acceleration = 5;</code>
     */
    boolean hasAcceleration();
    /**
     * <pre>
     *&#47; acceleration in m/s/s. must be sent if notification type is HARSH_ACCELERATION/HARSH_BREAKING
     * </pre>
     *
     * <code>optional float acceleration = 5;</code>
     */
    float getAcceleration();

    /**
     * <pre>
     *&#47;  validity &amp; source of reported acceleration
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource accelerationSource = 6;</code>
     */
    boolean hasAccelerationSource();
    /**
     * <pre>
     *&#47;  validity &amp; source of reported acceleration
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource accelerationSource = 6;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource getAccelerationSource();

    /**
     * <pre>
     *&#47; steering wheel rotation in RPM must be sent if notification type is SUDDEN_CORNERING
     * </pre>
     *
     * <code>optional float steeringWheelRotationRate = 7;</code>
     */
    boolean hasSteeringWheelRotationRate();
    /**
     * <pre>
     *&#47; steering wheel rotation in RPM must be sent if notification type is SUDDEN_CORNERING
     * </pre>
     *
     * <code>optional float steeringWheelRotationRate = 7;</code>
     */
    float getSteeringWheelRotationRate();

    /**
     * <pre>
     *&#47;  validity &amp; source of reported steering wheel rotation rate
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource steeringWheelRotationRateSource = 8;</code>
     */
    boolean hasSteeringWheelRotationRateSource();
    /**
     * <pre>
     *&#47;  validity &amp; source of reported steering wheel rotation rate
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource steeringWheelRotationRateSource = 8;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource getSteeringWheelRotationRateSource();

    /**
     * <pre>
     *&#47; will not be sent if PCUpdateConfigRequest had userDeclinedGPSSending = true 
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCNotificationPublish.VehiclePosition vehiclePosition = 9;</code>
     */
    boolean hasVehiclePosition();
    /**
     * <pre>
     *&#47; will not be sent if PCUpdateConfigRequest had userDeclinedGPSSending = true 
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCNotificationPublish.VehiclePosition vehiclePosition = 9;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition getVehiclePosition();
    /**
     * <pre>
     *&#47; will not be sent if PCUpdateConfigRequest had userDeclinedGPSSending = true 
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCNotificationPublish.VehiclePosition vehiclePosition = 9;</code>
     */
    com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePositionOrBuilder getVehiclePositionOrBuilder();
  }
  /**
   * <pre>
   **
   * This message is to Notify SDP for Parental Control alert.
   * &lt;div class=exmsg-main&gt;
   * &lt;h4&gt;PCNotificationPublish Example Message:&lt;/h4&gt;
   * &lt;div class=ex-msg&gt;
   *	&lt;code&gt;
   * 		timestamp: 1490713760069
   * 		messageId: 2
   * 		messages
   * 		{
   * 		 [com.fca.uconnect.global.pcNotificationPublish]
   * 		 {
   * 			notificatonType: PERIODIC_SEND
   * 			speed: 75
   * 			speedSource: TBM_ACCELEROMETER
   * 			acceleration: 35.0
   * 			accelerationSource: TBM_ACCELEROMETER
   * 			steeringWheelRotationRate: 15.5
   * 			vehiclePosition
   * 			{
   * 			 vehiclePosition
   * 			 {
   * 			  positionLatitude: -84.54635620117188
   * 			  positionLongitude: 43.999900817871094
   * 			 }
   * 			 positionEncrypted: false
   * 			 gpsTimestamp: 360108355
   * 			 vehicleDirection: 32
   * 			}
   * 		   }
   * 		  }
   *	&lt;/code&gt;
   *   &lt;/div&gt;
   * &lt;/div&gt;
   * </pre>
   *
   * Protobuf type {@code com.fca.uconnect.global.PCNotificationPublish}
   */
  public  static final class PCNotificationPublish extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.PCNotificationPublish)
      PCNotificationPublishOrBuilder {
    // Use PCNotificationPublish.newBuilder() to construct.
    private PCNotificationPublish(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PCNotificationPublish() {
      notificatonType_ = 0;
      signalTimestamp_ = 0L;
      speed_ = 0;
      speedSource_ = 0;
      acceleration_ = 0F;
      accelerationSource_ = 0;
      steeringWheelRotationRate_ = 0F;
      steeringWheelRotationRateSource_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PCNotificationPublish(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.NotificationType value = com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.NotificationType.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                notificatonType_ = rawValue;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              signalTimestamp_ = input.readInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              speed_ = input.readInt32();
              break;
            }
            case 32: {
              int rawValue = input.readEnum();
              com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource value = com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(4, rawValue);
              } else {
                bitField0_ |= 0x00000008;
                speedSource_ = rawValue;
              }
              break;
            }
            case 45: {
              bitField0_ |= 0x00000010;
              acceleration_ = input.readFloat();
              break;
            }
            case 48: {
              int rawValue = input.readEnum();
              com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource value = com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(6, rawValue);
              } else {
                bitField0_ |= 0x00000020;
                accelerationSource_ = rawValue;
              }
              break;
            }
            case 61: {
              bitField0_ |= 0x00000040;
              steeringWheelRotationRate_ = input.readFloat();
              break;
            }
            case 64: {
              int rawValue = input.readEnum();
              com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource value = com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(8, rawValue);
              } else {
                bitField0_ |= 0x00000080;
                steeringWheelRotationRateSource_ = rawValue;
              }
              break;
            }
            case 74: {
              com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition.Builder subBuilder = null;
              if (((bitField0_ & 0x00000100) == 0x00000100)) {
                subBuilder = vehiclePosition_.toBuilder();
              }
              vehiclePosition_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(vehiclePosition_);
                vehiclePosition_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000100;
              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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCNotificationPublish_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCNotificationPublish_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.class, com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.Builder.class);
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.PCNotificationPublish.NotificationType}
     */
    public enum NotificationType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <pre>
       *&#47; periodic position and/or speed update
       * </pre>
       *
       * <code>PERIODIC_SEND = 0;</code>
       */
      PERIODIC_SEND(0),
      /**
       * <pre>
       *&#47; threshold reached
       * </pre>
       *
       * <code>HARSH_ACCELERATION = 1;</code>
       */
      HARSH_ACCELERATION(1),
      /**
       * <pre>
       *&#47; threshold reached
       * </pre>
       *
       * <code>HARSH_BREAKING = 2;</code>
       */
      HARSH_BREAKING(2),
      /**
       * <pre>
       *&#47; threshold reached
       * </pre>
       *
       * <code>SUDDEN_CORNERING = 3;</code>
       */
      SUDDEN_CORNERING(3),
      /**
       * <pre>
       *&#47; sent on gear changed from PARK or gear not in PARK  and seatbelt status changed
       * </pre>
       *
       * <code>SEATBELT_NOT_FASTENED = 4;</code>
       */
      SEATBELT_NOT_FASTENED(4),
      ;

      /**
       * <pre>
       *&#47; periodic position and/or speed update
       * </pre>
       *
       * <code>PERIODIC_SEND = 0;</code>
       */
      public static final int PERIODIC_SEND_VALUE = 0;
      /**
       * <pre>
       *&#47; threshold reached
       * </pre>
       *
       * <code>HARSH_ACCELERATION = 1;</code>
       */
      public static final int HARSH_ACCELERATION_VALUE = 1;
      /**
       * <pre>
       *&#47; threshold reached
       * </pre>
       *
       * <code>HARSH_BREAKING = 2;</code>
       */
      public static final int HARSH_BREAKING_VALUE = 2;
      /**
       * <pre>
       *&#47; threshold reached
       * </pre>
       *
       * <code>SUDDEN_CORNERING = 3;</code>
       */
      public static final int SUDDEN_CORNERING_VALUE = 3;
      /**
       * <pre>
       *&#47; sent on gear changed from PARK or gear not in PARK  and seatbelt status changed
       * </pre>
       *
       * <code>SEATBELT_NOT_FASTENED = 4;</code>
       */
      public static final int SEATBELT_NOT_FASTENED_VALUE = 4;


      public final int getNumber() {
        return value;
      }

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

      public static NotificationType forNumber(int value) {
        switch (value) {
          case 0: return PERIODIC_SEND;
          case 1: return HARSH_ACCELERATION;
          case 2: return HARSH_BREAKING;
          case 3: return SUDDEN_CORNERING;
          case 4: return SEATBELT_NOT_FASTENED;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<NotificationType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          NotificationType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<NotificationType>() {
              public NotificationType findValueByNumber(int number) {
                return NotificationType.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.GlobalUconnectExtPC.PCNotificationPublish.getDescriptor().getEnumTypes().get(0);
      }

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

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.PCNotificationPublish.NotificationType)
    }

    /**
     * Protobuf enum {@code com.fca.uconnect.global.PCNotificationPublish.SignalSource}
     */
    public enum SignalSource
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>SIGNAL_NOT_VALID = 0;</code>
       */
      SIGNAL_NOT_VALID(0),
      /**
       * <pre>
       *&#47; the value was collected from a CAN signal received by the TBM
       * </pre>
       *
       * <code>CAN = 1;</code>
       */
      CAN(1),
      /**
       * <pre>
       *&#47; a value was collected from the TBM internal accelerometer
       * </pre>
       *
       * <code>TBM_ACCELEROMETER = 2;</code>
       */
      TBM_ACCELEROMETER(2),
      /**
       * <pre>
       *&#47; a value was collected from the TBM internal GPS
       * </pre>
       *
       * <code>TBM_GPS = 3;</code>
       */
      TBM_GPS(3),
      /**
       * <pre>
       *&#47; a value was calculated from time series samples from internal GPS 
       * </pre>
       *
       * <code>TBM_GPS_DELTA = 4;</code>
       */
      TBM_GPS_DELTA(4),
      /**
       * <pre>
       *&#47; user has not allowed use of GPS data for positioning
       * </pre>
       *
       * <code>SIGNAL_NOT_PERMITTED = 5;</code>
       */
      SIGNAL_NOT_PERMITTED(5),
      ;

      /**
       * <code>SIGNAL_NOT_VALID = 0;</code>
       */
      public static final int SIGNAL_NOT_VALID_VALUE = 0;
      /**
       * <pre>
       *&#47; the value was collected from a CAN signal received by the TBM
       * </pre>
       *
       * <code>CAN = 1;</code>
       */
      public static final int CAN_VALUE = 1;
      /**
       * <pre>
       *&#47; a value was collected from the TBM internal accelerometer
       * </pre>
       *
       * <code>TBM_ACCELEROMETER = 2;</code>
       */
      public static final int TBM_ACCELEROMETER_VALUE = 2;
      /**
       * <pre>
       *&#47; a value was collected from the TBM internal GPS
       * </pre>
       *
       * <code>TBM_GPS = 3;</code>
       */
      public static final int TBM_GPS_VALUE = 3;
      /**
       * <pre>
       *&#47; a value was calculated from time series samples from internal GPS 
       * </pre>
       *
       * <code>TBM_GPS_DELTA = 4;</code>
       */
      public static final int TBM_GPS_DELTA_VALUE = 4;
      /**
       * <pre>
       *&#47; user has not allowed use of GPS data for positioning
       * </pre>
       *
       * <code>SIGNAL_NOT_PERMITTED = 5;</code>
       */
      public static final int SIGNAL_NOT_PERMITTED_VALUE = 5;


      public final int getNumber() {
        return value;
      }

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

      public static SignalSource forNumber(int value) {
        switch (value) {
          case 0: return SIGNAL_NOT_VALID;
          case 1: return CAN;
          case 2: return TBM_ACCELEROMETER;
          case 3: return TBM_GPS;
          case 4: return TBM_GPS_DELTA;
          case 5: return SIGNAL_NOT_PERMITTED;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<SignalSource>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          SignalSource> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<SignalSource>() {
              public SignalSource findValueByNumber(int number) {
                return SignalSource.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.GlobalUconnectExtPC.PCNotificationPublish.getDescriptor().getEnumTypes().get(1);
      }

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

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

      private final int value;

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

      // @@protoc_insertion_point(enum_scope:com.fca.uconnect.global.PCNotificationPublish.SignalSource)
    }

    public interface VehiclePositionOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.fca.uconnect.global.PCNotificationPublish.VehiclePosition)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       *&#47; lat/lon of the vehicle
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.Location vehiclePosition = 1;</code>
       */
      boolean hasVehiclePosition();
      /**
       * <pre>
       *&#47; lat/lon of the vehicle
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.Location vehiclePosition = 1;</code>
       */
      com.fca.uconnect.global.GlobalUconnectGNSS.Location getVehiclePosition();
      /**
       * <pre>
       *&#47; lat/lon of the vehicle
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.Location vehiclePosition = 1;</code>
       */
      com.fca.uconnect.global.GlobalUconnectGNSS.LocationOrBuilder getVehiclePositionOrBuilder();

      /**
       * <pre>
       *&#47; validity &amp; source of reported position
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource vehiclePositionSource = 2;</code>
       */
      boolean hasVehiclePositionSource();
      /**
       * <pre>
       *&#47; validity &amp; source of reported position
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource vehiclePositionSource = 2;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource getVehiclePositionSource();

      /**
       * <pre>
       *&#47; lat/lon is encrypted with the encryption algorithm provided by the National Administration of Surveying, Mapping and Geoinformation (SBSM).
       * </pre>
       *
       * <code>optional bool positionEncrypted = 3;</code>
       */
      boolean hasPositionEncrypted();
      /**
       * <pre>
       *&#47; lat/lon is encrypted with the encryption algorithm provided by the National Administration of Surveying, Mapping and Geoinformation (SBSM).
       * </pre>
       *
       * <code>optional bool positionEncrypted = 3;</code>
       */
      boolean getPositionEncrypted();

      /**
       * <pre>
       *&#47; timestamp from GPS when lat/lon was collected
       * </pre>
       *
       * <code>optional int32 gpsTimestamp = 4;</code>
       */
      boolean hasGpsTimestamp();
      /**
       * <pre>
       *&#47; timestamp from GPS when lat/lon was collected
       * </pre>
       *
       * <code>optional int32 gpsTimestamp = 4;</code>
       */
      int getGpsTimestamp();

      /**
       * <pre>
       *&#47;  vehicle heading, in degrees 
       * </pre>
       *
       * <code>optional int32 vehicleDirection = 5;</code>
       */
      boolean hasVehicleDirection();
      /**
       * <pre>
       *&#47;  vehicle heading, in degrees 
       * </pre>
       *
       * <code>optional int32 vehicleDirection = 5;</code>
       */
      int getVehicleDirection();

      /**
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource vehicleDirectionSource = 6;</code>
       */
      boolean hasVehicleDirectionSource();
      /**
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource vehicleDirectionSource = 6;</code>
       */
      com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource getVehicleDirectionSource();
    }
    /**
     * Protobuf type {@code com.fca.uconnect.global.PCNotificationPublish.VehiclePosition}
     */
    public  static final class VehiclePosition extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.fca.uconnect.global.PCNotificationPublish.VehiclePosition)
        VehiclePositionOrBuilder {
      // Use VehiclePosition.newBuilder() to construct.
      private VehiclePosition(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private VehiclePosition() {
        vehiclePositionSource_ = 0;
        positionEncrypted_ = false;
        gpsTimestamp_ = 0;
        vehicleDirection_ = 0;
        vehicleDirectionSource_ = 0;
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private VehiclePosition(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                com.fca.uconnect.global.GlobalUconnectGNSS.Location.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = vehiclePosition_.toBuilder();
                }
                vehiclePosition_ = input.readMessage(com.fca.uconnect.global.GlobalUconnectGNSS.Location.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(vehiclePosition_);
                  vehiclePosition_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
              case 16: {
                int rawValue = input.readEnum();
                com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource value = com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource.valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(2, rawValue);
                } else {
                  bitField0_ |= 0x00000002;
                  vehiclePositionSource_ = rawValue;
                }
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                positionEncrypted_ = input.readBool();
                break;
              }
              case 32: {
                bitField0_ |= 0x00000008;
                gpsTimestamp_ = input.readInt32();
                break;
              }
              case 40: {
                bitField0_ |= 0x00000010;
                vehicleDirection_ = input.readInt32();
                break;
              }
              case 48: {
                int rawValue = input.readEnum();
                com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource value = com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource.valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(6, rawValue);
                } else {
                  bitField0_ |= 0x00000020;
                  vehicleDirectionSource_ = 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 {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCNotificationPublish_VehiclePosition_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCNotificationPublish_VehiclePosition_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition.class, com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition.Builder.class);
      }

      private int bitField0_;
      public static final int VEHICLEPOSITION_FIELD_NUMBER = 1;
      private com.fca.uconnect.global.GlobalUconnectGNSS.Location vehiclePosition_;
      /**
       * <pre>
       *&#47; lat/lon of the vehicle
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.Location vehiclePosition = 1;</code>
       */
      public boolean hasVehiclePosition() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       *&#47; lat/lon of the vehicle
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.Location vehiclePosition = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectGNSS.Location getVehiclePosition() {
        return vehiclePosition_ == null ? com.fca.uconnect.global.GlobalUconnectGNSS.Location.getDefaultInstance() : vehiclePosition_;
      }
      /**
       * <pre>
       *&#47; lat/lon of the vehicle
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.Location vehiclePosition = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectGNSS.LocationOrBuilder getVehiclePositionOrBuilder() {
        return vehiclePosition_ == null ? com.fca.uconnect.global.GlobalUconnectGNSS.Location.getDefaultInstance() : vehiclePosition_;
      }

      public static final int VEHICLEPOSITIONSOURCE_FIELD_NUMBER = 2;
      private int vehiclePositionSource_;
      /**
       * <pre>
       *&#47; validity &amp; source of reported position
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource vehiclePositionSource = 2;</code>
       */
      public boolean hasVehiclePositionSource() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       *&#47; validity &amp; source of reported position
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource vehiclePositionSource = 2;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource getVehiclePositionSource() {
        com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource result = com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource.valueOf(vehiclePositionSource_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource.SIGNAL_NOT_VALID : result;
      }

      public static final int POSITIONENCRYPTED_FIELD_NUMBER = 3;
      private boolean positionEncrypted_;
      /**
       * <pre>
       *&#47; lat/lon is encrypted with the encryption algorithm provided by the National Administration of Surveying, Mapping and Geoinformation (SBSM).
       * </pre>
       *
       * <code>optional bool positionEncrypted = 3;</code>
       */
      public boolean hasPositionEncrypted() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       *&#47; lat/lon is encrypted with the encryption algorithm provided by the National Administration of Surveying, Mapping and Geoinformation (SBSM).
       * </pre>
       *
       * <code>optional bool positionEncrypted = 3;</code>
       */
      public boolean getPositionEncrypted() {
        return positionEncrypted_;
      }

      public static final int GPSTIMESTAMP_FIELD_NUMBER = 4;
      private int gpsTimestamp_;
      /**
       * <pre>
       *&#47; timestamp from GPS when lat/lon was collected
       * </pre>
       *
       * <code>optional int32 gpsTimestamp = 4;</code>
       */
      public boolean hasGpsTimestamp() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <pre>
       *&#47; timestamp from GPS when lat/lon was collected
       * </pre>
       *
       * <code>optional int32 gpsTimestamp = 4;</code>
       */
      public int getGpsTimestamp() {
        return gpsTimestamp_;
      }

      public static final int VEHICLEDIRECTION_FIELD_NUMBER = 5;
      private int vehicleDirection_;
      /**
       * <pre>
       *&#47;  vehicle heading, in degrees 
       * </pre>
       *
       * <code>optional int32 vehicleDirection = 5;</code>
       */
      public boolean hasVehicleDirection() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <pre>
       *&#47;  vehicle heading, in degrees 
       * </pre>
       *
       * <code>optional int32 vehicleDirection = 5;</code>
       */
      public int getVehicleDirection() {
        return vehicleDirection_;
      }

      public static final int VEHICLEDIRECTIONSOURCE_FIELD_NUMBER = 6;
      private int vehicleDirectionSource_;
      /**
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource vehicleDirectionSource = 6;</code>
       */
      public boolean hasVehicleDirectionSource() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource vehicleDirectionSource = 6;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource getVehicleDirectionSource() {
        com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource result = com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource.valueOf(vehicleDirectionSource_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource.SIGNAL_NOT_VALID : 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 (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeMessage(1, getVehiclePosition());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeEnum(2, vehiclePositionSource_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeBool(3, positionEncrypted_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeInt32(4, gpsTimestamp_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeInt32(5, vehicleDirection_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          output.writeEnum(6, vehicleDirectionSource_);
        }
        unknownFields.writeTo(output);
      }

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

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getVehiclePosition());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(2, vehiclePositionSource_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(3, positionEncrypted_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(4, gpsTimestamp_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(5, vehicleDirection_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(6, vehicleDirectionSource_);
        }
        size += unknownFields.getSerializedSize();
        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.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition)) {
          return super.equals(obj);
        }
        com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition other = (com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition) obj;

        boolean result = true;
        result = result && (hasVehiclePosition() == other.hasVehiclePosition());
        if (hasVehiclePosition()) {
          result = result && getVehiclePosition()
              .equals(other.getVehiclePosition());
        }
        result = result && (hasVehiclePositionSource() == other.hasVehiclePositionSource());
        if (hasVehiclePositionSource()) {
          result = result && vehiclePositionSource_ == other.vehiclePositionSource_;
        }
        result = result && (hasPositionEncrypted() == other.hasPositionEncrypted());
        if (hasPositionEncrypted()) {
          result = result && (getPositionEncrypted()
              == other.getPositionEncrypted());
        }
        result = result && (hasGpsTimestamp() == other.hasGpsTimestamp());
        if (hasGpsTimestamp()) {
          result = result && (getGpsTimestamp()
              == other.getGpsTimestamp());
        }
        result = result && (hasVehicleDirection() == other.hasVehicleDirection());
        if (hasVehicleDirection()) {
          result = result && (getVehicleDirection()
              == other.getVehicleDirection());
        }
        result = result && (hasVehicleDirectionSource() == other.hasVehicleDirectionSource());
        if (hasVehicleDirectionSource()) {
          result = result && vehicleDirectionSource_ == other.vehicleDirectionSource_;
        }
        result = result && unknownFields.equals(other.unknownFields);
        return result;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptorForType().hashCode();
        if (hasVehiclePosition()) {
          hash = (37 * hash) + VEHICLEPOSITION_FIELD_NUMBER;
          hash = (53 * hash) + getVehiclePosition().hashCode();
        }
        if (hasVehiclePositionSource()) {
          hash = (37 * hash) + VEHICLEPOSITIONSOURCE_FIELD_NUMBER;
          hash = (53 * hash) + vehiclePositionSource_;
        }
        if (hasPositionEncrypted()) {
          hash = (37 * hash) + POSITIONENCRYPTED_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
              getPositionEncrypted());
        }
        if (hasGpsTimestamp()) {
          hash = (37 * hash) + GPSTIMESTAMP_FIELD_NUMBER;
          hash = (53 * hash) + getGpsTimestamp();
        }
        if (hasVehicleDirection()) {
          hash = (37 * hash) + VEHICLEDIRECTION_FIELD_NUMBER;
          hash = (53 * hash) + getVehicleDirection();
        }
        if (hasVehicleDirectionSource()) {
          hash = (37 * hash) + VEHICLEDIRECTIONSOURCE_FIELD_NUMBER;
          hash = (53 * hash) + vehicleDirectionSource_;
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition 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.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition 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.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition 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.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition 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.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition 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.PCNotificationPublish.VehiclePosition}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.PCNotificationPublish.VehiclePosition)
          com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePositionOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCNotificationPublish_VehiclePosition_descriptor;
        }

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCNotificationPublish_VehiclePosition_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition.class, com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition.Builder.class);
        }

        // Construct using com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getVehiclePositionFieldBuilder();
          }
        }
        public Builder clear() {
          super.clear();
          if (vehiclePositionBuilder_ == null) {
            vehiclePosition_ = null;
          } else {
            vehiclePositionBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          vehiclePositionSource_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          positionEncrypted_ = false;
          bitField0_ = (bitField0_ & ~0x00000004);
          gpsTimestamp_ = 0;
          bitField0_ = (bitField0_ & ~0x00000008);
          vehicleDirection_ = 0;
          bitField0_ = (bitField0_ & ~0x00000010);
          vehicleDirectionSource_ = 0;
          bitField0_ = (bitField0_ & ~0x00000020);
          return this;
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition getDefaultInstanceForType() {
          return com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition.getDefaultInstance();
        }

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

        public com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition buildPartial() {
          com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition result = new com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          if (vehiclePositionBuilder_ == null) {
            result.vehiclePosition_ = vehiclePosition_;
          } else {
            result.vehiclePosition_ = vehiclePositionBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.vehiclePositionSource_ = vehiclePositionSource_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.positionEncrypted_ = positionEncrypted_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.gpsTimestamp_ = gpsTimestamp_;
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000010;
          }
          result.vehicleDirection_ = vehicleDirection_;
          if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
            to_bitField0_ |= 0x00000020;
          }
          result.vehicleDirectionSource_ = vehicleDirectionSource_;
          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.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition) {
            return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition other) {
          if (other == com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition.getDefaultInstance()) return this;
          if (other.hasVehiclePosition()) {
            mergeVehiclePosition(other.getVehiclePosition());
          }
          if (other.hasVehiclePositionSource()) {
            setVehiclePositionSource(other.getVehiclePositionSource());
          }
          if (other.hasPositionEncrypted()) {
            setPositionEncrypted(other.getPositionEncrypted());
          }
          if (other.hasGpsTimestamp()) {
            setGpsTimestamp(other.getGpsTimestamp());
          }
          if (other.hasVehicleDirection()) {
            setVehicleDirection(other.getVehicleDirection());
          }
          if (other.hasVehicleDirectionSource()) {
            setVehicleDirectionSource(other.getVehicleDirectionSource());
          }
          this.mergeUnknownFields(other.unknownFields);
          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.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private com.fca.uconnect.global.GlobalUconnectGNSS.Location vehiclePosition_ = null;
        private com.google.protobuf.SingleFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectGNSS.Location, com.fca.uconnect.global.GlobalUconnectGNSS.Location.Builder, com.fca.uconnect.global.GlobalUconnectGNSS.LocationOrBuilder> vehiclePositionBuilder_;
        /**
         * <pre>
         *&#47; lat/lon of the vehicle
         * </pre>
         *
         * <code>optional .com.fca.uconnect.global.Location vehiclePosition = 1;</code>
         */
        public boolean hasVehiclePosition() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <pre>
         *&#47; lat/lon of the vehicle
         * </pre>
         *
         * <code>optional .com.fca.uconnect.global.Location vehiclePosition = 1;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectGNSS.Location getVehiclePosition() {
          if (vehiclePositionBuilder_ == null) {
            return vehiclePosition_ == null ? com.fca.uconnect.global.GlobalUconnectGNSS.Location.getDefaultInstance() : vehiclePosition_;
          } else {
            return vehiclePositionBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         *&#47; lat/lon of the vehicle
         * </pre>
         *
         * <code>optional .com.fca.uconnect.global.Location vehiclePosition = 1;</code>
         */
        public Builder setVehiclePosition(com.fca.uconnect.global.GlobalUconnectGNSS.Location value) {
          if (vehiclePositionBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            vehiclePosition_ = value;
            onChanged();
          } else {
            vehiclePositionBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        /**
         * <pre>
         *&#47; lat/lon of the vehicle
         * </pre>
         *
         * <code>optional .com.fca.uconnect.global.Location vehiclePosition = 1;</code>
         */
        public Builder setVehiclePosition(
            com.fca.uconnect.global.GlobalUconnectGNSS.Location.Builder builderForValue) {
          if (vehiclePositionBuilder_ == null) {
            vehiclePosition_ = builderForValue.build();
            onChanged();
          } else {
            vehiclePositionBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        /**
         * <pre>
         *&#47; lat/lon of the vehicle
         * </pre>
         *
         * <code>optional .com.fca.uconnect.global.Location vehiclePosition = 1;</code>
         */
        public Builder mergeVehiclePosition(com.fca.uconnect.global.GlobalUconnectGNSS.Location value) {
          if (vehiclePositionBuilder_ == null) {
            if (((bitField0_ & 0x00000001) == 0x00000001) &&
                vehiclePosition_ != null &&
                vehiclePosition_ != com.fca.uconnect.global.GlobalUconnectGNSS.Location.getDefaultInstance()) {
              vehiclePosition_ =
                com.fca.uconnect.global.GlobalUconnectGNSS.Location.newBuilder(vehiclePosition_).mergeFrom(value).buildPartial();
            } else {
              vehiclePosition_ = value;
            }
            onChanged();
          } else {
            vehiclePositionBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        /**
         * <pre>
         *&#47; lat/lon of the vehicle
         * </pre>
         *
         * <code>optional .com.fca.uconnect.global.Location vehiclePosition = 1;</code>
         */
        public Builder clearVehiclePosition() {
          if (vehiclePositionBuilder_ == null) {
            vehiclePosition_ = null;
            onChanged();
          } else {
            vehiclePositionBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }
        /**
         * <pre>
         *&#47; lat/lon of the vehicle
         * </pre>
         *
         * <code>optional .com.fca.uconnect.global.Location vehiclePosition = 1;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectGNSS.Location.Builder getVehiclePositionBuilder() {
          bitField0_ |= 0x00000001;
          onChanged();
          return getVehiclePositionFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         *&#47; lat/lon of the vehicle
         * </pre>
         *
         * <code>optional .com.fca.uconnect.global.Location vehiclePosition = 1;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectGNSS.LocationOrBuilder getVehiclePositionOrBuilder() {
          if (vehiclePositionBuilder_ != null) {
            return vehiclePositionBuilder_.getMessageOrBuilder();
          } else {
            return vehiclePosition_ == null ?
                com.fca.uconnect.global.GlobalUconnectGNSS.Location.getDefaultInstance() : vehiclePosition_;
          }
        }
        /**
         * <pre>
         *&#47; lat/lon of the vehicle
         * </pre>
         *
         * <code>optional .com.fca.uconnect.global.Location vehiclePosition = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            com.fca.uconnect.global.GlobalUconnectGNSS.Location, com.fca.uconnect.global.GlobalUconnectGNSS.Location.Builder, com.fca.uconnect.global.GlobalUconnectGNSS.LocationOrBuilder> 
            getVehiclePositionFieldBuilder() {
          if (vehiclePositionBuilder_ == null) {
            vehiclePositionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                com.fca.uconnect.global.GlobalUconnectGNSS.Location, com.fca.uconnect.global.GlobalUconnectGNSS.Location.Builder, com.fca.uconnect.global.GlobalUconnectGNSS.LocationOrBuilder>(
                    getVehiclePosition(),
                    getParentForChildren(),
                    isClean());
            vehiclePosition_ = null;
          }
          return vehiclePositionBuilder_;
        }

        private int vehiclePositionSource_ = 0;
        /**
         * <pre>
         *&#47; validity &amp; source of reported position
         * </pre>
         *
         * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource vehiclePositionSource = 2;</code>
         */
        public boolean hasVehiclePositionSource() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <pre>
         *&#47; validity &amp; source of reported position
         * </pre>
         *
         * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource vehiclePositionSource = 2;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource getVehiclePositionSource() {
          com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource result = com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource.valueOf(vehiclePositionSource_);
          return result == null ? com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource.SIGNAL_NOT_VALID : result;
        }
        /**
         * <pre>
         *&#47; validity &amp; source of reported position
         * </pre>
         *
         * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource vehiclePositionSource = 2;</code>
         */
        public Builder setVehiclePositionSource(com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000002;
          vehiclePositionSource_ = value.getNumber();
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; validity &amp; source of reported position
         * </pre>
         *
         * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource vehiclePositionSource = 2;</code>
         */
        public Builder clearVehiclePositionSource() {
          bitField0_ = (bitField0_ & ~0x00000002);
          vehiclePositionSource_ = 0;
          onChanged();
          return this;
        }

        private boolean positionEncrypted_ ;
        /**
         * <pre>
         *&#47; lat/lon is encrypted with the encryption algorithm provided by the National Administration of Surveying, Mapping and Geoinformation (SBSM).
         * </pre>
         *
         * <code>optional bool positionEncrypted = 3;</code>
         */
        public boolean hasPositionEncrypted() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <pre>
         *&#47; lat/lon is encrypted with the encryption algorithm provided by the National Administration of Surveying, Mapping and Geoinformation (SBSM).
         * </pre>
         *
         * <code>optional bool positionEncrypted = 3;</code>
         */
        public boolean getPositionEncrypted() {
          return positionEncrypted_;
        }
        /**
         * <pre>
         *&#47; lat/lon is encrypted with the encryption algorithm provided by the National Administration of Surveying, Mapping and Geoinformation (SBSM).
         * </pre>
         *
         * <code>optional bool positionEncrypted = 3;</code>
         */
        public Builder setPositionEncrypted(boolean value) {
          bitField0_ |= 0x00000004;
          positionEncrypted_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; lat/lon is encrypted with the encryption algorithm provided by the National Administration of Surveying, Mapping and Geoinformation (SBSM).
         * </pre>
         *
         * <code>optional bool positionEncrypted = 3;</code>
         */
        public Builder clearPositionEncrypted() {
          bitField0_ = (bitField0_ & ~0x00000004);
          positionEncrypted_ = false;
          onChanged();
          return this;
        }

        private int gpsTimestamp_ ;
        /**
         * <pre>
         *&#47; timestamp from GPS when lat/lon was collected
         * </pre>
         *
         * <code>optional int32 gpsTimestamp = 4;</code>
         */
        public boolean hasGpsTimestamp() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * <pre>
         *&#47; timestamp from GPS when lat/lon was collected
         * </pre>
         *
         * <code>optional int32 gpsTimestamp = 4;</code>
         */
        public int getGpsTimestamp() {
          return gpsTimestamp_;
        }
        /**
         * <pre>
         *&#47; timestamp from GPS when lat/lon was collected
         * </pre>
         *
         * <code>optional int32 gpsTimestamp = 4;</code>
         */
        public Builder setGpsTimestamp(int value) {
          bitField0_ |= 0x00000008;
          gpsTimestamp_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47; timestamp from GPS when lat/lon was collected
         * </pre>
         *
         * <code>optional int32 gpsTimestamp = 4;</code>
         */
        public Builder clearGpsTimestamp() {
          bitField0_ = (bitField0_ & ~0x00000008);
          gpsTimestamp_ = 0;
          onChanged();
          return this;
        }

        private int vehicleDirection_ ;
        /**
         * <pre>
         *&#47;  vehicle heading, in degrees 
         * </pre>
         *
         * <code>optional int32 vehicleDirection = 5;</code>
         */
        public boolean hasVehicleDirection() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        /**
         * <pre>
         *&#47;  vehicle heading, in degrees 
         * </pre>
         *
         * <code>optional int32 vehicleDirection = 5;</code>
         */
        public int getVehicleDirection() {
          return vehicleDirection_;
        }
        /**
         * <pre>
         *&#47;  vehicle heading, in degrees 
         * </pre>
         *
         * <code>optional int32 vehicleDirection = 5;</code>
         */
        public Builder setVehicleDirection(int value) {
          bitField0_ |= 0x00000010;
          vehicleDirection_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *&#47;  vehicle heading, in degrees 
         * </pre>
         *
         * <code>optional int32 vehicleDirection = 5;</code>
         */
        public Builder clearVehicleDirection() {
          bitField0_ = (bitField0_ & ~0x00000010);
          vehicleDirection_ = 0;
          onChanged();
          return this;
        }

        private int vehicleDirectionSource_ = 0;
        /**
         * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource vehicleDirectionSource = 6;</code>
         */
        public boolean hasVehicleDirectionSource() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }
        /**
         * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource vehicleDirectionSource = 6;</code>
         */
        public com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource getVehicleDirectionSource() {
          com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource result = com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource.valueOf(vehicleDirectionSource_);
          return result == null ? com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource.SIGNAL_NOT_VALID : result;
        }
        /**
         * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource vehicleDirectionSource = 6;</code>
         */
        public Builder setVehicleDirectionSource(com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000020;
          vehicleDirectionSource_ = value.getNumber();
          onChanged();
          return this;
        }
        /**
         * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource vehicleDirectionSource = 6;</code>
         */
        public Builder clearVehicleDirectionSource() {
          bitField0_ = (bitField0_ & ~0x00000020);
          vehicleDirectionSource_ = 0;
          onChanged();
          return this;
        }
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


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

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

      public static com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      public com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    public static final int NOTIFICATONTYPE_FIELD_NUMBER = 1;
    private int notificatonType_;
    /**
     * <pre>
     *&#47; the event or periodic send the triggered this message
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCNotificationPublish.NotificationType notificatonType = 1;</code>
     */
    public boolean hasNotificatonType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <pre>
     *&#47; the event or periodic send the triggered this message
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCNotificationPublish.NotificationType notificatonType = 1;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.NotificationType getNotificatonType() {
      com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.NotificationType result = com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.NotificationType.valueOf(notificatonType_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.NotificationType.PERIODIC_SEND : result;
    }

    public static final int SIGNALTIMESTAMP_FIELD_NUMBER = 2;
    private long signalTimestamp_;
    /**
     * <pre>
     *&#47;  The time in milliseconds since Unix Epoch (Jan 1, 1970 00:00:00 UTC) when the signals sent in this message were captured
     * </pre>
     *
     * <code>optional int64 signalTimestamp = 2;</code>
     */
    public boolean hasSignalTimestamp() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <pre>
     *&#47;  The time in milliseconds since Unix Epoch (Jan 1, 1970 00:00:00 UTC) when the signals sent in this message were captured
     * </pre>
     *
     * <code>optional int64 signalTimestamp = 2;</code>
     */
    public long getSignalTimestamp() {
      return signalTimestamp_;
    }

    public static final int SPEED_FIELD_NUMBER = 3;
    private int speed_;
    /**
     * <pre>
     *&#47; vehicle speed in kph
     * </pre>
     *
     * <code>optional int32 speed = 3;</code>
     */
    public boolean hasSpeed() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <pre>
     *&#47; vehicle speed in kph
     * </pre>
     *
     * <code>optional int32 speed = 3;</code>
     */
    public int getSpeed() {
      return speed_;
    }

    public static final int SPEEDSOURCE_FIELD_NUMBER = 4;
    private int speedSource_;
    /**
     * <pre>
     *&#47; validity &amp; source of reported speed
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource speedSource = 4;</code>
     */
    public boolean hasSpeedSource() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <pre>
     *&#47; validity &amp; source of reported speed
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource speedSource = 4;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource getSpeedSource() {
      com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource result = com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource.valueOf(speedSource_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource.SIGNAL_NOT_VALID : result;
    }

    public static final int ACCELERATION_FIELD_NUMBER = 5;
    private float acceleration_;
    /**
     * <pre>
     *&#47; acceleration in m/s/s. must be sent if notification type is HARSH_ACCELERATION/HARSH_BREAKING
     * </pre>
     *
     * <code>optional float acceleration = 5;</code>
     */
    public boolean hasAcceleration() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <pre>
     *&#47; acceleration in m/s/s. must be sent if notification type is HARSH_ACCELERATION/HARSH_BREAKING
     * </pre>
     *
     * <code>optional float acceleration = 5;</code>
     */
    public float getAcceleration() {
      return acceleration_;
    }

    public static final int ACCELERATIONSOURCE_FIELD_NUMBER = 6;
    private int accelerationSource_;
    /**
     * <pre>
     *&#47;  validity &amp; source of reported acceleration
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource accelerationSource = 6;</code>
     */
    public boolean hasAccelerationSource() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <pre>
     *&#47;  validity &amp; source of reported acceleration
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource accelerationSource = 6;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource getAccelerationSource() {
      com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource result = com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource.valueOf(accelerationSource_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource.SIGNAL_NOT_VALID : result;
    }

    public static final int STEERINGWHEELROTATIONRATE_FIELD_NUMBER = 7;
    private float steeringWheelRotationRate_;
    /**
     * <pre>
     *&#47; steering wheel rotation in RPM must be sent if notification type is SUDDEN_CORNERING
     * </pre>
     *
     * <code>optional float steeringWheelRotationRate = 7;</code>
     */
    public boolean hasSteeringWheelRotationRate() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * <pre>
     *&#47; steering wheel rotation in RPM must be sent if notification type is SUDDEN_CORNERING
     * </pre>
     *
     * <code>optional float steeringWheelRotationRate = 7;</code>
     */
    public float getSteeringWheelRotationRate() {
      return steeringWheelRotationRate_;
    }

    public static final int STEERINGWHEELROTATIONRATESOURCE_FIELD_NUMBER = 8;
    private int steeringWheelRotationRateSource_;
    /**
     * <pre>
     *&#47;  validity &amp; source of reported steering wheel rotation rate
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource steeringWheelRotationRateSource = 8;</code>
     */
    public boolean hasSteeringWheelRotationRateSource() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * <pre>
     *&#47;  validity &amp; source of reported steering wheel rotation rate
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource steeringWheelRotationRateSource = 8;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource getSteeringWheelRotationRateSource() {
      com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource result = com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource.valueOf(steeringWheelRotationRateSource_);
      return result == null ? com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource.SIGNAL_NOT_VALID : result;
    }

    public static final int VEHICLEPOSITION_FIELD_NUMBER = 9;
    private com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition vehiclePosition_;
    /**
     * <pre>
     *&#47; will not be sent if PCUpdateConfigRequest had userDeclinedGPSSending = true 
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCNotificationPublish.VehiclePosition vehiclePosition = 9;</code>
     */
    public boolean hasVehiclePosition() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * <pre>
     *&#47; will not be sent if PCUpdateConfigRequest had userDeclinedGPSSending = true 
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCNotificationPublish.VehiclePosition vehiclePosition = 9;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition getVehiclePosition() {
      return vehiclePosition_ == null ? com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition.getDefaultInstance() : vehiclePosition_;
    }
    /**
     * <pre>
     *&#47; will not be sent if PCUpdateConfigRequest had userDeclinedGPSSending = true 
     * </pre>
     *
     * <code>optional .com.fca.uconnect.global.PCNotificationPublish.VehiclePosition vehiclePosition = 9;</code>
     */
    public com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePositionOrBuilder getVehiclePositionOrBuilder() {
      return vehiclePosition_ == null ? com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition.getDefaultInstance() : vehiclePosition_;
    }

    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 (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, notificatonType_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(2, signalTimestamp_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, speed_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeEnum(4, speedSource_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeFloat(5, acceleration_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeEnum(6, accelerationSource_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeFloat(7, steeringWheelRotationRate_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeEnum(8, steeringWheelRotationRateSource_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeMessage(9, getVehiclePosition());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, notificatonType_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, signalTimestamp_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, speed_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, speedSource_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(5, acceleration_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(6, accelerationSource_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(7, steeringWheelRotationRate_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(8, steeringWheelRotationRateSource_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, getVehiclePosition());
      }
      size += unknownFields.getSerializedSize();
      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.GlobalUconnectExtPC.PCNotificationPublish)) {
        return super.equals(obj);
      }
      com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish other = (com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish) obj;

      boolean result = true;
      result = result && (hasNotificatonType() == other.hasNotificatonType());
      if (hasNotificatonType()) {
        result = result && notificatonType_ == other.notificatonType_;
      }
      result = result && (hasSignalTimestamp() == other.hasSignalTimestamp());
      if (hasSignalTimestamp()) {
        result = result && (getSignalTimestamp()
            == other.getSignalTimestamp());
      }
      result = result && (hasSpeed() == other.hasSpeed());
      if (hasSpeed()) {
        result = result && (getSpeed()
            == other.getSpeed());
      }
      result = result && (hasSpeedSource() == other.hasSpeedSource());
      if (hasSpeedSource()) {
        result = result && speedSource_ == other.speedSource_;
      }
      result = result && (hasAcceleration() == other.hasAcceleration());
      if (hasAcceleration()) {
        result = result && (
            java.lang.Float.floatToIntBits(getAcceleration())
            == java.lang.Float.floatToIntBits(
                other.getAcceleration()));
      }
      result = result && (hasAccelerationSource() == other.hasAccelerationSource());
      if (hasAccelerationSource()) {
        result = result && accelerationSource_ == other.accelerationSource_;
      }
      result = result && (hasSteeringWheelRotationRate() == other.hasSteeringWheelRotationRate());
      if (hasSteeringWheelRotationRate()) {
        result = result && (
            java.lang.Float.floatToIntBits(getSteeringWheelRotationRate())
            == java.lang.Float.floatToIntBits(
                other.getSteeringWheelRotationRate()));
      }
      result = result && (hasSteeringWheelRotationRateSource() == other.hasSteeringWheelRotationRateSource());
      if (hasSteeringWheelRotationRateSource()) {
        result = result && steeringWheelRotationRateSource_ == other.steeringWheelRotationRateSource_;
      }
      result = result && (hasVehiclePosition() == other.hasVehiclePosition());
      if (hasVehiclePosition()) {
        result = result && getVehiclePosition()
            .equals(other.getVehiclePosition());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasNotificatonType()) {
        hash = (37 * hash) + NOTIFICATONTYPE_FIELD_NUMBER;
        hash = (53 * hash) + notificatonType_;
      }
      if (hasSignalTimestamp()) {
        hash = (37 * hash) + SIGNALTIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSignalTimestamp());
      }
      if (hasSpeed()) {
        hash = (37 * hash) + SPEED_FIELD_NUMBER;
        hash = (53 * hash) + getSpeed();
      }
      if (hasSpeedSource()) {
        hash = (37 * hash) + SPEEDSOURCE_FIELD_NUMBER;
        hash = (53 * hash) + speedSource_;
      }
      if (hasAcceleration()) {
        hash = (37 * hash) + ACCELERATION_FIELD_NUMBER;
        hash = (53 * hash) + java.lang.Float.floatToIntBits(
            getAcceleration());
      }
      if (hasAccelerationSource()) {
        hash = (37 * hash) + ACCELERATIONSOURCE_FIELD_NUMBER;
        hash = (53 * hash) + accelerationSource_;
      }
      if (hasSteeringWheelRotationRate()) {
        hash = (37 * hash) + STEERINGWHEELROTATIONRATE_FIELD_NUMBER;
        hash = (53 * hash) + java.lang.Float.floatToIntBits(
            getSteeringWheelRotationRate());
      }
      if (hasSteeringWheelRotationRateSource()) {
        hash = (37 * hash) + STEERINGWHEELROTATIONRATESOURCE_FIELD_NUMBER;
        hash = (53 * hash) + steeringWheelRotationRateSource_;
      }
      if (hasVehiclePosition()) {
        hash = (37 * hash) + VEHICLEPOSITION_FIELD_NUMBER;
        hash = (53 * hash) + getVehiclePosition().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish 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.GlobalUconnectExtPC.PCNotificationPublish parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish 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.GlobalUconnectExtPC.PCNotificationPublish parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish 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.GlobalUconnectExtPC.PCNotificationPublish parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish 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.GlobalUconnectExtPC.PCNotificationPublish 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 message is to Notify SDP for Parental Control alert.
     * &lt;div class=exmsg-main&gt;
     * &lt;h4&gt;PCNotificationPublish Example Message:&lt;/h4&gt;
     * &lt;div class=ex-msg&gt;
     *	&lt;code&gt;
     * 		timestamp: 1490713760069
     * 		messageId: 2
     * 		messages
     * 		{
     * 		 [com.fca.uconnect.global.pcNotificationPublish]
     * 		 {
     * 			notificatonType: PERIODIC_SEND
     * 			speed: 75
     * 			speedSource: TBM_ACCELEROMETER
     * 			acceleration: 35.0
     * 			accelerationSource: TBM_ACCELEROMETER
     * 			steeringWheelRotationRate: 15.5
     * 			vehiclePosition
     * 			{
     * 			 vehiclePosition
     * 			 {
     * 			  positionLatitude: -84.54635620117188
     * 			  positionLongitude: 43.999900817871094
     * 			 }
     * 			 positionEncrypted: false
     * 			 gpsTimestamp: 360108355
     * 			 vehicleDirection: 32
     * 			}
     * 		   }
     * 		  }
     *	&lt;/code&gt;
     *   &lt;/div&gt;
     * &lt;/div&gt;
     * </pre>
     *
     * Protobuf type {@code com.fca.uconnect.global.PCNotificationPublish}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.fca.uconnect.global.PCNotificationPublish)
        com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublishOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCNotificationPublish_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.fca.uconnect.global.GlobalUconnectExtPC.internal_static_com_fca_uconnect_global_PCNotificationPublish_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.class, com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.Builder.class);
      }

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

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getVehiclePositionFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        notificatonType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        signalTimestamp_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        speed_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        speedSource_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        acceleration_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000010);
        accelerationSource_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        steeringWheelRotationRate_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000040);
        steeringWheelRotationRateSource_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        if (vehiclePositionBuilder_ == null) {
          vehiclePosition_ = null;
        } else {
          vehiclePositionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish getDefaultInstanceForType() {
        return com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.getDefaultInstance();
      }

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

      public com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish buildPartial() {
        com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish result = new com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.notificatonType_ = notificatonType_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.signalTimestamp_ = signalTimestamp_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.speed_ = speed_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.speedSource_ = speedSource_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.acceleration_ = acceleration_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.accelerationSource_ = accelerationSource_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.steeringWheelRotationRate_ = steeringWheelRotationRate_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.steeringWheelRotationRateSource_ = steeringWheelRotationRateSource_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        if (vehiclePositionBuilder_ == null) {
          result.vehiclePosition_ = vehiclePosition_;
        } else {
          result.vehiclePosition_ = vehiclePositionBuilder_.build();
        }
        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.GlobalUconnectExtPC.PCNotificationPublish) {
          return mergeFrom((com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish other) {
        if (other == com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.getDefaultInstance()) return this;
        if (other.hasNotificatonType()) {
          setNotificatonType(other.getNotificatonType());
        }
        if (other.hasSignalTimestamp()) {
          setSignalTimestamp(other.getSignalTimestamp());
        }
        if (other.hasSpeed()) {
          setSpeed(other.getSpeed());
        }
        if (other.hasSpeedSource()) {
          setSpeedSource(other.getSpeedSource());
        }
        if (other.hasAcceleration()) {
          setAcceleration(other.getAcceleration());
        }
        if (other.hasAccelerationSource()) {
          setAccelerationSource(other.getAccelerationSource());
        }
        if (other.hasSteeringWheelRotationRate()) {
          setSteeringWheelRotationRate(other.getSteeringWheelRotationRate());
        }
        if (other.hasSteeringWheelRotationRateSource()) {
          setSteeringWheelRotationRateSource(other.getSteeringWheelRotationRateSource());
        }
        if (other.hasVehiclePosition()) {
          mergeVehiclePosition(other.getVehiclePosition());
        }
        this.mergeUnknownFields(other.unknownFields);
        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.GlobalUconnectExtPC.PCNotificationPublish parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int notificatonType_ = 0;
      /**
       * <pre>
       *&#47; the event or periodic send the triggered this message
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.NotificationType notificatonType = 1;</code>
       */
      public boolean hasNotificatonType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <pre>
       *&#47; the event or periodic send the triggered this message
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.NotificationType notificatonType = 1;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.NotificationType getNotificatonType() {
        com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.NotificationType result = com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.NotificationType.valueOf(notificatonType_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.NotificationType.PERIODIC_SEND : result;
      }
      /**
       * <pre>
       *&#47; the event or periodic send the triggered this message
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.NotificationType notificatonType = 1;</code>
       */
      public Builder setNotificatonType(com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.NotificationType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        notificatonType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; the event or periodic send the triggered this message
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.NotificationType notificatonType = 1;</code>
       */
      public Builder clearNotificatonType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        notificatonType_ = 0;
        onChanged();
        return this;
      }

      private long signalTimestamp_ ;
      /**
       * <pre>
       *&#47;  The time in milliseconds since Unix Epoch (Jan 1, 1970 00:00:00 UTC) when the signals sent in this message were captured
       * </pre>
       *
       * <code>optional int64 signalTimestamp = 2;</code>
       */
      public boolean hasSignalTimestamp() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <pre>
       *&#47;  The time in milliseconds since Unix Epoch (Jan 1, 1970 00:00:00 UTC) when the signals sent in this message were captured
       * </pre>
       *
       * <code>optional int64 signalTimestamp = 2;</code>
       */
      public long getSignalTimestamp() {
        return signalTimestamp_;
      }
      /**
       * <pre>
       *&#47;  The time in milliseconds since Unix Epoch (Jan 1, 1970 00:00:00 UTC) when the signals sent in this message were captured
       * </pre>
       *
       * <code>optional int64 signalTimestamp = 2;</code>
       */
      public Builder setSignalTimestamp(long value) {
        bitField0_ |= 0x00000002;
        signalTimestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47;  The time in milliseconds since Unix Epoch (Jan 1, 1970 00:00:00 UTC) when the signals sent in this message were captured
       * </pre>
       *
       * <code>optional int64 signalTimestamp = 2;</code>
       */
      public Builder clearSignalTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000002);
        signalTimestamp_ = 0L;
        onChanged();
        return this;
      }

      private int speed_ ;
      /**
       * <pre>
       *&#47; vehicle speed in kph
       * </pre>
       *
       * <code>optional int32 speed = 3;</code>
       */
      public boolean hasSpeed() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <pre>
       *&#47; vehicle speed in kph
       * </pre>
       *
       * <code>optional int32 speed = 3;</code>
       */
      public int getSpeed() {
        return speed_;
      }
      /**
       * <pre>
       *&#47; vehicle speed in kph
       * </pre>
       *
       * <code>optional int32 speed = 3;</code>
       */
      public Builder setSpeed(int value) {
        bitField0_ |= 0x00000004;
        speed_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; vehicle speed in kph
       * </pre>
       *
       * <code>optional int32 speed = 3;</code>
       */
      public Builder clearSpeed() {
        bitField0_ = (bitField0_ & ~0x00000004);
        speed_ = 0;
        onChanged();
        return this;
      }

      private int speedSource_ = 0;
      /**
       * <pre>
       *&#47; validity &amp; source of reported speed
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource speedSource = 4;</code>
       */
      public boolean hasSpeedSource() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <pre>
       *&#47; validity &amp; source of reported speed
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource speedSource = 4;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource getSpeedSource() {
        com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource result = com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource.valueOf(speedSource_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource.SIGNAL_NOT_VALID : result;
      }
      /**
       * <pre>
       *&#47; validity &amp; source of reported speed
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource speedSource = 4;</code>
       */
      public Builder setSpeedSource(com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        speedSource_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; validity &amp; source of reported speed
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource speedSource = 4;</code>
       */
      public Builder clearSpeedSource() {
        bitField0_ = (bitField0_ & ~0x00000008);
        speedSource_ = 0;
        onChanged();
        return this;
      }

      private float acceleration_ ;
      /**
       * <pre>
       *&#47; acceleration in m/s/s. must be sent if notification type is HARSH_ACCELERATION/HARSH_BREAKING
       * </pre>
       *
       * <code>optional float acceleration = 5;</code>
       */
      public boolean hasAcceleration() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <pre>
       *&#47; acceleration in m/s/s. must be sent if notification type is HARSH_ACCELERATION/HARSH_BREAKING
       * </pre>
       *
       * <code>optional float acceleration = 5;</code>
       */
      public float getAcceleration() {
        return acceleration_;
      }
      /**
       * <pre>
       *&#47; acceleration in m/s/s. must be sent if notification type is HARSH_ACCELERATION/HARSH_BREAKING
       * </pre>
       *
       * <code>optional float acceleration = 5;</code>
       */
      public Builder setAcceleration(float value) {
        bitField0_ |= 0x00000010;
        acceleration_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; acceleration in m/s/s. must be sent if notification type is HARSH_ACCELERATION/HARSH_BREAKING
       * </pre>
       *
       * <code>optional float acceleration = 5;</code>
       */
      public Builder clearAcceleration() {
        bitField0_ = (bitField0_ & ~0x00000010);
        acceleration_ = 0F;
        onChanged();
        return this;
      }

      private int accelerationSource_ = 0;
      /**
       * <pre>
       *&#47;  validity &amp; source of reported acceleration
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource accelerationSource = 6;</code>
       */
      public boolean hasAccelerationSource() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <pre>
       *&#47;  validity &amp; source of reported acceleration
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource accelerationSource = 6;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource getAccelerationSource() {
        com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource result = com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource.valueOf(accelerationSource_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource.SIGNAL_NOT_VALID : result;
      }
      /**
       * <pre>
       *&#47;  validity &amp; source of reported acceleration
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource accelerationSource = 6;</code>
       */
      public Builder setAccelerationSource(com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        accelerationSource_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47;  validity &amp; source of reported acceleration
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource accelerationSource = 6;</code>
       */
      public Builder clearAccelerationSource() {
        bitField0_ = (bitField0_ & ~0x00000020);
        accelerationSource_ = 0;
        onChanged();
        return this;
      }

      private float steeringWheelRotationRate_ ;
      /**
       * <pre>
       *&#47; steering wheel rotation in RPM must be sent if notification type is SUDDEN_CORNERING
       * </pre>
       *
       * <code>optional float steeringWheelRotationRate = 7;</code>
       */
      public boolean hasSteeringWheelRotationRate() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <pre>
       *&#47; steering wheel rotation in RPM must be sent if notification type is SUDDEN_CORNERING
       * </pre>
       *
       * <code>optional float steeringWheelRotationRate = 7;</code>
       */
      public float getSteeringWheelRotationRate() {
        return steeringWheelRotationRate_;
      }
      /**
       * <pre>
       *&#47; steering wheel rotation in RPM must be sent if notification type is SUDDEN_CORNERING
       * </pre>
       *
       * <code>optional float steeringWheelRotationRate = 7;</code>
       */
      public Builder setSteeringWheelRotationRate(float value) {
        bitField0_ |= 0x00000040;
        steeringWheelRotationRate_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47; steering wheel rotation in RPM must be sent if notification type is SUDDEN_CORNERING
       * </pre>
       *
       * <code>optional float steeringWheelRotationRate = 7;</code>
       */
      public Builder clearSteeringWheelRotationRate() {
        bitField0_ = (bitField0_ & ~0x00000040);
        steeringWheelRotationRate_ = 0F;
        onChanged();
        return this;
      }

      private int steeringWheelRotationRateSource_ = 0;
      /**
       * <pre>
       *&#47;  validity &amp; source of reported steering wheel rotation rate
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource steeringWheelRotationRateSource = 8;</code>
       */
      public boolean hasSteeringWheelRotationRateSource() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * <pre>
       *&#47;  validity &amp; source of reported steering wheel rotation rate
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource steeringWheelRotationRateSource = 8;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource getSteeringWheelRotationRateSource() {
        com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource result = com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource.valueOf(steeringWheelRotationRateSource_);
        return result == null ? com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource.SIGNAL_NOT_VALID : result;
      }
      /**
       * <pre>
       *&#47;  validity &amp; source of reported steering wheel rotation rate
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource steeringWheelRotationRateSource = 8;</code>
       */
      public Builder setSteeringWheelRotationRateSource(com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.SignalSource value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000080;
        steeringWheelRotationRateSource_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *&#47;  validity &amp; source of reported steering wheel rotation rate
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.SignalSource steeringWheelRotationRateSource = 8;</code>
       */
      public Builder clearSteeringWheelRotationRateSource() {
        bitField0_ = (bitField0_ & ~0x00000080);
        steeringWheelRotationRateSource_ = 0;
        onChanged();
        return this;
      }

      private com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition vehiclePosition_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition, com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePositionOrBuilder> vehiclePositionBuilder_;
      /**
       * <pre>
       *&#47; will not be sent if PCUpdateConfigRequest had userDeclinedGPSSending = true 
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.VehiclePosition vehiclePosition = 9;</code>
       */
      public boolean hasVehiclePosition() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * <pre>
       *&#47; will not be sent if PCUpdateConfigRequest had userDeclinedGPSSending = true 
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.VehiclePosition vehiclePosition = 9;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition getVehiclePosition() {
        if (vehiclePositionBuilder_ == null) {
          return vehiclePosition_ == null ? com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition.getDefaultInstance() : vehiclePosition_;
        } else {
          return vehiclePositionBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       *&#47; will not be sent if PCUpdateConfigRequest had userDeclinedGPSSending = true 
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.VehiclePosition vehiclePosition = 9;</code>
       */
      public Builder setVehiclePosition(com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition value) {
        if (vehiclePositionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          vehiclePosition_ = value;
          onChanged();
        } else {
          vehiclePositionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <pre>
       *&#47; will not be sent if PCUpdateConfigRequest had userDeclinedGPSSending = true 
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.VehiclePosition vehiclePosition = 9;</code>
       */
      public Builder setVehiclePosition(
          com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition.Builder builderForValue) {
        if (vehiclePositionBuilder_ == null) {
          vehiclePosition_ = builderForValue.build();
          onChanged();
        } else {
          vehiclePositionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <pre>
       *&#47; will not be sent if PCUpdateConfigRequest had userDeclinedGPSSending = true 
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.VehiclePosition vehiclePosition = 9;</code>
       */
      public Builder mergeVehiclePosition(com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition value) {
        if (vehiclePositionBuilder_ == null) {
          if (((bitField0_ & 0x00000100) == 0x00000100) &&
              vehiclePosition_ != null &&
              vehiclePosition_ != com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition.getDefaultInstance()) {
            vehiclePosition_ =
              com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition.newBuilder(vehiclePosition_).mergeFrom(value).buildPartial();
          } else {
            vehiclePosition_ = value;
          }
          onChanged();
        } else {
          vehiclePositionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * <pre>
       *&#47; will not be sent if PCUpdateConfigRequest had userDeclinedGPSSending = true 
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.VehiclePosition vehiclePosition = 9;</code>
       */
      public Builder clearVehiclePosition() {
        if (vehiclePositionBuilder_ == null) {
          vehiclePosition_ = null;
          onChanged();
        } else {
          vehiclePositionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }
      /**
       * <pre>
       *&#47; will not be sent if PCUpdateConfigRequest had userDeclinedGPSSending = true 
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.VehiclePosition vehiclePosition = 9;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition.Builder getVehiclePositionBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getVehiclePositionFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *&#47; will not be sent if PCUpdateConfigRequest had userDeclinedGPSSending = true 
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.VehiclePosition vehiclePosition = 9;</code>
       */
      public com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePositionOrBuilder getVehiclePositionOrBuilder() {
        if (vehiclePositionBuilder_ != null) {
          return vehiclePositionBuilder_.getMessageOrBuilder();
        } else {
          return vehiclePosition_ == null ?
              com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition.getDefaultInstance() : vehiclePosition_;
        }
      }
      /**
       * <pre>
       *&#47; will not be sent if PCUpdateConfigRequest had userDeclinedGPSSending = true 
       * </pre>
       *
       * <code>optional .com.fca.uconnect.global.PCNotificationPublish.VehiclePosition vehiclePosition = 9;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition, com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePositionOrBuilder> 
          getVehiclePositionFieldBuilder() {
        if (vehiclePositionBuilder_ == null) {
          vehiclePositionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition, com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePosition.Builder, com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.VehiclePositionOrBuilder>(
                  getVehiclePosition(),
                  getParentForChildren(),
                  isClean());
          vehiclePosition_ = null;
        }
        return vehiclePositionBuilder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


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

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

    public static com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public static final int PCUPDATECONFIGREQUEST_FIELD_NUMBER = 1310;
  /**
   * <code>extend .com.fca.uconnect.global.UconnectAny { ... }</code>
   */
  public static final
    com.google.protobuf.GeneratedMessage.GeneratedExtension<
      com.fca.uconnect.global.GlobalUconnectControl.UconnectAny,
      com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest> pcUpdateConfigRequest = com.google.protobuf.GeneratedMessage
          .newFileScopedGeneratedExtension(
        com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.class,
        com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigRequest.getDefaultInstance());
  public static final int PCUPDATECONFIGRESPONSE_FIELD_NUMBER = 1311;
  /**
   * <code>extend .com.fca.uconnect.global.UconnectAny { ... }</code>
   */
  public static final
    com.google.protobuf.GeneratedMessage.GeneratedExtension<
      com.fca.uconnect.global.GlobalUconnectControl.UconnectAny,
      com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse> pcUpdateConfigResponse = com.google.protobuf.GeneratedMessage
          .newFileScopedGeneratedExtension(
        com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse.class,
        com.fca.uconnect.global.GlobalUconnectExtPC.PCUpdateConfigResponse.getDefaultInstance());
  public static final int PCALERTPUBLISH_FIELD_NUMBER = 1312;
  /**
   * <code>extend .com.fca.uconnect.global.UconnectAny { ... }</code>
   */
  public static final
    com.google.protobuf.GeneratedMessage.GeneratedExtension<
      com.fca.uconnect.global.GlobalUconnectControl.UconnectAny,
      com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish> pcAlertPublish = com.google.protobuf.GeneratedMessage
          .newFileScopedGeneratedExtension(
        com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish.class,
        com.fca.uconnect.global.GlobalUconnectExtPC.PCConfiguredAlertPublish.getDefaultInstance());
  public static final int PCNOTIFICATIONPUBLISH_FIELD_NUMBER = 1313;
  /**
   * <code>extend .com.fca.uconnect.global.UconnectAny { ... }</code>
   */
  public static final
    com.google.protobuf.GeneratedMessage.GeneratedExtension<
      com.fca.uconnect.global.GlobalUconnectControl.UconnectAny,
      com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish> pcNotificationPublish = com.google.protobuf.GeneratedMessage
          .newFileScopedGeneratedExtension(
        com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.class,
        com.fca.uconnect.global.GlobalUconnectExtPC.PCNotificationPublish.getDefaultInstance());
  public static final int PCACKMESSAGE_FIELD_NUMBER = 1314;
  /**
   * <code>extend .com.fca.uconnect.global.UconnectAny { ... }</code>
   */
  public static final
    com.google.protobuf.GeneratedMessage.GeneratedExtension<
      com.fca.uconnect.global.GlobalUconnectControl.UconnectAny,
      com.fca.uconnect.global.GlobalUconnectControl.AckMessage> pcAckMessage = com.google.protobuf.GeneratedMessage
          .newFileScopedGeneratedExtension(
        com.fca.uconnect.global.GlobalUconnectControl.AckMessage.class,
        com.fca.uconnect.global.GlobalUconnectControl.AckMessage.getDefaultInstance());
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_CurfewAlertConfig_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_CurfewAlertConfig_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_SpeedAlertConfig_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_SpeedAlertConfig_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_ValetAlertConfig_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_ValetAlertConfig_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_GeoFenceAlertConfig_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_GeoFenceAlertConfig_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeSDP_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeSDP_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_PCUpdateConfigResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_PCUpdateConfigResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_PCConfiguredAlertPublish_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_PCConfiguredAlertPublish_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_PCNotificationPublish_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_PCNotificationPublish_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_fca_uconnect_global_PCNotificationPublish_VehiclePosition_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_fca_uconnect_global_PCNotificationPublish_VehiclePosition_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\034Global_Uconnect_Ext_PC.proto\022\027com.fca." +
      "uconnect.global\032\035Global_Uconnect_Control" +
      ".proto\032!Global_Uconnect_VehicleInfo.prot" +
      "o\"\316\016\n\025PCUpdateConfigRequest\022]\n\021configTyp" +
      "eVehicle\030\001 \001(\0132@.com.fca.uconnect.global" +
      ".PCUpdateConfigRequest.ConfigTypeVehicle" +
      "H\000\022U\n\rconfigTypeSDP\030\002 \001(\0132<.com.fca.ucon" +
      "nect.global.PCUpdateConfigRequest.Config" +
      "TypeSDPH\000\032\271\n\n\021ConfigTypeVehicle\022h\n\014curfe" +
      "wAlerts\030\001 \003(\0132R.com.fca.uconnect.global.",
      "PCUpdateConfigRequest.ConfigTypeVehicle." +
      "CurfewAlertConfig\022\037\n\027updateCurfewAlertCo" +
      "nfig\030\002 \001(\010\022f\n\013speedAlerts\030\003 \003(\0132Q.com.fc" +
      "a.uconnect.global.PCUpdateConfigRequest." +
      "ConfigTypeVehicle.SpeedAlertConfig\022\036\n\026up" +
      "dateSpeedAlertConfig\030\004 \001(\010\022e\n\nvaletAlert" +
      "\030\005 \001(\0132Q.com.fca.uconnect.global.PCUpdat" +
      "eConfigRequest.ConfigTypeVehicle.ValetAl" +
      "ertConfig\022\036\n\026updateValetAlertConfig\030\006 \001(" +
      "\010\022l\n\016geoFenceAlerts\030\007 \003(\0132T.com.fca.ucon",
      "nect.global.PCUpdateConfigRequest.Config" +
      "TypeVehicle.GeoFenceAlertConfig\022!\n\031updat" +
      "eGeoFenceAlertConfig\030\010 \001(\010\032e\n\021CurfewAler" +
      "tConfig\022\022\n\nidentifier\030\001 \001(\t\022\021\n\tbeginTime" +
      "\030\002 \001(\005\022\017\n\007endTime\030\003 \001(\005\022\030\n\020activeDaysOfW" +
      "eek\030\004 \003(\005\032\306\001\n\020SpeedAlertConfig\022\022\n\nidenti" +
      "fier\030\001 \001(\t\022\021\n\tbeginTime\030\002 \001(\005\022\017\n\007endTime" +
      "\030\003 \001(\005\022\030\n\020activeDaysOfWeek\030\004 \003(\005\022!\n\031thre" +
      "sholdAbovePostedSpeed\030\005 \001(\005\022\"\n\032threshold" +
      "PostedSpeedAbsent\030\006 \001(\005\022\031\n\021thresholdAbso",
      "lute\030\007 \001(\005\032\243\002\n\020ValetAlertConfig\022\022\n\nident" +
      "ifier\030\001 \001(\t\022\021\n\tbeginTime\030\002 \001(\005\022\017\n\007endTim" +
      "e\030\003 \001(\005\022\030\n\020activeDaysOfWeek\030\004 \003(\005\022\023\n\013ale" +
      "rtRadius\030\005 \001(\002\022z\n\017radiusUnitsEnum\030\006 \001(\0162" +
      "a.com.fca.uconnect.global.PCUpdateConfig" +
      "Request.ConfigTypeVehicle.ValetAlertConf" +
      "ig.RadiusUnitsEnum\",\n\017RadiusUnitsEnum\022\t\n" +
      "\005MILES\020\000\022\016\n\nKILOMETERS\020\001\032\242\001\n\023GeoFenceAle" +
      "rtConfig\022\022\n\nidentifier\030\001 \001(\t\022\021\n\tbeginTim" +
      "e\030\002 \001(\005\022\017\n\007endTime\030\003 \001(\005\022\030\n\020activeDaysOf",
      "Week\030\004 \003(\005\0229\n\016boundaryPoints\030\005 \003(\0132!.com" +
      ".fca.uconnect.global.Location\032\270\002\n\rConfig" +
      "TypeSDP\022\035\n\025enablePositionSending\030\001 \001(\010\022 " +
      "\n\030positionSendingFrequency\030\002 \001(\005\022&\n\036posi" +
      "tionSendingActiveFrequency\030\004 \001(\005\022\032\n\022enab" +
      "leSpeedSending\030\005 \001(\010\022\035\n\025speedSendingFreq" +
      "uency\030\006 \001(\005\022\"\n\032harshAccelerationThreshol" +
      "d\030\007 \001(\002\022\035\n\025harshBrakingThreshold\030\010 \001(\002\022 " +
      "\n\030suddenCorneringThreshold\030\t \001(\002\022\036\n\026user" +
      "DeclinedGPSSending\030\n \001(\010B\010\n\006config\"\337\001\n\026P",
      "CUpdateConfigResponse\022N\n\010response\030\001 \001(\0162" +
      "<.com.fca.uconnect.global.PCUpdateConfig" +
      "Response.ResponseEnum\022\023\n\013isTransient\030\002 \001" +
      "(\010\022\031\n\021failureReasonCode\030\003 \001(\005\"E\n\014Respons" +
      "eEnum\022\013\n\007SUCCESS\020\000\022\013\n\007FAILURE\020\001\022\033\n\027CONFI" +
      "G_TYPE_NOT_ALLOWED\020\003\"\243\005\n\030PCConfiguredAle" +
      "rtPublish\022o\n\021curfewAlertConfig\030\001 \001(\0132R.c" +
      "om.fca.uconnect.global.PCUpdateConfigReq" +
      "uest.ConfigTypeVehicle.CurfewAlertConfig" +
      "H\000\022m\n\020speedAlertConfig\030\002 \001(\0132Q.com.fca.u",
      "connect.global.PCUpdateConfigRequest.Con" +
      "figTypeVehicle.SpeedAlertConfigH\000\022m\n\020val" +
      "etAlertConfig\030\003 \001(\0132Q.com.fca.uconnect.g" +
      "lobal.PCUpdateConfigRequest.ConfigTypeVe" +
      "hicle.ValetAlertConfigH\000\022s\n\023geoFenceAler" +
      "tConfig\030\004 \001(\0132T.com.fca.uconnect.global." +
      "PCUpdateConfigRequest.ConfigTypeVehicle." +
      "GeoFenceAlertConfigH\000\0228\n\reventLocation\030\005" +
      " \001(\0132!.com.fca.uconnect.global.Location\022" +
      "\031\n\021eventTimestampUTC\030\006 \001(\003\022\032\n\022eventTimeU",
      "TCOffset\030\007 \001(\005\022\024\n\014vehicleSpeed\030\010 \001(\005\022\023\n\013" +
      "postedSpeed\030\t \001(\005\022\030\n\020postedSpeedValid\030\n " +
      "\001(\010B\r\n\013eventSource\"\225\t\n\025PCNotificationPub" +
      "lish\022X\n\017notificatonType\030\001 \001(\0162?.com.fca." +
      "uconnect.global.PCNotificationPublish.No" +
      "tificationType\022\027\n\017signalTimestamp\030\002 \001(\003\022" +
      "\r\n\005speed\030\003 \001(\005\022P\n\013speedSource\030\004 \001(\0162;.co" +
      "m.fca.uconnect.global.PCNotificationPubl" +
      "ish.SignalSource\022\024\n\014acceleration\030\005 \001(\002\022W" +
      "\n\022accelerationSource\030\006 \001(\0162;.com.fca.uco",
      "nnect.global.PCNotificationPublish.Signa" +
      "lSource\022!\n\031steeringWheelRotationRate\030\007 \001" +
      "(\002\022d\n\037steeringWheelRotationRateSource\030\010 " +
      "\001(\0162;.com.fca.uconnect.global.PCNotifica" +
      "tionPublish.SignalSource\022W\n\017vehiclePosit" +
      "ion\030\t \001(\0132>.com.fca.uconnect.global.PCNo" +
      "tificationPublish.VehiclePosition\032\321\002\n\017Ve" +
      "hiclePosition\022:\n\017vehiclePosition\030\001 \001(\0132!" +
      ".com.fca.uconnect.global.Location\022Z\n\025veh" +
      "iclePositionSource\030\002 \001(\0162;.com.fca.uconn",
      "ect.global.PCNotificationPublish.SignalS" +
      "ource\022\031\n\021positionEncrypted\030\003 \001(\010\022\024\n\014gpsT" +
      "imestamp\030\004 \001(\005\022\030\n\020vehicleDirection\030\005 \001(\005" +
      "\022[\n\026vehicleDirectionSource\030\006 \001(\0162;.com.f" +
      "ca.uconnect.global.PCNotificationPublish" +
      ".SignalSource\"\202\001\n\020NotificationType\022\021\n\rPE" +
      "RIODIC_SEND\020\000\022\026\n\022HARSH_ACCELERATION\020\001\022\022\n" +
      "\016HARSH_BREAKING\020\002\022\024\n\020SUDDEN_CORNERING\020\003\022" +
      "\031\n\025SEATBELT_NOT_FASTENED\020\004\"~\n\014SignalSour" +
      "ce\022\024\n\020SIGNAL_NOT_VALID\020\000\022\007\n\003CAN\020\001\022\025\n\021TBM",
      "_ACCELEROMETER\020\002\022\013\n\007TBM_GPS\020\003\022\021\n\rTBM_GPS" +
      "_DELTA\020\004\022\030\n\024SIGNAL_NOT_PERMITTED\020\005:t\n\025pc" +
      "UpdateConfigRequest\022$.com.fca.uconnect.g" +
      "lobal.UconnectAny\030\236\n \001(\0132..com.fca.uconn" +
      "ect.global.PCUpdateConfigRequest:v\n\026pcUp" +
      "dateConfigResponse\022$.com.fca.uconnect.gl" +
      "obal.UconnectAny\030\237\n \001(\0132/.com.fca.uconne" +
      "ct.global.PCUpdateConfigResponse:p\n\016pcAl" +
      "ertPublish\022$.com.fca.uconnect.global.Uco" +
      "nnectAny\030\240\n \001(\01321.com.fca.uconnect.globa",
      "l.PCConfiguredAlertPublish:t\n\025pcNotifica" +
      "tionPublish\022$.com.fca.uconnect.global.Uc" +
      "onnectAny\030\241\n \001(\0132..com.fca.uconnect.glob" +
      "al.PCNotificationPublish:`\n\014pcAckMessage" +
      "\022$.com.fca.uconnect.global.UconnectAny\030\242" +
      "\n \001(\0132#.com.fca.uconnect.global.AckMessa" +
      "geP\000P\001"
    };
    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.GlobalUconnectControl.getDescriptor(),
          com.fca.uconnect.global.GlobalUconnectVehicleInfo.getDescriptor(),
        }, assigner);
    internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_descriptor,
        new java.lang.String[] { "ConfigTypeVehicle", "ConfigTypeSDP", "Config", });
    internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_descriptor =
      internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_descriptor.getNestedTypes().get(0);
    internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_descriptor,
        new java.lang.String[] { "CurfewAlerts", "UpdateCurfewAlertConfig", "SpeedAlerts", "UpdateSpeedAlertConfig", "ValetAlert", "UpdateValetAlertConfig", "GeoFenceAlerts", "UpdateGeoFenceAlertConfig", });
    internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_CurfewAlertConfig_descriptor =
      internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_descriptor.getNestedTypes().get(0);
    internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_CurfewAlertConfig_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_CurfewAlertConfig_descriptor,
        new java.lang.String[] { "Identifier", "BeginTime", "EndTime", "ActiveDaysOfWeek", });
    internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_SpeedAlertConfig_descriptor =
      internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_descriptor.getNestedTypes().get(1);
    internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_SpeedAlertConfig_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_SpeedAlertConfig_descriptor,
        new java.lang.String[] { "Identifier", "BeginTime", "EndTime", "ActiveDaysOfWeek", "ThresholdAbovePostedSpeed", "ThresholdPostedSpeedAbsent", "ThresholdAbsolute", });
    internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_ValetAlertConfig_descriptor =
      internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_descriptor.getNestedTypes().get(2);
    internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_ValetAlertConfig_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_ValetAlertConfig_descriptor,
        new java.lang.String[] { "Identifier", "BeginTime", "EndTime", "ActiveDaysOfWeek", "AlertRadius", "RadiusUnitsEnum", });
    internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_GeoFenceAlertConfig_descriptor =
      internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_descriptor.getNestedTypes().get(3);
    internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_GeoFenceAlertConfig_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeVehicle_GeoFenceAlertConfig_descriptor,
        new java.lang.String[] { "Identifier", "BeginTime", "EndTime", "ActiveDaysOfWeek", "BoundaryPoints", });
    internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeSDP_descriptor =
      internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_descriptor.getNestedTypes().get(1);
    internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeSDP_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_PCUpdateConfigRequest_ConfigTypeSDP_descriptor,
        new java.lang.String[] { "EnablePositionSending", "PositionSendingFrequency", "PositionSendingActiveFrequency", "EnableSpeedSending", "SpeedSendingFrequency", "HarshAccelerationThreshold", "HarshBrakingThreshold", "SuddenCorneringThreshold", "UserDeclinedGPSSending", });
    internal_static_com_fca_uconnect_global_PCUpdateConfigResponse_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_com_fca_uconnect_global_PCUpdateConfigResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_PCUpdateConfigResponse_descriptor,
        new java.lang.String[] { "Response", "IsTransient", "FailureReasonCode", });
    internal_static_com_fca_uconnect_global_PCConfiguredAlertPublish_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_com_fca_uconnect_global_PCConfiguredAlertPublish_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_PCConfiguredAlertPublish_descriptor,
        new java.lang.String[] { "CurfewAlertConfig", "SpeedAlertConfig", "ValetAlertConfig", "GeoFenceAlertConfig", "EventLocation", "EventTimestampUTC", "EventTimeUTCOffset", "VehicleSpeed", "PostedSpeed", "PostedSpeedValid", "EventSource", });
    internal_static_com_fca_uconnect_global_PCNotificationPublish_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_com_fca_uconnect_global_PCNotificationPublish_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_PCNotificationPublish_descriptor,
        new java.lang.String[] { "NotificatonType", "SignalTimestamp", "Speed", "SpeedSource", "Acceleration", "AccelerationSource", "SteeringWheelRotationRate", "SteeringWheelRotationRateSource", "VehiclePosition", });
    internal_static_com_fca_uconnect_global_PCNotificationPublish_VehiclePosition_descriptor =
      internal_static_com_fca_uconnect_global_PCNotificationPublish_descriptor.getNestedTypes().get(0);
    internal_static_com_fca_uconnect_global_PCNotificationPublish_VehiclePosition_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_fca_uconnect_global_PCNotificationPublish_VehiclePosition_descriptor,
        new java.lang.String[] { "VehiclePosition", "VehiclePositionSource", "PositionEncrypted", "GpsTimestamp", "VehicleDirection", "VehicleDirectionSource", });
    pcUpdateConfigRequest.internalInit(descriptor.getExtensions().get(0));
    pcUpdateConfigResponse.internalInit(descriptor.getExtensions().get(1));
    pcAlertPublish.internalInit(descriptor.getExtensions().get(2));
    pcNotificationPublish.internalInit(descriptor.getExtensions().get(3));
    pcAckMessage.internalInit(descriptor.getExtensions().get(4));
    com.fca.uconnect.global.GlobalUconnectControl.getDescriptor();
    com.fca.uconnect.global.GlobalUconnectVehicleInfo.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
