public BuilderType mergeFrom(
     final InputStream input, final ExtensionRegistryLite extensionRegistry) throws IOException {
   final CodedInputStream codedInput = CodedInputStream.newInstance(input);
   mergeFrom(codedInput, extensionRegistry);
   codedInput.checkLastTagWas(0);
   return (BuilderType) this;
 }
 public boolean mergeDelimitedFrom(
     final InputStream input, final ExtensionRegistryLite extensionRegistry) throws IOException {
   final int firstByte = input.read();
   if (firstByte == -1) {
     return false;
   }
   final int size = CodedInputStream.readRawVarint32(firstByte, input);
   final InputStream limitedInput = new LimitedInputStream(input, size);
   mergeFrom(limitedInput, extensionRegistry);
   return true;
 }
 public BuilderType mergeFrom(final ByteString data) throws InvalidProtocolBufferException {
   try {
     final CodedInputStream input = data.newCodedInput();
     mergeFrom(input);
     input.checkLastTagWas(0);
     return (BuilderType) this;
   } catch (InvalidProtocolBufferException e) {
     throw e;
   } catch (IOException e) {
     throw new RuntimeException(
         "Reading from a ByteString threw an IOException (should " + "never happen).", e);
   }
 }
 public BuilderType mergeFrom(final byte[] data, final int off, final int len)
     throws InvalidProtocolBufferException {
   try {
     final CodedInputStream input = CodedInputStream.newInstance(data, off, len);
     mergeFrom(input);
     input.checkLastTagWas(0);
     return (BuilderType) this;
   } catch (InvalidProtocolBufferException e) {
     throw e;
   } catch (IOException e) {
     throw new RuntimeException(
         "Reading from a byte array threw an IOException (should " + "never happen).", e);
   }
 }