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

package nodomain.freeyourgadget.gadgetbridge.proto.igpsport;

public final class Back {
  private Back() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  /**
   * Protobuf enum {@code BACK_SERVICE_TYPE}
   */
  public enum BACK_SERVICE_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_BACK_SERVICE_TYPE_NONE = 0;</code>
     */
    enum_BACK_SERVICE_TYPE_NONE(0),
    /**
     * <code>enum_BACK_SERVICE_TYPE_MAIN = 1;</code>
     */
    enum_BACK_SERVICE_TYPE_MAIN(1),
    /**
     * <code>enum_BACK_SERVICE_TYPE_WEATHER = 2;</code>
     */
    enum_BACK_SERVICE_TYPE_WEATHER(2),
    /**
     * <code>enum_BACK_SERVICE_TYPE_AIR_PRESSURE = 3;</code>
     */
    enum_BACK_SERVICE_TYPE_AIR_PRESSURE(3),
    /**
     * <code>enum_BACK_SERVICE_TYPE_ELEVATION = 4;</code>
     */
    enum_BACK_SERVICE_TYPE_ELEVATION(4),
    /**
     * <code>enum_BACK_SERVICE_TYPE_EPHEMERIS = 5;</code>
     */
    enum_BACK_SERVICE_TYPE_EPHEMERIS(5),
    /**
     * <code>enum_BACK_SERVICE_TYPE_TIME = 6;</code>
     */
    enum_BACK_SERVICE_TYPE_TIME(6),
    ;

    /**
     * <code>enum_BACK_SERVICE_TYPE_NONE = 0;</code>
     */
    public static final int enum_BACK_SERVICE_TYPE_NONE_VALUE = 0;
    /**
     * <code>enum_BACK_SERVICE_TYPE_MAIN = 1;</code>
     */
    public static final int enum_BACK_SERVICE_TYPE_MAIN_VALUE = 1;
    /**
     * <code>enum_BACK_SERVICE_TYPE_WEATHER = 2;</code>
     */
    public static final int enum_BACK_SERVICE_TYPE_WEATHER_VALUE = 2;
    /**
     * <code>enum_BACK_SERVICE_TYPE_AIR_PRESSURE = 3;</code>
     */
    public static final int enum_BACK_SERVICE_TYPE_AIR_PRESSURE_VALUE = 3;
    /**
     * <code>enum_BACK_SERVICE_TYPE_ELEVATION = 4;</code>
     */
    public static final int enum_BACK_SERVICE_TYPE_ELEVATION_VALUE = 4;
    /**
     * <code>enum_BACK_SERVICE_TYPE_EPHEMERIS = 5;</code>
     */
    public static final int enum_BACK_SERVICE_TYPE_EPHEMERIS_VALUE = 5;
    /**
     * <code>enum_BACK_SERVICE_TYPE_TIME = 6;</code>
     */
    public static final int enum_BACK_SERVICE_TYPE_TIME_VALUE = 6;


    @java.lang.Override
    public final int getNumber() {
      return value;
    }

    /**
     * @param value The number of the enum to look for.
     * @return The enum associated with the given number.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static BACK_SERVICE_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static BACK_SERVICE_TYPE forNumber(int value) {
      switch (value) {
        case 0: return enum_BACK_SERVICE_TYPE_NONE;
        case 1: return enum_BACK_SERVICE_TYPE_MAIN;
        case 2: return enum_BACK_SERVICE_TYPE_WEATHER;
        case 3: return enum_BACK_SERVICE_TYPE_AIR_PRESSURE;
        case 4: return enum_BACK_SERVICE_TYPE_ELEVATION;
        case 5: return enum_BACK_SERVICE_TYPE_EPHEMERIS;
        case 6: return enum_BACK_SERVICE_TYPE_TIME;
        default: return null;
      }
    }

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

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return BACK_SERVICE_TYPEVerifier.INSTANCE;
    }

    private static final class BACK_SERVICE_TYPEVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new BACK_SERVICE_TYPEVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return BACK_SERVICE_TYPE.forNumber(number) != null;
            }
          };

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:BACK_SERVICE_TYPE)
  }

  /**
   * Protobuf enum {@code BACK_OPERATE_TYPE}
   */
  public enum BACK_OPERATE_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_BACK_OPERATE_TYPE_NONE = 0;</code>
     */
    enum_BACK_OPERATE_TYPE_NONE(0),
    /**
     * <code>enum_BACK_OPERATE_TYPE_GET = 1;</code>
     */
    enum_BACK_OPERATE_TYPE_GET(1),
    /**
     * <code>enum_BACK_OPERATE_TYPE_SEND = 2;</code>
     */
    enum_BACK_OPERATE_TYPE_SEND(2),
    ;

    /**
     * <code>enum_BACK_OPERATE_TYPE_NONE = 0;</code>
     */
    public static final int enum_BACK_OPERATE_TYPE_NONE_VALUE = 0;
    /**
     * <code>enum_BACK_OPERATE_TYPE_GET = 1;</code>
     */
    public static final int enum_BACK_OPERATE_TYPE_GET_VALUE = 1;
    /**
     * <code>enum_BACK_OPERATE_TYPE_SEND = 2;</code>
     */
    public static final int enum_BACK_OPERATE_TYPE_SEND_VALUE = 2;


    @java.lang.Override
    public final int getNumber() {
      return value;
    }

    /**
     * @param value The number of the enum to look for.
     * @return The enum associated with the given number.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static BACK_OPERATE_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static BACK_OPERATE_TYPE forNumber(int value) {
      switch (value) {
        case 0: return enum_BACK_OPERATE_TYPE_NONE;
        case 1: return enum_BACK_OPERATE_TYPE_GET;
        case 2: return enum_BACK_OPERATE_TYPE_SEND;
        default: return null;
      }
    }

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

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return BACK_OPERATE_TYPEVerifier.INSTANCE;
    }

    private static final class BACK_OPERATE_TYPEVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new BACK_OPERATE_TYPEVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return BACK_OPERATE_TYPE.forNumber(number) != null;
            }
          };

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:BACK_OPERATE_TYPE)
  }

  /**
   * Protobuf enum {@code GPS_TYPE}
   */
  public enum GPS_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_GPS_TYPE_INVALID = 0;</code>
     */
    enum_GPS_TYPE_INVALID(0),
    /**
     * <code>enum_GPS_TYPE_GPS = 1;</code>
     */
    enum_GPS_TYPE_GPS(1),
    /**
     * <code>enum_GPS_TYPE_BD = 2;</code>
     */
    enum_GPS_TYPE_BD(2),
    /**
     * <code>enum_GPS_TYPE_GLONASS = 3;</code>
     */
    enum_GPS_TYPE_GLONASS(3),
    /**
     * <code>enum_GPS_TYPE_GALILEO = 4;</code>
     */
    enum_GPS_TYPE_GALILEO(4),
    ;

    /**
     * <code>enum_GPS_TYPE_INVALID = 0;</code>
     */
    public static final int enum_GPS_TYPE_INVALID_VALUE = 0;
    /**
     * <code>enum_GPS_TYPE_GPS = 1;</code>
     */
    public static final int enum_GPS_TYPE_GPS_VALUE = 1;
    /**
     * <code>enum_GPS_TYPE_BD = 2;</code>
     */
    public static final int enum_GPS_TYPE_BD_VALUE = 2;
    /**
     * <code>enum_GPS_TYPE_GLONASS = 3;</code>
     */
    public static final int enum_GPS_TYPE_GLONASS_VALUE = 3;
    /**
     * <code>enum_GPS_TYPE_GALILEO = 4;</code>
     */
    public static final int enum_GPS_TYPE_GALILEO_VALUE = 4;


    @java.lang.Override
    public final int getNumber() {
      return value;
    }

    /**
     * @param value The number of the enum to look for.
     * @return The enum associated with the given number.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static GPS_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static GPS_TYPE forNumber(int value) {
      switch (value) {
        case 0: return enum_GPS_TYPE_INVALID;
        case 1: return enum_GPS_TYPE_GPS;
        case 2: return enum_GPS_TYPE_BD;
        case 3: return enum_GPS_TYPE_GLONASS;
        case 4: return enum_GPS_TYPE_GALILEO;
        default: return null;
      }
    }

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

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return GPS_TYPEVerifier.INSTANCE;
    }

    private static final class GPS_TYPEVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new GPS_TYPEVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return GPS_TYPE.forNumber(number) != null;
            }
          };

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:GPS_TYPE)
  }

  /**
   * Protobuf enum {@code AGPS_TYPE}
   */
  public enum AGPS_TYPE
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>enum_AGPS_FILE_TYPE_INVALID = 0;</code>
     */
    enum_AGPS_FILE_TYPE_INVALID(0),
    /**
     * <code>enum_AGPS_FILE_TYPE_ONLINE = 1;</code>
     */
    enum_AGPS_FILE_TYPE_ONLINE(1),
    /**
     * <code>enum_AGPS_FILE_TYPE_ANO_OFFLINE = 2;</code>
     */
    enum_AGPS_FILE_TYPE_ANO_OFFLINE(2),
    /**
     * <code>enum_AGPS_FILE_TYPE_ALM_OFFLINE = 3;</code>
     */
    enum_AGPS_FILE_TYPE_ALM_OFFLINE(3),
    ;

    /**
     * <code>enum_AGPS_FILE_TYPE_INVALID = 0;</code>
     */
    public static final int enum_AGPS_FILE_TYPE_INVALID_VALUE = 0;
    /**
     * <code>enum_AGPS_FILE_TYPE_ONLINE = 1;</code>
     */
    public static final int enum_AGPS_FILE_TYPE_ONLINE_VALUE = 1;
    /**
     * <code>enum_AGPS_FILE_TYPE_ANO_OFFLINE = 2;</code>
     */
    public static final int enum_AGPS_FILE_TYPE_ANO_OFFLINE_VALUE = 2;
    /**
     * <code>enum_AGPS_FILE_TYPE_ALM_OFFLINE = 3;</code>
     */
    public static final int enum_AGPS_FILE_TYPE_ALM_OFFLINE_VALUE = 3;


    @java.lang.Override
    public final int getNumber() {
      return value;
    }

    /**
     * @param value The number of the enum to look for.
     * @return The enum associated with the given number.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static AGPS_TYPE valueOf(int value) {
      return forNumber(value);
    }

    public static AGPS_TYPE forNumber(int value) {
      switch (value) {
        case 0: return enum_AGPS_FILE_TYPE_INVALID;
        case 1: return enum_AGPS_FILE_TYPE_ONLINE;
        case 2: return enum_AGPS_FILE_TYPE_ANO_OFFLINE;
        case 3: return enum_AGPS_FILE_TYPE_ALM_OFFLINE;
        default: return null;
      }
    }

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

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return AGPS_TYPEVerifier.INSTANCE;
    }

    private static final class AGPS_TYPEVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new AGPS_TYPEVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return AGPS_TYPE.forNumber(number) != null;
            }
          };

    private final int value;

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

    // @@protoc_insertion_point(enum_scope:AGPS_TYPE)
  }

  public interface weather_three_days_data_messageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:weather_three_days_data_message)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional uint32 weather_index = 1;</code>
     * @return Whether the weatherIndex field is set.
     */
    boolean hasWeatherIndex();
    /**
     * <code>optional uint32 weather_index = 1;</code>
     * @return The weatherIndex.
     */
    int getWeatherIndex();

    /**
     * <code>optional int32 max_temp = 2;</code>
     * @return Whether the maxTemp field is set.
     */
    boolean hasMaxTemp();
    /**
     * <code>optional int32 max_temp = 2;</code>
     * @return The maxTemp.
     */
    int getMaxTemp();

    /**
     * <code>optional int32 min_temp = 3;</code>
     * @return Whether the minTemp field is set.
     */
    boolean hasMinTemp();
    /**
     * <code>optional int32 min_temp = 3;</code>
     * @return The minTemp.
     */
    int getMinTemp();

    /**
     * <code>optional uint32 rain_prob = 4;</code>
     * @return Whether the rainProb field is set.
     */
    boolean hasRainProb();
    /**
     * <code>optional uint32 rain_prob = 4;</code>
     * @return The rainProb.
     */
    int getRainProb();

