code: public TaiInstant plus(Duration duration) {
          long secsToAdd = duration.getSeconds();
          int nanosToAdd = duration.getNano();
          if ((secsToAdd | nanosToAdd) == 0) {
              return this;
          }
          long secs = Math.addExact(seconds, secsToAdd);
          long nanoAdjustment = ((long) nanos) + nanosToAdd;  // safe int+int
          return ofTaiSeconds(secs, nanoAdjustment);
      }
docs: Returns a copy of this instant with the specified duration added.
  <p>
  The duration is added using simple addition of the seconds and nanoseconds
  in the duration to the seconds and nanoseconds of this instant.
  As a result, the duration is treated as being measured in TAI compatible seconds
  for the purpose of this method.
  <p>
  This instance is immutable and unaffected by this method call.
  
  @param duration  the duration to add, not null
  @return a {@code TaiInstant} based on this instant with the duration added, not null
  @throws ArithmeticException if the calculation exceeds the supported range