content: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // NO CHECKED-IN PROTOBUF GENCODE
  // source: messages.proto
  // Protobuf Java Version: 4.28.2
  
  package finsky.protos;
  
  /**
   * Protobuf type {@code finsky.protos.AndroidCheckinRequest}
   */
  public  final class AndroidCheckinRequest extends
      com.google.protobuf.GeneratedMessageLite<
          AndroidCheckinRequest, AndroidCheckinRequest.Builder> implements
      // @@protoc_insertion_point(message_implements:finsky.protos.AndroidCheckinRequest)
      AndroidCheckinRequestOrBuilder {
    private AndroidCheckinRequest() {
      imei_ = "";
      digest_ = "";
      desiredBuild_ = "";
      locale_ = "";
      marketCheckin_ = "";
      macAddr_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
      meid_ = "";
      accountCookie_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
      timeZone_ = "";
      otaCert_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
      serialNumber_ = "";
      esn_ = "";
      macAddrType_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
      userName_ = "";
    }
    private int bitField0_;
    public static final int IMEI_FIELD_NUMBER = 1;
    private java.lang.String imei_;
    /**
     * <code>optional string imei = 1;</code>
     * @return Whether the imei field is set.
     */
    @java.lang.Override
    public boolean hasImei() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional string imei = 1;</code>
     * @return The imei.
     */
    @java.lang.Override
    public java.lang.String getImei() {
      return imei_;
    }
    /**
     * <code>optional string imei = 1;</code>
     * @return The bytes for imei.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getImeiBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(imei_);
    }
    /**
     * <code>optional string imei = 1;</code>
     * @param value The imei to set.
     */
    private void setImei(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00000001;
      imei_ = value;
    }
    /**
     * <code>optional string imei = 1;</code>
     */
    private void clearImei() {
      bitField0_ = (bitField0_ & ~0x00000001);
      imei_ = getDefaultInstance().getImei();
    }
    /**
     * <code>optional string imei = 1;</code>
     * @param value The bytes for imei to set.
     */
    private void setImeiBytes(
        com.google.protobuf.ByteString value) {
      imei_ = value.toStringUtf8();
      bitField0_ |= 0x00000001;
    }
  
    public static final int ID_FIELD_NUMBER = 2;
    private long id_;
    /**
     * <code>optional int64 id = 2 [default = 0];</code>
     * @return Whether the id field is set.
     */
    @java.lang.Override
    public boolean hasId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional int64 id = 2 [default = 0];</code>
     * @return The id.
     */
    @java.lang.Override
    public long getId() {
      return id_;
    }
    /**
     * <code>optional int64 id = 2 [default = 0];</code>
     * @param value The id to set.
     */
    private void setId(long value) {
      bitField0_ |= 0x00000002;
      id_ = value;
    }
    /**
     * <code>optional int64 id = 2 [default = 0];</code>
     */
    private void clearId() {
      bitField0_ = (bitField0_ & ~0x00000002);
      id_ = 0L;
    }
  
    public static final int DIGEST_FIELD_NUMBER = 3;
    private java.lang.String digest_;
    /**
     * <code>optional string digest = 3;</code>
     * @return Whether the digest field is set.
     */
    @java.lang.Override
    public boolean hasDigest() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional string digest = 3;</code>
     * @return The digest.
     */
    @java.lang.Override
    public java.lang.String getDigest() {
      return digest_;
    }
    /**
     * <code>optional string digest = 3;</code>
     * @return The bytes for digest.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDigestBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(digest_);
    }
    /**
     * <code>optional string digest = 3;</code>
     * @param value The digest to set.
     */
    private void setDigest(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00000004;
      digest_ = value;
    }
    /**
     * <code>optional string digest = 3;</code>
     */
    private void clearDigest() {
      bitField0_ = (bitField0_ & ~0x00000004);
      digest_ = getDefaultInstance().getDigest();
    }
    /**
     * <code>optional string digest = 3;</code>
     * @param value The bytes for digest to set.
     */
    private void setDigestBytes(
        com.google.protobuf.ByteString value) {
      digest_ = value.toStringUtf8();
      bitField0_ |= 0x00000004;
    }
  
    public static final int CHECKIN_FIELD_NUMBER = 4;
    private finsky.protos.AndroidCheckinProto checkin_;
    /**
     * <code>optional .finsky.protos.AndroidCheckinProto checkin = 4;</code>
     */
    @java.lang.Override
    public boolean hasCheckin() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional .finsky.protos.AndroidCheckinProto checkin = 4;</code>
     */
    @java.lang.Override
    public finsky.protos.AndroidCheckinProto getCheckin() {
      return checkin_ == null ? finsky.protos.AndroidCheckinProto.getDefaultInstance() : checkin_;
    }
    /**
     * <code>optional .finsky.protos.AndroidCheckinProto checkin = 4;</code>
     */
    private void setCheckin(finsky.protos.AndroidCheckinProto value) {
      value.getClass();
    checkin_ = value;
      bitField0_ |= 0x00000008;
      }
    /**
     * <code>optional .finsky.protos.AndroidCheckinProto checkin = 4;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeCheckin(finsky.protos.AndroidCheckinProto value) {
      value.getClass();
    if (checkin_ != null &&
          checkin_ != finsky.protos.AndroidCheckinProto.getDefaultInstance()) {
        checkin_ =
          finsky.protos.AndroidCheckinProto.newBuilder(checkin_).mergeFrom(value).buildPartial();
      } else {
        checkin_ = value;
      }
      bitField0_ |= 0x00000008;
    }
    /**
     * <code>optional .finsky.protos.AndroidCheckinProto checkin = 4;</code>
     */
    private void clearCheckin() {  checkin_ = null;
      bitField0_ = (bitField0_ & ~0x00000008);
    }
  
    public static final int DESIREDBUILD_FIELD_NUMBER = 5;
    private java.lang.String desiredBuild_;
    /**
     * <code>optional string desiredBuild = 5;</code>
     * @return Whether the desiredBuild field is set.
     */
    @java.lang.Override
    public boolean hasDesiredBuild() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional string desiredBuild = 5;</code>
     * @return The desiredBuild.
     */
    @java.lang.Override
    public java.lang.String getDesiredBuild() {
      return desiredBuild_;
    }
    /**
     * <code>optional string desiredBuild = 5;</code>
     * @return The bytes for desiredBuild.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDesiredBuildBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(desiredBuild_);
    }
    /**
     * <code>optional string desiredBuild = 5;</code>
     * @param value The desiredBuild to set.
     */
    private void setDesiredBuild(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00000010;
      desiredBuild_ = value;
    }
    /**
     * <code>optional string desiredBuild = 5;</code>
     */
    private void clearDesiredBuild() {
      bitField0_ = (bitField0_ & ~0x00000010);
      desiredBuild_ = getDefaultInstance().getDesiredBuild();
    }
    /**
     * <code>optional string desiredBuild = 5;</code>
     * @param value The bytes for desiredBuild to set.
     */
    private void setDesiredBuildBytes(
        com.google.protobuf.ByteString value) {
      desiredBuild_ = value.toStringUtf8();
      bitField0_ |= 0x00000010;
    }
  
    public static final int LOCALE_FIELD_NUMBER = 6;
    private java.lang.String locale_;
    /**
     * <code>optional string locale = 6;</code>
     * @return Whether the locale field is set.
     */
    @java.lang.Override
    public boolean hasLocale() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional string locale = 6;</code>
     * @return The locale.
     */
    @java.lang.Override
    public java.lang.String getLocale() {
      return locale_;
    }
    /**
     * <code>optional string locale = 6;</code>
     * @return The bytes for locale.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getLocaleBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(locale_);
    }
    /**
     * <code>optional string locale = 6;</code>
     * @param value The locale to set.
     */
    private void setLocale(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00000020;
      locale_ = value;
    }
    /**
     * <code>optional string locale = 6;</code>
     */
    private void clearLocale() {
      bitField0_ = (bitField0_ & ~0x00000020);
      locale_ = getDefaultInstance().getLocale();
    }
    /**
     * <code>optional string locale = 6;</code>
     * @param value The bytes for locale to set.
     */
    private void setLocaleBytes(
        com.google.protobuf.ByteString value) {
      locale_ = value.toStringUtf8();
      bitField0_ |= 0x00000020;
    }
  
    public static final int LOGGINGID_FIELD_NUMBER = 7;
    private long loggingId_;
    /**
     * <code>optional int64 loggingId = 7;</code>
     * @return Whether the loggingId field is set.
     */
    @java.lang.Override
    public boolean hasLoggingId() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional int64 loggingId = 7;</code>
     * @return The loggingId.
     */
    @java.lang.Override
    public long getLoggingId() {
      return loggingId_;
    }
    /**
     * <code>optional int64 loggingId = 7;</code>
     * @param value The loggingId to set.
     */
    private void setLoggingId(long value) {
      bitField0_ |= 0x00000040;
      loggingId_ = value;
    }
    /**
     * <code>optional int64 loggingId = 7;</code>
     */
    private void clearLoggingId() {
      bitField0_ = (bitField0_ & ~0x00000040);
      loggingId_ = 0L;
    }
  
    public static final int MARKETCHECKIN_FIELD_NUMBER = 8;
    private java.lang.String marketCheckin_;
    /**
     * <code>optional string marketCheckin = 8;</code>
     * @return Whether the marketCheckin field is set.
     */
    @java.lang.Override
    public boolean hasMarketCheckin() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <code>optional string marketCheckin = 8;</code>
     * @return The marketCheckin.
     */
    @java.lang.Override
    public java.lang.String getMarketCheckin() {
      return marketCheckin_;
    }
    /**
     * <code>optional string marketCheckin = 8;</code>
     * @return The bytes for marketCheckin.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMarketCheckinBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(marketCheckin_);
    }
    /**
     * <code>optional string marketCheckin = 8;</code>
     * @param value The marketCheckin to set.
     */
    private void setMarketCheckin(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00000080;
      marketCheckin_ = value;
    }
    /**
     * <code>optional string marketCheckin = 8;</code>
     */
    private void clearMarketCheckin() {
      bitField0_ = (bitField0_ & ~0x00000080);
      marketCheckin_ = getDefaultInstance().getMarketCheckin();
    }
    /**
     * <code>optional string marketCheckin = 8;</code>
     * @param value The bytes for marketCheckin to set.
     */
    private void setMarketCheckinBytes(
        com.google.protobuf.ByteString value) {
      marketCheckin_ = value.toStringUtf8();
      bitField0_ |= 0x00000080;
    }
  
    public static final int MACADDR_FIELD_NUMBER = 9;
    private com.google.protobuf.Internal.ProtobufList<java.lang.String> macAddr_;
    /**
     * <code>repeated string macAddr = 9;</code>
     * @return A list containing the macAddr.
     */
    @java.lang.Override
    public java.util.List<java.lang.String> getMacAddrList() {
      return macAddr_;
    }
    /**
     * <code>repeated string macAddr = 9;</code>
     * @return The count of macAddr.
     */
    @java.lang.Override
    public int getMacAddrCount() {
      return macAddr_.size();
    }
    /**
     * <code>repeated string macAddr = 9;</code>
     * @param index The index of the element to return.
     * @return The macAddr at the given index.
     */
    @java.lang.Override
    public java.lang.String getMacAddr(int index) {
      return macAddr_.get(index);
    }
    /**
     * <code>repeated string macAddr = 9;</code>
     * @param index The index of the value to return.
     * @return The bytes of the macAddr at the given index.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMacAddrBytes(int index) {
      return com.google.protobuf.ByteString.copyFromUtf8(
          macAddr_.get(index));
    }
    private void ensureMacAddrIsMutable() {
      com.google.protobuf.Internal.ProtobufList<java.lang.String> tmp =
          macAddr_;  if (!tmp.isModifiable()) {
        macAddr_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * <code>repeated string macAddr = 9;</code>
     * @param index The index to set the value at.
     * @param value The macAddr to set.
     */
    private void setMacAddr(
        int index, java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    ensureMacAddrIsMutable();
      macAddr_.set(index, value);
    }
    /**
     * <code>repeated string macAddr = 9;</code>
     * @param value The macAddr to add.
     */
    private void addMacAddr(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    ensureMacAddrIsMutable();
      macAddr_.add(value);
    }
    /**
     * <code>repeated string macAddr = 9;</code>
     * @param values The macAddr to add.
     */
    private void addAllMacAddr(
        java.lang.Iterable<java.lang.String> values) {
      ensureMacAddrIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, macAddr_);
    }
    /**
     * <code>repeated string macAddr = 9;</code>
     */
    private void clearMacAddr() {
      macAddr_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
    }
    /**
     * <code>repeated string macAddr = 9;</code>
     * @param value The bytes of the macAddr to add.
     */
    private void addMacAddrBytes(
        com.google.protobuf.ByteString value) {
      ensureMacAddrIsMutable();
      macAddr_.add(value.toStringUtf8());
    }
  
    public static final int MEID_FIELD_NUMBER = 10;
    private java.lang.String meid_;
    /**
     * <code>optional string meid = 10;</code>
     * @return Whether the meid field is set.
     */
    @java.lang.Override
    public boolean hasMeid() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <code>optional string meid = 10;</code>
     * @return The meid.
     */
    @java.lang.Override
    public java.lang.String getMeid() {
      return meid_;
    }
    /**
     * <code>optional string meid = 10;</code>
     * @return The bytes for meid.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMeidBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(meid_);
    }
    /**
     * <code>optional string meid = 10;</code>
     * @param value The meid to set.
     */
    private void setMeid(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00000100;
      meid_ = value;
    }
    /**
     * <code>optional string meid = 10;</code>
     */
    private void clearMeid() {
      bitField0_ = (bitField0_ & ~0x00000100);
      meid_ = getDefaultInstance().getMeid();
    }
    /**
     * <code>optional string meid = 10;</code>
     * @param value The bytes for meid to set.
     */
    private void setMeidBytes(
        com.google.protobuf.ByteString value) {
      meid_ = value.toStringUtf8();
      bitField0_ |= 0x00000100;
    }
  
    public static final int ACCOUNTCOOKIE_FIELD_NUMBER = 11;
    private com.google.protobuf.Internal.ProtobufList<java.lang.String> accountCookie_;
    /**
     * <code>repeated string accountCookie = 11;</code>
     * @return A list containing the accountCookie.
     */
    @java.lang.Override
    public java.util.List<java.lang.String> getAccountCookieList() {
      return accountCookie_;
    }
    /**
     * <code>repeated string accountCookie = 11;</code>
     * @return The count of accountCookie.
     */
    @java.lang.Override
    public int getAccountCookieCount() {
      return accountCookie_.size();
    }
    /**
     * <code>repeated string accountCookie = 11;</code>
     * @param index The index of the element to return.
     * @return The accountCookie at the given index.
     */
    @java.lang.Override
    public java.lang.String getAccountCookie(int index) {
      return accountCookie_.get(index);
    }
    /**
     * <code>repeated string accountCookie = 11;</code>
     * @param index The index of the value to return.
     * @return The bytes of the accountCookie at the given index.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAccountCookieBytes(int index) {
      return com.google.protobuf.ByteString.copyFromUtf8(
          accountCookie_.get(index));
    }
    private void ensureAccountCookieIsMutable() {
      com.google.protobuf.Internal.ProtobufList<java.lang.String> tmp =
          accountCookie_;  if (!tmp.isModifiable()) {
        accountCookie_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * <code>repeated string accountCookie = 11;</code>
     * @param index The index to set the value at.
     * @param value The accountCookie to set.
     */
    private void setAccountCookie(
        int index, java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    ensureAccountCookieIsMutable();
      accountCookie_.set(index, value);
    }
    /**
     * <code>repeated string accountCookie = 11;</code>
     * @param value The accountCookie to add.
     */
    private void addAccountCookie(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    ensureAccountCookieIsMutable();
      accountCookie_.add(value);
    }
    /**
     * <code>repeated string accountCookie = 11;</code>
     * @param values The accountCookie to add.
     */
    private void addAllAccountCookie(
        java.lang.Iterable<java.lang.String> values) {
      ensureAccountCookieIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, accountCookie_);
    }
    /**
     * <code>repeated string accountCookie = 11;</code>
     */
    private void clearAccountCookie() {
      accountCookie_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
    }
    /**
     * <code>repeated string accountCookie = 11;</code>
     * @param value The bytes of the accountCookie to add.
     */
    private void addAccountCookieBytes(
        com.google.protobuf.ByteString value) {
      ensureAccountCookieIsMutable();
      accountCookie_.add(value.toStringUtf8());
    }
  
    public static final int TIMEZONE_FIELD_NUMBER = 12;
    private java.lang.String timeZone_;
    /**
     * <code>optional string timeZone = 12;</code>
     * @return Whether the timeZone field is set.
     */
    @java.lang.Override
    public boolean hasTimeZone() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <code>optional string timeZone = 12;</code>
     * @return The timeZone.
     */
    @java.lang.Override
    public java.lang.String getTimeZone() {
      return timeZone_;
    }
    /**
     * <code>optional string timeZone = 12;</code>
     * @return The bytes for timeZone.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTimeZoneBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(timeZone_);
    }
    /**
     * <code>optional string timeZone = 12;</code>
     * @param value The timeZone to set.
     */
    private void setTimeZone(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00000200;
      timeZone_ = value;
    }
    /**
     * <code>optional string timeZone = 12;</code>
     */
    private void clearTimeZone() {
      bitField0_ = (bitField0_ & ~0x00000200);
      timeZone_ = getDefaultInstance().getTimeZone();
    }
    /**
     * <code>optional string timeZone = 12;</code>
     * @param value The bytes for timeZone to set.
     */
    private void setTimeZoneBytes(
        com.google.protobuf.ByteString value) {
      timeZone_ = value.toStringUtf8();
      bitField0_ |= 0x00000200;
    }
  
    public static final int SECURITYTOKEN_FIELD_NUMBER = 13;
    private long securityToken_;
    /**
     * <code>optional fixed64 securityToken = 13;</code>
     * @return Whether the securityToken field is set.
     */
    @java.lang.Override
    public boolean hasSecurityToken() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <code>optional fixed64 securityToken = 13;</code>
     * @return The securityToken.
     */
    @java.lang.Override
    public long getSecurityToken() {
      return securityToken_;
    }
    /**
     * <code>optional fixed64 securityToken = 13;</code>
     * @param value The securityToken to set.
     */
    private void setSecurityToken(long value) {
      bitField0_ |= 0x00000400;
      securityToken_ = value;
    }
    /**
     * <code>optional fixed64 securityToken = 13;</code>
     */
    private void clearSecurityToken() {
      bitField0_ = (bitField0_ & ~0x00000400);
      securityToken_ = 0L;
    }
  
    public static final int VERSION_FIELD_NUMBER = 14;
    private int version_;
    /**
     * <code>optional int32 version = 14;</code>
     * @return Whether the version field is set.
     */
    @java.lang.Override
    public boolean hasVersion() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <code>optional int32 version = 14;</code>
     * @return The version.
     */
    @java.lang.Override
    public int getVersion() {
      return version_;
    }
    /**
     * <code>optional int32 version = 14;</code>
     * @param value The version to set.
     */
    private void setVersion(int value) {
      bitField0_ |= 0x00000800;
      version_ = value;
    }
    /**
     * <code>optional int32 version = 14;</code>
     */
    private void clearVersion() {
      bitField0_ = (bitField0_ & ~0x00000800);
      version_ = 0;
    }
  
    public static final int OTACERT_FIELD_NUMBER = 15;
    private com.google.protobuf.Internal.ProtobufList<java.lang.String> otaCert_;
    /**
     * <code>repeated string otaCert = 15;</code>
     * @return A list containing the otaCert.
     */
    @java.lang.Override
    public java.util.List<java.lang.String> getOtaCertList() {
      return otaCert_;
    }
    /**
     * <code>repeated string otaCert = 15;</code>
     * @return The count of otaCert.
     */
    @java.lang.Override
    public int getOtaCertCount() {
      return otaCert_.size();
    }
    /**
     * <code>repeated string otaCert = 15;</code>
     * @param index The index of the element to return.
     * @return The otaCert at the given index.
     */
    @java.lang.Override
    public java.lang.String getOtaCert(int index) {
      return otaCert_.get(index);
    }
    /**
     * <code>repeated string otaCert = 15;</code>
     * @param index The index of the value to return.
     * @return The bytes of the otaCert at the given index.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getOtaCertBytes(int index) {
      return com.google.protobuf.ByteString.copyFromUtf8(
          otaCert_.get(index));
    }
    private void ensureOtaCertIsMutable() {
      com.google.protobuf.Internal.ProtobufList<java.lang.String> tmp =
          otaCert_;  if (!tmp.isModifiable()) {
        otaCert_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * <code>repeated string otaCert = 15;</code>
     * @param index The index to set the value at.
     * @param value The otaCert to set.
     */
    private void setOtaCert(
        int index, java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    ensureOtaCertIsMutable();
      otaCert_.set(index, value);
    }
    /**
     * <code>repeated string otaCert = 15;</code>
     * @param value The otaCert to add.
     */
    private void addOtaCert(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    ensureOtaCertIsMutable();
      otaCert_.add(value);
    }
    /**
     * <code>repeated string otaCert = 15;</code>
     * @param values The otaCert to add.
     */
    private void addAllOtaCert(
        java.lang.Iterable<java.lang.String> values) {
      ensureOtaCertIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, otaCert_);
    }
    /**
     * <code>repeated string otaCert = 15;</code>
     */
    private void clearOtaCert() {
      otaCert_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
    }
    /**
     * <code>repeated string otaCert = 15;</code>
     * @param value The bytes of the otaCert to add.
     */
    private void addOtaCertBytes(
        com.google.protobuf.ByteString value) {
      ensureOtaCertIsMutable();
      otaCert_.add(value.toStringUtf8());
    }
  
    public static final int SERIALNUMBER_FIELD_NUMBER = 16;
    private java.lang.String serialNumber_;
    /**
     * <code>optional string serialNumber = 16;</code>
     * @return Whether the serialNumber field is set.
     */
    @java.lang.Override
    public boolean hasSerialNumber() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <code>optional string serialNumber = 16;</code>
     * @return The serialNumber.
     */
    @java.lang.Override
    public java.lang.String getSerialNumber() {
      return serialNumber_;
    }
    /**
     * <code>optional string serialNumber = 16;</code>
     * @return The bytes for serialNumber.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSerialNumberBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(serialNumber_);
    }
    /**
     * <code>optional string serialNumber = 16;</code>
     * @param value The serialNumber to set.
     */
    private void setSerialNumber(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00001000;
      serialNumber_ = value;
    }
    /**
     * <code>optional string serialNumber = 16;</code>
     */
    private void clearSerialNumber() {
      bitField0_ = (bitField0_ & ~0x00001000);
      serialNumber_ = getDefaultInstance().getSerialNumber();
    }
    /**
     * <code>optional string serialNumber = 16;</code>
     * @param value The bytes for serialNumber to set.
     */
    private void setSerialNumberBytes(
        com.google.protobuf.ByteString value) {
      serialNumber_ = value.toStringUtf8();
      bitField0_ |= 0x00001000;
    }
  
    public static final int ESN_FIELD_NUMBER = 17;
    private java.lang.String esn_;
    /**
     * <code>optional string esn = 17;</code>
     * @return Whether the esn field is set.
     */
    @java.lang.Override
    public boolean hasEsn() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <code>optional string esn = 17;</code>
     * @return The esn.
     */
    @java.lang.Override
    public java.lang.String getEsn() {
      return esn_;
    }
    /**
     * <code>optional string esn = 17;</code>
     * @return The bytes for esn.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getEsnBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(esn_);
    }
    /**
     * <code>optional string esn = 17;</code>
     * @param value The esn to set.
     */
    private void setEsn(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00002000;
      esn_ = value;
    }
    /**
     * <code>optional string esn = 17;</code>
     */
    private void clearEsn() {
      bitField0_ = (bitField0_ & ~0x00002000);
      esn_ = getDefaultInstance().getEsn();
    }
    /**
     * <code>optional string esn = 17;</code>
     * @param value The bytes for esn to set.
     */
    private void setEsnBytes(
        com.google.protobuf.ByteString value) {
      esn_ = value.toStringUtf8();
      bitField0_ |= 0x00002000;
    }
  
    public static final int DEVICECONFIGURATION_FIELD_NUMBER = 18;
    private finsky.protos.DeviceConfigurationProto deviceConfiguration_;
    /**
     * <code>optional .finsky.protos.DeviceConfigurationProto deviceConfiguration = 18;</code>
     */
    @java.lang.Override
    public boolean hasDeviceConfiguration() {
      return ((bitField0_ & 0x00004000) != 0);
    }
    /**
     * <code>optional .finsky.protos.DeviceConfigurationProto deviceConfiguration = 18;</code>
     */
    @java.lang.Override
    public finsky.protos.DeviceConfigurationProto getDeviceConfiguration() {
      return deviceConfiguration_ == null ? finsky.protos.DeviceConfigurationProto.getDefaultInstance() : deviceConfiguration_;
    }
    /**
     * <code>optional .finsky.protos.DeviceConfigurationProto deviceConfiguration = 18;</code>
     */
    private void setDeviceConfiguration(finsky.protos.DeviceConfigurationProto value) {
      value.getClass();
    deviceConfiguration_ = value;
      bitField0_ |= 0x00004000;
      }
    /**
     * <code>optional .finsky.protos.DeviceConfigurationProto deviceConfiguration = 18;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeDeviceConfiguration(finsky.protos.DeviceConfigurationProto value) {
      value.getClass();
    if (deviceConfiguration_ != null &&
          deviceConfiguration_ != finsky.protos.DeviceConfigurationProto.getDefaultInstance()) {
        deviceConfiguration_ =
          finsky.protos.DeviceConfigurationProto.newBuilder(deviceConfiguration_).mergeFrom(value).buildPartial();
      } else {
        deviceConfiguration_ = value;
      }
      bitField0_ |= 0x00004000;
    }
    /**
     * <code>optional .finsky.protos.DeviceConfigurationProto deviceConfiguration = 18;</code>
     */
    private void clearDeviceConfiguration() {  deviceConfiguration_ = null;
      bitField0_ = (bitField0_ & ~0x00004000);
    }
  
    public static final int MACADDRTYPE_FIELD_NUMBER = 19;
    private com.google.protobuf.Internal.ProtobufList<java.lang.String> macAddrType_;
    /**
     * <code>repeated string macAddrType = 19;</code>
     * @return A list containing the macAddrType.
     */
    @java.lang.Override
    public java.util.List<java.lang.String> getMacAddrTypeList() {
      return macAddrType_;
    }
    /**
     * <code>repeated string macAddrType = 19;</code>
     * @return The count of macAddrType.
     */
    @java.lang.Override
    public int getMacAddrTypeCount() {
      return macAddrType_.size();
    }
    /**
     * <code>repeated string macAddrType = 19;</code>
     * @param index The index of the element to return.
     * @return The macAddrType at the given index.
     */
    @java.lang.Override
    public java.lang.String getMacAddrType(int index) {
      return macAddrType_.get(index);
    }
    /**
     * <code>repeated string macAddrType = 19;</code>
     * @param index The index of the value to return.
     * @return The bytes of the macAddrType at the given index.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMacAddrTypeBytes(int index) {
      return com.google.protobuf.ByteString.copyFromUtf8(
          macAddrType_.get(index));
    }
    private void ensureMacAddrTypeIsMutable() {
      com.google.protobuf.Internal.ProtobufList<java.lang.String> tmp =
          macAddrType_;  if (!tmp.isModifiable()) {
        macAddrType_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * <code>repeated string macAddrType = 19;</code>
     * @param index The index to set the value at.
     * @param value The macAddrType to set.
     */
    private void setMacAddrType(
        int index, java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    ensureMacAddrTypeIsMutable();
      macAddrType_.set(index, value);
    }
    /**
     * <code>repeated string macAddrType = 19;</code>
     * @param value The macAddrType to add.
     */
    private void addMacAddrType(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    ensureMacAddrTypeIsMutable();
      macAddrType_.add(value);
    }
    /**
     * <code>repeated string macAddrType = 19;</code>
     * @param values The macAddrType to add.
     */
    private void addAllMacAddrType(
        java.lang.Iterable<java.lang.String> values) {
      ensureMacAddrTypeIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, macAddrType_);
    }
    /**
     * <code>repeated string macAddrType = 19;</code>
     */
    private void clearMacAddrType() {
      macAddrType_ = com.google.protobuf.GeneratedMessageLite.emptyProtobufList();
    }
    /**
     * <code>repeated string macAddrType = 19;</code>
     * @param value The bytes of the macAddrType to add.
     */
    private void addMacAddrTypeBytes(
        com.google.protobuf.ByteString value) {
      ensureMacAddrTypeIsMutable();
      macAddrType_.add(value.toStringUtf8());
    }
  
    public static final int FRAGMENT_FIELD_NUMBER = 20;
    private int fragment_;
    /**
     * <code>optional int32 fragment = 20;</code>
     * @return Whether the fragment field is set.
     */
    @java.lang.Override
    public boolean hasFragment() {
      return ((bitField0_ & 0x00008000) != 0);
    }
    /**
     * <code>optional int32 fragment = 20;</code>
     * @return The fragment.
     */
    @java.lang.Override
    public int getFragment() {
      return fragment_;
    }
    /**
     * <code>optional int32 fragment = 20;</code>
     * @param value The fragment to set.
     */
    private void setFragment(int value) {
      bitField0_ |= 0x00008000;
      fragment_ = value;
    }
    /**
     * <code>optional int32 fragment = 20;</code>
     */
    private void clearFragment() {
      bitField0_ = (bitField0_ & ~0x00008000);
      fragment_ = 0;
    }
  
    public static final int USERNAME_FIELD_NUMBER = 21;
    private java.lang.String userName_;
    /**
     * <code>optional string userName = 21;</code>
     * @return Whether the userName field is set.
     */
    @java.lang.Override
    public boolean hasUserName() {
      return ((bitField0_ & 0x00010000) != 0);
    }
    /**
     * <code>optional string userName = 21;</code>
     * @return The userName.
     */
    @java.lang.Override
    public java.lang.String getUserName() {
      return userName_;
    }
    /**
     * <code>optional string userName = 21;</code>
     * @return The bytes for userName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getUserNameBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(userName_);
    }
    /**
     * <code>optional string userName = 21;</code>
     * @param value The userName to set.
     */
    private void setUserName(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00010000;
      userName_ = value;
    }
    /**
     * <code>optional string userName = 21;</code>
     */
    private void clearUserName() {
      bitField0_ = (bitField0_ & ~0x00010000);
      userName_ = getDefaultInstance().getUserName();
    }
    /**
     * <code>optional string userName = 21;</code>
     * @param value The bytes for userName to set.
     */
    private void setUserNameBytes(
        com.google.protobuf.ByteString value) {
      userName_ = value.toStringUtf8();
      bitField0_ |= 0x00010000;
    }
  
    public static final int USERSERIALNUMBER_FIELD_NUMBER = 22;
    private int userSerialNumber_;
    /**
     * <code>optional int32 userSerialNumber = 22;</code>
     * @return Whether the userSerialNumber field is set.
     */
    @java.lang.Override
    public boolean hasUserSerialNumber() {
      return ((bitField0_ & 0x00020000) != 0);
    }
    /**
     * <code>optional int32 userSerialNumber = 22;</code>
     * @return The userSerialNumber.
     */
    @java.lang.Override
    public int getUserSerialNumber() {
      return userSerialNumber_;
    }
    /**
     * <code>optional int32 userSerialNumber = 22;</code>
     * @param value The userSerialNumber to set.
     */
    private void setUserSerialNumber(int value) {
      bitField0_ |= 0x00020000;
      userSerialNumber_ = value;
    }
    /**
     * <code>optional int32 userSerialNumber = 22;</code>
     */
    private void clearUserSerialNumber() {
      bitField0_ = (bitField0_ & ~0x00020000);
      userSerialNumber_ = 0;
    }
  
    public static finsky.protos.AndroidCheckinRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static finsky.protos.AndroidCheckinRequest 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 finsky.protos.AndroidCheckinRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static finsky.protos.AndroidCheckinRequest 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 finsky.protos.AndroidCheckinRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static finsky.protos.AndroidCheckinRequest 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 finsky.protos.AndroidCheckinRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static finsky.protos.AndroidCheckinRequest 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 finsky.protos.AndroidCheckinRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
  
    public static finsky.protos.AndroidCheckinRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static finsky.protos.AndroidCheckinRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static finsky.protos.AndroidCheckinRequest 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(finsky.protos.AndroidCheckinRequest prototype) {
      return DEFAULT_INSTANCE.createBuilder(prototype);
    }
  
    /**
     * Protobuf type {@code finsky.protos.AndroidCheckinRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          finsky.protos.AndroidCheckinRequest, Builder> implements
        // @@protoc_insertion_point(builder_implements:finsky.protos.AndroidCheckinRequest)
        finsky.protos.AndroidCheckinRequestOrBuilder {
      // Construct using finsky.protos.AndroidCheckinRequest.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }
  
  
      /**
       * <code>optional string imei = 1;</code>
       * @return Whether the imei field is set.
       */
      @java.lang.Override
      public boolean hasImei() {
        return instance.hasImei();
      }
      /**
       * <code>optional string imei = 1;</code>
       * @return The imei.
       */
      @java.lang.Override
      public java.lang.String getImei() {
        return instance.getImei();
      }
      /**
       * <code>optional string imei = 1;</code>
       * @return The bytes for imei.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getImeiBytes() {
        return instance.getImeiBytes();
      }
      /**
       * <code>optional string imei = 1;</code>
       * @param value The imei to set.
       * @return This builder for chaining.
       */
      public Builder setImei(
          java.lang.String value) {
        copyOnWrite();
        instance.setImei(value);
        return this;
      }
      /**
       * <code>optional string imei = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearImei() {
        copyOnWrite();
        instance.clearImei();
        return this;
      }
      /**
       * <code>optional string imei = 1;</code>
       * @param value The bytes for imei to set.
       * @return This builder for chaining.
       */
      public Builder setImeiBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setImeiBytes(value);
        return this;
      }
  
      /**
       * <code>optional int64 id = 2 [default = 0];</code>
       * @return Whether the id field is set.
       */
      @java.lang.Override
      public boolean hasId() {
        return instance.hasId();
      }
      /**
       * <code>optional int64 id = 2 [default = 0];</code>
       * @return The id.
       */
      @java.lang.Override
      public long getId() {
        return instance.getId();
      }
      /**
       * <code>optional int64 id = 2 [default = 0];</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(long value) {
        copyOnWrite();
        instance.setId(value);
        return this;
      }
      /**
       * <code>optional int64 id = 2 [default = 0];</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        copyOnWrite();
        instance.clearId();
        return this;
      }
  
      /**
       * <code>optional string digest = 3;</code>
       * @return Whether the digest field is set.
       */
      @java.lang.Override
      public boolean hasDigest() {
        return instance.hasDigest();
      }
      /**
       * <code>optional string digest = 3;</code>
       * @return The digest.
       */
      @java.lang.Override
      public java.lang.String getDigest() {
        return instance.getDigest();
      }
      /**
       * <code>optional string digest = 3;</code>
       * @return The bytes for digest.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getDigestBytes() {
        return instance.getDigestBytes();
      }
      /**
       * <code>optional string digest = 3;</code>
       * @param value The digest to set.
       * @return This builder for chaining.
       */
      public Builder setDigest(
          java.lang.String value) {
        copyOnWrite();
        instance.setDigest(value);
        return this;
      }
      /**
       * <code>optional string digest = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearDigest() {
        copyOnWrite();
        instance.clearDigest();
        return this;
      }
      /**
       * <code>optional string digest = 3;</code>
       * @param value The bytes for digest to set.
       * @return This builder for chaining.
       */
      public Builder setDigestBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setDigestBytes(value);
        return this;
      }
  
      /**
       * <code>optional .finsky.protos.AndroidCheckinProto checkin = 4;</code>
       */
      @java.lang.Override
      public boolean hasCheckin() {
        return instance.hasCheckin();
      }
      /**
       * <code>optional .finsky.protos.AndroidCheckinProto checkin = 4;</code>
       */
      @java.lang.Override
      public finsky.protos.AndroidCheckinProto getCheckin() {
        return instance.getCheckin();
      }
      /**
       * <code>optional .finsky.protos.AndroidCheckinProto checkin = 4;</code>
       */
      public Builder setCheckin(finsky.protos.AndroidCheckinProto value) {
        copyOnWrite();
        instance.setCheckin(value);
        return this;
        }
      /**
       * <code>optional .finsky.protos.AndroidCheckinProto checkin = 4;</code>
       */
      public Builder setCheckin(
          finsky.protos.AndroidCheckinProto.Builder builderForValue) {
        copyOnWrite();
        instance.setCheckin(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .finsky.protos.AndroidCheckinProto checkin = 4;</code>
       */
      public Builder mergeCheckin(finsky.protos.AndroidCheckinProto value) {
        copyOnWrite();
        instance.mergeCheckin(value);
        return this;
      }
      /**
       * <code>optional .finsky.protos.AndroidCheckinProto checkin = 4;</code>
       */
      public Builder clearCheckin() {  copyOnWrite();
        instance.clearCheckin();
        return this;
      }
  
      /**
       * <code>optional string desiredBuild = 5;</code>
       * @return Whether the desiredBuild field is set.
       */
      @java.lang.Override
      public boolean hasDesiredBuild() {
        return instance.hasDesiredBuild();
      }
      /**
       * <code>optional string desiredBuild = 5;</code>
       * @return The desiredBuild.
       */
      @java.lang.Override
      public java.lang.String getDesiredBuild() {
        return instance.getDesiredBuild();
      }
      /**
       * <code>optional string desiredBuild = 5;</code>
       * @return The bytes for desiredBuild.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getDesiredBuildBytes() {
        return instance.getDesiredBuildBytes();
      }
      /**
       * <code>optional string desiredBuild = 5;</code>
       * @param value The desiredBuild to set.
       * @return This builder for chaining.
       */
      public Builder setDesiredBuild(
          java.lang.String value) {
        copyOnWrite();
        instance.setDesiredBuild(value);
        return this;
      }
      /**
       * <code>optional string desiredBuild = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearDesiredBuild() {
        copyOnWrite();
        instance.clearDesiredBuild();
        return this;
      }
      /**
       * <code>optional string desiredBuild = 5;</code>
       * @param value The bytes for desiredBuild to set.
       * @return This builder for chaining.
       */
      public Builder setDesiredBuildBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setDesiredBuildBytes(value);
        return this;
      }
  
      /**
       * <code>optional string locale = 6;</code>
       * @return Whether the locale field is set.
       */
      @java.lang.Override
      public boolean hasLocale() {
        return instance.hasLocale();
      }
      /**
       * <code>optional string locale = 6;</code>
       * @return The locale.
       */
      @java.lang.Override
      public java.lang.String getLocale() {
        return instance.getLocale();
      }
      /**
       * <code>optional string locale = 6;</code>
       * @return The bytes for locale.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getLocaleBytes() {
        return instance.getLocaleBytes();
      }
      /**
       * <code>optional string locale = 6;</code>
       * @param value The locale to set.
       * @return This builder for chaining.
       */
      public Builder setLocale(
          java.lang.String value) {
        copyOnWrite();
        instance.setLocale(value);
        return this;
      }
      /**
       * <code>optional string locale = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearLocale() {
        copyOnWrite();
        instance.clearLocale();
        return this;
      }
      /**
       * <code>optional string locale = 6;</code>
       * @param value The bytes for locale to set.
       * @return This builder for chaining.
       */
      public Builder setLocaleBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setLocaleBytes(value);
        return this;
      }
  
      /**
       * <code>optional int64 loggingId = 7;</code>
       * @return Whether the loggingId field is set.
       */
      @java.lang.Override
      public boolean hasLoggingId() {
        return instance.hasLoggingId();
      }
      /**
       * <code>optional int64 loggingId = 7;</code>
       * @return The loggingId.
       */
      @java.lang.Override
      public long getLoggingId() {
        return instance.getLoggingId();
      }
      /**
       * <code>optional int64 loggingId = 7;</code>
       * @param value The loggingId to set.
       * @return This builder for chaining.
       */
      public Builder setLoggingId(long value) {
        copyOnWrite();
        instance.setLoggingId(value);
        return this;
      }
      /**
       * <code>optional int64 loggingId = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearLoggingId() {
        copyOnWrite();
        instance.clearLoggingId();
        return this;
      }
  
      /**
       * <code>optional string marketCheckin = 8;</code>
       * @return Whether the marketCheckin field is set.
       */
      @java.lang.Override
      public boolean hasMarketCheckin() {
        return instance.hasMarketCheckin();
      }
      /**
       * <code>optional string marketCheckin = 8;</code>
       * @return The marketCheckin.
       */
      @java.lang.Override
      public java.lang.String getMarketCheckin() {
        return instance.getMarketCheckin();
      }
      /**
       * <code>optional string marketCheckin = 8;</code>
       * @return The bytes for marketCheckin.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getMarketCheckinBytes() {
        return instance.getMarketCheckinBytes();
      }
      /**
       * <code>optional string marketCheckin = 8;</code>
       * @param value The marketCheckin to set.
       * @return This builder for chaining.
       */
      public Builder setMarketCheckin(
          java.lang.String value) {
        copyOnWrite();
        instance.setMarketCheckin(value);
        return this;
      }
      /**
       * <code>optional string marketCheckin = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearMarketCheckin() {
        copyOnWrite();
        instance.clearMarketCheckin();
        return this;
      }
      /**
       * <code>optional string marketCheckin = 8;</code>
       * @param value The bytes for marketCheckin to set.
       * @return This builder for chaining.
       */
      public Builder setMarketCheckinBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setMarketCheckinBytes(value);
        return this;
      }
  
      /**
       * <code>repeated string macAddr = 9;</code>
       * @return A list containing the macAddr.
       */
      @java.lang.Override
      public java.util.List<java.lang.String>
          getMacAddrList() {
        return java.util.Collections.unmodifiableList(
            instance.getMacAddrList());
      }
      /**
       * <code>repeated string macAddr = 9;</code>
       * @return The count of macAddr.
       */
      @java.lang.Override
      public int getMacAddrCount() {
        return instance.getMacAddrCount();
      }
      /**
       * <code>repeated string macAddr = 9;</code>
       * @param index The index of the element to return.
       * @return The macAddr at the given index.
       */
      @java.lang.Override
      public java.lang.String getMacAddr(int index) {
        return instance.getMacAddr(index);
      }
      /**
       * <code>repeated string macAddr = 9;</code>
       * @param index The index of the value to return.
       * @return The bytes of the macAddr at the given index.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getMacAddrBytes(int index) {
        return instance.getMacAddrBytes(index);
      }
      /**
       * <code>repeated string macAddr = 9;</code>
       * @param index The index to set the value at.
       * @param value The macAddr to set.
       * @return This builder for chaining.
       */
      public Builder setMacAddr(
          int index, java.lang.String value) {
        copyOnWrite();
        instance.setMacAddr(index, value);
        return this;
      }
      /**
       * <code>repeated string macAddr = 9;</code>
       * @param value The macAddr to add.
       * @return This builder for chaining.
       */
      public Builder addMacAddr(
          java.lang.String value) {
        copyOnWrite();
        instance.addMacAddr(value);
        return this;
      }
      /**
       * <code>repeated string macAddr = 9;</code>
       * @param values The macAddr to add.
       * @return This builder for chaining.
       */
      public Builder addAllMacAddr(
          java.lang.Iterable<java.lang.String> values) {
        copyOnWrite();
        instance.addAllMacAddr(values);
        return this;
      }
      /**
       * <code>repeated string macAddr = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearMacAddr() {
        copyOnWrite();
        instance.clearMacAddr();
        return this;
      }
      /**
       * <code>repeated string macAddr = 9;</code>
       * @param value The bytes of the macAddr to add.
       * @return This builder for chaining.
       */
      public Builder addMacAddrBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.addMacAddrBytes(value);
        return this;
      }
  
      /**
       * <code>optional string meid = 10;</code>
       * @return Whether the meid field is set.
       */
      @java.lang.Override
      public boolean hasMeid() {
        return instance.hasMeid();
      }
      /**
       * <code>optional string meid = 10;</code>
       * @return The meid.
       */
      @java.lang.Override
      public java.lang.String getMeid() {
        return instance.getMeid();
      }
      /**
       * <code>optional string meid = 10;</code>
       * @return The bytes for meid.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getMeidBytes() {
        return instance.getMeidBytes();
      }
      /**
       * <code>optional string meid = 10;</code>
       * @param value The meid to set.
       * @return This builder for chaining.
       */
      public Builder setMeid(
          java.lang.String value) {
        copyOnWrite();
        instance.setMeid(value);
        return this;
      }
      /**
       * <code>optional string meid = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearMeid() {
        copyOnWrite();
        instance.clearMeid();
        return this;
      }
      /**
       * <code>optional string meid = 10;</code>
       * @param value The bytes for meid to set.
       * @return This builder for chaining.
       */
      public Builder setMeidBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setMeidBytes(value);
        return this;
      }
  
      /**
       * <code>repeated string accountCookie = 11;</code>
       * @return A list containing the accountCookie.
       */
      @java.lang.Override
      public java.util.List<java.lang.String>
          getAccountCookieList() {
        return java.util.Collections.unmodifiableList(
            instance.getAccountCookieList());
      }
      /**
       * <code>repeated string accountCookie = 11;</code>
       * @return The count of accountCookie.
       */
      @java.lang.Override
      public int getAccountCookieCount() {
        return instance.getAccountCookieCount();
      }
      /**
       * <code>repeated string accountCookie = 11;</code>
       * @param index The index of the element to return.
       * @return The accountCookie at the given index.
       */
      @java.lang.Override
      public java.lang.String getAccountCookie(int index) {
        return instance.getAccountCookie(index);
      }
      /**
       * <code>repeated string accountCookie = 11;</code>
       * @param index The index of the value to return.
       * @return The bytes of the accountCookie at the given index.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getAccountCookieBytes(int index) {
        return instance.getAccountCookieBytes(index);
      }
      /**
       * <code>repeated string accountCookie = 11;</code>
       * @param index The index to set the value at.
       * @param value The accountCookie to set.
       * @return This builder for chaining.
       */
      public Builder setAccountCookie(
          int index, java.lang.String value) {
        copyOnWrite();
        instance.setAccountCookie(index, value);
        return this;
      }
      /**
       * <code>repeated string accountCookie = 11;</code>
       * @param value The accountCookie to add.
       * @return This builder for chaining.
       */
      public Builder addAccountCookie(
          java.lang.String value) {
        copyOnWrite();
        instance.addAccountCookie(value);
        return this;
      }
      /**
       * <code>repeated string accountCookie = 11;</code>
       * @param values The accountCookie to add.
       * @return This builder for chaining.
       */
      public Builder addAllAccountCookie(
          java.lang.Iterable<java.lang.String> values) {
        copyOnWrite();
        instance.addAllAccountCookie(values);
        return this;
      }
      /**
       * <code>repeated string accountCookie = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearAccountCookie() {
        copyOnWrite();
        instance.clearAccountCookie();
        return this;
      }
      /**
       * <code>repeated string accountCookie = 11;</code>
       * @param value The bytes of the accountCookie to add.
       * @return This builder for chaining.
       */
      public Builder addAccountCookieBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.addAccountCookieBytes(value);
        return this;
      }
  
      /**
       * <code>optional string timeZone = 12;</code>
       * @return Whether the timeZone field is set.
       */
      @java.lang.Override
      public boolean hasTimeZone() {
        return instance.hasTimeZone();
      }
      /**
       * <code>optional string timeZone = 12;</code>
       * @return The timeZone.
       */
      @java.lang.Override
      public java.lang.String getTimeZone() {
        return instance.getTimeZone();
      }
      /**
       * <code>optional string timeZone = 12;</code>
       * @return The bytes for timeZone.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getTimeZoneBytes() {
        return instance.getTimeZoneBytes();
      }
      /**
       * <code>optional string timeZone = 12;</code>
       * @param value The timeZone to set.
       * @return This builder for chaining.
       */
      public Builder setTimeZone(
          java.lang.String value) {
        copyOnWrite();
        instance.setTimeZone(value);
        return this;
      }
      /**
       * <code>optional string timeZone = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeZone() {
        copyOnWrite();
        instance.clearTimeZone();
        return this;
      }
      /**
       * <code>optional string timeZone = 12;</code>
       * @param value The bytes for timeZone to set.
       * @return This builder for chaining.
       */
      public Builder setTimeZoneBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTimeZoneBytes(value);
        return this;
      }
  
      /**
       * <code>optional fixed64 securityToken = 13;</code>
       * @return Whether the securityToken field is set.
       */
      @java.lang.Override
      public boolean hasSecurityToken() {
        return instance.hasSecurityToken();
      }
      /**
       * <code>optional fixed64 securityToken = 13;</code>
       * @return The securityToken.
       */
      @java.lang.Override
      public long getSecurityToken() {
        return instance.getSecurityToken();
      }
      /**
       * <code>optional fixed64 securityToken = 13;</code>
       * @param value The securityToken to set.
       * @return This builder for chaining.
       */
      public Builder setSecurityToken(long value) {
        copyOnWrite();
        instance.setSecurityToken(value);
        return this;
      }
      /**
       * <code>optional fixed64 securityToken = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearSecurityToken() {
        copyOnWrite();
        instance.clearSecurityToken();
        return this;
      }
  
      /**
       * <code>optional int32 version = 14;</code>
       * @return Whether the version field is set.
       */
      @java.lang.Override
      public boolean hasVersion() {
        return instance.hasVersion();
      }
      /**
       * <code>optional int32 version = 14;</code>
       * @return The version.
       */
      @java.lang.Override
      public int getVersion() {
        return instance.getVersion();
      }
      /**
       * <code>optional int32 version = 14;</code>
       * @param value The version to set.
       * @return This builder for chaining.
       */
      public Builder setVersion(int value) {
        copyOnWrite();
        instance.setVersion(value);
        return this;
      }
      /**
       * <code>optional int32 version = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearVersion() {
        copyOnWrite();
        instance.clearVersion();
        return this;
      }
  
      /**
       * <code>repeated string otaCert = 15;</code>
       * @return A list containing the otaCert.
       */
      @java.lang.Override
      public java.util.List<java.lang.String>
          getOtaCertList() {
        return java.util.Collections.unmodifiableList(
            instance.getOtaCertList());
      }
      /**
       * <code>repeated string otaCert = 15;</code>
       * @return The count of otaCert.
       */
      @java.lang.Override
      public int getOtaCertCount() {
        return instance.getOtaCertCount();
      }
      /**
       * <code>repeated string otaCert = 15;</code>
       * @param index The index of the element to return.
       * @return The otaCert at the given index.
       */
      @java.lang.Override
      public java.lang.String getOtaCert(int index) {
        return instance.getOtaCert(index);
      }
      /**
       * <code>repeated string otaCert = 15;</code>
       * @param index The index of the value to return.
       * @return The bytes of the otaCert at the given index.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getOtaCertBytes(int index) {
        return instance.getOtaCertBytes(index);
      }
      /**
       * <code>repeated string otaCert = 15;</code>
       * @param index The index to set the value at.
       * @param value The otaCert to set.
       * @return This builder for chaining.
       */
      public Builder setOtaCert(
          int index, java.lang.String value) {
        copyOnWrite();
        instance.setOtaCert(index, value);
        return this;
      }
      /**
       * <code>repeated string otaCert = 15;</code>
       * @param value The otaCert to add.
       * @return This builder for chaining.
       */
      public Builder addOtaCert(
          java.lang.String value) {
        copyOnWrite();
        instance.addOtaCert(value);
        return this;
      }
      /**
       * <code>repeated string otaCert = 15;</code>
       * @param values The otaCert to add.
       * @return This builder for chaining.
       */
      public Builder addAllOtaCert(
          java.lang.Iterable<java.lang.String> values) {
        copyOnWrite();
        instance.addAllOtaCert(values);
        return this;
      }
      /**
       * <code>repeated string otaCert = 15;</code>
       * @return This builder for chaining.
       */
      public Builder clearOtaCert() {
        copyOnWrite();
        instance.clearOtaCert();
        return this;
      }
      /**
       * <code>repeated string otaCert = 15;</code>
       * @param value The bytes of the otaCert to add.
       * @return This builder for chaining.
       */
      public Builder addOtaCertBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.addOtaCertBytes(value);
        return this;
      }
  
      /**
       * <code>optional string serialNumber = 16;</code>
       * @return Whether the serialNumber field is set.
       */
      @java.lang.Override
      public boolean hasSerialNumber() {
        return instance.hasSerialNumber();
      }
      /**
       * <code>optional string serialNumber = 16;</code>
       * @return The serialNumber.
       */
      @java.lang.Override
      public java.lang.String getSerialNumber() {
        return instance.getSerialNumber();
      }
      /**
       * <code>optional string serialNumber = 16;</code>
       * @return The bytes for serialNumber.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getSerialNumberBytes() {
        return instance.getSerialNumberBytes();
      }
      /**
       * <code>optional string serialNumber = 16;</code>
       * @param value The serialNumber to set.
       * @return This builder for chaining.
       */
      public Builder setSerialNumber(
          java.lang.String value) {
        copyOnWrite();
        instance.setSerialNumber(value);
        return this;
      }
      /**
       * <code>optional string serialNumber = 16;</code>
       * @return This builder for chaining.
       */
      public Builder clearSerialNumber() {
        copyOnWrite();
        instance.clearSerialNumber();
        return this;
      }
      /**
       * <code>optional string serialNumber = 16;</code>
       * @param value The bytes for serialNumber to set.
       * @return This builder for chaining.
       */
      public Builder setSerialNumberBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setSerialNumberBytes(value);
        return this;
      }
  
      /**
       * <code>optional string esn = 17;</code>
       * @return Whether the esn field is set.
       */
      @java.lang.Override
      public boolean hasEsn() {
        return instance.hasEsn();
      }
      /**
       * <code>optional string esn = 17;</code>
       * @return The esn.
       */
      @java.lang.Override
      public java.lang.String getEsn() {
        return instance.getEsn();
      }
      /**
       * <code>optional string esn = 17;</code>
       * @return The bytes for esn.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getEsnBytes() {
        return instance.getEsnBytes();
      }
      /**
       * <code>optional string esn = 17;</code>
       * @param value The esn to set.
       * @return This builder for chaining.
       */
      public Builder setEsn(
          java.lang.String value) {
        copyOnWrite();
        instance.setEsn(value);
        return this;
      }
      /**
       * <code>optional string esn = 17;</code>
       * @return This builder for chaining.
       */
      public Builder clearEsn() {
        copyOnWrite();
        instance.clearEsn();
        return this;
      }
      /**
       * <code>optional string esn = 17;</code>
       * @param value The bytes for esn to set.
       * @return This builder for chaining.
       */
      public Builder setEsnBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setEsnBytes(value);
        return this;
      }
  
      /**
       * <code>optional .finsky.protos.DeviceConfigurationProto deviceConfiguration = 18;</code>
       */
      @java.lang.Override
      public boolean hasDeviceConfiguration() {
        return instance.hasDeviceConfiguration();
      }
      /**
       * <code>optional .finsky.protos.DeviceConfigurationProto deviceConfiguration = 18;</code>
       */
      @java.lang.Override
      public finsky.protos.DeviceConfigurationProto getDeviceConfiguration() {
        return instance.getDeviceConfiguration();
      }
      /**
       * <code>optional .finsky.protos.DeviceConfigurationProto deviceConfiguration = 18;</code>
       */
      public Builder setDeviceConfiguration(finsky.protos.DeviceConfigurationProto value) {
        copyOnWrite();
        instance.setDeviceConfiguration(value);
        return this;
        }
      /**
       * <code>optional .finsky.protos.DeviceConfigurationProto deviceConfiguration = 18;</code>
       */
      public Builder setDeviceConfiguration(
          finsky.protos.DeviceConfigurationProto.Builder builderForValue) {
        copyOnWrite();
        instance.setDeviceConfiguration(builderForValue.build());
        return this;
      }
      /**
       * <code>optional .finsky.protos.DeviceConfigurationProto deviceConfiguration = 18;</code>
       */
      public Builder mergeDeviceConfiguration(finsky.protos.DeviceConfigurationProto value) {
        copyOnWrite();
        instance.mergeDeviceConfiguration(value);
        return this;
      }
      /**
       * <code>optional .finsky.protos.DeviceConfigurationProto deviceConfiguration = 18;</code>
       */
      public Builder clearDeviceConfiguration() {  copyOnWrite();
        instance.clearDeviceConfiguration();
        return this;
      }
  
      /**
       * <code>repeated string macAddrType = 19;</code>
       * @return A list containing the macAddrType.
       */
      @java.lang.Override
      public java.util.List<java.lang.String>
          getMacAddrTypeList() {
        return java.util.Collections.unmodifiableList(
            instance.getMacAddrTypeList());
      }
      /**
       * <code>repeated string macAddrType = 19;</code>
       * @return The count of macAddrType.
       */
      @java.lang.Override
      public int getMacAddrTypeCount() {
        return instance.getMacAddrTypeCount();
      }
      /**
       * <code>repeated string macAddrType = 19;</code>
       * @param index The index of the element to return.
       * @return The macAddrType at the given index.
       */
      @java.lang.Override
      public java.lang.String getMacAddrType(int index) {
        return instance.getMacAddrType(index);
      }
      /**
       * <code>repeated string macAddrType = 19;</code>
       * @param index The index of the value to return.
       * @return The bytes of the macAddrType at the given index.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getMacAddrTypeBytes(int index) {
        return instance.getMacAddrTypeBytes(index);
      }
      /**
       * <code>repeated string macAddrType = 19;</code>
       * @param index The index to set the value at.
       * @param value The macAddrType to set.
       * @return This builder for chaining.
       */
      public Builder setMacAddrType(
          int index, java.lang.String value) {
        copyOnWrite();
        instance.setMacAddrType(index, value);
        return this;
      }
      /**
       * <code>repeated string macAddrType = 19;</code>
       * @param value The macAddrType to add.
       * @return This builder for chaining.
       */
      public Builder addMacAddrType(
          java.lang.String value) {
        copyOnWrite();
        instance.addMacAddrType(value);
        return this;
      }
      /**
       * <code>repeated string macAddrType = 19;</code>
       * @param values The macAddrType to add.
       * @return This builder for chaining.
       */
      public Builder addAllMacAddrType(
          java.lang.Iterable<java.lang.String> values) {
        copyOnWrite();
        instance.addAllMacAddrType(values);
        return this;
      }
      /**
       * <code>repeated string macAddrType = 19;</code>
       * @return This builder for chaining.
       */
      public Builder clearMacAddrType() {
        copyOnWrite();
        instance.clearMacAddrType();
        return this;
      }
      /**
       * <code>repeated string macAddrType = 19;</code>
       * @param value The bytes of the macAddrType to add.
       * @return This builder for chaining.
       */
      public Builder addMacAddrTypeBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.addMacAddrTypeBytes(value);
        return this;
      }
  
      /**
       * <code>optional int32 fragment = 20;</code>
       * @return Whether the fragment field is set.
       */
      @java.lang.Override
      public boolean hasFragment() {
        return instance.hasFragment();
      }
      /**
       * <code>optional int32 fragment = 20;</code>
       * @return The fragment.
       */
      @java.lang.Override
      public int getFragment() {
        return instance.getFragment();
      }
      /**
       * <code>optional int32 fragment = 20;</code>
       * @param value The fragment to set.
       * @return This builder for chaining.
       */
      public Builder setFragment(int value) {
        copyOnWrite();
        instance.setFragment(value);
        return this;
      }
      /**
       * <code>optional int32 fragment = 20;</code>
       * @return This builder for chaining.
       */
      public Builder clearFragment() {
        copyOnWrite();
        instance.clearFragment();
        return this;
      }
  
      /**
       * <code>optional string userName = 21;</code>
       * @return Whether the userName field is set.
       */
      @java.lang.Override
      public boolean hasUserName() {
        return instance.hasUserName();
      }
      /**
       * <code>optional string userName = 21;</code>
       * @return The userName.
       */
      @java.lang.Override
      public java.lang.String getUserName() {
        return instance.getUserName();
      }
      /**
       * <code>optional string userName = 21;</code>
       * @return The bytes for userName.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getUserNameBytes() {
        return instance.getUserNameBytes();
      }
      /**
       * <code>optional string userName = 21;</code>
       * @param value The userName to set.
       * @return This builder for chaining.
       */
      public Builder setUserName(
          java.lang.String value) {
        copyOnWrite();
        instance.setUserName(value);
        return this;
      }
      /**
       * <code>optional string userName = 21;</code>
       * @return This builder for chaining.
       */
      public Builder clearUserName() {
        copyOnWrite();
        instance.clearUserName();
        return this;
      }
      /**
       * <code>optional string userName = 21;</code>
       * @param value The bytes for userName to set.
       * @return This builder for chaining.
       */
      public Builder setUserNameBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setUserNameBytes(value);
        return this;
      }
  
      /**
       * <code>optional int32 userSerialNumber = 22;</code>
       * @return Whether the userSerialNumber field is set.
       */
      @java.lang.Override
      public boolean hasUserSerialNumber() {
        return instance.hasUserSerialNumber();
      }
      /**
       * <code>optional int32 userSerialNumber = 22;</code>
       * @return The userSerialNumber.
       */
      @java.lang.Override
      public int getUserSerialNumber() {
        return instance.getUserSerialNumber();
      }
      /**
       * <code>optional int32 userSerialNumber = 22;</code>
       * @param value The userSerialNumber to set.
       * @return This builder for chaining.
       */
      public Builder setUserSerialNumber(int value) {
        copyOnWrite();
        instance.setUserSerialNumber(value);
        return this;
      }
      /**
       * <code>optional int32 userSerialNumber = 22;</code>
       * @return This builder for chaining.
       */
      public Builder clearUserSerialNumber() {
        copyOnWrite();
        instance.clearUserSerialNumber();
        return this;
      }
  
      // @@protoc_insertion_point(builder_scope:finsky.protos.AndroidCheckinRequest)
    }
    @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 finsky.protos.AndroidCheckinRequest();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "imei_",
              "id_",
              "digest_",
              "checkin_",
              "desiredBuild_",
              "locale_",
              "loggingId_",
              "marketCheckin_",
              "macAddr_",
              "meid_",
              "accountCookie_",
              "timeZone_",
              "securityToken_",
              "version_",
              "otaCert_",
              "serialNumber_",
              "esn_",
              "deviceConfiguration_",
              "macAddrType_",
              "fragment_",
              "userName_",
              "userSerialNumber_",
            };
            java.lang.String info =
                "\u0001\u0016\u0000\u0001\u0001\u0016\u0016\u0000\u0004\u0000\u0001\u1008\u0000\u0002" +
                "\u1002\u0001\u0003\u1008\u0002\u0004\u1009\u0003\u0005\u1008\u0004\u0006\u1008\u0005" +
                "\u0007\u1002\u0006\b\u1008\u0007\t\u001a\n\u1008\b\u000b\u001a\f\u1008\t\r\u1005" +
                "\n\u000e\u1004\u000b\u000f\u001a\u0010\u1008\f\u0011\u1008\r\u0012\u1009\u000e\u0013" +
                "\u001a\u0014\u1004\u000f\u0015\u1008\u0010\u0016\u1004\u0011";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<finsky.protos.AndroidCheckinRequest> parser = PARSER;
          if (parser == null) {
            synchronized (finsky.protos.AndroidCheckinRequest.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<finsky.protos.AndroidCheckinRequest>(
                        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:finsky.protos.AndroidCheckinRequest)
    private static final finsky.protos.AndroidCheckinRequest DEFAULT_INSTANCE;
    static {
      AndroidCheckinRequest defaultInstance = new AndroidCheckinRequest();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        AndroidCheckinRequest.class, defaultInstance);
    }
  
    public static finsky.protos.AndroidCheckinRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
  
    private static volatile com.google.protobuf.Parser<AndroidCheckinRequest> PARSER;
  
    public static com.google.protobuf.Parser<AndroidCheckinRequest> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }
  
  