content: package tw.gov.cdc.exposurenotifications.keyupload;
  
  import androidx.annotation.Nullable;
  
  import com.google.common.collect.ImmutableList;
  
  import org.threeten.bp.LocalDate;
  
  import java.util.Collection;
  
  import tw.gov.cdc.exposurenotifications.network.DiagnosisKey;
  
  // Generated by com.google.auto.value.processor.AutoValueProcessor
  final class AutoValue_Upload extends Upload {
  
      private final String verificationCode;
  
      private final ImmutableList<DiagnosisKey> keys;
  
      private final String homeRegion;
  
      private final ImmutableList<String> regions;
  
      private final String longTermToken;
  
      private final String testType;
  
      private final String hmacKeyBase64;
  
      private final String certificate;
  
      private final LocalDate symptomOnset;
  
      private final LocalDate diagnosisDate;
  
      private final String revisionToken;
  
      private final boolean hasTraveled;
  
      private final int numKeysAffected;
  
      private final boolean isCoverTraffic;
  
      private AutoValue_Upload(
              String verificationCode,
              @Nullable ImmutableList<DiagnosisKey> keys,
              @Nullable String homeRegion,
              @Nullable ImmutableList<String> regions,
              @Nullable String longTermToken,
              @Nullable String testType,
              @Nullable String hmacKeyBase64,
              @Nullable String certificate,
              @Nullable LocalDate symptomOnset,
              @Nullable LocalDate diagnosisDate,
              @Nullable String revisionToken,
              boolean hasTraveled,
              int numKeysAffected,
              boolean isCoverTraffic) {
          this.verificationCode = verificationCode;
          this.keys = keys;
          this.homeRegion = homeRegion;
          this.regions = regions;
          this.longTermToken = longTermToken;
          this.testType = testType;
          this.hmacKeyBase64 = hmacKeyBase64;
          this.certificate = certificate;
          this.symptomOnset = symptomOnset;
          this.diagnosisDate = diagnosisDate;
          this.revisionToken = revisionToken;
          this.hasTraveled = hasTraveled;
          this.numKeysAffected = numKeysAffected;
          this.isCoverTraffic = isCoverTraffic;
      }
  
      @Override
      public String verificationCode() {
          return verificationCode;
      }
  
      @Nullable
      @Override
      public ImmutableList<DiagnosisKey> keys() {
          return keys;
      }
  
      @Nullable
      @Override
      public String homeRegion() {
          return homeRegion;
      }
  
      @Nullable
      @Override
      public ImmutableList<String> regions() {
          return regions;
      }
  
      @Nullable
      @Override
      public String longTermToken() {
          return longTermToken;
      }
  
      @Nullable
      @Override
      public String testType() {
          return testType;
      }
  
      @Nullable
      @Override
      public String hmacKeyBase64() {
          return hmacKeyBase64;
      }
  
      @Nullable
      @Override
      public String certificate() {
          return certificate;
      }
  
      @Nullable
      @Override
      public LocalDate symptomOnset() {
          return symptomOnset;
      }
  
      @Nullable
      @Override
      public LocalDate diagnosisDate() {
          return diagnosisDate;
      }
  
      @Nullable
      @Override
      public String revisionToken() {
          return revisionToken;
      }
  
      @Override
      public boolean hasTraveled() {
          return hasTraveled;
      }
  
      @Override
      public int numKeysAffected() {
          return numKeysAffected;
      }
  
      @Override
      public boolean isCoverTraffic() {
          return isCoverTraffic;
      }
  
      @Override
      public String toString() {
          return "Upload{"
                  + "verificationCode=" + verificationCode + ", "
                  + "keys=" + keys + ", "
                  + "homeRegion=" + homeRegion + ", "
                  + "regions=" + regions + ", "
                  + "longTermToken=" + longTermToken + ", "
                  + "testType=" + testType + ", "
                  + "hmacKeyBase64=" + hmacKeyBase64 + ", "
                  + "certificate=" + certificate + ", "
                  + "symptomOnset=" + symptomOnset + ", "
                  + "diagnosisDate=" + diagnosisDate + ", "
                  + "revisionToken=" + revisionToken + ", "
                  + "hasTraveled=" + hasTraveled + ", "
                  + "numKeysAffected=" + numKeysAffected + ", "
                  + "isCoverTraffic=" + isCoverTraffic
                  + "}";
      }
  
      @Override
      public boolean equals(Object o) {
          if (o == this) {
              return true;
          }
          if (o instanceof Upload) {
              Upload that = (Upload) o;
              return this.verificationCode.equals(that.verificationCode())
                      && (this.keys == null ? that.keys() == null : this.keys.equals(that.keys()))
                      && (this.homeRegion == null ? that.homeRegion() == null : this.homeRegion.equals(that.homeRegion()))
                      && (this.regions == null ? that.regions() == null : this.regions.equals(that.regions()))
                      && (this.longTermToken == null ? that.longTermToken() == null : this.longTermToken.equals(that.longTermToken()))
                      && (this.testType == null ? that.testType() == null : this.testType.equals(that.testType()))
                      && (this.hmacKeyBase64 == null ? that.hmacKeyBase64() == null : this.hmacKeyBase64.equals(that.hmacKeyBase64()))
                      && (this.certificate == null ? that.certificate() == null : this.certificate.equals(that.certificate()))
                      && (this.symptomOnset == null ? that.symptomOnset() == null : this.symptomOnset.equals(that.symptomOnset()))
                      && (this.diagnosisDate == null ? that.diagnosisDate() == null : this.diagnosisDate.equals(that.diagnosisDate()))
                      && (this.revisionToken == null ? that.revisionToken() == null : this.revisionToken.equals(that.revisionToken()))
                      && this.hasTraveled == that.hasTraveled()
                      && this.numKeysAffected == that.numKeysAffected()
                      && this.isCoverTraffic == that.isCoverTraffic();
          }
          return false;
      }
  
      @Override
      public int hashCode() {
          int h$ = 1;
          h$ *= 1000003;
          h$ ^= verificationCode.hashCode();
          h$ *= 1000003;
          h$ ^= (keys == null) ? 0 : keys.hashCode();
          h$ *= 1000003;
          h$ ^= (homeRegion == null) ? 0 : homeRegion.hashCode();
          h$ *= 1000003;
          h$ ^= (regions == null) ? 0 : regions.hashCode();
          h$ *= 1000003;
          h$ ^= (longTermToken == null) ? 0 : longTermToken.hashCode();
          h$ *= 1000003;
          h$ ^= (testType == null) ? 0 : testType.hashCode();
          h$ *= 1000003;
          h$ ^= (hmacKeyBase64 == null) ? 0 : hmacKeyBase64.hashCode();
          h$ *= 1000003;
          h$ ^= (certificate == null) ? 0 : certificate.hashCode();
          h$ *= 1000003;
          h$ ^= (symptomOnset == null) ? 0 : symptomOnset.hashCode();
          h$ *= 1000003;
          h$ ^= (diagnosisDate == null) ? 0 : diagnosisDate.hashCode();
          h$ *= 1000003;
          h$ ^= (revisionToken == null) ? 0 : revisionToken.hashCode();
          h$ *= 1000003;
          h$ ^= hasTraveled ? 1231 : 1237;
          h$ *= 1000003;
          h$ ^= numKeysAffected;
          h$ *= 1000003;
          h$ ^= isCoverTraffic ? 1231 : 1237;
          return h$;
      }
  
      @Override
      public Upload.Builder toBuilder() {
          return new Builder(this);
      }
  
      static final class Builder extends Upload.Builder {
          private String verificationCode;
          private ImmutableList<DiagnosisKey> keys;
          private String homeRegion;
          private ImmutableList<String> regions;
          private String longTermToken;
          private String testType;
          private String hmacKeyBase64;
          private String certificate;
          private LocalDate symptomOnset;
          private LocalDate diagnosisDate;
          private String revisionToken;
          private Boolean hasTraveled;
          private Integer numKeysAffected;
          private Boolean isCoverTraffic;
  
          Builder() {
          }
  
          private Builder(Upload source) {
              this.verificationCode = source.verificationCode();
              this.keys = source.keys();
              this.homeRegion = source.homeRegion();
              this.regions = source.regions();
              this.longTermToken = source.longTermToken();
              this.testType = source.testType();
              this.hmacKeyBase64 = source.hmacKeyBase64();
              this.certificate = source.certificate();
              this.symptomOnset = source.symptomOnset();
              this.diagnosisDate = source.diagnosisDate();
              this.revisionToken = source.revisionToken();
              this.hasTraveled = source.hasTraveled();
              this.numKeysAffected = source.numKeysAffected();
              this.isCoverTraffic = source.isCoverTraffic();
          }
  
          @Override
          public Upload.Builder setVerificationCode(String verificationCode) {
              if (verificationCode == null) {
                  throw new NullPointerException("Null verificationCode");
              }
              this.verificationCode = verificationCode;
              return this;
          }
  
          @Override
          public Upload.Builder setKeys(Collection<DiagnosisKey> keys) {
              this.keys = (keys == null ? null : ImmutableList.copyOf(keys));
              return this;
          }
  
          @Override
          public Upload.Builder setHomeRegion(String homeRegion) {
              this.homeRegion = homeRegion;
              return this;
          }
  
          @Override
          public Upload.Builder setRegions(Collection<String> regions) {
              this.regions = (regions == null ? null : ImmutableList.copyOf(regions));
              return this;
          }
  
          @Override
          public Upload.Builder setLongTermToken(String longTermToken) {
              this.longTermToken = longTermToken;
              return this;
          }
  
          @Override
          public Upload.Builder setTestType(String testType) {
              this.testType = testType;
              return this;
          }
  
          @Override
          public Upload.Builder setHmacKeyBase64(String hmacKeyBase64) {
              this.hmacKeyBase64 = hmacKeyBase64;
              return this;
          }
  
          @Override
          public Upload.Builder setCertificate(String certificate) {
              this.certificate = certificate;
              return this;
          }
  
          @Override
          public Upload.Builder setSymptomOnset(LocalDate symptomOnset) {
              this.symptomOnset = symptomOnset;
              return this;
          }
  
          @Override
          public Upload.Builder setDiagnosisDate(LocalDate diagnosisDate) {
              this.diagnosisDate = diagnosisDate;
              return this;
          }
  
          @Override
          public Upload.Builder setRevisionToken(String revisionToken) {
              this.revisionToken = revisionToken;
              return this;
          }
  
          @Override
          public Upload.Builder setHasTraveled(boolean hasTraveled) {
              this.hasTraveled = hasTraveled;
              return this;
          }
  
          @Override
          public Upload.Builder setNumKeysAffected(int numKeysAffected) {
              this.numKeysAffected = numKeysAffected;
              return this;
          }
  
          @Override
          public Upload.Builder setIsCoverTraffic(boolean isCoverTraffic) {
              this.isCoverTraffic = isCoverTraffic;
              return this;
          }
  
          @Override
          public Upload build() {
              String missing = "";
              if (this.verificationCode == null) {
                  missing += " verificationCode";
              }
              if (this.hasTraveled == null) {
                  missing += " hasTraveled";
              }
              if (this.numKeysAffected == null) {
                  missing += " numKeysAffected";
              }
              if (this.isCoverTraffic == null) {
                  missing += " isCoverTraffic";
              }
              if (!missing.isEmpty()) {
                  throw new IllegalStateException("Missing required properties:" + missing);
              }
              return new AutoValue_Upload(
                      this.verificationCode,
                      this.keys,
                      this.homeRegion,
                      this.regions,
                      this.longTermToken,
                      this.testType,
                      this.hmacKeyBase64,
                      this.certificate,
                      this.symptomOnset,
                      this.diagnosisDate,
                      this.revisionToken,
                      this.hasTraveled,
                      this.numKeysAffected,
                      this.isCoverTraffic);
          }
      }
  
  }
  