    /**
     * <code>optional string date = 5;</code>
     * @return Whether the date field is set.
     */
    boolean hasDate();
    /**
     * <code>optional string date = 5;</code>
     * @return The date.
     */
    java.lang.String getDate();
    /**
     * <code>optional string date = 5;</code>
     * @return The bytes for date.
     */
    com.google.protobuf.ByteString
        getDateBytes();
  }
  /**
   * Protobuf type {@code weather_three_days_data_message}
   */
  public  static final class weather_three_days_data_message extends
      com.google.protobuf.GeneratedMessageLite<
          weather_three_days_data_message, weather_three_days_data_message.Builder> implements
      // @@protoc_insertion_point(message_implements:weather_three_days_data_message)
      weather_three_days_data_messageOrBuilder {
    private weather_three_days_data_message() {
      date_ = "";
    }
    private int bitField0_;
    public static final int WEATHER_INDEX_FIELD_NUMBER = 1;
    private int weatherIndex_;
    /**
     * <code>optional uint32 weather_index = 1;</code>
     * @return Whether the weatherIndex field is set.
     */
    @java.lang.Override
    public boolean hasWeatherIndex() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional uint32 weather_index = 1;</code>
     * @return The weatherIndex.
     */
    @java.lang.Override
    public int getWeatherIndex() {
      return weatherIndex_;
    }
    /**
     * <code>optional uint32 weather_index = 1;</code>
     * @param value The weatherIndex to set.
     */
    private void setWeatherIndex(int value) {
      bitField0_ |= 0x00000001;
      weatherIndex_ = value;
    }
    /**
     * <code>optional uint32 weather_index = 1;</code>
     */
    private void clearWeatherIndex() {
      bitField0_ = (bitField0_ & ~0x00000001);
      weatherIndex_ = 0;
    }

    public static final int MAX_TEMP_FIELD_NUMBER = 2;
    private int maxTemp_;
    /**
     * <code>optional int32 max_temp = 2;</code>
     * @return Whether the maxTemp field is set.
     */
    @java.lang.Override
    public boolean hasMaxTemp() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional int32 max_temp = 2;</code>
     * @return The maxTemp.
     */
    @java.lang.Override
    public int getMaxTemp() {
      return maxTemp_;
    }
    /**
     * <code>optional int32 max_temp = 2;</code>
     * @param value The maxTemp to set.
     */
    private void setMaxTemp(int value) {
      bitField0_ |= 0x00000002;
      maxTemp_ = value;
    }
    /**
     * <code>optional int32 max_temp = 2;</code>
     */
    private void clearMaxTemp() {
      bitField0_ = (bitField0_ & ~0x00000002);
      maxTemp_ = 0;
    }

    public static final int MIN_TEMP_FIELD_NUMBER = 3;
    private int minTemp_;
    /**
     * <code>optional int32 min_temp = 3;</code>
     * @return Whether the minTemp field is set.
     */
    @java.lang.Override
    public boolean hasMinTemp() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional int32 min_temp = 3;</code>
     * @return The minTemp.
     */
    @java.lang.Override
    public int getMinTemp() {
      return minTemp_;
    }
    /**
     * <code>optional int32 min_temp = 3;</code>
     * @param value The minTemp to set.
     */
    private void setMinTemp(int value) {
      bitField0_ |= 0x00000004;
      minTemp_ = value;
    }
    /**
     * <code>optional int32 min_temp = 3;</code>
     */
    private void clearMinTemp() {
      bitField0_ = (bitField0_ & ~0x00000004);
      minTemp_ = 0;
    }

    public static final int RAIN_PROB_FIELD_NUMBER = 4;
    private int rainProb_;
    /**
     * <code>optional uint32 rain_prob = 4;</code>
     * @return Whether the rainProb field is set.
     */
    @java.lang.Override
    public boolean hasRainProb() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional uint32 rain_prob = 4;</code>
     * @return The rainProb.
     */
    @java.lang.Override
    public int getRainProb() {
      return rainProb_;
    }
    /**
     * <code>optional uint32 rain_prob = 4;</code>
     * @param value The rainProb to set.
     */
    private void setRainProb(int value) {
      bitField0_ |= 0x00000008;
      rainProb_ = value;
    }
    /**
     * <code>optional uint32 rain_prob = 4;</code>
     */
    private void clearRainProb() {
      bitField0_ = (bitField0_ & ~0x00000008);
      rainProb_ = 0;
    }

    public static final int DATE_FIELD_NUMBER = 5;
    private java.lang.String date_;
    /**
     * <code>optional string date = 5;</code>
     * @return Whether the date field is set.
     */
    @java.lang.Override
    public boolean hasDate() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional string date = 5;</code>
     * @return The date.
     */
    @java.lang.Override
    public java.lang.String getDate() {
      return date_;
    }
    /**
     * <code>optional string date = 5;</code>
     * @return The bytes for date.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDateBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(date_);
    }
    /**
     * <code>optional string date = 5;</code>
     * @param value The date to set.
     */
    private void setDate(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000010;
      date_ = value;
    }
    /**
     * <code>optional string date = 5;</code>
     */
    private void clearDate() {
      bitField0_ = (bitField0_ & ~0x00000010);
      date_ = getDefaultInstance().getDate();
    }
    /**
     * <code>optional string date = 5;</code>
     * @param value The bytes for date to set.
     */
    private void setDateBytes(
        com.google.protobuf.ByteString value) {
      date_ = value.toStringUtf8();
      bitField0_ |= 0x00000010;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code weather_three_days_data_message}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message, Builder> implements
        // @@protoc_insertion_point(builder_implements:weather_three_days_data_message)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_messageOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional uint32 weather_index = 1;</code>
       * @return Whether the weatherIndex field is set.
       */
      @java.lang.Override
      public boolean hasWeatherIndex() {
        return instance.hasWeatherIndex();
      }
      /**
       * <code>optional uint32 weather_index = 1;</code>
       * @return The weatherIndex.
       */
      @java.lang.Override
      public int getWeatherIndex() {
        return instance.getWeatherIndex();
      }
      /**
       * <code>optional uint32 weather_index = 1;</code>
       * @param value The weatherIndex to set.
       * @return This builder for chaining.
       */
      public Builder setWeatherIndex(int value) {
        copyOnWrite();
        instance.setWeatherIndex(value);
        return this;
      }
      /**
       * <code>optional uint32 weather_index = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearWeatherIndex() {
        copyOnWrite();
        instance.clearWeatherIndex();
        return this;
      }

      /**
       * <code>optional int32 max_temp = 2;</code>
       * @return Whether the maxTemp field is set.
       */
      @java.lang.Override
      public boolean hasMaxTemp() {
        return instance.hasMaxTemp();
      }
      /**
       * <code>optional int32 max_temp = 2;</code>
       * @return The maxTemp.
       */
      @java.lang.Override
      public int getMaxTemp() {
        return instance.getMaxTemp();
      }
      /**
       * <code>optional int32 max_temp = 2;</code>
       * @param value The maxTemp to set.
       * @return This builder for chaining.
       */
      public Builder setMaxTemp(int value) {
        copyOnWrite();
        instance.setMaxTemp(value);
        return this;
      }
      /**
       * <code>optional int32 max_temp = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearMaxTemp() {
        copyOnWrite();
        instance.clearMaxTemp();
        return this;
      }

      /**
       * <code>optional int32 min_temp = 3;</code>
       * @return Whether the minTemp field is set.
       */
      @java.lang.Override
      public boolean hasMinTemp() {
        return instance.hasMinTemp();
      }
      /**
       * <code>optional int32 min_temp = 3;</code>
       * @return The minTemp.
       */
      @java.lang.Override
      public int getMinTemp() {
        return instance.getMinTemp();
      }
      /**
       * <code>optional int32 min_temp = 3;</code>
       * @param value The minTemp to set.
       * @return This builder for chaining.
       */
      public Builder setMinTemp(int value) {
        copyOnWrite();
        instance.setMinTemp(value);
        return this;
      }
      /**
       * <code>optional int32 min_temp = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearMinTemp() {
        copyOnWrite();
        instance.clearMinTemp();
        return this;
      }

      /**
       * <code>optional uint32 rain_prob = 4;</code>
       * @return Whether the rainProb field is set.
       */
      @java.lang.Override
      public boolean hasRainProb() {
        return instance.hasRainProb();
      }
      /**
       * <code>optional uint32 rain_prob = 4;</code>
       * @return The rainProb.
       */
      @java.lang.Override
      public int getRainProb() {
        return instance.getRainProb();
      }
      /**
       * <code>optional uint32 rain_prob = 4;</code>
       * @param value The rainProb to set.
       * @return This builder for chaining.
       */
      public Builder setRainProb(int value) {
        copyOnWrite();
        instance.setRainProb(value);
        return this;
      }
      /**
       * <code>optional uint32 rain_prob = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearRainProb() {
        copyOnWrite();
        instance.clearRainProb();
        return this;
      }

      /**
       * <code>optional string date = 5;</code>
       * @return Whether the date field is set.
       */
      @java.lang.Override
      public boolean hasDate() {
        return instance.hasDate();
      }
      /**
       * <code>optional string date = 5;</code>
       * @return The date.
       */
      @java.lang.Override
      public java.lang.String getDate() {
        return instance.getDate();
      }
      /**
       * <code>optional string date = 5;</code>
       * @return The bytes for date.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getDateBytes() {
        return instance.getDateBytes();
      }
      /**
       * <code>optional string date = 5;</code>
       * @param value The date to set.
       * @return This builder for chaining.
       */
      public Builder setDate(
          java.lang.String value) {
        copyOnWrite();
        instance.setDate(value);
        return this;
      }
      /**
       * <code>optional string date = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearDate() {
        copyOnWrite();
        instance.clearDate();
        return this;
      }
      /**
       * <code>optional string date = 5;</code>
       * @param value The bytes for date to set.
       * @return This builder for chaining.
       */
      public Builder setDateBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setDateBytes(value);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:weather_three_days_data_message)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "weatherIndex_",
              "maxTemp_",
              "minTemp_",
              "rainProb_",
              "date_",
            };
            java.lang.String info =
                "\u0001\u0005\u0000\u0001\u0001\u0005\u0005\u0000\u0000\u0000\u0001\u100b\u0000\u0002" +
                "\u1004\u0001\u0003\u1004\u0002\u0004\u100b\u0003\u0005\u1008\u0004";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:weather_three_days_data_message)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message DEFAULT_INSTANCE;
    static {
      weather_three_days_data_message defaultInstance = new weather_three_days_data_message();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        weather_three_days_data_message.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<weather_three_days_data_message> PARSER;

    public static com.google.protobuf.Parser<weather_three_days_data_message> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface weather_current_data_messageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:weather_current_data_message)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional uint32 cur_temperature = 1;</code>
     * @return Whether the curTemperature field is set.
     */
    boolean hasCurTemperature();
    /**
     * <code>optional uint32 cur_temperature = 1;</code>
     * @return The curTemperature.
     */
    int getCurTemperature();

    /**
     * <code>optional uint32 cur_weather = 2;</code>
     * @return Whether the curWeather field is set.
     */
    boolean hasCurWeather();
    /**
     * <code>optional uint32 cur_weather = 2;</code>
     * @return The curWeather.
     */
    int getCurWeather();

    /**
     * <code>optional int32 cur_day_max_temp = 3;</code>
     * @return Whether the curDayMaxTemp field is set.
     */
    boolean hasCurDayMaxTemp();
    /**
     * <code>optional int32 cur_day_max_temp = 3;</code>
     * @return The curDayMaxTemp.
     */
    int getCurDayMaxTemp();

    /**
     * <code>optional int32 cur_day_min_temp = 4;</code>
     * @return Whether the curDayMinTemp field is set.
     */
    boolean hasCurDayMinTemp();
    /**
     * <code>optional int32 cur_day_min_temp = 4;</code>
     * @return The curDayMinTemp.
     */
    int getCurDayMinTemp();

    /**
     * <code>optional string time = 5;</code>
     * @return Whether the time field is set.
     */
    boolean hasTime();
    /**
     * <code>optional string time = 5;</code>
     * @return The time.
     */
    java.lang.String getTime();
    /**
     * <code>optional string time = 5;</code>
     * @return The bytes for time.
     */
    com.google.protobuf.ByteString
        getTimeBytes();

    /**
     * <code>optional string wind_deg = 6;</code>
     * @return Whether the windDeg field is set.
     */
    boolean hasWindDeg();
    /**
     * <code>optional string wind_deg = 6;</code>
     * @return The windDeg.
     */
    java.lang.String getWindDeg();
    /**
     * <code>optional string wind_deg = 6;</code>
     * @return The bytes for windDeg.
     */
    com.google.protobuf.ByteString
        getWindDegBytes();

    /**
     * <code>optional string wind_spd = 7;</code>
     * @return Whether the windSpd field is set.
     */
    boolean hasWindSpd();
    /**
     * <code>optional string wind_spd = 7;</code>
     * @return The windSpd.
     */
    java.lang.String getWindSpd();
    /**
     * <code>optional string wind_spd = 7;</code>
     * @return The bytes for windSpd.
     */
    com.google.protobuf.ByteString
        getWindSpdBytes();
  }
  /**
   * Protobuf type {@code weather_current_data_message}
   */
  public  static final class weather_current_data_message extends
      com.google.protobuf.GeneratedMessageLite<
          weather_current_data_message, weather_current_data_message.Builder> implements
      // @@protoc_insertion_point(message_implements:weather_current_data_message)
      weather_current_data_messageOrBuilder {
    private weather_current_data_message() {
      time_ = "";
      windDeg_ = "";
      windSpd_ = "";
    }
    private int bitField0_;
    public static final int CUR_TEMPERATURE_FIELD_NUMBER = 1;
    private int curTemperature_;
    /**
     * <code>optional uint32 cur_temperature = 1;</code>
     * @return Whether the curTemperature field is set.
     */
    @java.lang.Override
    public boolean hasCurTemperature() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional uint32 cur_temperature = 1;</code>
     * @return The curTemperature.
     */
    @java.lang.Override
    public int getCurTemperature() {
      return curTemperature_;
    }
    /**
     * <code>optional uint32 cur_temperature = 1;</code>
     * @param value The curTemperature to set.
     */
    private void setCurTemperature(int value) {
      bitField0_ |= 0x00000001;
      curTemperature_ = value;
    }
    /**
     * <code>optional uint32 cur_temperature = 1;</code>
     */
    private void clearCurTemperature() {
      bitField0_ = (bitField0_ & ~0x00000001);
      curTemperature_ = 0;
    }

    public static final int CUR_WEATHER_FIELD_NUMBER = 2;
    private int curWeather_;
    /**
     * <code>optional uint32 cur_weather = 2;</code>
     * @return Whether the curWeather field is set.
     */
    @java.lang.Override
    public boolean hasCurWeather() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional uint32 cur_weather = 2;</code>
     * @return The curWeather.
     */
    @java.lang.Override
    public int getCurWeather() {
      return curWeather_;
    }
    /**
     * <code>optional uint32 cur_weather = 2;</code>
     * @param value The curWeather to set.
     */
    private void setCurWeather(int value) {
      bitField0_ |= 0x00000002;
      curWeather_ = value;
    }
    /**
     * <code>optional uint32 cur_weather = 2;</code>
     */
    private void clearCurWeather() {
      bitField0_ = (bitField0_ & ~0x00000002);
      curWeather_ = 0;
    }

    public static final int CUR_DAY_MAX_TEMP_FIELD_NUMBER = 3;
    private int curDayMaxTemp_;
    /**
     * <code>optional int32 cur_day_max_temp = 3;</code>
     * @return Whether the curDayMaxTemp field is set.
     */
    @java.lang.Override
    public boolean hasCurDayMaxTemp() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional int32 cur_day_max_temp = 3;</code>
     * @return The curDayMaxTemp.
     */
    @java.lang.Override
    public int getCurDayMaxTemp() {
      return curDayMaxTemp_;
    }
    /**
     * <code>optional int32 cur_day_max_temp = 3;</code>
     * @param value The curDayMaxTemp to set.
     */
    private void setCurDayMaxTemp(int value) {
      bitField0_ |= 0x00000004;
      curDayMaxTemp_ = value;
    }
    /**
     * <code>optional int32 cur_day_max_temp = 3;</code>
     */
    private void clearCurDayMaxTemp() {
      bitField0_ = (bitField0_ & ~0x00000004);
      curDayMaxTemp_ = 0;
    }

    public static final int CUR_DAY_MIN_TEMP_FIELD_NUMBER = 4;
    private int curDayMinTemp_;
    /**
     * <code>optional int32 cur_day_min_temp = 4;</code>
     * @return Whether the curDayMinTemp field is set.
     */
    @java.lang.Override
    public boolean hasCurDayMinTemp() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional int32 cur_day_min_temp = 4;</code>
     * @return The curDayMinTemp.
     */
    @java.lang.Override
    public int getCurDayMinTemp() {
      return curDayMinTemp_;
    }
    /**
     * <code>optional int32 cur_day_min_temp = 4;</code>
     * @param value The curDayMinTemp to set.
     */
    private void setCurDayMinTemp(int value) {
      bitField0_ |= 0x00000008;
      curDayMinTemp_ = value;
    }
    /**
     * <code>optional int32 cur_day_min_temp = 4;</code>
     */
    private void clearCurDayMinTemp() {
      bitField0_ = (bitField0_ & ~0x00000008);
      curDayMinTemp_ = 0;
    }

    public static final int TIME_FIELD_NUMBER = 5;
    private java.lang.String time_;
    /**
     * <code>optional string time = 5;</code>
     * @return Whether the time field is set.
     */
    @java.lang.Override
    public boolean hasTime() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional string time = 5;</code>
     * @return The time.
     */
    @java.lang.Override
    public java.lang.String getTime() {
      return time_;
    }
    /**
     * <code>optional string time = 5;</code>
     * @return The bytes for time.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTimeBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(time_);
    }
    /**
     * <code>optional string time = 5;</code>
     * @param value The time to set.
     */
    private void setTime(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000010;
      time_ = value;
    }
    /**
     * <code>optional string time = 5;</code>
     */
    private void clearTime() {
      bitField0_ = (bitField0_ & ~0x00000010);
      time_ = getDefaultInstance().getTime();
    }
    /**
     * <code>optional string time = 5;</code>
     * @param value The bytes for time to set.
     */
    private void setTimeBytes(
        com.google.protobuf.ByteString value) {
      time_ = value.toStringUtf8();
      bitField0_ |= 0x00000010;
    }

    public static final int WIND_DEG_FIELD_NUMBER = 6;
    private java.lang.String windDeg_;
    /**
     * <code>optional string wind_deg = 6;</code>
     * @return Whether the windDeg field is set.
     */
    @java.lang.Override
    public boolean hasWindDeg() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional string wind_deg = 6;</code>
     * @return The windDeg.
     */
    @java.lang.Override
    public java.lang.String getWindDeg() {
      return windDeg_;
    }
    /**
     * <code>optional string wind_deg = 6;</code>
     * @return The bytes for windDeg.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getWindDegBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(windDeg_);
    }
    /**
     * <code>optional string wind_deg = 6;</code>
     * @param value The windDeg to set.
     */
    private void setWindDeg(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000020;
      windDeg_ = value;
    }
    /**
     * <code>optional string wind_deg = 6;</code>
     */
    private void clearWindDeg() {
      bitField0_ = (bitField0_ & ~0x00000020);
      windDeg_ = getDefaultInstance().getWindDeg();
    }
    /**
     * <code>optional string wind_deg = 6;</code>
     * @param value The bytes for windDeg to set.
     */
    private void setWindDegBytes(
        com.google.protobuf.ByteString value) {
      windDeg_ = value.toStringUtf8();
      bitField0_ |= 0x00000020;
    }

    public static final int WIND_SPD_FIELD_NUMBER = 7;
    private java.lang.String windSpd_;
    /**
     * <code>optional string wind_spd = 7;</code>
     * @return Whether the windSpd field is set.
     */
    @java.lang.Override
    public boolean hasWindSpd() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional string wind_spd = 7;</code>
     * @return The windSpd.
     */
    @java.lang.Override
    public java.lang.String getWindSpd() {
      return windSpd_;
    }
    /**
     * <code>optional string wind_spd = 7;</code>
     * @return The bytes for windSpd.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getWindSpdBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(windSpd_);
    }
    /**
     * <code>optional string wind_spd = 7;</code>
     * @param value The windSpd to set.
     */
    private void setWindSpd(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000040;
      windSpd_ = value;
    }
    /**
     * <code>optional string wind_spd = 7;</code>
     */
    private void clearWindSpd() {
      bitField0_ = (bitField0_ & ~0x00000040);
      windSpd_ = getDefaultInstance().getWindSpd();
    }
    /**
     * <code>optional string wind_spd = 7;</code>
     * @param value The bytes for windSpd to set.
     */
    private void setWindSpdBytes(
        com.google.protobuf.ByteString value) {
      windSpd_ = value.toStringUtf8();
      bitField0_ |= 0x00000040;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code weather_current_data_message}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message, Builder> implements
        // @@protoc_insertion_point(builder_implements:weather_current_data_message)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_messageOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional uint32 cur_temperature = 1;</code>
       * @return Whether the curTemperature field is set.
       */
      @java.lang.Override
      public boolean hasCurTemperature() {
        return instance.hasCurTemperature();
      }
      /**
       * <code>optional uint32 cur_temperature = 1;</code>
       * @return The curTemperature.
       */
      @java.lang.Override
      public int getCurTemperature() {
        return instance.getCurTemperature();
      }
      /**
       * <code>optional uint32 cur_temperature = 1;</code>
       * @param value The curTemperature to set.
       * @return This builder for chaining.
       */
      public Builder setCurTemperature(int value) {
        copyOnWrite();
        instance.setCurTemperature(value);
        return this;
      }
      /**
       * <code>optional uint32 cur_temperature = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearCurTemperature() {
        copyOnWrite();
        instance.clearCurTemperature();
        return this;
      }

      /**
       * <code>optional uint32 cur_weather = 2;</code>
       * @return Whether the curWeather field is set.
       */
      @java.lang.Override
      public boolean hasCurWeather() {
        return instance.hasCurWeather();
      }
      /**
       * <code>optional uint32 cur_weather = 2;</code>
       * @return The curWeather.
       */
      @java.lang.Override
      public int getCurWeather() {
        return instance.getCurWeather();
      }
      /**
       * <code>optional uint32 cur_weather = 2;</code>
       * @param value The curWeather to set.
       * @return This builder for chaining.
       */
      public Builder setCurWeather(int value) {
        copyOnWrite();
        instance.setCurWeather(value);
        return this;
      }
      /**
       * <code>optional uint32 cur_weather = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearCurWeather() {
        copyOnWrite();
        instance.clearCurWeather();
        return this;
      }

      /**
       * <code>optional int32 cur_day_max_temp = 3;</code>
       * @return Whether the curDayMaxTemp field is set.
       */
      @java.lang.Override
      public boolean hasCurDayMaxTemp() {
        return instance.hasCurDayMaxTemp();
      }
      /**
       * <code>optional int32 cur_day_max_temp = 3;</code>
       * @return The curDayMaxTemp.
       */
      @java.lang.Override
      public int getCurDayMaxTemp() {
        return instance.getCurDayMaxTemp();
      }
      /**
       * <code>optional int32 cur_day_max_temp = 3;</code>
       * @param value The curDayMaxTemp to set.
       * @return This builder for chaining.
       */
      public Builder setCurDayMaxTemp(int value) {
        copyOnWrite();
        instance.setCurDayMaxTemp(value);
        return this;
      }
      /**
       * <code>optional int32 cur_day_max_temp = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearCurDayMaxTemp() {
        copyOnWrite();
        instance.clearCurDayMaxTemp();
        return this;
      }

      /**
       * <code>optional int32 cur_day_min_temp = 4;</code>
       * @return Whether the curDayMinTemp field is set.
       */
      @java.lang.Override
      public boolean hasCurDayMinTemp() {
        return instance.hasCurDayMinTemp();
      }
      /**
       * <code>optional int32 cur_day_min_temp = 4;</code>
       * @return The curDayMinTemp.
       */
      @java.lang.Override
      public int getCurDayMinTemp() {
        return instance.getCurDayMinTemp();
      }
      /**
       * <code>optional int32 cur_day_min_temp = 4;</code>
       * @param value The curDayMinTemp to set.
       * @return This builder for chaining.
       */
      public Builder setCurDayMinTemp(int value) {
        copyOnWrite();
        instance.setCurDayMinTemp(value);
        return this;
      }
      /**
       * <code>optional int32 cur_day_min_temp = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearCurDayMinTemp() {
        copyOnWrite();
        instance.clearCurDayMinTemp();
        return this;
      }

      /**
       * <code>optional string time = 5;</code>
       * @return Whether the time field is set.
       */
      @java.lang.Override
      public boolean hasTime() {
        return instance.hasTime();
      }
      /**
       * <code>optional string time = 5;</code>
       * @return The time.
       */
      @java.lang.Override
      public java.lang.String getTime() {
        return instance.getTime();
      }
      /**
       * <code>optional string time = 5;</code>
       * @return The bytes for time.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getTimeBytes() {
        return instance.getTimeBytes();
      }
      /**
       * <code>optional string time = 5;</code>
       * @param value The time to set.
       * @return This builder for chaining.
       */
      public Builder setTime(
          java.lang.String value) {
        copyOnWrite();
        instance.setTime(value);
        return this;
      }
      /**
       * <code>optional string time = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearTime() {
        copyOnWrite();
        instance.clearTime();
        return this;
      }
      /**
       * <code>optional string time = 5;</code>
       * @param value The bytes for time to set.
       * @return This builder for chaining.
       */
      public Builder setTimeBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTimeBytes(value);
        return this;
      }

      /**
       * <code>optional string wind_deg = 6;</code>
       * @return Whether the windDeg field is set.
       */
      @java.lang.Override
      public boolean hasWindDeg() {
        return instance.hasWindDeg();
      }
      /**
       * <code>optional string wind_deg = 6;</code>
       * @return The windDeg.
       */
      @java.lang.Override
      public java.lang.String getWindDeg() {
        return instance.getWindDeg();
      }
      /**
       * <code>optional string wind_deg = 6;</code>
       * @return The bytes for windDeg.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getWindDegBytes() {
        return instance.getWindDegBytes();
      }
      /**
       * <code>optional string wind_deg = 6;</code>
       * @param value The windDeg to set.
       * @return This builder for chaining.
       */
      public Builder setWindDeg(
          java.lang.String value) {
        copyOnWrite();
        instance.setWindDeg(value);
        return this;
      }
      /**
       * <code>optional string wind_deg = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearWindDeg() {
        copyOnWrite();
        instance.clearWindDeg();
        return this;
      }
      /**
       * <code>optional string wind_deg = 6;</code>
       * @param value The bytes for windDeg to set.
       * @return This builder for chaining.
       */
      public Builder setWindDegBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setWindDegBytes(value);
        return this;
      }

      /**
       * <code>optional string wind_spd = 7;</code>
       * @return Whether the windSpd field is set.
       */
      @java.lang.Override
      public boolean hasWindSpd() {
        return instance.hasWindSpd();
      }
      /**
       * <code>optional string wind_spd = 7;</code>
       * @return The windSpd.
       */
      @java.lang.Override
      public java.lang.String getWindSpd() {
        return instance.getWindSpd();
      }
      /**
       * <code>optional string wind_spd = 7;</code>
       * @return The bytes for windSpd.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getWindSpdBytes() {
        return instance.getWindSpdBytes();
      }
      /**
       * <code>optional string wind_spd = 7;</code>
       * @param value The windSpd to set.
       * @return This builder for chaining.
       */
      public Builder setWindSpd(
          java.lang.String value) {
        copyOnWrite();
        instance.setWindSpd(value);
        return this;
      }
      /**
       * <code>optional string wind_spd = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearWindSpd() {
        copyOnWrite();
        instance.clearWindSpd();
        return this;
      }
      /**
       * <code>optional string wind_spd = 7;</code>
       * @param value The bytes for windSpd to set.
       * @return This builder for chaining.
       */
      public Builder setWindSpdBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setWindSpdBytes(value);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:weather_current_data_message)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "curTemperature_",
              "curWeather_",
              "curDayMaxTemp_",
              "curDayMinTemp_",
              "time_",
              "windDeg_",
              "windSpd_",
            };
            java.lang.String info =
                "\u0001\u0007\u0000\u0001\u0001\u0007\u0007\u0000\u0000\u0000\u0001\u100b\u0000\u0002" +
                "\u100b\u0001\u0003\u1004\u0002\u0004\u1004\u0003\u0005\u1008\u0004\u0006\u1008\u0005" +
                "\u0007\u1008\u0006";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:weather_current_data_message)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message DEFAULT_INSTANCE;
    static {
      weather_current_data_message defaultInstance = new weather_current_data_message();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        weather_current_data_message.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<weather_current_data_message> PARSER;

    public static com.google.protobuf.Parser<weather_current_data_message> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface weather_three_hour_data_memsageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:weather_three_hour_data_memsage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional uint32 wather_index = 1;</code>
     * @return Whether the watherIndex field is set.
     */
    boolean hasWatherIndex();
    /**
     * <code>optional uint32 wather_index = 1;</code>
     * @return The watherIndex.
     */
    int getWatherIndex();

    /**
     * <code>optional int32 temp = 2;</code>
     * @return Whether the temp field is set.
     */
    boolean hasTemp();
    /**
     * <code>optional int32 temp = 2;</code>
     * @return The temp.
     */
    int getTemp();

    /**
     * <code>optional uint32 rain_prob = 3;</code>
     * @return Whether the rainProb field is set.
     */
    boolean hasRainProb();
    /**
     * <code>optional uint32 rain_prob = 3;</code>
     * @return The rainProb.
     */
    int getRainProb();

    /**
     * <code>optional string time = 4;</code>
     * @return Whether the time field is set.
     */
    boolean hasTime();
    /**
     * <code>optional string time = 4;</code>
     * @return The time.
     */
    java.lang.String getTime();
    /**
     * <code>optional string time = 4;</code>
     * @return The bytes for time.
     */
    com.google.protobuf.ByteString
        getTimeBytes();

    /**
     * <code>optional string wind_deg = 5;</code>
     * @return Whether the windDeg field is set.
     */
    boolean hasWindDeg();
    /**
     * <code>optional string wind_deg = 5;</code>
     * @return The windDeg.
     */
    java.lang.String getWindDeg();
    /**
     * <code>optional string wind_deg = 5;</code>
     * @return The bytes for windDeg.
     */
    com.google.protobuf.ByteString
        getWindDegBytes();

    /**
     * <code>optional string wind_spd = 6;</code>
     * @return Whether the windSpd field is set.
     */
    boolean hasWindSpd();
    /**
     * <code>optional string wind_spd = 6;</code>
     * @return The windSpd.
     */
    java.lang.String getWindSpd();
    /**
     * <code>optional string wind_spd = 6;</code>
     * @return The bytes for windSpd.
     */
    com.google.protobuf.ByteString
        getWindSpdBytes();
  }
  /**
   * Protobuf type {@code weather_three_hour_data_memsage}
   */
  public  static final class weather_three_hour_data_memsage extends
      com.google.protobuf.GeneratedMessageLite<
          weather_three_hour_data_memsage, weather_three_hour_data_memsage.Builder> implements
      // @@protoc_insertion_point(message_implements:weather_three_hour_data_memsage)
      weather_three_hour_data_memsageOrBuilder {
    private weather_three_hour_data_memsage() {
      time_ = "";
      windDeg_ = "";
      windSpd_ = "";
    }
    private int bitField0_;
    public static final int WATHER_INDEX_FIELD_NUMBER = 1;
    private int watherIndex_;
    /**
     * <code>optional uint32 wather_index = 1;</code>
     * @return Whether the watherIndex field is set.
     */
    @java.lang.Override
    public boolean hasWatherIndex() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional uint32 wather_index = 1;</code>
     * @return The watherIndex.
     */
    @java.lang.Override
    public int getWatherIndex() {
      return watherIndex_;
    }
    /**
     * <code>optional uint32 wather_index = 1;</code>
     * @param value The watherIndex to set.
     */
    private void setWatherIndex(int value) {
      bitField0_ |= 0x00000001;
      watherIndex_ = value;
    }
    /**
     * <code>optional uint32 wather_index = 1;</code>
     */
    private void clearWatherIndex() {
      bitField0_ = (bitField0_ & ~0x00000001);
      watherIndex_ = 0;
    }

    public static final int TEMP_FIELD_NUMBER = 2;
    private int temp_;
    /**
     * <code>optional int32 temp = 2;</code>
     * @return Whether the temp field is set.
     */
    @java.lang.Override
    public boolean hasTemp() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional int32 temp = 2;</code>
     * @return The temp.
     */
    @java.lang.Override
    public int getTemp() {
      return temp_;
    }
    /**
     * <code>optional int32 temp = 2;</code>
     * @param value The temp to set.
     */
    private void setTemp(int value) {
      bitField0_ |= 0x00000002;
      temp_ = value;
    }
    /**
     * <code>optional int32 temp = 2;</code>
     */
    private void clearTemp() {
      bitField0_ = (bitField0_ & ~0x00000002);
      temp_ = 0;
    }

    public static final int RAIN_PROB_FIELD_NUMBER = 3;
    private int rainProb_;
    /**
     * <code>optional uint32 rain_prob = 3;</code>
     * @return Whether the rainProb field is set.
     */
    @java.lang.Override
    public boolean hasRainProb() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional uint32 rain_prob = 3;</code>
     * @return The rainProb.
     */
    @java.lang.Override
    public int getRainProb() {
      return rainProb_;
    }
    /**
     * <code>optional uint32 rain_prob = 3;</code>
     * @param value The rainProb to set.
     */
    private void setRainProb(int value) {
      bitField0_ |= 0x00000004;
      rainProb_ = value;
    }
    /**
     * <code>optional uint32 rain_prob = 3;</code>
     */
    private void clearRainProb() {
      bitField0_ = (bitField0_ & ~0x00000004);
      rainProb_ = 0;
    }

    public static final int TIME_FIELD_NUMBER = 4;
    private java.lang.String time_;
    /**
     * <code>optional string time = 4;</code>
     * @return Whether the time field is set.
     */
    @java.lang.Override
    public boolean hasTime() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional string time = 4;</code>
     * @return The time.
     */
    @java.lang.Override
    public java.lang.String getTime() {
      return time_;
    }
    /**
     * <code>optional string time = 4;</code>
     * @return The bytes for time.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTimeBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(time_);
    }
    /**
     * <code>optional string time = 4;</code>
     * @param value The time to set.
     */
    private void setTime(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000008;
      time_ = value;
    }
    /**
     * <code>optional string time = 4;</code>
     */
    private void clearTime() {
      bitField0_ = (bitField0_ & ~0x00000008);
      time_ = getDefaultInstance().getTime();
    }
    /**
     * <code>optional string time = 4;</code>
     * @param value The bytes for time to set.
     */
    private void setTimeBytes(
        com.google.protobuf.ByteString value) {
      time_ = value.toStringUtf8();
      bitField0_ |= 0x00000008;
    }

    public static final int WIND_DEG_FIELD_NUMBER = 5;
    private java.lang.String windDeg_;
    /**
     * <code>optional string wind_deg = 5;</code>
     * @return Whether the windDeg field is set.
     */
    @java.lang.Override
    public boolean hasWindDeg() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional string wind_deg = 5;</code>
     * @return The windDeg.
     */
    @java.lang.Override
    public java.lang.String getWindDeg() {
      return windDeg_;
    }
    /**
     * <code>optional string wind_deg = 5;</code>
     * @return The bytes for windDeg.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getWindDegBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(windDeg_);
    }
    /**
     * <code>optional string wind_deg = 5;</code>
     * @param value The windDeg to set.
     */
    private void setWindDeg(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000010;
      windDeg_ = value;
    }
    /**
     * <code>optional string wind_deg = 5;</code>
     */
    private void clearWindDeg() {
      bitField0_ = (bitField0_ & ~0x00000010);
      windDeg_ = getDefaultInstance().getWindDeg();
    }
    /**
     * <code>optional string wind_deg = 5;</code>
     * @param value The bytes for windDeg to set.
     */
    private void setWindDegBytes(
        com.google.protobuf.ByteString value) {
      windDeg_ = value.toStringUtf8();
      bitField0_ |= 0x00000010;
    }

    public static final int WIND_SPD_FIELD_NUMBER = 6;
    private java.lang.String windSpd_;
    /**
     * <code>optional string wind_spd = 6;</code>
     * @return Whether the windSpd field is set.
     */
    @java.lang.Override
    public boolean hasWindSpd() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional string wind_spd = 6;</code>
     * @return The windSpd.
     */
    @java.lang.Override
    public java.lang.String getWindSpd() {
      return windSpd_;
    }
    /**
     * <code>optional string wind_spd = 6;</code>
     * @return The bytes for windSpd.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getWindSpdBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(windSpd_);
    }
    /**
     * <code>optional string wind_spd = 6;</code>
     * @param value The windSpd to set.
     */
    private void setWindSpd(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000020;
      windSpd_ = value;
    }
    /**
     * <code>optional string wind_spd = 6;</code>
     */
    private void clearWindSpd() {
      bitField0_ = (bitField0_ & ~0x00000020);
      windSpd_ = getDefaultInstance().getWindSpd();
    }
    /**
     * <code>optional string wind_spd = 6;</code>
     * @param value The bytes for windSpd to set.
     */
    private void setWindSpdBytes(
        com.google.protobuf.ByteString value) {
      windSpd_ = value.toStringUtf8();
      bitField0_ |= 0x00000020;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code weather_three_hour_data_memsage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage, Builder> implements
        // @@protoc_insertion_point(builder_implements:weather_three_hour_data_memsage)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsageOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional uint32 wather_index = 1;</code>
       * @return Whether the watherIndex field is set.
       */
      @java.lang.Override
      public boolean hasWatherIndex() {
        return instance.hasWatherIndex();
      }
      /**
       * <code>optional uint32 wather_index = 1;</code>
       * @return The watherIndex.
       */
      @java.lang.Override
      public int getWatherIndex() {
        return instance.getWatherIndex();
      }
      /**
       * <code>optional uint32 wather_index = 1;</code>
       * @param value The watherIndex to set.
       * @return This builder for chaining.
       */
      public Builder setWatherIndex(int value) {
        copyOnWrite();
        instance.setWatherIndex(value);
        return this;
      }
      /**
       * <code>optional uint32 wather_index = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearWatherIndex() {
        copyOnWrite();
        instance.clearWatherIndex();
        return this;
      }

      /**
       * <code>optional int32 temp = 2;</code>
       * @return Whether the temp field is set.
       */
      @java.lang.Override
      public boolean hasTemp() {
        return instance.hasTemp();
      }
      /**
       * <code>optional int32 temp = 2;</code>
       * @return The temp.
       */
      @java.lang.Override
      public int getTemp() {
        return instance.getTemp();
      }
      /**
       * <code>optional int32 temp = 2;</code>
       * @param value The temp to set.
       * @return This builder for chaining.
       */
      public Builder setTemp(int value) {
        copyOnWrite();
        instance.setTemp(value);
        return this;
      }
      /**
       * <code>optional int32 temp = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTemp() {
        copyOnWrite();
        instance.clearTemp();
        return this;
      }

      /**
       * <code>optional uint32 rain_prob = 3;</code>
       * @return Whether the rainProb field is set.
       */
      @java.lang.Override
      public boolean hasRainProb() {
        return instance.hasRainProb();
      }
      /**
       * <code>optional uint32 rain_prob = 3;</code>
       * @return The rainProb.
       */
      @java.lang.Override
      public int getRainProb() {
        return instance.getRainProb();
      }
      /**
       * <code>optional uint32 rain_prob = 3;</code>
       * @param value The rainProb to set.
       * @return This builder for chaining.
       */
      public Builder setRainProb(int value) {
        copyOnWrite();
        instance.setRainProb(value);
        return this;
      }
      /**
       * <code>optional uint32 rain_prob = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRainProb() {
        copyOnWrite();
        instance.clearRainProb();
        return this;
      }

      /**
       * <code>optional string time = 4;</code>
       * @return Whether the time field is set.
       */
      @java.lang.Override
      public boolean hasTime() {
        return instance.hasTime();
      }
      /**
       * <code>optional string time = 4;</code>
       * @return The time.
       */
      @java.lang.Override
      public java.lang.String getTime() {
        return instance.getTime();
      }
      /**
       * <code>optional string time = 4;</code>
       * @return The bytes for time.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getTimeBytes() {
        return instance.getTimeBytes();
      }
      /**
       * <code>optional string time = 4;</code>
       * @param value The time to set.
       * @return This builder for chaining.
       */
      public Builder setTime(
          java.lang.String value) {
        copyOnWrite();
        instance.setTime(value);
        return this;
      }
      /**
       * <code>optional string time = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearTime() {
        copyOnWrite();
        instance.clearTime();
        return this;
      }
      /**
       * <code>optional string time = 4;</code>
       * @param value The bytes for time to set.
       * @return This builder for chaining.
       */
      public Builder setTimeBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTimeBytes(value);
        return this;
      }

      /**
       * <code>optional string wind_deg = 5;</code>
       * @return Whether the windDeg field is set.
       */
      @java.lang.Override
      public boolean hasWindDeg() {
        return instance.hasWindDeg();
      }
      /**
       * <code>optional string wind_deg = 5;</code>
       * @return The windDeg.
       */
      @java.lang.Override
      public java.lang.String getWindDeg() {
        return instance.getWindDeg();
      }
      /**
       * <code>optional string wind_deg = 5;</code>
       * @return The bytes for windDeg.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getWindDegBytes() {
        return instance.getWindDegBytes();
      }
      /**
       * <code>optional string wind_deg = 5;</code>
       * @param value The windDeg to set.
       * @return This builder for chaining.
       */
      public Builder setWindDeg(
          java.lang.String value) {
        copyOnWrite();
        instance.setWindDeg(value);
        return this;
      }
      /**
       * <code>optional string wind_deg = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearWindDeg() {
        copyOnWrite();
        instance.clearWindDeg();
        return this;
      }
      /**
       * <code>optional string wind_deg = 5;</code>
       * @param value The bytes for windDeg to set.
       * @return This builder for chaining.
       */
      public Builder setWindDegBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setWindDegBytes(value);
        return this;
      }

      /**
       * <code>optional string wind_spd = 6;</code>
       * @return Whether the windSpd field is set.
       */
      @java.lang.Override
      public boolean hasWindSpd() {
        return instance.hasWindSpd();
      }
      /**
       * <code>optional string wind_spd = 6;</code>
       * @return The windSpd.
       */
      @java.lang.Override
      public java.lang.String getWindSpd() {
        return instance.getWindSpd();
      }
      /**
       * <code>optional string wind_spd = 6;</code>
       * @return The bytes for windSpd.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getWindSpdBytes() {
        return instance.getWindSpdBytes();
      }
      /**
       * <code>optional string wind_spd = 6;</code>
       * @param value The windSpd to set.
       * @return This builder for chaining.
       */
      public Builder setWindSpd(
          java.lang.String value) {
        copyOnWrite();
        instance.setWindSpd(value);
        return this;
      }
      /**
       * <code>optional string wind_spd = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearWindSpd() {
        copyOnWrite();
        instance.clearWindSpd();
        return this;
      }
      /**
       * <code>optional string wind_spd = 6;</code>
       * @param value The bytes for windSpd to set.
       * @return This builder for chaining.
       */
      public Builder setWindSpdBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setWindSpdBytes(value);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:weather_three_hour_data_memsage)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "watherIndex_",
              "temp_",
              "rainProb_",
              "time_",
              "windDeg_",
              "windSpd_",
            };
            java.lang.String info =
                "\u0001\u0006\u0000\u0001\u0001\u0006\u0006\u0000\u0000\u0000\u0001\u100b\u0000\u0002" +
                "\u1004\u0001\u0003\u100b\u0002\u0004\u1008\u0003\u0005\u1008\u0004\u0006\u1008\u0005" +
                "";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:weather_three_hour_data_memsage)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage DEFAULT_INSTANCE;
    static {
      weather_three_hour_data_memsage defaultInstance = new weather_three_hour_data_memsage();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        weather_three_hour_data_memsage.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<weather_three_hour_data_memsage> PARSER;

    public static com.google.protobuf.Parser<weather_three_hour_data_memsage> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface air_pressure_data_messageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:air_pressure_data_message)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional uint32 air_pressure = 1;</code>
     * @return Whether the airPressure field is set.
     */
    boolean hasAirPressure();
    /**
     * <code>optional uint32 air_pressure = 1;</code>
     * @return The airPressure.
     */
    int getAirPressure();
  }
  /**
   * Protobuf type {@code air_pressure_data_message}
   */
  public  static final class air_pressure_data_message extends
      com.google.protobuf.GeneratedMessageLite<
          air_pressure_data_message, air_pressure_data_message.Builder> implements
      // @@protoc_insertion_point(message_implements:air_pressure_data_message)
      air_pressure_data_messageOrBuilder {
    private air_pressure_data_message() {
    }
    private int bitField0_;
    public static final int AIR_PRESSURE_FIELD_NUMBER = 1;
    private int airPressure_;
    /**
     * <code>optional uint32 air_pressure = 1;</code>
     * @return Whether the airPressure field is set.
     */
    @java.lang.Override
    public boolean hasAirPressure() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional uint32 air_pressure = 1;</code>
     * @return The airPressure.
     */
    @java.lang.Override
    public int getAirPressure() {
      return airPressure_;
    }
    /**
     * <code>optional uint32 air_pressure = 1;</code>
     * @param value The airPressure to set.
     */
    private void setAirPressure(int value) {
      bitField0_ |= 0x00000001;
      airPressure_ = value;
    }
    /**
     * <code>optional uint32 air_pressure = 1;</code>
     */
    private void clearAirPressure() {
      bitField0_ = (bitField0_ & ~0x00000001);
      airPressure_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code air_pressure_data_message}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message, Builder> implements
        // @@protoc_insertion_point(builder_implements:air_pressure_data_message)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_messageOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional uint32 air_pressure = 1;</code>
       * @return Whether the airPressure field is set.
       */
      @java.lang.Override
      public boolean hasAirPressure() {
        return instance.hasAirPressure();
      }
      /**
       * <code>optional uint32 air_pressure = 1;</code>
       * @return The airPressure.
       */
      @java.lang.Override
      public int getAirPressure() {
        return instance.getAirPressure();
      }
      /**
       * <code>optional uint32 air_pressure = 1;</code>
       * @param value The airPressure to set.
       * @return This builder for chaining.
       */
      public Builder setAirPressure(int value) {
        copyOnWrite();
        instance.setAirPressure(value);
        return this;
      }
      /**
       * <code>optional uint32 air_pressure = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearAirPressure() {
        copyOnWrite();
        instance.clearAirPressure();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:air_pressure_data_message)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "airPressure_",
            };
            java.lang.String info =
                "\u0001\u0001\u0000\u0001\u0001\u0001\u0001\u0000\u0000\u0000\u0001\u100b\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:air_pressure_data_message)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message DEFAULT_INSTANCE;
    static {
      air_pressure_data_message defaultInstance = new air_pressure_data_message();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        air_pressure_data_message.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<air_pressure_data_message> PARSER;

    public static com.google.protobuf.Parser<air_pressure_data_message> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ephemeris_data_messageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:ephemeris_data_message)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional string file_name = 1;</code>
     * @return Whether the fileName field is set.
     */
    boolean hasFileName();
    /**
     * <code>optional string file_name = 1;</code>
     * @return The fileName.
     */
    java.lang.String getFileName();
    /**
     * <code>optional string file_name = 1;</code>
     * @return The bytes for fileName.
     */
    com.google.protobuf.ByteString
        getFileNameBytes();

    /**
     * <code>optional bytes contents = 2;</code>
     * @return Whether the contents field is set.
     */
    boolean hasContents();
    /**
     * <code>optional bytes contents = 2;</code>
     * @return The contents.
     */
    com.google.protobuf.ByteString getContents();

    /**
     * <code>optional .GPS_TYPE gps_type = 3 [default = enum_GPS_TYPE_INVALID];</code>
     * @return Whether the gpsType field is set.
     */
    boolean hasGpsType();
    /**
     * <code>optional .GPS_TYPE gps_type = 3 [default = enum_GPS_TYPE_INVALID];</code>
     * @return The gpsType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.GPS_TYPE getGpsType();

    /**
     * <code>optional .AGPS_TYPE agps_type = 4 [default = enum_AGPS_FILE_TYPE_INVALID];</code>
     * @return Whether the agpsType field is set.
     */
    boolean hasAgpsType();
    /**
     * <code>optional .AGPS_TYPE agps_type = 4 [default = enum_AGPS_FILE_TYPE_INVALID];</code>
     * @return The agpsType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.AGPS_TYPE getAgpsType();

    /**
     * <code>optional uint32 time = 5;</code>
     * @return Whether the time field is set.
     */
    boolean hasTime();
    /**
     * <code>optional uint32 time = 5;</code>
     * @return The time.
     */
    int getTime();
  }
  /**
   * Protobuf type {@code ephemeris_data_message}
   */
  public  static final class ephemeris_data_message extends
      com.google.protobuf.GeneratedMessageLite<
          ephemeris_data_message, ephemeris_data_message.Builder> implements
      // @@protoc_insertion_point(message_implements:ephemeris_data_message)
      ephemeris_data_messageOrBuilder {
    private ephemeris_data_message() {
      fileName_ = "";
      contents_ = com.google.protobuf.ByteString.EMPTY;
    }
    private int bitField0_;
    public static final int FILE_NAME_FIELD_NUMBER = 1;
    private java.lang.String fileName_;
    /**
     * <code>optional string file_name = 1;</code>
     * @return Whether the fileName field is set.
     */
    @java.lang.Override
    public boolean hasFileName() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional string file_name = 1;</code>
     * @return The fileName.
     */
    @java.lang.Override
    public java.lang.String getFileName() {
      return fileName_;
    }
    /**
     * <code>optional string file_name = 1;</code>
     * @return The bytes for fileName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFileNameBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(fileName_);
    }
    /**
     * <code>optional string file_name = 1;</code>
     * @param value The fileName to set.
     */
    private void setFileName(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000001;
      fileName_ = value;
    }
    /**
     * <code>optional string file_name = 1;</code>
     */
    private void clearFileName() {
      bitField0_ = (bitField0_ & ~0x00000001);
      fileName_ = getDefaultInstance().getFileName();
    }
    /**
     * <code>optional string file_name = 1;</code>
     * @param value The bytes for fileName to set.
     */
    private void setFileNameBytes(
        com.google.protobuf.ByteString value) {
      fileName_ = value.toStringUtf8();
      bitField0_ |= 0x00000001;
    }

    public static final int CONTENTS_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString contents_;
    /**
     * <code>optional bytes contents = 2;</code>
     * @return Whether the contents field is set.
     */
    @java.lang.Override
    public boolean hasContents() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional bytes contents = 2;</code>
     * @return The contents.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getContents() {
      return contents_;
    }
    /**
     * <code>optional bytes contents = 2;</code>
     * @param value The contents to set.
     */
    private void setContents(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  bitField0_ |= 0x00000002;
      contents_ = value;
    }
    /**
     * <code>optional bytes contents = 2;</code>
     */
    private void clearContents() {
      bitField0_ = (bitField0_ & ~0x00000002);
      contents_ = getDefaultInstance().getContents();
    }

    public static final int GPS_TYPE_FIELD_NUMBER = 3;
    private int gpsType_;
    /**
     * <code>optional .GPS_TYPE gps_type = 3 [default = enum_GPS_TYPE_INVALID];</code>
     * @return Whether the gpsType field is set.
     */
    @java.lang.Override
    public boolean hasGpsType() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional .GPS_TYPE gps_type = 3 [default = enum_GPS_TYPE_INVALID];</code>
     * @return The gpsType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.GPS_TYPE getGpsType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.GPS_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.GPS_TYPE.forNumber(gpsType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.GPS_TYPE.enum_GPS_TYPE_INVALID : result;
    }
    /**
     * <code>optional .GPS_TYPE gps_type = 3 [default = enum_GPS_TYPE_INVALID];</code>
     * @param value The gpsType to set.
     */
    private void setGpsType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.GPS_TYPE value) {
      gpsType_ = value.getNumber();
      bitField0_ |= 0x00000004;
    }
    /**
     * <code>optional .GPS_TYPE gps_type = 3 [default = enum_GPS_TYPE_INVALID];</code>
     */
    private void clearGpsType() {
      bitField0_ = (bitField0_ & ~0x00000004);
      gpsType_ = 0;
    }

    public static final int AGPS_TYPE_FIELD_NUMBER = 4;
    private int agpsType_;
    /**
     * <code>optional .AGPS_TYPE agps_type = 4 [default = enum_AGPS_FILE_TYPE_INVALID];</code>
     * @return Whether the agpsType field is set.
     */
    @java.lang.Override
    public boolean hasAgpsType() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional .AGPS_TYPE agps_type = 4 [default = enum_AGPS_FILE_TYPE_INVALID];</code>
     * @return The agpsType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.AGPS_TYPE getAgpsType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.AGPS_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.AGPS_TYPE.forNumber(agpsType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.AGPS_TYPE.enum_AGPS_FILE_TYPE_INVALID : result;
    }
    /**
     * <code>optional .AGPS_TYPE agps_type = 4 [default = enum_AGPS_FILE_TYPE_INVALID];</code>
     * @param value The agpsType to set.
     */
    private void setAgpsType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.AGPS_TYPE value) {
      agpsType_ = value.getNumber();
      bitField0_ |= 0x00000008;
    }
    /**
     * <code>optional .AGPS_TYPE agps_type = 4 [default = enum_AGPS_FILE_TYPE_INVALID];</code>
     */
    private void clearAgpsType() {
      bitField0_ = (bitField0_ & ~0x00000008);
      agpsType_ = 0;
    }

    public static final int TIME_FIELD_NUMBER = 5;
    private int time_;
    /**
     * <code>optional uint32 time = 5;</code>
     * @return Whether the time field is set.
     */
    @java.lang.Override
    public boolean hasTime() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional uint32 time = 5;</code>
     * @return The time.
     */
    @java.lang.Override
    public int getTime() {
      return time_;
    }
    /**
     * <code>optional uint32 time = 5;</code>
     * @param value The time to set.
     */
    private void setTime(int value) {
      bitField0_ |= 0x00000010;
      time_ = value;
    }
    /**
     * <code>optional uint32 time = 5;</code>
     */
    private void clearTime() {
      bitField0_ = (bitField0_ & ~0x00000010);
      time_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code ephemeris_data_message}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message, Builder> implements
        // @@protoc_insertion_point(builder_implements:ephemeris_data_message)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_messageOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional string file_name = 1;</code>
       * @return Whether the fileName field is set.
       */
      @java.lang.Override
      public boolean hasFileName() {
        return instance.hasFileName();
      }
      /**
       * <code>optional string file_name = 1;</code>
       * @return The fileName.
       */
      @java.lang.Override
      public java.lang.String getFileName() {
        return instance.getFileName();
      }
      /**
       * <code>optional string file_name = 1;</code>
       * @return The bytes for fileName.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getFileNameBytes() {
        return instance.getFileNameBytes();
      }
      /**
       * <code>optional string file_name = 1;</code>
       * @param value The fileName to set.
       * @return This builder for chaining.
       */
      public Builder setFileName(
          java.lang.String value) {
        copyOnWrite();
        instance.setFileName(value);
        return this;
      }
      /**
       * <code>optional string file_name = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearFileName() {
        copyOnWrite();
        instance.clearFileName();
        return this;
      }
      /**
       * <code>optional string file_name = 1;</code>
       * @param value The bytes for fileName to set.
       * @return This builder for chaining.
       */
      public Builder setFileNameBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setFileNameBytes(value);
        return this;
      }

      /**
       * <code>optional bytes contents = 2;</code>
       * @return Whether the contents field is set.
       */
      @java.lang.Override
      public boolean hasContents() {
        return instance.hasContents();
      }
      /**
       * <code>optional bytes contents = 2;</code>
       * @return The contents.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getContents() {
        return instance.getContents();
      }
      /**
       * <code>optional bytes contents = 2;</code>
       * @param value The contents to set.
       * @return This builder for chaining.
       */
      public Builder setContents(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setContents(value);
        return this;
      }
      /**
       * <code>optional bytes contents = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearContents() {
        copyOnWrite();
        instance.clearContents();
        return this;
      }

      /**
       * <code>optional .GPS_TYPE gps_type = 3 [default = enum_GPS_TYPE_INVALID];</code>
       * @return Whether the gpsType field is set.
       */
      @java.lang.Override
      public boolean hasGpsType() {
        return instance.hasGpsType();
      }
      /**
       * <code>optional .GPS_TYPE gps_type = 3 [default = enum_GPS_TYPE_INVALID];</code>
       * @return The gpsType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.GPS_TYPE getGpsType() {
        return instance.getGpsType();
      }
      /**
       * <code>optional .GPS_TYPE gps_type = 3 [default = enum_GPS_TYPE_INVALID];</code>
       * @param value The enum numeric value on the wire for gpsType to set.
       * @return This builder for chaining.
       */
      public Builder setGpsType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.GPS_TYPE value) {
        copyOnWrite();
        instance.setGpsType(value);
        return this;
      }
      /**
       * <code>optional .GPS_TYPE gps_type = 3 [default = enum_GPS_TYPE_INVALID];</code>
       * @return This builder for chaining.
       */
      public Builder clearGpsType() {
        copyOnWrite();
        instance.clearGpsType();
        return this;
      }

      /**
       * <code>optional .AGPS_TYPE agps_type = 4 [default = enum_AGPS_FILE_TYPE_INVALID];</code>
       * @return Whether the agpsType field is set.
       */
      @java.lang.Override
      public boolean hasAgpsType() {
        return instance.hasAgpsType();
      }
      /**
       * <code>optional .AGPS_TYPE agps_type = 4 [default = enum_AGPS_FILE_TYPE_INVALID];</code>
       * @return The agpsType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.AGPS_TYPE getAgpsType() {
        return instance.getAgpsType();
      }
      /**
       * <code>optional .AGPS_TYPE agps_type = 4 [default = enum_AGPS_FILE_TYPE_INVALID];</code>
       * @param value The enum numeric value on the wire for agpsType to set.
       * @return This builder for chaining.
       */
      public Builder setAgpsType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.AGPS_TYPE value) {
        copyOnWrite();
        instance.setAgpsType(value);
        return this;
      }
      /**
       * <code>optional .AGPS_TYPE agps_type = 4 [default = enum_AGPS_FILE_TYPE_INVALID];</code>
       * @return This builder for chaining.
       */
      public Builder clearAgpsType() {
        copyOnWrite();
        instance.clearAgpsType();
        return this;
      }

      /**
       * <code>optional uint32 time = 5;</code>
       * @return Whether the time field is set.
       */
      @java.lang.Override
      public boolean hasTime() {
        return instance.hasTime();
      }
      /**
       * <code>optional uint32 time = 5;</code>
       * @return The time.
       */
      @java.lang.Override
      public int getTime() {
        return instance.getTime();
      }
      /**
       * <code>optional uint32 time = 5;</code>
       * @param value The time to set.
       * @return This builder for chaining.
       */
      public Builder setTime(int value) {
        copyOnWrite();
        instance.setTime(value);
        return this;
      }
      /**
       * <code>optional uint32 time = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearTime() {
        copyOnWrite();
        instance.clearTime();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:ephemeris_data_message)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "fileName_",
              "contents_",
              "gpsType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.GPS_TYPE.internalGetVerifier(),
              "agpsType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.AGPS_TYPE.internalGetVerifier(),
              "time_",
            };
            java.lang.String info =
                "\u0001\u0005\u0000\u0001\u0001\u0005\u0005\u0000\u0000\u0000\u0001\u1008\u0000\u0002" +
                "\u100a\u0001\u0003\u100c\u0002\u0004\u100c\u0003\u0005\u100b\u0004";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:ephemeris_data_message)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message DEFAULT_INSTANCE;
    static {
      ephemeris_data_message defaultInstance = new ephemeris_data_message();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ephemeris_data_message.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<ephemeris_data_message> PARSER;

    public static com.google.protobuf.Parser<ephemeris_data_message> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface time_data_messageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:time_data_message)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>optional uint32 time = 1;</code>
     * @return Whether the time field is set.
     */
    boolean hasTime();
    /**
     * <code>optional uint32 time = 1;</code>
     * @return The time.
     */
    int getTime();

    /**
     * <code>optional int32 time_zone = 2;</code>
     * @return Whether the timeZone field is set.
     */
    boolean hasTimeZone();
    /**
     * <code>optional int32 time_zone = 2;</code>
     * @return The timeZone.
     */
    int getTimeZone();
  }
  /**
   * Protobuf type {@code time_data_message}
   */
  public  static final class time_data_message extends
      com.google.protobuf.GeneratedMessageLite<
          time_data_message, time_data_message.Builder> implements
      // @@protoc_insertion_point(message_implements:time_data_message)
      time_data_messageOrBuilder {
    private time_data_message() {
    }
    private int bitField0_;
    public static final int TIME_FIELD_NUMBER = 1;
    private int time_;
    /**
     * <code>optional uint32 time = 1;</code>
     * @return Whether the time field is set.
     */
    @java.lang.Override
    public boolean hasTime() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional uint32 time = 1;</code>
     * @return The time.
     */
    @java.lang.Override
    public int getTime() {
      return time_;
    }
    /**
     * <code>optional uint32 time = 1;</code>
     * @param value The time to set.
     */
    private void setTime(int value) {
      bitField0_ |= 0x00000001;
      time_ = value;
    }
    /**
     * <code>optional uint32 time = 1;</code>
     */
    private void clearTime() {
      bitField0_ = (bitField0_ & ~0x00000001);
      time_ = 0;
    }

    public static final int TIME_ZONE_FIELD_NUMBER = 2;
    private int timeZone_;
    /**
     * <code>optional int32 time_zone = 2;</code>
     * @return Whether the timeZone field is set.
     */
    @java.lang.Override
    public boolean hasTimeZone() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional int32 time_zone = 2;</code>
     * @return The timeZone.
     */
    @java.lang.Override
    public int getTimeZone() {
      return timeZone_;
    }
    /**
     * <code>optional int32 time_zone = 2;</code>
     * @param value The timeZone to set.
     */
    private void setTimeZone(int value) {
      bitField0_ |= 0x00000002;
      timeZone_ = value;
    }
    /**
     * <code>optional int32 time_zone = 2;</code>
     */
    private void clearTimeZone() {
      bitField0_ = (bitField0_ & ~0x00000002);
      timeZone_ = 0;
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code time_data_message}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message, Builder> implements
        // @@protoc_insertion_point(builder_implements:time_data_message)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_messageOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>optional uint32 time = 1;</code>
       * @return Whether the time field is set.
       */
      @java.lang.Override
      public boolean hasTime() {
        return instance.hasTime();
      }
      /**
       * <code>optional uint32 time = 1;</code>
       * @return The time.
       */
      @java.lang.Override
      public int getTime() {
        return instance.getTime();
      }
      /**
       * <code>optional uint32 time = 1;</code>
       * @param value The time to set.
       * @return This builder for chaining.
       */
      public Builder setTime(int value) {
        copyOnWrite();
        instance.setTime(value);
        return this;
      }
      /**
       * <code>optional uint32 time = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTime() {
        copyOnWrite();
        instance.clearTime();
        return this;
      }

      /**
       * <code>optional int32 time_zone = 2;</code>
       * @return Whether the timeZone field is set.
       */
      @java.lang.Override
      public boolean hasTimeZone() {
        return instance.hasTimeZone();
      }
      /**
       * <code>optional int32 time_zone = 2;</code>
       * @return The timeZone.
       */
      @java.lang.Override
      public int getTimeZone() {
        return instance.getTimeZone();
      }
      /**
       * <code>optional int32 time_zone = 2;</code>
       * @param value The timeZone to set.
       * @return This builder for chaining.
       */
      public Builder setTimeZone(int value) {
        copyOnWrite();
        instance.setTimeZone(value);
        return this;
      }
      /**
       * <code>optional int32 time_zone = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeZone() {
        copyOnWrite();
        instance.clearTimeZone();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:time_data_message)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "time_",
              "timeZone_",
            };
            java.lang.String info =
                "\u0001\u0002\u0000\u0001\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u100b\u0000\u0002" +
                "\u1004\u0001";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:time_data_message)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message DEFAULT_INSTANCE;
    static {
      time_data_message defaultInstance = new time_data_message();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        time_data_message.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<time_data_message> PARSER;

    public static com.google.protobuf.Parser<time_data_message> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface back_msgOrBuilder extends
      // @@protoc_insertion_point(interface_extends:back_msg)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_BACK];</code>
     * @return Whether the serviceType field is set.
     */
    boolean hasServiceType();
    /**
     * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_BACK];</code>
     * @return The serviceType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index getServiceType();

    /**
     * <code>required .BACK_SERVICE_TYPE back_service_type = 2 [default = enum_BACK_SERVICE_TYPE_NONE];</code>
     * @return Whether the backServiceType field is set.
     */
    boolean hasBackServiceType();
    /**
     * <code>required .BACK_SERVICE_TYPE back_service_type = 2 [default = enum_BACK_SERVICE_TYPE_NONE];</code>
     * @return The backServiceType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.BACK_SERVICE_TYPE getBackServiceType();

    /**
     * <code>required .BACK_OPERATE_TYPE back_operate_type = 3 [default = enum_BACK_OPERATE_TYPE_NONE];</code>
     * @return Whether the backOperateType field is set.
     */
    boolean hasBackOperateType();
    /**
     * <code>required .BACK_OPERATE_TYPE back_operate_type = 3 [default = enum_BACK_OPERATE_TYPE_NONE];</code>
     * @return The backOperateType.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.BACK_OPERATE_TYPE getBackOperateType();

    /**
     * <code>repeated .weather_three_days_data_message three_days_msg = 4;</code>
     */
    java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message> 
        getThreeDaysMsgList();
    /**
     * <code>repeated .weather_three_days_data_message three_days_msg = 4;</code>
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message getThreeDaysMsg(int index);
    /**
     * <code>repeated .weather_three_days_data_message three_days_msg = 4;</code>
     */
    int getThreeDaysMsgCount();

    /**
     * <code>optional .weather_current_data_message cur_msg = 5;</code>
     * @return Whether the curMsg field is set.
     */
    boolean hasCurMsg();
    /**
     * <code>optional .weather_current_data_message cur_msg = 5;</code>
     * @return The curMsg.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message getCurMsg();

    /**
     * <code>repeated .weather_three_hour_data_memsage three_hours_msg = 6;</code>
     */
    java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage> 
        getThreeHoursMsgList();
    /**
     * <code>repeated .weather_three_hour_data_memsage three_hours_msg = 6;</code>
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage getThreeHoursMsg(int index);
    /**
     * <code>repeated .weather_three_hour_data_memsage three_hours_msg = 6;</code>
     */
    int getThreeHoursMsgCount();

    /**
     * <code>optional .air_pressure_data_message air_pressure_msg = 7;</code>
     * @return Whether the airPressureMsg field is set.
     */
    boolean hasAirPressureMsg();
    /**
     * <code>optional .air_pressure_data_message air_pressure_msg = 7;</code>
     * @return The airPressureMsg.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message getAirPressureMsg();

    /**
     * <code>optional .ephemeris_data_message ephemeris_data_msg = 8;</code>
     * @return Whether the ephemerisDataMsg field is set.
     */
    boolean hasEphemerisDataMsg();
    /**
     * <code>optional .ephemeris_data_message ephemeris_data_msg = 8;</code>
     * @return The ephemerisDataMsg.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message getEphemerisDataMsg();

    /**
     * <code>optional .time_data_message time_msg = 9;</code>
     * @return Whether the timeMsg field is set.
     */
    boolean hasTimeMsg();
    /**
     * <code>optional .time_data_message time_msg = 9;</code>
     * @return The timeMsg.
     */
    nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message getTimeMsg();
  }
  /**
   * Protobuf type {@code back_msg}
   */
  public  static final class back_msg extends
      com.google.protobuf.GeneratedMessageLite<
          back_msg, back_msg.Builder> implements
      // @@protoc_insertion_point(message_implements:back_msg)
      back_msgOrBuilder {
    private back_msg() {
      serviceType_ = 3;
      threeDaysMsg_ = emptyProtobufList();
      threeHoursMsg_ = emptyProtobufList();
    }
    private int bitField0_;
    public static final int SERVICE_TYPE_FIELD_NUMBER = 1;
    private int serviceType_;
    /**
     * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_BACK];</code>
     * @return Whether the serviceType field is set.
     */
    @java.lang.Override
    public boolean hasServiceType() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_BACK];</code>
     * @return The serviceType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index getServiceType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index.forNumber(serviceType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index.enum_SERVICE_TYPE_INDEX_BACK : result;
    }
    /**
     * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_BACK];</code>
     * @param value The serviceType to set.
     */
    private void setServiceType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index value) {
      serviceType_ = value.getNumber();
      bitField0_ |= 0x00000001;
    }
    /**
     * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_BACK];</code>
     */
    private void clearServiceType() {
      bitField0_ = (bitField0_ & ~0x00000001);
      serviceType_ = 3;
    }

    public static final int BACK_SERVICE_TYPE_FIELD_NUMBER = 2;
    private int backServiceType_;
    /**
     * <code>required .BACK_SERVICE_TYPE back_service_type = 2 [default = enum_BACK_SERVICE_TYPE_NONE];</code>
     * @return Whether the backServiceType field is set.
     */
    @java.lang.Override
    public boolean hasBackServiceType() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required .BACK_SERVICE_TYPE back_service_type = 2 [default = enum_BACK_SERVICE_TYPE_NONE];</code>
     * @return The backServiceType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.BACK_SERVICE_TYPE getBackServiceType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.BACK_SERVICE_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.BACK_SERVICE_TYPE.forNumber(backServiceType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.BACK_SERVICE_TYPE.enum_BACK_SERVICE_TYPE_NONE : result;
    }
    /**
     * <code>required .BACK_SERVICE_TYPE back_service_type = 2 [default = enum_BACK_SERVICE_TYPE_NONE];</code>
     * @param value The backServiceType to set.
     */
    private void setBackServiceType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.BACK_SERVICE_TYPE value) {
      backServiceType_ = value.getNumber();
      bitField0_ |= 0x00000002;
    }
    /**
     * <code>required .BACK_SERVICE_TYPE back_service_type = 2 [default = enum_BACK_SERVICE_TYPE_NONE];</code>
     */
    private void clearBackServiceType() {
      bitField0_ = (bitField0_ & ~0x00000002);
      backServiceType_ = 0;
    }

    public static final int BACK_OPERATE_TYPE_FIELD_NUMBER = 3;
    private int backOperateType_;
    /**
     * <code>required .BACK_OPERATE_TYPE back_operate_type = 3 [default = enum_BACK_OPERATE_TYPE_NONE];</code>
     * @return Whether the backOperateType field is set.
     */
    @java.lang.Override
    public boolean hasBackOperateType() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required .BACK_OPERATE_TYPE back_operate_type = 3 [default = enum_BACK_OPERATE_TYPE_NONE];</code>
     * @return The backOperateType.
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.BACK_OPERATE_TYPE getBackOperateType() {
      nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.BACK_OPERATE_TYPE result = nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.BACK_OPERATE_TYPE.forNumber(backOperateType_);
      return result == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.BACK_OPERATE_TYPE.enum_BACK_OPERATE_TYPE_NONE : result;
    }
    /**
     * <code>required .BACK_OPERATE_TYPE back_operate_type = 3 [default = enum_BACK_OPERATE_TYPE_NONE];</code>
     * @param value The backOperateType to set.
     */
    private void setBackOperateType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.BACK_OPERATE_TYPE value) {
      backOperateType_ = value.getNumber();
      bitField0_ |= 0x00000004;
    }
    /**
     * <code>required .BACK_OPERATE_TYPE back_operate_type = 3 [default = enum_BACK_OPERATE_TYPE_NONE];</code>
     */
    private void clearBackOperateType() {
      bitField0_ = (bitField0_ & ~0x00000004);
      backOperateType_ = 0;
    }

    public static final int THREE_DAYS_MSG_FIELD_NUMBER = 4;
    private com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message> threeDaysMsg_;
    /**
     * <code>repeated .weather_three_days_data_message three_days_msg = 4;</code>
     */
    @java.lang.Override
    public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message> getThreeDaysMsgList() {
      return threeDaysMsg_;
    }
    /**
     * <code>repeated .weather_three_days_data_message three_days_msg = 4;</code>
     */
    public java.util.List<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_messageOrBuilder> 
        getThreeDaysMsgOrBuilderList() {
      return threeDaysMsg_;
    }
    /**
     * <code>repeated .weather_three_days_data_message three_days_msg = 4;</code>
     */
    @java.lang.Override
    public int getThreeDaysMsgCount() {
      return threeDaysMsg_.size();
    }
    /**
     * <code>repeated .weather_three_days_data_message three_days_msg = 4;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message getThreeDaysMsg(int index) {
      return threeDaysMsg_.get(index);
    }
    /**
     * <code>repeated .weather_three_days_data_message three_days_msg = 4;</code>
     */
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_messageOrBuilder getThreeDaysMsgOrBuilder(
        int index) {
      return threeDaysMsg_.get(index);
    }
    private void ensureThreeDaysMsgIsMutable() {
      com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message> tmp = threeDaysMsg_;
      if (!tmp.isModifiable()) {
        threeDaysMsg_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .weather_three_days_data_message three_days_msg = 4;</code>
     */
    private void setThreeDaysMsg(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message value) {
      value.getClass();
  ensureThreeDaysMsgIsMutable();
      threeDaysMsg_.set(index, value);
    }
    /**
     * <code>repeated .weather_three_days_data_message three_days_msg = 4;</code>
     */
    private void addThreeDaysMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message value) {
      value.getClass();
  ensureThreeDaysMsgIsMutable();
      threeDaysMsg_.add(value);
    }
    /**
     * <code>repeated .weather_three_days_data_message three_days_msg = 4;</code>
     */
    private void addThreeDaysMsg(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message value) {
      value.getClass();
  ensureThreeDaysMsgIsMutable();
      threeDaysMsg_.add(index, value);
    }
    /**
     * <code>repeated .weather_three_days_data_message three_days_msg = 4;</code>
     */
    private void addAllThreeDaysMsg(
        java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message> values) {
      ensureThreeDaysMsgIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, threeDaysMsg_);
    }
    /**
     * <code>repeated .weather_three_days_data_message three_days_msg = 4;</code>
     */
    private void clearThreeDaysMsg() {
      threeDaysMsg_ = emptyProtobufList();
    }
    /**
     * <code>repeated .weather_three_days_data_message three_days_msg = 4;</code>
     */
    private void removeThreeDaysMsg(int index) {
      ensureThreeDaysMsgIsMutable();
      threeDaysMsg_.remove(index);
    }

    public static final int CUR_MSG_FIELD_NUMBER = 5;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message curMsg_;
    /**
     * <code>optional .weather_current_data_message cur_msg = 5;</code>
     */
    @java.lang.Override
    public boolean hasCurMsg() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional .weather_current_data_message cur_msg = 5;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message getCurMsg() {
      return curMsg_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message.getDefaultInstance() : curMsg_;
    }
    /**
     * <code>optional .weather_current_data_message cur_msg = 5;</code>
     */
    private void setCurMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message value) {
      value.getClass();
  curMsg_ = value;
      bitField0_ |= 0x00000008;
      }
    /**
     * <code>optional .weather_current_data_message cur_msg = 5;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeCurMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message value) {
      value.getClass();
  if (curMsg_ != null &&
          curMsg_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message.getDefaultInstance()) {
        curMsg_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message.newBuilder(curMsg_).mergeFrom(value).buildPartial();
      } else {
        curMsg_ = value;
      }
      bitField0_ |= 0x00000008;
    }
    /**
     * <code>optional .weather_current_data_message cur_msg = 5;</code>
     */
    private void clearCurMsg() {  curMsg_ = null;
      bitField0_ = (bitField0_ & ~0x00000008);
    }

    public static final int THREE_HOURS_MSG_FIELD_NUMBER = 6;
    private com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage> threeHoursMsg_;
    /**
     * <code>repeated .weather_three_hour_data_memsage three_hours_msg = 6;</code>
     */
    @java.lang.Override
    public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage> getThreeHoursMsgList() {
      return threeHoursMsg_;
    }
    /**
     * <code>repeated .weather_three_hour_data_memsage three_hours_msg = 6;</code>
     */
    public java.util.List<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsageOrBuilder> 
        getThreeHoursMsgOrBuilderList() {
      return threeHoursMsg_;
    }
    /**
     * <code>repeated .weather_three_hour_data_memsage three_hours_msg = 6;</code>
     */
    @java.lang.Override
    public int getThreeHoursMsgCount() {
      return threeHoursMsg_.size();
    }
    /**
     * <code>repeated .weather_three_hour_data_memsage three_hours_msg = 6;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage getThreeHoursMsg(int index) {
      return threeHoursMsg_.get(index);
    }
    /**
     * <code>repeated .weather_three_hour_data_memsage three_hours_msg = 6;</code>
     */
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsageOrBuilder getThreeHoursMsgOrBuilder(
        int index) {
      return threeHoursMsg_.get(index);
    }
    private void ensureThreeHoursMsgIsMutable() {
      com.google.protobuf.Internal.ProtobufList<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage> tmp = threeHoursMsg_;
      if (!tmp.isModifiable()) {
        threeHoursMsg_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .weather_three_hour_data_memsage three_hours_msg = 6;</code>
     */
    private void setThreeHoursMsg(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage value) {
      value.getClass();
  ensureThreeHoursMsgIsMutable();
      threeHoursMsg_.set(index, value);
    }
    /**
     * <code>repeated .weather_three_hour_data_memsage three_hours_msg = 6;</code>
     */
    private void addThreeHoursMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage value) {
      value.getClass();
  ensureThreeHoursMsgIsMutable();
      threeHoursMsg_.add(value);
    }
    /**
     * <code>repeated .weather_three_hour_data_memsage three_hours_msg = 6;</code>
     */
    private void addThreeHoursMsg(
        int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage value) {
      value.getClass();
  ensureThreeHoursMsgIsMutable();
      threeHoursMsg_.add(index, value);
    }
    /**
     * <code>repeated .weather_three_hour_data_memsage three_hours_msg = 6;</code>
     */
    private void addAllThreeHoursMsg(
        java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage> values) {
      ensureThreeHoursMsgIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, threeHoursMsg_);
    }
    /**
     * <code>repeated .weather_three_hour_data_memsage three_hours_msg = 6;</code>
     */
    private void clearThreeHoursMsg() {
      threeHoursMsg_ = emptyProtobufList();
    }
    /**
     * <code>repeated .weather_three_hour_data_memsage three_hours_msg = 6;</code>
     */
    private void removeThreeHoursMsg(int index) {
      ensureThreeHoursMsgIsMutable();
      threeHoursMsg_.remove(index);
    }

    public static final int AIR_PRESSURE_MSG_FIELD_NUMBER = 7;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message airPressureMsg_;
    /**
     * <code>optional .air_pressure_data_message air_pressure_msg = 7;</code>
     */
    @java.lang.Override
    public boolean hasAirPressureMsg() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional .air_pressure_data_message air_pressure_msg = 7;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message getAirPressureMsg() {
      return airPressureMsg_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message.getDefaultInstance() : airPressureMsg_;
    }
    /**
     * <code>optional .air_pressure_data_message air_pressure_msg = 7;</code>
     */
    private void setAirPressureMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message value) {
      value.getClass();
  airPressureMsg_ = value;
      bitField0_ |= 0x00000010;
      }
    /**
     * <code>optional .air_pressure_data_message air_pressure_msg = 7;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeAirPressureMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message value) {
      value.getClass();
  if (airPressureMsg_ != null &&
          airPressureMsg_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message.getDefaultInstance()) {
        airPressureMsg_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message.newBuilder(airPressureMsg_).mergeFrom(value).buildPartial();
      } else {
        airPressureMsg_ = value;
      }
      bitField0_ |= 0x00000010;
    }
    /**
     * <code>optional .air_pressure_data_message air_pressure_msg = 7;</code>
     */
    private void clearAirPressureMsg() {  airPressureMsg_ = null;
      bitField0_ = (bitField0_ & ~0x00000010);
    }

    public static final int EPHEMERIS_DATA_MSG_FIELD_NUMBER = 8;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message ephemerisDataMsg_;
    /**
     * <code>optional .ephemeris_data_message ephemeris_data_msg = 8;</code>
     */
    @java.lang.Override
    public boolean hasEphemerisDataMsg() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional .ephemeris_data_message ephemeris_data_msg = 8;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message getEphemerisDataMsg() {
      return ephemerisDataMsg_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message.getDefaultInstance() : ephemerisDataMsg_;
    }
    /**
     * <code>optional .ephemeris_data_message ephemeris_data_msg = 8;</code>
     */
    private void setEphemerisDataMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message value) {
      value.getClass();
  ephemerisDataMsg_ = value;
      bitField0_ |= 0x00000020;
      }
    /**
     * <code>optional .ephemeris_data_message ephemeris_data_msg = 8;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeEphemerisDataMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message value) {
      value.getClass();
  if (ephemerisDataMsg_ != null &&
          ephemerisDataMsg_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message.getDefaultInstance()) {
        ephemerisDataMsg_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message.newBuilder(ephemerisDataMsg_).mergeFrom(value).buildPartial();
      } else {
        ephemerisDataMsg_ = value;
      }
      bitField0_ |= 0x00000020;
    }
    /**
     * <code>optional .ephemeris_data_message ephemeris_data_msg = 8;</code>
     */
    private void clearEphemerisDataMsg() {  ephemerisDataMsg_ = null;
      bitField0_ = (bitField0_ & ~0x00000020);
    }

    public static final int TIME_MSG_FIELD_NUMBER = 9;
    private nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message timeMsg_;
    /**
     * <code>optional .time_data_message time_msg = 9;</code>
     */
    @java.lang.Override
    public boolean hasTimeMsg() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional .time_data_message time_msg = 9;</code>
     */
    @java.lang.Override
    public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message getTimeMsg() {
      return timeMsg_ == null ? nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message.getDefaultInstance() : timeMsg_;
    }
    /**
     * <code>optional .time_data_message time_msg = 9;</code>
     */
    private void setTimeMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message value) {
      value.getClass();
  timeMsg_ = value;
      bitField0_ |= 0x00000040;
      }
    /**
     * <code>optional .time_data_message time_msg = 9;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeTimeMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message value) {
      value.getClass();
  if (timeMsg_ != null &&
          timeMsg_ != nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message.getDefaultInstance()) {
        timeMsg_ =
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message.newBuilder(timeMsg_).mergeFrom(value).buildPartial();
      } else {
        timeMsg_ = value;
      }
      bitField0_ |= 0x00000040;
    }
    /**
     * <code>optional .time_data_message time_msg = 9;</code>
     */
    private void clearTimeMsg() {  timeMsg_ = null;
      bitField0_ = (bitField0_ & ~0x00000040);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.back_msg parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.back_msg parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.back_msg parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.back_msg parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.back_msg parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.back_msg parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.back_msg parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.back_msg parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.back_msg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.back_msg parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.back_msg parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.back_msg parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.back_msg prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code back_msg}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.back_msg, Builder> implements
        // @@protoc_insertion_point(builder_implements:back_msg)
        nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.back_msgOrBuilder {
      // Construct using nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.back_msg.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_BACK];</code>
       * @return Whether the serviceType field is set.
       */
      @java.lang.Override
      public boolean hasServiceType() {
        return instance.hasServiceType();
      }
      /**
       * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_BACK];</code>
       * @return The serviceType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index getServiceType() {
        return instance.getServiceType();
      }
      /**
       * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_BACK];</code>
       * @param value The enum numeric value on the wire for serviceType to set.
       * @return This builder for chaining.
       */
      public Builder setServiceType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index value) {
        copyOnWrite();
        instance.setServiceType(value);
        return this;
      }
      /**
       * <code>required .service_type_index service_type = 1 [default = enum_SERVICE_TYPE_INDEX_BACK];</code>
       * @return This builder for chaining.
       */
      public Builder clearServiceType() {
        copyOnWrite();
        instance.clearServiceType();
        return this;
      }

      /**
       * <code>required .BACK_SERVICE_TYPE back_service_type = 2 [default = enum_BACK_SERVICE_TYPE_NONE];</code>
       * @return Whether the backServiceType field is set.
       */
      @java.lang.Override
      public boolean hasBackServiceType() {
        return instance.hasBackServiceType();
      }
      /**
       * <code>required .BACK_SERVICE_TYPE back_service_type = 2 [default = enum_BACK_SERVICE_TYPE_NONE];</code>
       * @return The backServiceType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.BACK_SERVICE_TYPE getBackServiceType() {
        return instance.getBackServiceType();
      }
      /**
       * <code>required .BACK_SERVICE_TYPE back_service_type = 2 [default = enum_BACK_SERVICE_TYPE_NONE];</code>
       * @param value The enum numeric value on the wire for backServiceType to set.
       * @return This builder for chaining.
       */
      public Builder setBackServiceType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.BACK_SERVICE_TYPE value) {
        copyOnWrite();
        instance.setBackServiceType(value);
        return this;
      }
      /**
       * <code>required .BACK_SERVICE_TYPE back_service_type = 2 [default = enum_BACK_SERVICE_TYPE_NONE];</code>
       * @return This builder for chaining.
       */
      public Builder clearBackServiceType() {
        copyOnWrite();
        instance.clearBackServiceType();
        return this;
      }

      /**
       * <code>required .BACK_OPERATE_TYPE back_operate_type = 3 [default = enum_BACK_OPERATE_TYPE_NONE];</code>
       * @return Whether the backOperateType field is set.
       */
      @java.lang.Override
      public boolean hasBackOperateType() {
        return instance.hasBackOperateType();
      }
      /**
       * <code>required .BACK_OPERATE_TYPE back_operate_type = 3 [default = enum_BACK_OPERATE_TYPE_NONE];</code>
       * @return The backOperateType.
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.BACK_OPERATE_TYPE getBackOperateType() {
        return instance.getBackOperateType();
      }
      /**
       * <code>required .BACK_OPERATE_TYPE back_operate_type = 3 [default = enum_BACK_OPERATE_TYPE_NONE];</code>
       * @param value The enum numeric value on the wire for backOperateType to set.
       * @return This builder for chaining.
       */
      public Builder setBackOperateType(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.BACK_OPERATE_TYPE value) {
        copyOnWrite();
        instance.setBackOperateType(value);
        return this;
      }
      /**
       * <code>required .BACK_OPERATE_TYPE back_operate_type = 3 [default = enum_BACK_OPERATE_TYPE_NONE];</code>
       * @return This builder for chaining.
       */
      public Builder clearBackOperateType() {
        copyOnWrite();
        instance.clearBackOperateType();
        return this;
      }

      /**
       * <code>repeated .weather_three_days_data_message three_days_msg = 4;</code>
       */
      @java.lang.Override
      public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message> getThreeDaysMsgList() {
        return java.util.Collections.unmodifiableList(
            instance.getThreeDaysMsgList());
      }
      /**
       * <code>repeated .weather_three_days_data_message three_days_msg = 4;</code>
       */
      @java.lang.Override
      public int getThreeDaysMsgCount() {
        return instance.getThreeDaysMsgCount();
      }/**
       * <code>repeated .weather_three_days_data_message three_days_msg = 4;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message getThreeDaysMsg(int index) {
        return instance.getThreeDaysMsg(index);
      }
      /**
       * <code>repeated .weather_three_days_data_message three_days_msg = 4;</code>
       */
      public Builder setThreeDaysMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message value) {
        copyOnWrite();
        instance.setThreeDaysMsg(index, value);
        return this;
      }
      /**
       * <code>repeated .weather_three_days_data_message three_days_msg = 4;</code>
       */
      public Builder setThreeDaysMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message.Builder builderForValue) {
        copyOnWrite();
        instance.setThreeDaysMsg(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .weather_three_days_data_message three_days_msg = 4;</code>
       */
      public Builder addThreeDaysMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message value) {
        copyOnWrite();
        instance.addThreeDaysMsg(value);
        return this;
      }
      /**
       * <code>repeated .weather_three_days_data_message three_days_msg = 4;</code>
       */
      public Builder addThreeDaysMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message value) {
        copyOnWrite();
        instance.addThreeDaysMsg(index, value);
        return this;
      }
      /**
       * <code>repeated .weather_three_days_data_message three_days_msg = 4;</code>
       */
      public Builder addThreeDaysMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message.Builder builderForValue) {
        copyOnWrite();
        instance.addThreeDaysMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .weather_three_days_data_message three_days_msg = 4;</code>
       */
      public Builder addThreeDaysMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message.Builder builderForValue) {
        copyOnWrite();
        instance.addThreeDaysMsg(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .weather_three_days_data_message three_days_msg = 4;</code>
       */
      public Builder addAllThreeDaysMsg(
          java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message> values) {
        copyOnWrite();
        instance.addAllThreeDaysMsg(values);
        return this;
      }
      /**
       * <code>repeated .weather_three_days_data_message three_days_msg = 4;</code>
       */
      public Builder clearThreeDaysMsg() {
        copyOnWrite();
        instance.clearThreeDaysMsg();
        return this;
      }
      /**
       * <code>repeated .weather_three_days_data_message three_days_msg = 4;</code>
       */
      public Builder removeThreeDaysMsg(int index) {
        copyOnWrite();
        instance.removeThreeDaysMsg(index);
        return this;
      }

      /**
       * <code>optional .weather_current_data_message cur_msg = 5;</code>
       */
      @java.lang.Override
      public boolean hasCurMsg() {
        return instance.hasCurMsg();
      }
      /**
       * <code>optional .weather_current_data_message cur_msg = 5;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message getCurMsg() {
        return instance.getCurMsg();
      }
      /**
       * <code>optional .weather_current_data_message cur_msg = 5;</code>
       */
      public Builder setCurMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message value) {
        copyOnWrite();
        instance.setCurMsg(value);
        return this;
        }
      /**
       * <code>optional .weather_current_data_message cur_msg = 5;</code>
       */
      public Builder setCurMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message.Builder builderForValue) {
        copyOnWrite();
        instance.setCurMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .weather_current_data_message cur_msg = 5;</code>
       */
      public Builder mergeCurMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_current_data_message value) {
        copyOnWrite();
        instance.mergeCurMsg(value);
        return this;
      }
      /**
       * <code>optional .weather_current_data_message cur_msg = 5;</code>
       */
      public Builder clearCurMsg() {  copyOnWrite();
        instance.clearCurMsg();
        return this;
      }

      /**
       * <code>repeated .weather_three_hour_data_memsage three_hours_msg = 6;</code>
       */
      @java.lang.Override
      public java.util.List<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage> getThreeHoursMsgList() {
        return java.util.Collections.unmodifiableList(
            instance.getThreeHoursMsgList());
      }
      /**
       * <code>repeated .weather_three_hour_data_memsage three_hours_msg = 6;</code>
       */
      @java.lang.Override
      public int getThreeHoursMsgCount() {
        return instance.getThreeHoursMsgCount();
      }/**
       * <code>repeated .weather_three_hour_data_memsage three_hours_msg = 6;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage getThreeHoursMsg(int index) {
        return instance.getThreeHoursMsg(index);
      }
      /**
       * <code>repeated .weather_three_hour_data_memsage three_hours_msg = 6;</code>
       */
      public Builder setThreeHoursMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage value) {
        copyOnWrite();
        instance.setThreeHoursMsg(index, value);
        return this;
      }
      /**
       * <code>repeated .weather_three_hour_data_memsage three_hours_msg = 6;</code>
       */
      public Builder setThreeHoursMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage.Builder builderForValue) {
        copyOnWrite();
        instance.setThreeHoursMsg(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .weather_three_hour_data_memsage three_hours_msg = 6;</code>
       */
      public Builder addThreeHoursMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage value) {
        copyOnWrite();
        instance.addThreeHoursMsg(value);
        return this;
      }
      /**
       * <code>repeated .weather_three_hour_data_memsage three_hours_msg = 6;</code>
       */
      public Builder addThreeHoursMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage value) {
        copyOnWrite();
        instance.addThreeHoursMsg(index, value);
        return this;
      }
      /**
       * <code>repeated .weather_three_hour_data_memsage three_hours_msg = 6;</code>
       */
      public Builder addThreeHoursMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage.Builder builderForValue) {
        copyOnWrite();
        instance.addThreeHoursMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .weather_three_hour_data_memsage three_hours_msg = 6;</code>
       */
      public Builder addThreeHoursMsg(
          int index, nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage.Builder builderForValue) {
        copyOnWrite();
        instance.addThreeHoursMsg(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .weather_three_hour_data_memsage three_hours_msg = 6;</code>
       */
      public Builder addAllThreeHoursMsg(
          java.lang.Iterable<? extends nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage> values) {
        copyOnWrite();
        instance.addAllThreeHoursMsg(values);
        return this;
      }
      /**
       * <code>repeated .weather_three_hour_data_memsage three_hours_msg = 6;</code>
       */
      public Builder clearThreeHoursMsg() {
        copyOnWrite();
        instance.clearThreeHoursMsg();
        return this;
      }
      /**
       * <code>repeated .weather_three_hour_data_memsage three_hours_msg = 6;</code>
       */
      public Builder removeThreeHoursMsg(int index) {
        copyOnWrite();
        instance.removeThreeHoursMsg(index);
        return this;
      }

      /**
       * <code>optional .air_pressure_data_message air_pressure_msg = 7;</code>
       */
      @java.lang.Override
      public boolean hasAirPressureMsg() {
        return instance.hasAirPressureMsg();
      }
      /**
       * <code>optional .air_pressure_data_message air_pressure_msg = 7;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message getAirPressureMsg() {
        return instance.getAirPressureMsg();
      }
      /**
       * <code>optional .air_pressure_data_message air_pressure_msg = 7;</code>
       */
      public Builder setAirPressureMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message value) {
        copyOnWrite();
        instance.setAirPressureMsg(value);
        return this;
        }
      /**
       * <code>optional .air_pressure_data_message air_pressure_msg = 7;</code>
       */
      public Builder setAirPressureMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message.Builder builderForValue) {
        copyOnWrite();
        instance.setAirPressureMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .air_pressure_data_message air_pressure_msg = 7;</code>
       */
      public Builder mergeAirPressureMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.air_pressure_data_message value) {
        copyOnWrite();
        instance.mergeAirPressureMsg(value);
        return this;
      }
      /**
       * <code>optional .air_pressure_data_message air_pressure_msg = 7;</code>
       */
      public Builder clearAirPressureMsg() {  copyOnWrite();
        instance.clearAirPressureMsg();
        return this;
      }

      /**
       * <code>optional .ephemeris_data_message ephemeris_data_msg = 8;</code>
       */
      @java.lang.Override
      public boolean hasEphemerisDataMsg() {
        return instance.hasEphemerisDataMsg();
      }
      /**
       * <code>optional .ephemeris_data_message ephemeris_data_msg = 8;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message getEphemerisDataMsg() {
        return instance.getEphemerisDataMsg();
      }
      /**
       * <code>optional .ephemeris_data_message ephemeris_data_msg = 8;</code>
       */
      public Builder setEphemerisDataMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message value) {
        copyOnWrite();
        instance.setEphemerisDataMsg(value);
        return this;
        }
      /**
       * <code>optional .ephemeris_data_message ephemeris_data_msg = 8;</code>
       */
      public Builder setEphemerisDataMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message.Builder builderForValue) {
        copyOnWrite();
        instance.setEphemerisDataMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .ephemeris_data_message ephemeris_data_msg = 8;</code>
       */
      public Builder mergeEphemerisDataMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.ephemeris_data_message value) {
        copyOnWrite();
        instance.mergeEphemerisDataMsg(value);
        return this;
      }
      /**
       * <code>optional .ephemeris_data_message ephemeris_data_msg = 8;</code>
       */
      public Builder clearEphemerisDataMsg() {  copyOnWrite();
        instance.clearEphemerisDataMsg();
        return this;
      }

      /**
       * <code>optional .time_data_message time_msg = 9;</code>
       */
      @java.lang.Override
      public boolean hasTimeMsg() {
        return instance.hasTimeMsg();
      }
      /**
       * <code>optional .time_data_message time_msg = 9;</code>
       */
      @java.lang.Override
      public nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message getTimeMsg() {
        return instance.getTimeMsg();
      }
      /**
       * <code>optional .time_data_message time_msg = 9;</code>
       */
      public Builder setTimeMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message value) {
        copyOnWrite();
        instance.setTimeMsg(value);
        return this;
        }
      /**
       * <code>optional .time_data_message time_msg = 9;</code>
       */
      public Builder setTimeMsg(
          nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message.Builder builderForValue) {
        copyOnWrite();
        instance.setTimeMsg(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .time_data_message time_msg = 9;</code>
       */
      public Builder mergeTimeMsg(nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.time_data_message value) {
        copyOnWrite();
        instance.mergeTimeMsg(value);
        return this;
      }
      /**
       * <code>optional .time_data_message time_msg = 9;</code>
       */
      public Builder clearTimeMsg() {  copyOnWrite();
        instance.clearTimeMsg();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:back_msg)
    }
    private byte memoizedIsInitialized = 2;
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.back_msg();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "serviceType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Common.service_type_index.internalGetVerifier(),
              "backServiceType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.BACK_SERVICE_TYPE.internalGetVerifier(),
              "backOperateType_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.BACK_OPERATE_TYPE.internalGetVerifier(),
              "threeDaysMsg_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_days_data_message.class,
              "curMsg_",
              "threeHoursMsg_",
              nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.weather_three_hour_data_memsage.class,
              "airPressureMsg_",
              "ephemerisDataMsg_",
              "timeMsg_",
            };
            java.lang.String info =
                "\u0001\t\u0000\u0001\u0001\t\t\u0000\u0002\u0003\u0001\u150c\u0000\u0002\u150c\u0001" +
                "\u0003\u150c\u0002\u0004\u001b\u0005\u1009\u0003\u0006\u001b\u0007\u1009\u0004\b" +
                "\u1009\u0005\t\u1009\u0006";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.back_msg> parser = PARSER;
          if (parser == null) {
            synchronized (nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.back_msg.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.back_msg>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return memoizedIsInitialized;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        memoizedIsInitialized = (byte) (arg0 == null ? 0 : 1);
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:back_msg)
    private static final nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.back_msg DEFAULT_INSTANCE;
    static {
      back_msg defaultInstance = new back_msg();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        back_msg.class, defaultInstance);
    }

    public static nodomain.freeyourgadget.gadgetbridge.proto.igpsport.Back.back_msg getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<back_msg> PARSER;

    public static com.google.protobuf.Parser<back_msg> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }


  static {
  }

  // @@protoc_insertion_point(outer_class_scope)
}
