diff --git a/java/core/generate-test-sources-build.xml b/java/core/generate-test-sources-build.xml
index e3a4a724a557e..71a88d07b33b3 100644
--- a/java/core/generate-test-sources-build.xml
+++ b/java/core/generate-test-sources-build.xml
@@ -4,8 +4,6 @@
-
-
@@ -24,9 +22,6 @@
-
-
-
@@ -36,7 +31,6 @@
-
@@ -64,17 +58,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/java/core/pom.xml b/java/core/pom.xml
index c0e773b7cdccd..70e4bfc6ad9bd 100644
--- a/java/core/pom.xml
+++ b/java/core/pom.xml
@@ -16,10 +16,6 @@
efficient yet extensible format.
-
- 1.4.31
-
-
junit
@@ -51,17 +47,6 @@
truthtest
-
- org.jetbrains.kotlin
- kotlin-stdlib-jdk7
- ${kotlin.version}
-
-
- org.jetbrains.kotlin
- kotlin-test
- ${kotlin.version}
- test
-
@@ -161,35 +146,7 @@
-
- org.jetbrains.kotlin
- kotlin-maven-plugin
- ${kotlin.version}
- true
-
-
- compile
- compile
-
-
- ${project.basedir}/src/main/java
- ${project.basedir}/src/main/kotlin
-
-
-
-
- test-compile
- test-compile
-
-
- ${project.basedir}/src/test/java
- ${project.basedir}/src/test/kotlin
- ${generated.testsources.dir}
-
-
-
-
-
+
org.apache.felix
diff --git a/java/kotlin-lite/generate-sources-build.xml b/java/kotlin-lite/generate-sources-build.xml
new file mode 100644
index 0000000000000..74d96a2f10538
--- /dev/null
+++ b/java/kotlin-lite/generate-sources-build.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/kotlin-lite/generate-test-sources-build.xml b/java/kotlin-lite/generate-test-sources-build.xml
new file mode 100644
index 0000000000000..c5f60b8653692
--- /dev/null
+++ b/java/kotlin-lite/generate-test-sources-build.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/kotlin-lite/lite.awk b/java/kotlin-lite/lite.awk
new file mode 100644
index 0000000000000..b22d965b6fd02
--- /dev/null
+++ b/java/kotlin-lite/lite.awk
@@ -0,0 +1,25 @@
+# Remove code enclosed by "BEGIN FULL-RUNTIME" and "END FULL-RUNTIME" to
+# create the lite-only version of a test file.
+
+BEGIN {
+ in_full_runtime = 0;
+}
+
+/BEGIN FULL-RUNTIME/ {
+ in_full_runtime = 1;
+ next;
+}
+
+/END FULL-RUNTIME/ {
+ in_full_runtime = 0;
+ next;
+}
+
+in_full_runtime {
+ # Skip full runtime code path.
+ next;
+}
+
+{
+ print;
+}
diff --git a/java/kotlin-lite/pom.xml b/java/kotlin-lite/pom.xml
new file mode 100644
index 0000000000000..29a379994d086
--- /dev/null
+++ b/java/kotlin-lite/pom.xml
@@ -0,0 +1,383 @@
+
+
+ 4.0.0
+
+ com.google.protobuf
+ protobuf-parent
+ 3.15.6
+
+
+ protobuf-javalite
+ bundle
+
+ Protocol Buffers [Lite]
+
+ Lite version of Protocol Buffers library. This version is optimized for code size, but does
+ not guarantee API/ABI stability.
+
+
+
+ 1.4.31
+
+
+
+
+ junit
+ junit
+ test
+
+
+ org.easymock
+ easymock
+ test
+
+
+ org.easymock
+ easymockclassextension
+ test
+
+
+ com.google.guava
+ guava
+ test
+
+
+ com.google.guava
+ guava-testlib
+ test
+
+
+ com.google.truth
+ truth
+ test
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib
+ ${kotlin.version}
+
+
+ org.jetbrains.kotlin
+ kotlin-test
+ ${kotlin.version}
+
+
+
+
+
+
+
+ ${protobuf.source.dir}
+
+ google/protobuf/any.proto
+ google/protobuf/api.proto
+ google/protobuf/duration.proto
+ google/protobuf/empty.proto
+ google/protobuf/field_mask.proto
+ google/protobuf/source_context.proto
+ google/protobuf/struct.proto
+ google/protobuf/timestamp.proto
+ google/protobuf/type.proto
+ google/protobuf/wrappers.proto
+
+
+
+
+
+ ${protobuf.source.dir}
+
+ google/protobuf/testdata/golden_message_oneof_implemented
+ google/protobuf/testdata/golden_packed_fields_message
+
+
+
+
+
+
+ maven-resources-plugin
+ 3.1.0
+
+
+ copy-source-files
+ generate-sources
+
+ copy-resources
+
+
+ ${generated.sources.dir}/com/google/protobuf
+
+
+ ${basedir}/../core/src/main/java/com/google/protobuf
+
+
+ AbstractMessageLite.java
+ AbstractParser.java
+ AbstractProtobufList.java
+ AllocatedBuffer.java
+ Android.java
+ ArrayDecoders.java
+ BinaryReader.java
+ BinaryWriter.java
+ BooleanArrayList.java
+ BufferAllocator.java
+ ByteBufferWriter.java
+ ByteOutput.java
+ ByteString.java
+ CodedInputStream.java
+ CodedInputStreamReader.java
+ CodedOutputStream.java
+ CodedOutputStreamWriter.java
+ DoubleArrayList.java
+ ExperimentalApi.java
+ ExtensionLite.java
+ ExtensionRegistryFactory.java
+ ExtensionRegistryLite.java
+ ExtensionSchema.java
+ ExtensionSchemaLite.java
+ ExtensionSchemas.java
+ FieldInfo.java
+ FieldSet.java
+ FieldType.java
+ FloatArrayList.java
+ GeneratedMessageInfoFactory.java
+ GeneratedMessageLite.java
+ IntArrayList.java
+ Internal.java
+ InvalidProtocolBufferException.java
+ IterableByteBufferInputStream.java
+ JavaType.java
+ LazyField.java
+ LazyFieldLite.java
+ LazyStringArrayList.java
+ LazyStringList.java
+ ListFieldSchema.java
+ LongArrayList.java
+ ManifestSchemaFactory.java
+ MapEntryLite.java
+ MapFieldLite.java
+ MapFieldSchema.java
+ MapFieldSchemaLite.java
+ MapFieldSchemas.java
+ MessageInfo.java
+ MessageInfoFactory.java
+ MessageLite.java
+ MessageLiteOrBuilder.java
+ MessageLiteToString.java
+ MessageSchema.java
+ MessageSetSchema.java
+ MutabilityOracle.java
+ NewInstanceSchema.java
+ NewInstanceSchemaLite.java
+ NewInstanceSchemas.java
+ NioByteString.java
+ OneofInfo.java
+ Parser.java
+ PrimitiveNonBoxingCollection.java
+ ProtoSyntax.java
+ Protobuf.java
+ ProtobufArrayList.java
+ ProtobufLists.java
+ ProtocolStringList.java
+ RawMessageInfo.java
+ Reader.java
+ RopeByteString.java
+ Schema.java
+ SchemaFactory.java
+ SchemaUtil.java
+ SmallSortedMap.java
+ StructuralMessageInfo.java
+ TextFormatEscaper.java
+ UninitializedMessageException.java
+ UnknownFieldSchema.java
+ UnknownFieldSetLite.java
+ UnknownFieldSetLiteSchema.java
+ UnmodifiableLazyStringList.java
+ UnsafeUtil.java
+ Utf8.java
+ WireFormat.java
+ Writer.java
+
+
+
+
+
+
+ copy-kotlin-source-files
+ generate-sources
+
+ copy-resources
+
+
+ ${generated.sources.dir}/com/google/protobuf
+
+
+ ${basedir}/../kotlin/src/main/kotlin/com/google/protobuf
+
+ DslList.kt
+ DslMap.kt
+ DslProxy.kt
+ ExtendableMessageLiteExtensions.kt
+ ExtensionList.kt
+ OnlyForUseByGeneratedProtoCode.kt
+ ProtoDslMarker.kt
+ UnmodifiableCollections.kt
+
+
+
+
+
+
+ copy-test-source-files
+ generate-test-sources
+
+ copy-resources
+
+
+ ${generated.testsources.dir}/com/google/protobuf
+
+
+ ${basedir}/../core/src/test/java/com/google/protobuf
+
+ TestUtilLite.java
+
+
+
+ ${basedir}/../kotlin/src/test/kotlin/com/google/protobuf
+
+ ExtendableMessageExtensionsTest.kt
+ Proto2Test.kt
+ ProtoUtil.java
+
+
+
+
+
+
+
+
+
+
+ maven-antrun-plugin
+
+
+
+ generate-sources
+ generate-sources
+
+
+
+
+
+
+ run
+
+
+
+
+
+ generate-test-sources
+ generate-test-sources
+
+
+
+
+
+
+ run
+
+
+
+
+ process-lite-sources
+ generate-test-sources
+
+
+
+
+
+
+ run
+
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ add-generated-sources
+ generate-sources
+
+ add-source
+
+
+
+
+
+
+
+
+
+ add-generated-test-sources
+ generate-test-sources
+
+ add-test-source
+
+
+
+
+
+
+
+
+
+
+
+ org.jetbrains.kotlin
+ kotlin-maven-plugin
+ ${kotlin.version}
+ true
+
+
+ compile
+ compile
+
+
+ ${generated.sources.dir}
+ ${project.basedir}/src/main/kotlin
+
+
+
+
+ test-compile
+ test-compile
+
+
+ ${project.basedir}/src/test/kotlin
+ ${generated.testsources.dir}
+
+
+
+
+
+
+
+
+ org.apache.felix
+ maven-bundle-plugin
+ true
+
+
+ com.google.protobuf
+ https://developers.google.com/protocol-buffers/
+ com.google.protobuf
+ com.google.protobuf;version=${project.version}
+ sun.misc;resolution:=optional,*
+
+
+
+
+
+
diff --git a/java/kotlin-lite/process-lite-sources-build.xml b/java/kotlin-lite/process-lite-sources-build.xml
new file mode 100644
index 0000000000000..d49cf3aac03f1
--- /dev/null
+++ b/java/kotlin-lite/process-lite-sources-build.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/java/lite/src/test/kotlin/com/google/protobuf/ExtendableMessageLiteExtensionsTest.kt b/java/kotlin-lite/src/test/kotlin/com/google/protobuf/ExtendableMessageLiteExtensionsTest.kt
similarity index 100%
rename from java/lite/src/test/kotlin/com/google/protobuf/ExtendableMessageLiteExtensionsTest.kt
rename to java/kotlin-lite/src/test/kotlin/com/google/protobuf/ExtendableMessageLiteExtensionsTest.kt
diff --git a/java/lite/src/test/kotlin/com/google/protobuf/Proto2LiteTest.kt b/java/kotlin-lite/src/test/kotlin/com/google/protobuf/Proto2LiteTest.kt
similarity index 100%
rename from java/lite/src/test/kotlin/com/google/protobuf/Proto2LiteTest.kt
rename to java/kotlin-lite/src/test/kotlin/com/google/protobuf/Proto2LiteTest.kt
diff --git a/java/kotlin-lite/target/antrun/build-main.xml b/java/kotlin-lite/target/antrun/build-main.xml
new file mode 100644
index 0000000000000..e6948030ea980
--- /dev/null
+++ b/java/kotlin-lite/target/antrun/build-main.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/java/kotlin-lite/target/classes/META-INF/MANIFEST.MF b/java/kotlin-lite/target/classes/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000000..99837bdcf5dd8
--- /dev/null
+++ b/java/kotlin-lite/target/classes/META-INF/MANIFEST.MF
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Automatic-Module-Name: com.google.protobuf
+Bnd-LastModified: 1617123864936
+Build-Jdk: 11.0.10
+Built-By: deannagarcia
+Bundle-Description: Lite version of Protocol Buffers library. This versi
+ on is optimized for code size, but does not guarantee API/ABI stabil
+ ity.
+Bundle-DocURL: https://developers.google.com/protocol-buffers/
+Bundle-License: https://opensource.org/licenses/BSD-3-Clause
+Bundle-ManifestVersion: 2
+Bundle-Name: Protocol Buffers [Lite]
+Bundle-SymbolicName: com.google.protobuf
+Bundle-Version: 3.15.6
+Created-By: Apache Maven Bundle Plugin
+Export-Package: com.google.protobuf;version="3.15.6"
+Import-Package: sun.misc;resolution:=optional,com.google.protobuf;versio
+ n="[3.15,4)",kotlin,kotlin.annotation,kotlin.jvm.internal,kotlin.jvm.in
+ ternal.markers
+Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.7))"
+Tool: Bnd-3.0.0.201509101326
diff --git a/java/kotlin-lite/target/classes/META-INF/protobuf-javalite.kotlin_module b/java/kotlin-lite/target/classes/META-INF/protobuf-javalite.kotlin_module
new file mode 100644
index 0000000000000..966edfe3ce5e7
Binary files /dev/null and b/java/kotlin-lite/target/classes/META-INF/protobuf-javalite.kotlin_module differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/AbstractMessageLite$Builder$LimitedInputStream.class b/java/kotlin-lite/target/classes/com/google/protobuf/AbstractMessageLite$Builder$LimitedInputStream.class
new file mode 100644
index 0000000000000..b79c69aaccb5a
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/AbstractMessageLite$Builder$LimitedInputStream.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/AbstractMessageLite$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/AbstractMessageLite$Builder.class
new file mode 100644
index 0000000000000..fa13546036c5d
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/AbstractMessageLite$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/AbstractMessageLite$InternalOneOfEnum.class b/java/kotlin-lite/target/classes/com/google/protobuf/AbstractMessageLite$InternalOneOfEnum.class
new file mode 100644
index 0000000000000..8e98f8c3309e6
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/AbstractMessageLite$InternalOneOfEnum.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/AbstractMessageLite.class b/java/kotlin-lite/target/classes/com/google/protobuf/AbstractMessageLite.class
new file mode 100644
index 0000000000000..1baec63ad0f2f
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/AbstractMessageLite.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/AbstractParser.class b/java/kotlin-lite/target/classes/com/google/protobuf/AbstractParser.class
new file mode 100644
index 0000000000000..eeefa54df537f
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/AbstractParser.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/AbstractProtobufList.class b/java/kotlin-lite/target/classes/com/google/protobuf/AbstractProtobufList.class
new file mode 100644
index 0000000000000..21e65d35e2b0d
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/AbstractProtobufList.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/AllocatedBuffer$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/AllocatedBuffer$1.class
new file mode 100644
index 0000000000000..92e3ada44a433
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/AllocatedBuffer$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/AllocatedBuffer$2.class b/java/kotlin-lite/target/classes/com/google/protobuf/AllocatedBuffer$2.class
new file mode 100644
index 0000000000000..2d21560d16d19
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/AllocatedBuffer$2.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/AllocatedBuffer.class b/java/kotlin-lite/target/classes/com/google/protobuf/AllocatedBuffer.class
new file mode 100644
index 0000000000000..53703cef83a3d
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/AllocatedBuffer.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Android.class b/java/kotlin-lite/target/classes/com/google/protobuf/Android.class
new file mode 100644
index 0000000000000..94bccbd420ca5
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Android.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Any$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/Any$1.class
new file mode 100644
index 0000000000000..397b7f2589cdf
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Any$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Any$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/Any$Builder.class
new file mode 100644
index 0000000000000..8f9308fc0cbe4
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Any$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Any.class b/java/kotlin-lite/target/classes/com/google/protobuf/Any.class
new file mode 100644
index 0000000000000..48f0e812c42ea
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Any.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/AnyOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/AnyOrBuilder.class
new file mode 100644
index 0000000000000..63a6a711b2999
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/AnyOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/AnyProto.class b/java/kotlin-lite/target/classes/com/google/protobuf/AnyProto.class
new file mode 100644
index 0000000000000..c5b81489518cd
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/AnyProto.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Api$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/Api$1.class
new file mode 100644
index 0000000000000..189b46b2ee579
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Api$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Api$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/Api$Builder.class
new file mode 100644
index 0000000000000..92fb1ab9017df
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Api$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Api.class b/java/kotlin-lite/target/classes/com/google/protobuf/Api.class
new file mode 100644
index 0000000000000..d41c0edba34ae
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Api.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ApiOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/ApiOrBuilder.class
new file mode 100644
index 0000000000000..d197152fb9f23
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ApiOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ApiProto.class b/java/kotlin-lite/target/classes/com/google/protobuf/ApiProto.class
new file mode 100644
index 0000000000000..c3bf617bc7ffc
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ApiProto.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ArrayDecoders$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/ArrayDecoders$1.class
new file mode 100644
index 0000000000000..799ca8e160b58
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ArrayDecoders$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ArrayDecoders$Registers.class b/java/kotlin-lite/target/classes/com/google/protobuf/ArrayDecoders$Registers.class
new file mode 100644
index 0000000000000..b551c2358dd68
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ArrayDecoders$Registers.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ArrayDecoders.class b/java/kotlin-lite/target/classes/com/google/protobuf/ArrayDecoders.class
new file mode 100644
index 0000000000000..ed353ddb1aee1
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ArrayDecoders.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/BinaryReader$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/BinaryReader$1.class
new file mode 100644
index 0000000000000..db2ae3b1c8e54
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/BinaryReader$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/BinaryReader$SafeHeapReader.class b/java/kotlin-lite/target/classes/com/google/protobuf/BinaryReader$SafeHeapReader.class
new file mode 100644
index 0000000000000..1333693a57205
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/BinaryReader$SafeHeapReader.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/BinaryReader.class b/java/kotlin-lite/target/classes/com/google/protobuf/BinaryReader.class
new file mode 100644
index 0000000000000..30d971b1ff2f0
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/BinaryReader.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/BinaryWriter$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/BinaryWriter$1.class
new file mode 100644
index 0000000000000..d1f16c73372a7
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/BinaryWriter$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/BinaryWriter$SafeDirectWriter.class b/java/kotlin-lite/target/classes/com/google/protobuf/BinaryWriter$SafeDirectWriter.class
new file mode 100644
index 0000000000000..b5fe1bd2a146d
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/BinaryWriter$SafeDirectWriter.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/BinaryWriter$SafeHeapWriter.class b/java/kotlin-lite/target/classes/com/google/protobuf/BinaryWriter$SafeHeapWriter.class
new file mode 100644
index 0000000000000..57d03fe3a5b39
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/BinaryWriter$SafeHeapWriter.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/BinaryWriter$UnsafeDirectWriter.class b/java/kotlin-lite/target/classes/com/google/protobuf/BinaryWriter$UnsafeDirectWriter.class
new file mode 100644
index 0000000000000..ff45dea6b8124
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/BinaryWriter$UnsafeDirectWriter.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/BinaryWriter$UnsafeHeapWriter.class b/java/kotlin-lite/target/classes/com/google/protobuf/BinaryWriter$UnsafeHeapWriter.class
new file mode 100644
index 0000000000000..d82dff1a2e916
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/BinaryWriter$UnsafeHeapWriter.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/BinaryWriter.class b/java/kotlin-lite/target/classes/com/google/protobuf/BinaryWriter.class
new file mode 100644
index 0000000000000..d797930d7d68f
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/BinaryWriter.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/BoolValue$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/BoolValue$1.class
new file mode 100644
index 0000000000000..a49a5abdb2c8e
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/BoolValue$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/BoolValue$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/BoolValue$Builder.class
new file mode 100644
index 0000000000000..70656b75e6e7f
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/BoolValue$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/BoolValue.class b/java/kotlin-lite/target/classes/com/google/protobuf/BoolValue.class
new file mode 100644
index 0000000000000..ab79d2cc57b24
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/BoolValue.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/BoolValueOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/BoolValueOrBuilder.class
new file mode 100644
index 0000000000000..344b97713a15b
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/BoolValueOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/BooleanArrayList.class b/java/kotlin-lite/target/classes/com/google/protobuf/BooleanArrayList.class
new file mode 100644
index 0000000000000..68e7c9b68a5e3
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/BooleanArrayList.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/BufferAllocator$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/BufferAllocator$1.class
new file mode 100644
index 0000000000000..db88c0e817838
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/BufferAllocator$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/BufferAllocator.class b/java/kotlin-lite/target/classes/com/google/protobuf/BufferAllocator.class
new file mode 100644
index 0000000000000..66b5a08c9c421
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/BufferAllocator.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ByteBufferWriter.class b/java/kotlin-lite/target/classes/com/google/protobuf/ByteBufferWriter.class
new file mode 100644
index 0000000000000..1f5fa25d63a85
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ByteBufferWriter.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ByteOutput.class b/java/kotlin-lite/target/classes/com/google/protobuf/ByteOutput.class
new file mode 100644
index 0000000000000..3307ca98d6be8
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ByteOutput.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$1.class
new file mode 100644
index 0000000000000..28e3b9c4f8abd
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$2.class b/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$2.class
new file mode 100644
index 0000000000000..192acaa8d873d
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$2.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$AbstractByteIterator.class b/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$AbstractByteIterator.class
new file mode 100644
index 0000000000000..eaa31e30040ad
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$AbstractByteIterator.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$ArraysByteArrayCopier.class b/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$ArraysByteArrayCopier.class
new file mode 100644
index 0000000000000..13bb1e8d26037
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$ArraysByteArrayCopier.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$BoundedByteString.class b/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$BoundedByteString.class
new file mode 100644
index 0000000000000..35baf6eb68003
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$BoundedByteString.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$ByteArrayCopier.class b/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$ByteArrayCopier.class
new file mode 100644
index 0000000000000..bcb2ee5261fd7
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$ByteArrayCopier.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$ByteIterator.class b/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$ByteIterator.class
new file mode 100644
index 0000000000000..72086f6435203
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$ByteIterator.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$CodedBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$CodedBuilder.class
new file mode 100644
index 0000000000000..92f9f69968d52
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$CodedBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$LeafByteString.class b/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$LeafByteString.class
new file mode 100644
index 0000000000000..5696237c1848c
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$LeafByteString.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$LiteralByteString.class b/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$LiteralByteString.class
new file mode 100644
index 0000000000000..157ad95a32cac
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$LiteralByteString.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$Output.class b/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$Output.class
new file mode 100644
index 0000000000000..2a59b8dc25f09
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$Output.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$SystemByteArrayCopier.class b/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$SystemByteArrayCopier.class
new file mode 100644
index 0000000000000..b409059ca821c
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ByteString$SystemByteArrayCopier.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ByteString.class b/java/kotlin-lite/target/classes/com/google/protobuf/ByteString.class
new file mode 100644
index 0000000000000..b7d64f16c8f4c
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ByteString.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/BytesValue$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/BytesValue$1.class
new file mode 100644
index 0000000000000..05897e9f01433
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/BytesValue$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/BytesValue$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/BytesValue$Builder.class
new file mode 100644
index 0000000000000..b3c6a991ce795
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/BytesValue$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/BytesValue.class b/java/kotlin-lite/target/classes/com/google/protobuf/BytesValue.class
new file mode 100644
index 0000000000000..8a83ead68ac75
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/BytesValue.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/BytesValueOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/BytesValueOrBuilder.class
new file mode 100644
index 0000000000000..da5c8b58687fd
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/BytesValueOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStream$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStream$1.class
new file mode 100644
index 0000000000000..16da296d83ea8
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStream$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStream$ArrayDecoder.class b/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStream$ArrayDecoder.class
new file mode 100644
index 0000000000000..04a4409d3e38f
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStream$ArrayDecoder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStream$IterableDirectByteBufferDecoder.class b/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStream$IterableDirectByteBufferDecoder.class
new file mode 100644
index 0000000000000..24448bd4dd6d9
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStream$IterableDirectByteBufferDecoder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStream$StreamDecoder$RefillCallback.class b/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStream$StreamDecoder$RefillCallback.class
new file mode 100644
index 0000000000000..e515f4d9267f5
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStream$StreamDecoder$RefillCallback.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStream$StreamDecoder$SkippedDataSink.class b/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStream$StreamDecoder$SkippedDataSink.class
new file mode 100644
index 0000000000000..31a6caa2bcee1
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStream$StreamDecoder$SkippedDataSink.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStream$StreamDecoder.class b/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStream$StreamDecoder.class
new file mode 100644
index 0000000000000..af4848ceec7a6
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStream$StreamDecoder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStream$UnsafeDirectNioDecoder.class b/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStream$UnsafeDirectNioDecoder.class
new file mode 100644
index 0000000000000..9aa2072eba2b2
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStream$UnsafeDirectNioDecoder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStream.class b/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStream.class
new file mode 100644
index 0000000000000..8c1ca5e98e649
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStream.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStreamReader$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStreamReader$1.class
new file mode 100644
index 0000000000000..57a9277b5f15d
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStreamReader$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStreamReader.class b/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStreamReader.class
new file mode 100644
index 0000000000000..10351915efa01
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/CodedInputStreamReader.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$1.class
new file mode 100644
index 0000000000000..6e8f8b614b5cb
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$AbstractBufferedEncoder.class b/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$AbstractBufferedEncoder.class
new file mode 100644
index 0000000000000..cd6be47d194c4
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$AbstractBufferedEncoder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$ArrayEncoder.class b/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$ArrayEncoder.class
new file mode 100644
index 0000000000000..47decd5453d05
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$ArrayEncoder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$ByteOutputEncoder.class b/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$ByteOutputEncoder.class
new file mode 100644
index 0000000000000..5ee2a32de628b
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$ByteOutputEncoder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$HeapNioEncoder.class b/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$HeapNioEncoder.class
new file mode 100644
index 0000000000000..4cdd2390202ed
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$HeapNioEncoder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$OutOfSpaceException.class b/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$OutOfSpaceException.class
new file mode 100644
index 0000000000000..1287580243033
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$OutOfSpaceException.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$OutputStreamEncoder.class b/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$OutputStreamEncoder.class
new file mode 100644
index 0000000000000..a16a1d70c4c5e
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$OutputStreamEncoder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$SafeDirectNioEncoder.class b/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$SafeDirectNioEncoder.class
new file mode 100644
index 0000000000000..166bd513cf9f8
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$SafeDirectNioEncoder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$UnsafeDirectNioEncoder.class b/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$UnsafeDirectNioEncoder.class
new file mode 100644
index 0000000000000..0208cf091bc0a
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream$UnsafeDirectNioEncoder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream.class b/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream.class
new file mode 100644
index 0000000000000..29fcf07fec5ec
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStream.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStreamWriter$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStreamWriter$1.class
new file mode 100644
index 0000000000000..2400384084233
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStreamWriter$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStreamWriter.class b/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStreamWriter.class
new file mode 100644
index 0000000000000..7b8fe1b90bd2c
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/CodedOutputStreamWriter.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/DoubleArrayList.class b/java/kotlin-lite/target/classes/com/google/protobuf/DoubleArrayList.class
new file mode 100644
index 0000000000000..b8e0dc20eec29
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/DoubleArrayList.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/DoubleValue$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/DoubleValue$1.class
new file mode 100644
index 0000000000000..11b102b22ce4f
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/DoubleValue$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/DoubleValue$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/DoubleValue$Builder.class
new file mode 100644
index 0000000000000..b5405e9f5f27e
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/DoubleValue$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/DoubleValue.class b/java/kotlin-lite/target/classes/com/google/protobuf/DoubleValue.class
new file mode 100644
index 0000000000000..e3cbe73f3cb3f
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/DoubleValue.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/DoubleValueOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/DoubleValueOrBuilder.class
new file mode 100644
index 0000000000000..c7ae32144cd6d
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/DoubleValueOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Duration$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/Duration$1.class
new file mode 100644
index 0000000000000..7228c3f2441a9
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Duration$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Duration$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/Duration$Builder.class
new file mode 100644
index 0000000000000..f81da9797d3fb
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Duration$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Duration.class b/java/kotlin-lite/target/classes/com/google/protobuf/Duration.class
new file mode 100644
index 0000000000000..336ffbeb8b3fb
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Duration.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/DurationOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/DurationOrBuilder.class
new file mode 100644
index 0000000000000..067fb708b77f3
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/DurationOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/DurationProto.class b/java/kotlin-lite/target/classes/com/google/protobuf/DurationProto.class
new file mode 100644
index 0000000000000..3cb3ec67575d4
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/DurationProto.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Empty$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/Empty$1.class
new file mode 100644
index 0000000000000..d1b55ddb83aa2
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Empty$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Empty$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/Empty$Builder.class
new file mode 100644
index 0000000000000..8af81c9ee1f5b
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Empty$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Empty.class b/java/kotlin-lite/target/classes/com/google/protobuf/Empty.class
new file mode 100644
index 0000000000000..54120182ddeff
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Empty.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/EmptyOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/EmptyOrBuilder.class
new file mode 100644
index 0000000000000..0e3e1fa76771f
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/EmptyOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/EmptyProto.class b/java/kotlin-lite/target/classes/com/google/protobuf/EmptyProto.class
new file mode 100644
index 0000000000000..622d06fea396f
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/EmptyProto.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Enum$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/Enum$1.class
new file mode 100644
index 0000000000000..e9e9fed868c57
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Enum$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Enum$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/Enum$Builder.class
new file mode 100644
index 0000000000000..335c20a24e611
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Enum$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Enum.class b/java/kotlin-lite/target/classes/com/google/protobuf/Enum.class
new file mode 100644
index 0000000000000..ddd94aea0f731
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Enum.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/EnumOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/EnumOrBuilder.class
new file mode 100644
index 0000000000000..122ee9147ab0f
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/EnumOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/EnumValue$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/EnumValue$1.class
new file mode 100644
index 0000000000000..aac3008e97ed8
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/EnumValue$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/EnumValue$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/EnumValue$Builder.class
new file mode 100644
index 0000000000000..0d31584078841
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/EnumValue$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/EnumValue.class b/java/kotlin-lite/target/classes/com/google/protobuf/EnumValue.class
new file mode 100644
index 0000000000000..2cfdad40d01e5
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/EnumValue.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/EnumValueOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/EnumValueOrBuilder.class
new file mode 100644
index 0000000000000..2e5a21ba4cfc3
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/EnumValueOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ExperimentalApi.class b/java/kotlin-lite/target/classes/com/google/protobuf/ExperimentalApi.class
new file mode 100644
index 0000000000000..ee21fbf935906
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ExperimentalApi.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionLite.class b/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionLite.class
new file mode 100644
index 0000000000000..4cc58a768103b
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionLite.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionRegistryFactory.class b/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionRegistryFactory.class
new file mode 100644
index 0000000000000..a881401d2a696
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionRegistryFactory.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionRegistryLite$ExtensionClassHolder.class b/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionRegistryLite$ExtensionClassHolder.class
new file mode 100644
index 0000000000000..5fe9f764395dd
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionRegistryLite$ExtensionClassHolder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionRegistryLite$ObjectIntPair.class b/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionRegistryLite$ObjectIntPair.class
new file mode 100644
index 0000000000000..72c48235151f6
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionRegistryLite$ObjectIntPair.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionRegistryLite.class b/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionRegistryLite.class
new file mode 100644
index 0000000000000..034cdac2c9866
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionRegistryLite.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionSchema.class b/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionSchema.class
new file mode 100644
index 0000000000000..2012de780198a
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionSchema.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionSchemaLite$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionSchemaLite$1.class
new file mode 100644
index 0000000000000..1b67f7a6b6457
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionSchemaLite$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionSchemaLite.class b/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionSchemaLite.class
new file mode 100644
index 0000000000000..c45dcff88b19d
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionSchemaLite.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionSchemas.class b/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionSchemas.class
new file mode 100644
index 0000000000000..cb980fe2036e5
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ExtensionSchemas.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Field$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/Field$1.class
new file mode 100644
index 0000000000000..933f7341b8980
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Field$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Field$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/Field$Builder.class
new file mode 100644
index 0000000000000..36ff454ba0029
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Field$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Field$Cardinality$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/Field$Cardinality$1.class
new file mode 100644
index 0000000000000..576076045118e
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Field$Cardinality$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Field$Cardinality$CardinalityVerifier.class b/java/kotlin-lite/target/classes/com/google/protobuf/Field$Cardinality$CardinalityVerifier.class
new file mode 100644
index 0000000000000..7622b72e003da
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Field$Cardinality$CardinalityVerifier.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Field$Cardinality.class b/java/kotlin-lite/target/classes/com/google/protobuf/Field$Cardinality.class
new file mode 100644
index 0000000000000..23f3dc52f3f1c
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Field$Cardinality.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Field$Kind$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/Field$Kind$1.class
new file mode 100644
index 0000000000000..81eb3031b88cd
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Field$Kind$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Field$Kind$KindVerifier.class b/java/kotlin-lite/target/classes/com/google/protobuf/Field$Kind$KindVerifier.class
new file mode 100644
index 0000000000000..e9a1f24f391e0
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Field$Kind$KindVerifier.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Field$Kind.class b/java/kotlin-lite/target/classes/com/google/protobuf/Field$Kind.class
new file mode 100644
index 0000000000000..528963c75a249
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Field$Kind.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Field.class b/java/kotlin-lite/target/classes/com/google/protobuf/Field.class
new file mode 100644
index 0000000000000..96afb9ea700c5
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Field.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/FieldInfo$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/FieldInfo$1.class
new file mode 100644
index 0000000000000..2c2e2a3d759ef
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/FieldInfo$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/FieldInfo$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/FieldInfo$Builder.class
new file mode 100644
index 0000000000000..21b24b6782c29
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/FieldInfo$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/FieldInfo.class b/java/kotlin-lite/target/classes/com/google/protobuf/FieldInfo.class
new file mode 100644
index 0000000000000..f321af73bbac5
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/FieldInfo.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/FieldMask$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/FieldMask$1.class
new file mode 100644
index 0000000000000..cc0d4165d2313
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/FieldMask$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/FieldMask$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/FieldMask$Builder.class
new file mode 100644
index 0000000000000..c738aad07a646
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/FieldMask$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/FieldMask.class b/java/kotlin-lite/target/classes/com/google/protobuf/FieldMask.class
new file mode 100644
index 0000000000000..b123060cf920d
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/FieldMask.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/FieldMaskOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/FieldMaskOrBuilder.class
new file mode 100644
index 0000000000000..2e4ea044d1671
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/FieldMaskOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/FieldMaskProto.class b/java/kotlin-lite/target/classes/com/google/protobuf/FieldMaskProto.class
new file mode 100644
index 0000000000000..b0bac3bf387e2
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/FieldMaskProto.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/FieldOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/FieldOrBuilder.class
new file mode 100644
index 0000000000000..667c55178c7b7
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/FieldOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/FieldSet$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/FieldSet$1.class
new file mode 100644
index 0000000000000..1264bc4c6b5a2
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/FieldSet$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/FieldSet$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/FieldSet$Builder.class
new file mode 100644
index 0000000000000..9beda36f54497
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/FieldSet$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/FieldSet$FieldDescriptorLite.class b/java/kotlin-lite/target/classes/com/google/protobuf/FieldSet$FieldDescriptorLite.class
new file mode 100644
index 0000000000000..170d3b225393c
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/FieldSet$FieldDescriptorLite.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/FieldSet.class b/java/kotlin-lite/target/classes/com/google/protobuf/FieldSet.class
new file mode 100644
index 0000000000000..bde362b9998fb
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/FieldSet.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/FieldType$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/FieldType$1.class
new file mode 100644
index 0000000000000..5e31d0a588c43
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/FieldType$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/FieldType$Collection.class b/java/kotlin-lite/target/classes/com/google/protobuf/FieldType$Collection.class
new file mode 100644
index 0000000000000..62e80edd8d1df
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/FieldType$Collection.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/FieldType.class b/java/kotlin-lite/target/classes/com/google/protobuf/FieldType.class
new file mode 100644
index 0000000000000..1db06ab46d3bb
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/FieldType.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/FloatArrayList.class b/java/kotlin-lite/target/classes/com/google/protobuf/FloatArrayList.class
new file mode 100644
index 0000000000000..84e15f1b6e82c
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/FloatArrayList.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/FloatValue$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/FloatValue$1.class
new file mode 100644
index 0000000000000..79737cd7c2bfd
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/FloatValue$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/FloatValue$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/FloatValue$Builder.class
new file mode 100644
index 0000000000000..944b681a99004
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/FloatValue$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/FloatValue.class b/java/kotlin-lite/target/classes/com/google/protobuf/FloatValue.class
new file mode 100644
index 0000000000000..9fa301c8c6667
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/FloatValue.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/FloatValueOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/FloatValueOrBuilder.class
new file mode 100644
index 0000000000000..08b00d480e9d8
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/FloatValueOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageInfoFactory.class b/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageInfoFactory.class
new file mode 100644
index 0000000000000..ef5aac3a4d657
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageInfoFactory.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$1.class
new file mode 100644
index 0000000000000..904c99e867cbe
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$Builder.class
new file mode 100644
index 0000000000000..53c1cffff8b3d
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$DefaultInstanceBasedParser.class b/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$DefaultInstanceBasedParser.class
new file mode 100644
index 0000000000000..4a15fe4942f80
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$DefaultInstanceBasedParser.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$ExtendableBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$ExtendableBuilder.class
new file mode 100644
index 0000000000000..4f9cc8208db4a
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$ExtendableBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$ExtendableMessage$ExtensionWriter.class b/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$ExtendableMessage$ExtensionWriter.class
new file mode 100644
index 0000000000000..9fb00ba9ff99b
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$ExtendableMessage$ExtensionWriter.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$ExtendableMessage.class b/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$ExtendableMessage.class
new file mode 100644
index 0000000000000..948ce73860699
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$ExtendableMessage.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$ExtendableMessageOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$ExtendableMessageOrBuilder.class
new file mode 100644
index 0000000000000..c463262e29a64
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$ExtendableMessageOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$ExtensionDescriptor.class b/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$ExtensionDescriptor.class
new file mode 100644
index 0000000000000..868f536c99511
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$ExtensionDescriptor.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$GeneratedExtension.class b/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$GeneratedExtension.class
new file mode 100644
index 0000000000000..709ccec63eda9
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$GeneratedExtension.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$MethodToInvoke.class b/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$MethodToInvoke.class
new file mode 100644
index 0000000000000..72d3a4c5027f4
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$MethodToInvoke.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$SerializedForm.class b/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$SerializedForm.class
new file mode 100644
index 0000000000000..60924d7323ad0
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite$SerializedForm.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite.class b/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite.class
new file mode 100644
index 0000000000000..64a5c3fcf571d
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/GeneratedMessageLite.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Int32Value$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/Int32Value$1.class
new file mode 100644
index 0000000000000..df5936fd12117
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Int32Value$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Int32Value$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/Int32Value$Builder.class
new file mode 100644
index 0000000000000..dc3862fa66ffb
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Int32Value$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Int32Value.class b/java/kotlin-lite/target/classes/com/google/protobuf/Int32Value.class
new file mode 100644
index 0000000000000..a12434eb1198a
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Int32Value.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Int32ValueOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/Int32ValueOrBuilder.class
new file mode 100644
index 0000000000000..a01ff795ed73d
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Int32ValueOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Int64Value$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/Int64Value$1.class
new file mode 100644
index 0000000000000..758c783b1e36f
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Int64Value$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Int64Value$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/Int64Value$Builder.class
new file mode 100644
index 0000000000000..fe2f2f77fb3e9
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Int64Value$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Int64Value.class b/java/kotlin-lite/target/classes/com/google/protobuf/Int64Value.class
new file mode 100644
index 0000000000000..fa12966eccade
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Int64Value.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Int64ValueOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/Int64ValueOrBuilder.class
new file mode 100644
index 0000000000000..06611c6895dfb
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Int64ValueOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/IntArrayList.class b/java/kotlin-lite/target/classes/com/google/protobuf/IntArrayList.class
new file mode 100644
index 0000000000000..95a07a45b5abf
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/IntArrayList.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Internal$BooleanList.class b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$BooleanList.class
new file mode 100644
index 0000000000000..c9905519f3fd1
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$BooleanList.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Internal$DoubleList.class b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$DoubleList.class
new file mode 100644
index 0000000000000..20213cce7e9ed
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$DoubleList.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Internal$EnumLite.class b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$EnumLite.class
new file mode 100644
index 0000000000000..f7529a726654b
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$EnumLite.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Internal$EnumLiteMap.class b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$EnumLiteMap.class
new file mode 100644
index 0000000000000..8926294adf1b3
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$EnumLiteMap.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Internal$EnumVerifier.class b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$EnumVerifier.class
new file mode 100644
index 0000000000000..4f5168440c0b1
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$EnumVerifier.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Internal$FloatList.class b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$FloatList.class
new file mode 100644
index 0000000000000..94c893e481881
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$FloatList.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Internal$IntList.class b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$IntList.class
new file mode 100644
index 0000000000000..411446b95d468
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$IntList.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Internal$ListAdapter$Converter.class b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$ListAdapter$Converter.class
new file mode 100644
index 0000000000000..d55d0213c1ddc
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$ListAdapter$Converter.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Internal$ListAdapter.class b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$ListAdapter.class
new file mode 100644
index 0000000000000..022c33d730c32
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$ListAdapter.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Internal$LongList.class b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$LongList.class
new file mode 100644
index 0000000000000..a39f9cd4aa79c
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$LongList.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Internal$MapAdapter$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$MapAdapter$1.class
new file mode 100644
index 0000000000000..27b93fdc146cf
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$MapAdapter$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Internal$MapAdapter$Converter.class b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$MapAdapter$Converter.class
new file mode 100644
index 0000000000000..758e651f4ca6d
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$MapAdapter$Converter.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Internal$MapAdapter$EntryAdapter.class b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$MapAdapter$EntryAdapter.class
new file mode 100644
index 0000000000000..45ba6edcfef62
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$MapAdapter$EntryAdapter.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Internal$MapAdapter$IteratorAdapter.class b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$MapAdapter$IteratorAdapter.class
new file mode 100644
index 0000000000000..2db85e391056d
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$MapAdapter$IteratorAdapter.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Internal$MapAdapter$SetAdapter.class b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$MapAdapter$SetAdapter.class
new file mode 100644
index 0000000000000..601ab08ea0e0f
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$MapAdapter$SetAdapter.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Internal$MapAdapter.class b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$MapAdapter.class
new file mode 100644
index 0000000000000..a9d70d06077cd
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$MapAdapter.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Internal$ProtobufList.class b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$ProtobufList.class
new file mode 100644
index 0000000000000..26b6d47dd1ca2
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Internal$ProtobufList.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Internal.class b/java/kotlin-lite/target/classes/com/google/protobuf/Internal.class
new file mode 100644
index 0000000000000..f62d009ff939c
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Internal.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/InvalidProtocolBufferException$InvalidWireTypeException.class b/java/kotlin-lite/target/classes/com/google/protobuf/InvalidProtocolBufferException$InvalidWireTypeException.class
new file mode 100644
index 0000000000000..d2c6bef3c68db
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/InvalidProtocolBufferException$InvalidWireTypeException.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/InvalidProtocolBufferException.class b/java/kotlin-lite/target/classes/com/google/protobuf/InvalidProtocolBufferException.class
new file mode 100644
index 0000000000000..e83d6e2a095e7
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/InvalidProtocolBufferException.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/IterableByteBufferInputStream.class b/java/kotlin-lite/target/classes/com/google/protobuf/IterableByteBufferInputStream.class
new file mode 100644
index 0000000000000..81e0fe4394680
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/IterableByteBufferInputStream.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/JavaType.class b/java/kotlin-lite/target/classes/com/google/protobuf/JavaType.class
new file mode 100644
index 0000000000000..656ff6c05b327
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/JavaType.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/LazyField$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/LazyField$1.class
new file mode 100644
index 0000000000000..36f5db8958232
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/LazyField$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/LazyField$LazyEntry.class b/java/kotlin-lite/target/classes/com/google/protobuf/LazyField$LazyEntry.class
new file mode 100644
index 0000000000000..fc22a989e8c95
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/LazyField$LazyEntry.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/LazyField$LazyIterator.class b/java/kotlin-lite/target/classes/com/google/protobuf/LazyField$LazyIterator.class
new file mode 100644
index 0000000000000..f96db166d6158
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/LazyField$LazyIterator.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/LazyField.class b/java/kotlin-lite/target/classes/com/google/protobuf/LazyField.class
new file mode 100644
index 0000000000000..64ef415812427
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/LazyField.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/LazyFieldLite.class b/java/kotlin-lite/target/classes/com/google/protobuf/LazyFieldLite.class
new file mode 100644
index 0000000000000..af95471c0969f
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/LazyFieldLite.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/LazyStringArrayList$ByteArrayListView.class b/java/kotlin-lite/target/classes/com/google/protobuf/LazyStringArrayList$ByteArrayListView.class
new file mode 100644
index 0000000000000..904e5b1301470
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/LazyStringArrayList$ByteArrayListView.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/LazyStringArrayList$ByteStringListView.class b/java/kotlin-lite/target/classes/com/google/protobuf/LazyStringArrayList$ByteStringListView.class
new file mode 100644
index 0000000000000..5404ef0197e0e
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/LazyStringArrayList$ByteStringListView.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/LazyStringArrayList.class b/java/kotlin-lite/target/classes/com/google/protobuf/LazyStringArrayList.class
new file mode 100644
index 0000000000000..6973bcd39f523
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/LazyStringArrayList.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/LazyStringList.class b/java/kotlin-lite/target/classes/com/google/protobuf/LazyStringList.class
new file mode 100644
index 0000000000000..d906bc907d4eb
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/LazyStringList.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ListFieldSchema$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/ListFieldSchema$1.class
new file mode 100644
index 0000000000000..3a187a24d5985
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ListFieldSchema$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ListFieldSchema$ListFieldSchemaFull.class b/java/kotlin-lite/target/classes/com/google/protobuf/ListFieldSchema$ListFieldSchemaFull.class
new file mode 100644
index 0000000000000..589fb2ca43a54
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ListFieldSchema$ListFieldSchemaFull.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ListFieldSchema$ListFieldSchemaLite.class b/java/kotlin-lite/target/classes/com/google/protobuf/ListFieldSchema$ListFieldSchemaLite.class
new file mode 100644
index 0000000000000..6822eebd15142
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ListFieldSchema$ListFieldSchemaLite.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ListFieldSchema.class b/java/kotlin-lite/target/classes/com/google/protobuf/ListFieldSchema.class
new file mode 100644
index 0000000000000..b439b86604323
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ListFieldSchema.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ListValue$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/ListValue$1.class
new file mode 100644
index 0000000000000..3f1ec2f01fbff
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ListValue$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ListValue$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/ListValue$Builder.class
new file mode 100644
index 0000000000000..03f255210ccde
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ListValue$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ListValue.class b/java/kotlin-lite/target/classes/com/google/protobuf/ListValue.class
new file mode 100644
index 0000000000000..b078bc98201d2
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ListValue.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ListValueOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/ListValueOrBuilder.class
new file mode 100644
index 0000000000000..8dacb4af96ccd
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ListValueOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/LongArrayList.class b/java/kotlin-lite/target/classes/com/google/protobuf/LongArrayList.class
new file mode 100644
index 0000000000000..53c7de3fdba8f
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/LongArrayList.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ManifestSchemaFactory$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/ManifestSchemaFactory$1.class
new file mode 100644
index 0000000000000..909b938b32223
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ManifestSchemaFactory$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ManifestSchemaFactory$CompositeMessageInfoFactory.class b/java/kotlin-lite/target/classes/com/google/protobuf/ManifestSchemaFactory$CompositeMessageInfoFactory.class
new file mode 100644
index 0000000000000..e82186a956782
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ManifestSchemaFactory$CompositeMessageInfoFactory.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ManifestSchemaFactory.class b/java/kotlin-lite/target/classes/com/google/protobuf/ManifestSchemaFactory.class
new file mode 100644
index 0000000000000..007f21701593b
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ManifestSchemaFactory.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/MapEntryLite$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/MapEntryLite$1.class
new file mode 100644
index 0000000000000..bc1bb3db60eb9
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/MapEntryLite$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/MapEntryLite$Metadata.class b/java/kotlin-lite/target/classes/com/google/protobuf/MapEntryLite$Metadata.class
new file mode 100644
index 0000000000000..3b69598a25d7b
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/MapEntryLite$Metadata.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/MapEntryLite.class b/java/kotlin-lite/target/classes/com/google/protobuf/MapEntryLite.class
new file mode 100644
index 0000000000000..a57cd8976268d
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/MapEntryLite.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/MapFieldLite.class b/java/kotlin-lite/target/classes/com/google/protobuf/MapFieldLite.class
new file mode 100644
index 0000000000000..42129d7d6ae72
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/MapFieldLite.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/MapFieldSchema.class b/java/kotlin-lite/target/classes/com/google/protobuf/MapFieldSchema.class
new file mode 100644
index 0000000000000..8ef7502c53ff9
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/MapFieldSchema.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/MapFieldSchemaLite.class b/java/kotlin-lite/target/classes/com/google/protobuf/MapFieldSchemaLite.class
new file mode 100644
index 0000000000000..9ace23ce22a29
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/MapFieldSchemaLite.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/MapFieldSchemas.class b/java/kotlin-lite/target/classes/com/google/protobuf/MapFieldSchemas.class
new file mode 100644
index 0000000000000..0e5c9001a8ed7
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/MapFieldSchemas.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/MessageInfo.class b/java/kotlin-lite/target/classes/com/google/protobuf/MessageInfo.class
new file mode 100644
index 0000000000000..93c461ae1a3e7
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/MessageInfo.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/MessageInfoFactory.class b/java/kotlin-lite/target/classes/com/google/protobuf/MessageInfoFactory.class
new file mode 100644
index 0000000000000..65128b130de66
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/MessageInfoFactory.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/MessageLite$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/MessageLite$Builder.class
new file mode 100644
index 0000000000000..5148c02195dc3
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/MessageLite$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/MessageLite.class b/java/kotlin-lite/target/classes/com/google/protobuf/MessageLite.class
new file mode 100644
index 0000000000000..a309e33b8aba0
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/MessageLite.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/MessageLiteOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/MessageLiteOrBuilder.class
new file mode 100644
index 0000000000000..33413d44935d5
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/MessageLiteOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/MessageLiteToString.class b/java/kotlin-lite/target/classes/com/google/protobuf/MessageLiteToString.class
new file mode 100644
index 0000000000000..f3db2d2311e94
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/MessageLiteToString.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/MessageSchema$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/MessageSchema$1.class
new file mode 100644
index 0000000000000..2595bc095b708
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/MessageSchema$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/MessageSchema.class b/java/kotlin-lite/target/classes/com/google/protobuf/MessageSchema.class
new file mode 100644
index 0000000000000..5ca3358984872
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/MessageSchema.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/MessageSetSchema.class b/java/kotlin-lite/target/classes/com/google/protobuf/MessageSetSchema.class
new file mode 100644
index 0000000000000..16a0e46f73fcd
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/MessageSetSchema.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Method$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/Method$1.class
new file mode 100644
index 0000000000000..4792b4718a559
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Method$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Method$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/Method$Builder.class
new file mode 100644
index 0000000000000..d9daf9ec2d41a
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Method$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Method.class b/java/kotlin-lite/target/classes/com/google/protobuf/Method.class
new file mode 100644
index 0000000000000..ab48753ca9510
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Method.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/MethodOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/MethodOrBuilder.class
new file mode 100644
index 0000000000000..89984a2eb5534
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/MethodOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Mixin$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/Mixin$1.class
new file mode 100644
index 0000000000000..4600fd3116e09
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Mixin$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Mixin$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/Mixin$Builder.class
new file mode 100644
index 0000000000000..46c3454fe8d82
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Mixin$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Mixin.class b/java/kotlin-lite/target/classes/com/google/protobuf/Mixin.class
new file mode 100644
index 0000000000000..a261772776a5e
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Mixin.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/MixinOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/MixinOrBuilder.class
new file mode 100644
index 0000000000000..6c7471254283f
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/MixinOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/MutabilityOracle$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/MutabilityOracle$1.class
new file mode 100644
index 0000000000000..5e32301b5cae9
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/MutabilityOracle$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/MutabilityOracle.class b/java/kotlin-lite/target/classes/com/google/protobuf/MutabilityOracle.class
new file mode 100644
index 0000000000000..cc3f3d42b841c
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/MutabilityOracle.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/NewInstanceSchema.class b/java/kotlin-lite/target/classes/com/google/protobuf/NewInstanceSchema.class
new file mode 100644
index 0000000000000..bf08e42827e21
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/NewInstanceSchema.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/NewInstanceSchemaLite.class b/java/kotlin-lite/target/classes/com/google/protobuf/NewInstanceSchemaLite.class
new file mode 100644
index 0000000000000..14c004ebb31af
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/NewInstanceSchemaLite.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/NewInstanceSchemas.class b/java/kotlin-lite/target/classes/com/google/protobuf/NewInstanceSchemas.class
new file mode 100644
index 0000000000000..0ab924bb13a97
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/NewInstanceSchemas.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/NioByteString$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/NioByteString$1.class
new file mode 100644
index 0000000000000..fad72ce3d63f1
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/NioByteString$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/NioByteString.class b/java/kotlin-lite/target/classes/com/google/protobuf/NioByteString.class
new file mode 100644
index 0000000000000..974b819d6781a
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/NioByteString.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/NullValue$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/NullValue$1.class
new file mode 100644
index 0000000000000..89fbf74ed451b
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/NullValue$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/NullValue$NullValueVerifier.class b/java/kotlin-lite/target/classes/com/google/protobuf/NullValue$NullValueVerifier.class
new file mode 100644
index 0000000000000..82c3899df8951
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/NullValue$NullValueVerifier.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/NullValue.class b/java/kotlin-lite/target/classes/com/google/protobuf/NullValue.class
new file mode 100644
index 0000000000000..79a7e0d5524cb
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/NullValue.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/OneofInfo.class b/java/kotlin-lite/target/classes/com/google/protobuf/OneofInfo.class
new file mode 100644
index 0000000000000..7dccf4f61d8bc
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/OneofInfo.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Option$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/Option$1.class
new file mode 100644
index 0000000000000..75b81003c9c42
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Option$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Option$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/Option$Builder.class
new file mode 100644
index 0000000000000..716c9afe75e7f
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Option$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Option.class b/java/kotlin-lite/target/classes/com/google/protobuf/Option.class
new file mode 100644
index 0000000000000..e62aa843e3f57
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Option.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/OptionOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/OptionOrBuilder.class
new file mode 100644
index 0000000000000..9194a114daa0f
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/OptionOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Parser.class b/java/kotlin-lite/target/classes/com/google/protobuf/Parser.class
new file mode 100644
index 0000000000000..df716106a80da
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Parser.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/PrimitiveNonBoxingCollection.class b/java/kotlin-lite/target/classes/com/google/protobuf/PrimitiveNonBoxingCollection.class
new file mode 100644
index 0000000000000..fd32754e2893f
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/PrimitiveNonBoxingCollection.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ProtoSyntax.class b/java/kotlin-lite/target/classes/com/google/protobuf/ProtoSyntax.class
new file mode 100644
index 0000000000000..84042d4275a75
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ProtoSyntax.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Protobuf.class b/java/kotlin-lite/target/classes/com/google/protobuf/Protobuf.class
new file mode 100644
index 0000000000000..1411d9a9a43f1
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Protobuf.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ProtobufArrayList.class b/java/kotlin-lite/target/classes/com/google/protobuf/ProtobufArrayList.class
new file mode 100644
index 0000000000000..52359f74e860e
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ProtobufArrayList.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ProtobufLists.class b/java/kotlin-lite/target/classes/com/google/protobuf/ProtobufLists.class
new file mode 100644
index 0000000000000..3ba32bcafb069
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ProtobufLists.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ProtocolStringList.class b/java/kotlin-lite/target/classes/com/google/protobuf/ProtocolStringList.class
new file mode 100644
index 0000000000000..616fe69765ec3
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ProtocolStringList.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/RawMessageInfo.class b/java/kotlin-lite/target/classes/com/google/protobuf/RawMessageInfo.class
new file mode 100644
index 0000000000000..b0eb2a338d5a4
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/RawMessageInfo.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Reader.class b/java/kotlin-lite/target/classes/com/google/protobuf/Reader.class
new file mode 100644
index 0000000000000..487ed182fb980
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Reader.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/RopeByteString$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/RopeByteString$1.class
new file mode 100644
index 0000000000000..b8f9d2516fcc4
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/RopeByteString$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/RopeByteString$Balancer.class b/java/kotlin-lite/target/classes/com/google/protobuf/RopeByteString$Balancer.class
new file mode 100644
index 0000000000000..da3ca01bdccc5
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/RopeByteString$Balancer.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/RopeByteString$PieceIterator.class b/java/kotlin-lite/target/classes/com/google/protobuf/RopeByteString$PieceIterator.class
new file mode 100644
index 0000000000000..83c53262c6dee
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/RopeByteString$PieceIterator.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/RopeByteString$RopeInputStream.class b/java/kotlin-lite/target/classes/com/google/protobuf/RopeByteString$RopeInputStream.class
new file mode 100644
index 0000000000000..745194248836f
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/RopeByteString$RopeInputStream.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/RopeByteString.class b/java/kotlin-lite/target/classes/com/google/protobuf/RopeByteString.class
new file mode 100644
index 0000000000000..c74704904a5a7
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/RopeByteString.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Schema.class b/java/kotlin-lite/target/classes/com/google/protobuf/Schema.class
new file mode 100644
index 0000000000000..d5e03494bb555
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Schema.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/SchemaFactory.class b/java/kotlin-lite/target/classes/com/google/protobuf/SchemaFactory.class
new file mode 100644
index 0000000000000..d219235879c59
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/SchemaFactory.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/SchemaUtil.class b/java/kotlin-lite/target/classes/com/google/protobuf/SchemaUtil.class
new file mode 100644
index 0000000000000..34d1cadac2fef
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/SchemaUtil.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$1.class
new file mode 100644
index 0000000000000..9b101db5db62a
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$DescendingEntryIterator.class b/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$DescendingEntryIterator.class
new file mode 100644
index 0000000000000..b22a66b05b646
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$DescendingEntryIterator.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$DescendingEntrySet.class b/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$DescendingEntrySet.class
new file mode 100644
index 0000000000000..229f8510d201c
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$DescendingEntrySet.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$EmptySet$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$EmptySet$1.class
new file mode 100644
index 0000000000000..940145c1096cb
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$EmptySet$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$EmptySet$2.class b/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$EmptySet$2.class
new file mode 100644
index 0000000000000..a4d440e79b0b2
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$EmptySet$2.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$EmptySet.class b/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$EmptySet.class
new file mode 100644
index 0000000000000..e177d2e8a6703
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$EmptySet.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$Entry.class b/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$Entry.class
new file mode 100644
index 0000000000000..1ee612a47160b
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$Entry.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$EntryIterator.class b/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$EntryIterator.class
new file mode 100644
index 0000000000000..1339a5e4c4ce9
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$EntryIterator.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$EntrySet.class b/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$EntrySet.class
new file mode 100644
index 0000000000000..8c083265b65e4
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap$EntrySet.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap.class b/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap.class
new file mode 100644
index 0000000000000..8d2d436e66783
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/SmallSortedMap.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/SourceContext$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/SourceContext$1.class
new file mode 100644
index 0000000000000..62d24b93245d4
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/SourceContext$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/SourceContext$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/SourceContext$Builder.class
new file mode 100644
index 0000000000000..c4b18f1305af4
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/SourceContext$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/SourceContext.class b/java/kotlin-lite/target/classes/com/google/protobuf/SourceContext.class
new file mode 100644
index 0000000000000..966d8978c0e06
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/SourceContext.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/SourceContextOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/SourceContextOrBuilder.class
new file mode 100644
index 0000000000000..887236cbedee9
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/SourceContextOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/SourceContextProto.class b/java/kotlin-lite/target/classes/com/google/protobuf/SourceContextProto.class
new file mode 100644
index 0000000000000..186aa09fd92a1
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/SourceContextProto.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/StringValue$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/StringValue$1.class
new file mode 100644
index 0000000000000..80c991240b35a
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/StringValue$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/StringValue$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/StringValue$Builder.class
new file mode 100644
index 0000000000000..ca4e0f3c05316
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/StringValue$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/StringValue.class b/java/kotlin-lite/target/classes/com/google/protobuf/StringValue.class
new file mode 100644
index 0000000000000..380d44ec49527
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/StringValue.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/StringValueOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/StringValueOrBuilder.class
new file mode 100644
index 0000000000000..1e70a31995eb7
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/StringValueOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Struct$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/Struct$1.class
new file mode 100644
index 0000000000000..2b7a198b7938c
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Struct$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Struct$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/Struct$Builder.class
new file mode 100644
index 0000000000000..05a692649f413
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Struct$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Struct$FieldsDefaultEntryHolder.class b/java/kotlin-lite/target/classes/com/google/protobuf/Struct$FieldsDefaultEntryHolder.class
new file mode 100644
index 0000000000000..e0f59867fbd0b
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Struct$FieldsDefaultEntryHolder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Struct.class b/java/kotlin-lite/target/classes/com/google/protobuf/Struct.class
new file mode 100644
index 0000000000000..fc878ce9e697b
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Struct.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/StructOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/StructOrBuilder.class
new file mode 100644
index 0000000000000..3d39498e62699
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/StructOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/StructProto.class b/java/kotlin-lite/target/classes/com/google/protobuf/StructProto.class
new file mode 100644
index 0000000000000..310ddc82f5ee2
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/StructProto.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/StructuralMessageInfo$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/StructuralMessageInfo$Builder.class
new file mode 100644
index 0000000000000..d0daed9e1fa70
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/StructuralMessageInfo$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/StructuralMessageInfo.class b/java/kotlin-lite/target/classes/com/google/protobuf/StructuralMessageInfo.class
new file mode 100644
index 0000000000000..637bcec2c0808
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/StructuralMessageInfo.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Syntax$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/Syntax$1.class
new file mode 100644
index 0000000000000..a16278afb4174
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Syntax$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Syntax$SyntaxVerifier.class b/java/kotlin-lite/target/classes/com/google/protobuf/Syntax$SyntaxVerifier.class
new file mode 100644
index 0000000000000..c43c1e2431f36
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Syntax$SyntaxVerifier.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Syntax.class b/java/kotlin-lite/target/classes/com/google/protobuf/Syntax.class
new file mode 100644
index 0000000000000..1fa405e4b28cc
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Syntax.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/TextFormatEscaper$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/TextFormatEscaper$1.class
new file mode 100644
index 0000000000000..67e33cf221ad1
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/TextFormatEscaper$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/TextFormatEscaper$2.class b/java/kotlin-lite/target/classes/com/google/protobuf/TextFormatEscaper$2.class
new file mode 100644
index 0000000000000..e3a88b1f2adab
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/TextFormatEscaper$2.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/TextFormatEscaper$ByteSequence.class b/java/kotlin-lite/target/classes/com/google/protobuf/TextFormatEscaper$ByteSequence.class
new file mode 100644
index 0000000000000..c354dfd7e5426
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/TextFormatEscaper$ByteSequence.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/TextFormatEscaper.class b/java/kotlin-lite/target/classes/com/google/protobuf/TextFormatEscaper.class
new file mode 100644
index 0000000000000..36714cd9f187c
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/TextFormatEscaper.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Timestamp$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/Timestamp$1.class
new file mode 100644
index 0000000000000..74148618559b8
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Timestamp$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Timestamp$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/Timestamp$Builder.class
new file mode 100644
index 0000000000000..2f0239e02d601
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Timestamp$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Timestamp.class b/java/kotlin-lite/target/classes/com/google/protobuf/Timestamp.class
new file mode 100644
index 0000000000000..157cf7dc1d1ad
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Timestamp.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/TimestampOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/TimestampOrBuilder.class
new file mode 100644
index 0000000000000..c83b78f1fac01
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/TimestampOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/TimestampProto.class b/java/kotlin-lite/target/classes/com/google/protobuf/TimestampProto.class
new file mode 100644
index 0000000000000..6b37ace0b5ff5
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/TimestampProto.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Type$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/Type$1.class
new file mode 100644
index 0000000000000..ae52233fad7be
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Type$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Type$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/Type$Builder.class
new file mode 100644
index 0000000000000..dc2c6ca4c2a0a
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Type$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Type.class b/java/kotlin-lite/target/classes/com/google/protobuf/Type.class
new file mode 100644
index 0000000000000..41b6a5f77f149
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Type.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/TypeOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/TypeOrBuilder.class
new file mode 100644
index 0000000000000..4c86fc99fc09d
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/TypeOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/TypeProto.class b/java/kotlin-lite/target/classes/com/google/protobuf/TypeProto.class
new file mode 100644
index 0000000000000..546c0c49a5f26
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/TypeProto.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/UInt32Value$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/UInt32Value$1.class
new file mode 100644
index 0000000000000..4a73da7a39fc7
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/UInt32Value$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/UInt32Value$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/UInt32Value$Builder.class
new file mode 100644
index 0000000000000..e7607bdd5be58
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/UInt32Value$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/UInt32Value.class b/java/kotlin-lite/target/classes/com/google/protobuf/UInt32Value.class
new file mode 100644
index 0000000000000..754c10c0be584
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/UInt32Value.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/UInt32ValueOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/UInt32ValueOrBuilder.class
new file mode 100644
index 0000000000000..f7764ed7c3f9f
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/UInt32ValueOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/UInt64Value$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/UInt64Value$1.class
new file mode 100644
index 0000000000000..70e9efe646f28
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/UInt64Value$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/UInt64Value$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/UInt64Value$Builder.class
new file mode 100644
index 0000000000000..c028aab77114d
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/UInt64Value$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/UInt64Value.class b/java/kotlin-lite/target/classes/com/google/protobuf/UInt64Value.class
new file mode 100644
index 0000000000000..1c0e31f4bc374
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/UInt64Value.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/UInt64ValueOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/UInt64ValueOrBuilder.class
new file mode 100644
index 0000000000000..1a23c8e94ccf7
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/UInt64ValueOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/UninitializedMessageException.class b/java/kotlin-lite/target/classes/com/google/protobuf/UninitializedMessageException.class
new file mode 100644
index 0000000000000..f5f1bff9b3b79
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/UninitializedMessageException.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/UnknownFieldSchema.class b/java/kotlin-lite/target/classes/com/google/protobuf/UnknownFieldSchema.class
new file mode 100644
index 0000000000000..1e6d5bf281309
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/UnknownFieldSchema.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/UnknownFieldSetLite.class b/java/kotlin-lite/target/classes/com/google/protobuf/UnknownFieldSetLite.class
new file mode 100644
index 0000000000000..bfc35a9a1f23b
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/UnknownFieldSetLite.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/UnknownFieldSetLiteSchema.class b/java/kotlin-lite/target/classes/com/google/protobuf/UnknownFieldSetLiteSchema.class
new file mode 100644
index 0000000000000..39cfb4cf27f38
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/UnknownFieldSetLiteSchema.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/UnmodifiableLazyStringList$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/UnmodifiableLazyStringList$1.class
new file mode 100644
index 0000000000000..1121583986e0f
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/UnmodifiableLazyStringList$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/UnmodifiableLazyStringList$2.class b/java/kotlin-lite/target/classes/com/google/protobuf/UnmodifiableLazyStringList$2.class
new file mode 100644
index 0000000000000..dec60746ff5de
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/UnmodifiableLazyStringList$2.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/UnmodifiableLazyStringList.class b/java/kotlin-lite/target/classes/com/google/protobuf/UnmodifiableLazyStringList.class
new file mode 100644
index 0000000000000..be251bd2d2ac5
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/UnmodifiableLazyStringList.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/UnsafeUtil$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/UnsafeUtil$1.class
new file mode 100644
index 0000000000000..11babcfae6d1f
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/UnsafeUtil$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/UnsafeUtil$Android32MemoryAccessor.class b/java/kotlin-lite/target/classes/com/google/protobuf/UnsafeUtil$Android32MemoryAccessor.class
new file mode 100644
index 0000000000000..1dbe6daf476e9
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/UnsafeUtil$Android32MemoryAccessor.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/UnsafeUtil$Android64MemoryAccessor.class b/java/kotlin-lite/target/classes/com/google/protobuf/UnsafeUtil$Android64MemoryAccessor.class
new file mode 100644
index 0000000000000..832f148b37ae1
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/UnsafeUtil$Android64MemoryAccessor.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/UnsafeUtil$JvmMemoryAccessor.class b/java/kotlin-lite/target/classes/com/google/protobuf/UnsafeUtil$JvmMemoryAccessor.class
new file mode 100644
index 0000000000000..011bec8c1e317
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/UnsafeUtil$JvmMemoryAccessor.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/UnsafeUtil$MemoryAccessor.class b/java/kotlin-lite/target/classes/com/google/protobuf/UnsafeUtil$MemoryAccessor.class
new file mode 100644
index 0000000000000..2ad937911496d
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/UnsafeUtil$MemoryAccessor.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/UnsafeUtil.class b/java/kotlin-lite/target/classes/com/google/protobuf/UnsafeUtil.class
new file mode 100644
index 0000000000000..c9ed08b15fa75
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/UnsafeUtil.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Utf8$DecodeUtil.class b/java/kotlin-lite/target/classes/com/google/protobuf/Utf8$DecodeUtil.class
new file mode 100644
index 0000000000000..652fc27cd8498
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Utf8$DecodeUtil.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Utf8$Processor.class b/java/kotlin-lite/target/classes/com/google/protobuf/Utf8$Processor.class
new file mode 100644
index 0000000000000..2b4dde60af0b7
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Utf8$Processor.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Utf8$SafeProcessor.class b/java/kotlin-lite/target/classes/com/google/protobuf/Utf8$SafeProcessor.class
new file mode 100644
index 0000000000000..e103d0eecd033
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Utf8$SafeProcessor.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Utf8$UnpairedSurrogateException.class b/java/kotlin-lite/target/classes/com/google/protobuf/Utf8$UnpairedSurrogateException.class
new file mode 100644
index 0000000000000..85975ea9aaad0
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Utf8$UnpairedSurrogateException.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Utf8$UnsafeProcessor.class b/java/kotlin-lite/target/classes/com/google/protobuf/Utf8$UnsafeProcessor.class
new file mode 100644
index 0000000000000..194eb156f1a29
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Utf8$UnsafeProcessor.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Utf8.class b/java/kotlin-lite/target/classes/com/google/protobuf/Utf8.class
new file mode 100644
index 0000000000000..85afc8a21e439
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Utf8.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Value$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/Value$1.class
new file mode 100644
index 0000000000000..a959a8f640c9a
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Value$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Value$Builder.class b/java/kotlin-lite/target/classes/com/google/protobuf/Value$Builder.class
new file mode 100644
index 0000000000000..81d609e5c4e2f
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Value$Builder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Value$KindCase.class b/java/kotlin-lite/target/classes/com/google/protobuf/Value$KindCase.class
new file mode 100644
index 0000000000000..0431e1ac4d485
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Value$KindCase.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Value.class b/java/kotlin-lite/target/classes/com/google/protobuf/Value.class
new file mode 100644
index 0000000000000..c7285757f997f
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Value.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/ValueOrBuilder.class b/java/kotlin-lite/target/classes/com/google/protobuf/ValueOrBuilder.class
new file mode 100644
index 0000000000000..24bdfe5ae1b1d
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/ValueOrBuilder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$1.class
new file mode 100644
index 0000000000000..012fda3014440
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$FieldType$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$FieldType$1.class
new file mode 100644
index 0000000000000..cb6bf52a6bc7b
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$FieldType$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$FieldType$2.class b/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$FieldType$2.class
new file mode 100644
index 0000000000000..e01c8464ca406
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$FieldType$2.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$FieldType$3.class b/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$FieldType$3.class
new file mode 100644
index 0000000000000..37ecf4a2e5c5a
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$FieldType$3.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$FieldType$4.class b/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$FieldType$4.class
new file mode 100644
index 0000000000000..0b51691fc5aa1
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$FieldType$4.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$FieldType.class b/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$FieldType.class
new file mode 100644
index 0000000000000..036dddf863558
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$FieldType.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$JavaType.class b/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$JavaType.class
new file mode 100644
index 0000000000000..122f9a187bb49
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$JavaType.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$Utf8Validation$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$Utf8Validation$1.class
new file mode 100644
index 0000000000000..30a65a7e0446b
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$Utf8Validation$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$Utf8Validation$2.class b/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$Utf8Validation$2.class
new file mode 100644
index 0000000000000..5c91de8a6ab0e
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$Utf8Validation$2.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$Utf8Validation$3.class b/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$Utf8Validation$3.class
new file mode 100644
index 0000000000000..34d9cb4126edf
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$Utf8Validation$3.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$Utf8Validation.class b/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$Utf8Validation.class
new file mode 100644
index 0000000000000..89770813fc266
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat$Utf8Validation.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat.class b/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat.class
new file mode 100644
index 0000000000000..f8352eba23bd9
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/WireFormat.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/WrappersProto.class b/java/kotlin-lite/target/classes/com/google/protobuf/WrappersProto.class
new file mode 100644
index 0000000000000..9ded53320bb1a
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/WrappersProto.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Writer$FieldOrder.class b/java/kotlin-lite/target/classes/com/google/protobuf/Writer$FieldOrder.class
new file mode 100644
index 0000000000000..78ccae0925927
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Writer$FieldOrder.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/Writer.class b/java/kotlin-lite/target/classes/com/google/protobuf/Writer.class
new file mode 100644
index 0000000000000..f0e353436044c
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/Writer.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/DslList.class b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/DslList.class
new file mode 100644
index 0000000000000..0b2690fac96ad
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/DslList.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/DslMap.class b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/DslMap.class
new file mode 100644
index 0000000000000..fb484d0e8ccbc
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/DslMap.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/DslProxy.class b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/DslProxy.class
new file mode 100644
index 0000000000000..4dce33a1c6f28
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/DslProxy.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/ExtendableMessageLiteExtensionsKt.class b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/ExtendableMessageLiteExtensionsKt.class
new file mode 100644
index 0000000000000..d410852055824
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/ExtendableMessageLiteExtensionsKt.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/ExtensionList.class b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/ExtensionList.class
new file mode 100644
index 0000000000000..f299c88a54176
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/ExtensionList.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/OnlyForUseByGeneratedProtoCode.class b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/OnlyForUseByGeneratedProtoCode.class
new file mode 100644
index 0000000000000..a70b0fc63a13e
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/OnlyForUseByGeneratedProtoCode.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/ProtoDslMarker.class b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/ProtoDslMarker.class
new file mode 100644
index 0000000000000..3ed7d634c1d34
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/ProtoDslMarker.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/UnmodifiableCollection.class b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/UnmodifiableCollection.class
new file mode 100644
index 0000000000000..3391fdf42dee2
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/UnmodifiableCollection.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/UnmodifiableIterator.class b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/UnmodifiableIterator.class
new file mode 100644
index 0000000000000..fbaa709e3139e
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/UnmodifiableIterator.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/UnmodifiableListIterator.class b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/UnmodifiableListIterator.class
new file mode 100644
index 0000000000000..40fee0d21811a
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/UnmodifiableListIterator.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/UnmodifiableMapEntries$iterator$1.class b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/UnmodifiableMapEntries$iterator$1.class
new file mode 100644
index 0000000000000..e2670a80b614d
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/UnmodifiableMapEntries$iterator$1.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/UnmodifiableMapEntries.class b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/UnmodifiableMapEntries.class
new file mode 100644
index 0000000000000..e634a02859dfe
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/UnmodifiableMapEntries.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/UnmodifiableMapEntry.class b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/UnmodifiableMapEntry.class
new file mode 100644
index 0000000000000..0103112c47442
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/UnmodifiableMapEntry.class differ
diff --git a/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/UnmodifiableSet.class b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/UnmodifiableSet.class
new file mode 100644
index 0000000000000..fb968437f40e1
Binary files /dev/null and b/java/kotlin-lite/target/classes/com/google/protobuf/kotlin/UnmodifiableSet.class differ
diff --git a/java/kotlin-lite/target/classes/google/protobuf/any.proto b/java/kotlin-lite/target/classes/google/protobuf/any.proto
new file mode 100644
index 0000000000000..6ed8a23cf5a30
--- /dev/null
+++ b/java/kotlin-lite/target/classes/google/protobuf/any.proto
@@ -0,0 +1,158 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+syntax = "proto3";
+
+package google.protobuf;
+
+option csharp_namespace = "Google.Protobuf.WellKnownTypes";
+option go_package = "google.golang.org/protobuf/types/known/anypb";
+option java_package = "com.google.protobuf";
+option java_outer_classname = "AnyProto";
+option java_multiple_files = true;
+option objc_class_prefix = "GPB";
+
+// `Any` contains an arbitrary serialized protocol buffer message along with a
+// URL that describes the type of the serialized message.
+//
+// Protobuf library provides support to pack/unpack Any values in the form
+// of utility functions or additional generated methods of the Any type.
+//
+// Example 1: Pack and unpack a message in C++.
+//
+// Foo foo = ...;
+// Any any;
+// any.PackFrom(foo);
+// ...
+// if (any.UnpackTo(&foo)) {
+// ...
+// }
+//
+// Example 2: Pack and unpack a message in Java.
+//
+// Foo foo = ...;
+// Any any = Any.pack(foo);
+// ...
+// if (any.is(Foo.class)) {
+// foo = any.unpack(Foo.class);
+// }
+//
+// Example 3: Pack and unpack a message in Python.
+//
+// foo = Foo(...)
+// any = Any()
+// any.Pack(foo)
+// ...
+// if any.Is(Foo.DESCRIPTOR):
+// any.Unpack(foo)
+// ...
+//
+// Example 4: Pack and unpack a message in Go
+//
+// foo := &pb.Foo{...}
+// any, err := anypb.New(foo)
+// if err != nil {
+// ...
+// }
+// ...
+// foo := &pb.Foo{}
+// if err := any.UnmarshalTo(foo); err != nil {
+// ...
+// }
+//
+// The pack methods provided by protobuf library will by default use
+// 'type.googleapis.com/full.type.name' as the type URL and the unpack
+// methods only use the fully qualified type name after the last '/'
+// in the type URL, for example "foo.bar.com/x/y.z" will yield type
+// name "y.z".
+//
+//
+// JSON
+// ====
+// The JSON representation of an `Any` value uses the regular
+// representation of the deserialized, embedded message, with an
+// additional field `@type` which contains the type URL. Example:
+//
+// package google.profile;
+// message Person {
+// string first_name = 1;
+// string last_name = 2;
+// }
+//
+// {
+// "@type": "type.googleapis.com/google.profile.Person",
+// "firstName": ,
+// "lastName":
+// }
+//
+// If the embedded message type is well-known and has a custom JSON
+// representation, that representation will be embedded adding a field
+// `value` which holds the custom JSON in addition to the `@type`
+// field. Example (for message [google.protobuf.Duration][]):
+//
+// {
+// "@type": "type.googleapis.com/google.protobuf.Duration",
+// "value": "1.212s"
+// }
+//
+message Any {
+ // A URL/resource name that uniquely identifies the type of the serialized
+ // protocol buffer message. This string must contain at least
+ // one "/" character. The last segment of the URL's path must represent
+ // the fully qualified name of the type (as in
+ // `path/google.protobuf.Duration`). The name should be in a canonical form
+ // (e.g., leading "." is not accepted).
+ //
+ // In practice, teams usually precompile into the binary all types that they
+ // expect it to use in the context of Any. However, for URLs which use the
+ // scheme `http`, `https`, or no scheme, one can optionally set up a type
+ // server that maps type URLs to message definitions as follows:
+ //
+ // * If no scheme is provided, `https` is assumed.
+ // * An HTTP GET on the URL must yield a [google.protobuf.Type][]
+ // value in binary format, or produce an error.
+ // * Applications are allowed to cache lookup results based on the
+ // URL, or have them precompiled into a binary to avoid any
+ // lookup. Therefore, binary compatibility needs to be preserved
+ // on changes to types. (Use versioned type names to manage
+ // breaking changes.)
+ //
+ // Note: this functionality is not currently available in the official
+ // protobuf release, and it is not used for type URLs beginning with
+ // type.googleapis.com.
+ //
+ // Schemes other than `http`, `https` (or the empty scheme) might be
+ // used with implementation specific semantics.
+ //
+ string type_url = 1;
+
+ // Must be a valid serialized protocol buffer of the above specified type.
+ bytes value = 2;
+}
diff --git a/java/kotlin-lite/target/classes/google/protobuf/api.proto b/java/kotlin-lite/target/classes/google/protobuf/api.proto
new file mode 100644
index 0000000000000..3d598fc8590e7
--- /dev/null
+++ b/java/kotlin-lite/target/classes/google/protobuf/api.proto
@@ -0,0 +1,208 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+syntax = "proto3";
+
+package google.protobuf;
+
+import "google/protobuf/source_context.proto";
+import "google/protobuf/type.proto";
+
+option csharp_namespace = "Google.Protobuf.WellKnownTypes";
+option java_package = "com.google.protobuf";
+option java_outer_classname = "ApiProto";
+option java_multiple_files = true;
+option objc_class_prefix = "GPB";
+option go_package = "google.golang.org/protobuf/types/known/apipb";
+
+// Api is a light-weight descriptor for an API Interface.
+//
+// Interfaces are also described as "protocol buffer services" in some contexts,
+// such as by the "service" keyword in a .proto file, but they are different
+// from API Services, which represent a concrete implementation of an interface
+// as opposed to simply a description of methods and bindings. They are also
+// sometimes simply referred to as "APIs" in other contexts, such as the name of
+// this message itself. See https://cloud.google.com/apis/design/glossary for
+// detailed terminology.
+message Api {
+ // The fully qualified name of this interface, including package name
+ // followed by the interface's simple name.
+ string name = 1;
+
+ // The methods of this interface, in unspecified order.
+ repeated Method methods = 2;
+
+ // Any metadata attached to the interface.
+ repeated Option options = 3;
+
+ // A version string for this interface. If specified, must have the form
+ // `major-version.minor-version`, as in `1.10`. If the minor version is
+ // omitted, it defaults to zero. If the entire version field is empty, the
+ // major version is derived from the package name, as outlined below. If the
+ // field is not empty, the version in the package name will be verified to be
+ // consistent with what is provided here.
+ //
+ // The versioning schema uses [semantic
+ // versioning](http://semver.org) where the major version number
+ // indicates a breaking change and the minor version an additive,
+ // non-breaking change. Both version numbers are signals to users
+ // what to expect from different versions, and should be carefully
+ // chosen based on the product plan.
+ //
+ // The major version is also reflected in the package name of the
+ // interface, which must end in `v`, as in
+ // `google.feature.v1`. For major versions 0 and 1, the suffix can
+ // be omitted. Zero major versions must only be used for
+ // experimental, non-GA interfaces.
+ //
+ //
+ string version = 4;
+
+ // Source context for the protocol buffer service represented by this
+ // message.
+ SourceContext source_context = 5;
+
+ // Included interfaces. See [Mixin][].
+ repeated Mixin mixins = 6;
+
+ // The source syntax of the service.
+ Syntax syntax = 7;
+}
+
+// Method represents a method of an API interface.
+message Method {
+ // The simple name of this method.
+ string name = 1;
+
+ // A URL of the input message type.
+ string request_type_url = 2;
+
+ // If true, the request is streamed.
+ bool request_streaming = 3;
+
+ // The URL of the output message type.
+ string response_type_url = 4;
+
+ // If true, the response is streamed.
+ bool response_streaming = 5;
+
+ // Any metadata attached to the method.
+ repeated Option options = 6;
+
+ // The source syntax of this method.
+ Syntax syntax = 7;
+}
+
+// Declares an API Interface to be included in this interface. The including
+// interface must redeclare all the methods from the included interface, but
+// documentation and options are inherited as follows:
+//
+// - If after comment and whitespace stripping, the documentation
+// string of the redeclared method is empty, it will be inherited
+// from the original method.
+//
+// - Each annotation belonging to the service config (http,
+// visibility) which is not set in the redeclared method will be
+// inherited.
+//
+// - If an http annotation is inherited, the path pattern will be
+// modified as follows. Any version prefix will be replaced by the
+// version of the including interface plus the [root][] path if
+// specified.
+//
+// Example of a simple mixin:
+//
+// package google.acl.v1;
+// service AccessControl {
+// // Get the underlying ACL object.
+// rpc GetAcl(GetAclRequest) returns (Acl) {
+// option (google.api.http).get = "/v1/{resource=**}:getAcl";
+// }
+// }
+//
+// package google.storage.v2;
+// service Storage {
+// rpc GetAcl(GetAclRequest) returns (Acl);
+//
+// // Get a data record.
+// rpc GetData(GetDataRequest) returns (Data) {
+// option (google.api.http).get = "/v2/{resource=**}";
+// }
+// }
+//
+// Example of a mixin configuration:
+//
+// apis:
+// - name: google.storage.v2.Storage
+// mixins:
+// - name: google.acl.v1.AccessControl
+//
+// The mixin construct implies that all methods in `AccessControl` are
+// also declared with same name and request/response types in
+// `Storage`. A documentation generator or annotation processor will
+// see the effective `Storage.GetAcl` method after inheriting
+// documentation and annotations as follows:
+//
+// service Storage {
+// // Get the underlying ACL object.
+// rpc GetAcl(GetAclRequest) returns (Acl) {
+// option (google.api.http).get = "/v2/{resource=**}:getAcl";
+// }
+// ...
+// }
+//
+// Note how the version in the path pattern changed from `v1` to `v2`.
+//
+// If the `root` field in the mixin is specified, it should be a
+// relative path under which inherited HTTP paths are placed. Example:
+//
+// apis:
+// - name: google.storage.v2.Storage
+// mixins:
+// - name: google.acl.v1.AccessControl
+// root: acls
+//
+// This implies the following inherited HTTP annotation:
+//
+// service Storage {
+// // Get the underlying ACL object.
+// rpc GetAcl(GetAclRequest) returns (Acl) {
+// option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";
+// }
+// ...
+// }
+message Mixin {
+ // The fully qualified name of the interface which is included.
+ string name = 1;
+
+ // If non-empty specifies a path under which inherited HTTP paths
+ // are rooted.
+ string root = 2;
+}
diff --git a/java/kotlin-lite/target/classes/google/protobuf/duration.proto b/java/kotlin-lite/target/classes/google/protobuf/duration.proto
new file mode 100644
index 0000000000000..81c3e369fd130
--- /dev/null
+++ b/java/kotlin-lite/target/classes/google/protobuf/duration.proto
@@ -0,0 +1,116 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+syntax = "proto3";
+
+package google.protobuf;
+
+option csharp_namespace = "Google.Protobuf.WellKnownTypes";
+option cc_enable_arenas = true;
+option go_package = "google.golang.org/protobuf/types/known/durationpb";
+option java_package = "com.google.protobuf";
+option java_outer_classname = "DurationProto";
+option java_multiple_files = true;
+option objc_class_prefix = "GPB";
+
+// A Duration represents a signed, fixed-length span of time represented
+// as a count of seconds and fractions of seconds at nanosecond
+// resolution. It is independent of any calendar and concepts like "day"
+// or "month". It is related to Timestamp in that the difference between
+// two Timestamp values is a Duration and it can be added or subtracted
+// from a Timestamp. Range is approximately +-10,000 years.
+//
+// # Examples
+//
+// Example 1: Compute Duration from two Timestamps in pseudo code.
+//
+// Timestamp start = ...;
+// Timestamp end = ...;
+// Duration duration = ...;
+//
+// duration.seconds = end.seconds - start.seconds;
+// duration.nanos = end.nanos - start.nanos;
+//
+// if (duration.seconds < 0 && duration.nanos > 0) {
+// duration.seconds += 1;
+// duration.nanos -= 1000000000;
+// } else if (duration.seconds > 0 && duration.nanos < 0) {
+// duration.seconds -= 1;
+// duration.nanos += 1000000000;
+// }
+//
+// Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
+//
+// Timestamp start = ...;
+// Duration duration = ...;
+// Timestamp end = ...;
+//
+// end.seconds = start.seconds + duration.seconds;
+// end.nanos = start.nanos + duration.nanos;
+//
+// if (end.nanos < 0) {
+// end.seconds -= 1;
+// end.nanos += 1000000000;
+// } else if (end.nanos >= 1000000000) {
+// end.seconds += 1;
+// end.nanos -= 1000000000;
+// }
+//
+// Example 3: Compute Duration from datetime.timedelta in Python.
+//
+// td = datetime.timedelta(days=3, minutes=10)
+// duration = Duration()
+// duration.FromTimedelta(td)
+//
+// # JSON Mapping
+//
+// In JSON format, the Duration type is encoded as a string rather than an
+// object, where the string ends in the suffix "s" (indicating seconds) and
+// is preceded by the number of seconds, with nanoseconds expressed as
+// fractional seconds. For example, 3 seconds with 0 nanoseconds should be
+// encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should
+// be expressed in JSON format as "3.000000001s", and 3 seconds and 1
+// microsecond should be expressed in JSON format as "3.000001s".
+//
+//
+message Duration {
+ // Signed seconds of the span of time. Must be from -315,576,000,000
+ // to +315,576,000,000 inclusive. Note: these bounds are computed from:
+ // 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
+ int64 seconds = 1;
+
+ // Signed fractions of a second at nanosecond resolution of the span
+ // of time. Durations less than one second are represented with a 0
+ // `seconds` field and a positive or negative `nanos` field. For durations
+ // of one second or more, a non-zero value for the `nanos` field must be
+ // of the same sign as the `seconds` field. Must be from -999,999,999
+ // to +999,999,999 inclusive.
+ int32 nanos = 2;
+}
diff --git a/java/kotlin-lite/target/classes/google/protobuf/empty.proto b/java/kotlin-lite/target/classes/google/protobuf/empty.proto
new file mode 100644
index 0000000000000..5f992de94ab46
--- /dev/null
+++ b/java/kotlin-lite/target/classes/google/protobuf/empty.proto
@@ -0,0 +1,52 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+syntax = "proto3";
+
+package google.protobuf;
+
+option csharp_namespace = "Google.Protobuf.WellKnownTypes";
+option go_package = "google.golang.org/protobuf/types/known/emptypb";
+option java_package = "com.google.protobuf";
+option java_outer_classname = "EmptyProto";
+option java_multiple_files = true;
+option objc_class_prefix = "GPB";
+option cc_enable_arenas = true;
+
+// A generic empty message that you can re-use to avoid defining duplicated
+// empty messages in your APIs. A typical example is to use it as the request
+// or the response type of an API method. For instance:
+//
+// service Foo {
+// rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+// }
+//
+// The JSON representation for `Empty` is empty JSON object `{}`.
+message Empty {}
diff --git a/java/kotlin-lite/target/classes/google/protobuf/field_mask.proto b/java/kotlin-lite/target/classes/google/protobuf/field_mask.proto
new file mode 100644
index 0000000000000..6b5104f188aa7
--- /dev/null
+++ b/java/kotlin-lite/target/classes/google/protobuf/field_mask.proto
@@ -0,0 +1,245 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+syntax = "proto3";
+
+package google.protobuf;
+
+option csharp_namespace = "Google.Protobuf.WellKnownTypes";
+option java_package = "com.google.protobuf";
+option java_outer_classname = "FieldMaskProto";
+option java_multiple_files = true;
+option objc_class_prefix = "GPB";
+option go_package = "google.golang.org/protobuf/types/known/fieldmaskpb";
+option cc_enable_arenas = true;
+
+// `FieldMask` represents a set of symbolic field paths, for example:
+//
+// paths: "f.a"
+// paths: "f.b.d"
+//
+// Here `f` represents a field in some root message, `a` and `b`
+// fields in the message found in `f`, and `d` a field found in the
+// message in `f.b`.
+//
+// Field masks are used to specify a subset of fields that should be
+// returned by a get operation or modified by an update operation.
+// Field masks also have a custom JSON encoding (see below).
+//
+// # Field Masks in Projections
+//
+// When used in the context of a projection, a response message or
+// sub-message is filtered by the API to only contain those fields as
+// specified in the mask. For example, if the mask in the previous
+// example is applied to a response message as follows:
+//
+// f {
+// a : 22
+// b {
+// d : 1
+// x : 2
+// }
+// y : 13
+// }
+// z: 8
+//
+// The result will not contain specific values for fields x,y and z
+// (their value will be set to the default, and omitted in proto text
+// output):
+//
+//
+// f {
+// a : 22
+// b {
+// d : 1
+// }
+// }
+//
+// A repeated field is not allowed except at the last position of a
+// paths string.
+//
+// If a FieldMask object is not present in a get operation, the
+// operation applies to all fields (as if a FieldMask of all fields
+// had been specified).
+//
+// Note that a field mask does not necessarily apply to the
+// top-level response message. In case of a REST get operation, the
+// field mask applies directly to the response, but in case of a REST
+// list operation, the mask instead applies to each individual message
+// in the returned resource list. In case of a REST custom method,
+// other definitions may be used. Where the mask applies will be
+// clearly documented together with its declaration in the API. In
+// any case, the effect on the returned resource/resources is required
+// behavior for APIs.
+//
+// # Field Masks in Update Operations
+//
+// A field mask in update operations specifies which fields of the
+// targeted resource are going to be updated. The API is required
+// to only change the values of the fields as specified in the mask
+// and leave the others untouched. If a resource is passed in to
+// describe the updated values, the API ignores the values of all
+// fields not covered by the mask.
+//
+// If a repeated field is specified for an update operation, new values will
+// be appended to the existing repeated field in the target resource. Note that
+// a repeated field is only allowed in the last position of a `paths` string.
+//
+// If a sub-message is specified in the last position of the field mask for an
+// update operation, then new value will be merged into the existing sub-message
+// in the target resource.
+//
+// For example, given the target message:
+//
+// f {
+// b {
+// d: 1
+// x: 2
+// }
+// c: [1]
+// }
+//
+// And an update message:
+//
+// f {
+// b {
+// d: 10
+// }
+// c: [2]
+// }
+//
+// then if the field mask is:
+//
+// paths: ["f.b", "f.c"]
+//
+// then the result will be:
+//
+// f {
+// b {
+// d: 10
+// x: 2
+// }
+// c: [1, 2]
+// }
+//
+// An implementation may provide options to override this default behavior for
+// repeated and message fields.
+//
+// In order to reset a field's value to the default, the field must
+// be in the mask and set to the default value in the provided resource.
+// Hence, in order to reset all fields of a resource, provide a default
+// instance of the resource and set all fields in the mask, or do
+// not provide a mask as described below.
+//
+// If a field mask is not present on update, the operation applies to
+// all fields (as if a field mask of all fields has been specified).
+// Note that in the presence of schema evolution, this may mean that
+// fields the client does not know and has therefore not filled into
+// the request will be reset to their default. If this is unwanted
+// behavior, a specific service may require a client to always specify
+// a field mask, producing an error if not.
+//
+// As with get operations, the location of the resource which
+// describes the updated values in the request message depends on the
+// operation kind. In any case, the effect of the field mask is
+// required to be honored by the API.
+//
+// ## Considerations for HTTP REST
+//
+// The HTTP kind of an update operation which uses a field mask must
+// be set to PATCH instead of PUT in order to satisfy HTTP semantics
+// (PUT must only be used for full updates).
+//
+// # JSON Encoding of Field Masks
+//
+// In JSON, a field mask is encoded as a single string where paths are
+// separated by a comma. Fields name in each path are converted
+// to/from lower-camel naming conventions.
+//
+// As an example, consider the following message declarations:
+//
+// message Profile {
+// User user = 1;
+// Photo photo = 2;
+// }
+// message User {
+// string display_name = 1;
+// string address = 2;
+// }
+//
+// In proto a field mask for `Profile` may look as such:
+//
+// mask {
+// paths: "user.display_name"
+// paths: "photo"
+// }
+//
+// In JSON, the same mask is represented as below:
+//
+// {
+// mask: "user.displayName,photo"
+// }
+//
+// # Field Masks and Oneof Fields
+//
+// Field masks treat fields in oneofs just as regular fields. Consider the
+// following message:
+//
+// message SampleMessage {
+// oneof test_oneof {
+// string name = 4;
+// SubMessage sub_message = 9;
+// }
+// }
+//
+// The field mask can be:
+//
+// mask {
+// paths: "name"
+// }
+//
+// Or:
+//
+// mask {
+// paths: "sub_message"
+// }
+//
+// Note that oneof type names ("test_oneof" in this case) cannot be used in
+// paths.
+//
+// ## Field Mask Verification
+//
+// The implementation of any API method which has a FieldMask type field in the
+// request should verify the included field paths, and return an
+// `INVALID_ARGUMENT` error if any path is unmappable.
+message FieldMask {
+ // The set of field mask paths.
+ repeated string paths = 1;
+}
diff --git a/java/kotlin-lite/target/classes/google/protobuf/source_context.proto b/java/kotlin-lite/target/classes/google/protobuf/source_context.proto
new file mode 100644
index 0000000000000..06bfc43a78ec8
--- /dev/null
+++ b/java/kotlin-lite/target/classes/google/protobuf/source_context.proto
@@ -0,0 +1,48 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+syntax = "proto3";
+
+package google.protobuf;
+
+option csharp_namespace = "Google.Protobuf.WellKnownTypes";
+option java_package = "com.google.protobuf";
+option java_outer_classname = "SourceContextProto";
+option java_multiple_files = true;
+option objc_class_prefix = "GPB";
+option go_package = "google.golang.org/protobuf/types/known/sourcecontextpb";
+
+// `SourceContext` represents information about the source of a
+// protobuf element, like the file in which it is defined.
+message SourceContext {
+ // The path-qualified name of the .proto file that contained the associated
+ // protobuf element. For example: `"google/protobuf/source_context.proto"`.
+ string file_name = 1;
+}
diff --git a/java/kotlin-lite/target/classes/google/protobuf/struct.proto b/java/kotlin-lite/target/classes/google/protobuf/struct.proto
new file mode 100644
index 0000000000000..545215c25276c
--- /dev/null
+++ b/java/kotlin-lite/target/classes/google/protobuf/struct.proto
@@ -0,0 +1,95 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+syntax = "proto3";
+
+package google.protobuf;
+
+option csharp_namespace = "Google.Protobuf.WellKnownTypes";
+option cc_enable_arenas = true;
+option go_package = "google.golang.org/protobuf/types/known/structpb";
+option java_package = "com.google.protobuf";
+option java_outer_classname = "StructProto";
+option java_multiple_files = true;
+option objc_class_prefix = "GPB";
+
+// `Struct` represents a structured data value, consisting of fields
+// which map to dynamically typed values. In some languages, `Struct`
+// might be supported by a native representation. For example, in
+// scripting languages like JS a struct is represented as an
+// object. The details of that representation are described together
+// with the proto support for the language.
+//
+// The JSON representation for `Struct` is JSON object.
+message Struct {
+ // Unordered map of dynamically typed values.
+ map fields = 1;
+}
+
+// `Value` represents a dynamically typed value which can be either
+// null, a number, a string, a boolean, a recursive struct value, or a
+// list of values. A producer of value is expected to set one of that
+// variants, absence of any variant indicates an error.
+//
+// The JSON representation for `Value` is JSON value.
+message Value {
+ // The kind of value.
+ oneof kind {
+ // Represents a null value.
+ NullValue null_value = 1;
+ // Represents a double value.
+ double number_value = 2;
+ // Represents a string value.
+ string string_value = 3;
+ // Represents a boolean value.
+ bool bool_value = 4;
+ // Represents a structured value.
+ Struct struct_value = 5;
+ // Represents a repeated `Value`.
+ ListValue list_value = 6;
+ }
+}
+
+// `NullValue` is a singleton enumeration to represent the null value for the
+// `Value` type union.
+//
+// The JSON representation for `NullValue` is JSON `null`.
+enum NullValue {
+ // Null value.
+ NULL_VALUE = 0;
+}
+
+// `ListValue` is a wrapper around a repeated field of values.
+//
+// The JSON representation for `ListValue` is JSON array.
+message ListValue {
+ // Repeated field of dynamically typed values.
+ repeated Value values = 1;
+}
diff --git a/java/kotlin-lite/target/classes/google/protobuf/timestamp.proto b/java/kotlin-lite/target/classes/google/protobuf/timestamp.proto
new file mode 100644
index 0000000000000..3b2df6d91168e
--- /dev/null
+++ b/java/kotlin-lite/target/classes/google/protobuf/timestamp.proto
@@ -0,0 +1,147 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+syntax = "proto3";
+
+package google.protobuf;
+
+option csharp_namespace = "Google.Protobuf.WellKnownTypes";
+option cc_enable_arenas = true;
+option go_package = "google.golang.org/protobuf/types/known/timestamppb";
+option java_package = "com.google.protobuf";
+option java_outer_classname = "TimestampProto";
+option java_multiple_files = true;
+option objc_class_prefix = "GPB";
+
+// A Timestamp represents a point in time independent of any time zone or local
+// calendar, encoded as a count of seconds and fractions of seconds at
+// nanosecond resolution. The count is relative to an epoch at UTC midnight on
+// January 1, 1970, in the proleptic Gregorian calendar which extends the
+// Gregorian calendar backwards to year one.
+//
+// All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
+// second table is needed for interpretation, using a [24-hour linear
+// smear](https://developers.google.com/time/smear).
+//
+// The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
+// restricting to that range, we ensure that we can convert to and from [RFC
+// 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
+//
+// # Examples
+//
+// Example 1: Compute Timestamp from POSIX `time()`.
+//
+// Timestamp timestamp;
+// timestamp.set_seconds(time(NULL));
+// timestamp.set_nanos(0);
+//
+// Example 2: Compute Timestamp from POSIX `gettimeofday()`.
+//
+// struct timeval tv;
+// gettimeofday(&tv, NULL);
+//
+// Timestamp timestamp;
+// timestamp.set_seconds(tv.tv_sec);
+// timestamp.set_nanos(tv.tv_usec * 1000);
+//
+// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
+//
+// FILETIME ft;
+// GetSystemTimeAsFileTime(&ft);
+// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
+//
+// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
+// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
+// Timestamp timestamp;
+// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
+// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
+//
+// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
+//
+// long millis = System.currentTimeMillis();
+//
+// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
+// .setNanos((int) ((millis % 1000) * 1000000)).build();
+//
+//
+// Example 5: Compute Timestamp from Java `Instant.now()`.
+//
+// Instant now = Instant.now();
+//
+// Timestamp timestamp =
+// Timestamp.newBuilder().setSeconds(now.getEpochSecond())
+// .setNanos(now.getNano()).build();
+//
+//
+// Example 6: Compute Timestamp from current time in Python.
+//
+// timestamp = Timestamp()
+// timestamp.GetCurrentTime()
+//
+// # JSON Mapping
+//
+// In JSON format, the Timestamp type is encoded as a string in the
+// [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
+// format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
+// where {year} is always expressed using four digits while {month}, {day},
+// {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
+// seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
+// are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
+// is required. A proto3 JSON serializer should always use UTC (as indicated by
+// "Z") when printing the Timestamp type and a proto3 JSON parser should be
+// able to accept both UTC and other timezones (as indicated by an offset).
+//
+// For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
+// 01:30 UTC on January 15, 2017.
+//
+// In JavaScript, one can convert a Date object to this format using the
+// standard
+// [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
+// method. In Python, a standard `datetime.datetime` object can be converted
+// to this format using
+// [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
+// the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
+// the Joda Time's [`ISODateTimeFormat.dateTime()`](
+// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D
+// ) to obtain a formatter capable of generating timestamps in this format.
+//
+//
+message Timestamp {
+ // Represents seconds of UTC time since Unix epoch
+ // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
+ // 9999-12-31T23:59:59Z inclusive.
+ int64 seconds = 1;
+
+ // Non-negative fractions of a second at nanosecond resolution. Negative
+ // second values with fractions must still have non-negative nanos values
+ // that count forward in time. Must be from 0 to 999,999,999
+ // inclusive.
+ int32 nanos = 2;
+}
diff --git a/java/kotlin-lite/target/classes/google/protobuf/type.proto b/java/kotlin-lite/target/classes/google/protobuf/type.proto
new file mode 100644
index 0000000000000..d3f6a68b83981
--- /dev/null
+++ b/java/kotlin-lite/target/classes/google/protobuf/type.proto
@@ -0,0 +1,187 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+syntax = "proto3";
+
+package google.protobuf;
+
+import "google/protobuf/any.proto";
+import "google/protobuf/source_context.proto";
+
+option csharp_namespace = "Google.Protobuf.WellKnownTypes";
+option cc_enable_arenas = true;
+option java_package = "com.google.protobuf";
+option java_outer_classname = "TypeProto";
+option java_multiple_files = true;
+option objc_class_prefix = "GPB";
+option go_package = "google.golang.org/protobuf/types/known/typepb";
+
+// A protocol buffer message type.
+message Type {
+ // The fully qualified message name.
+ string name = 1;
+ // The list of fields.
+ repeated Field fields = 2;
+ // The list of types appearing in `oneof` definitions in this type.
+ repeated string oneofs = 3;
+ // The protocol buffer options.
+ repeated Option options = 4;
+ // The source context.
+ SourceContext source_context = 5;
+ // The source syntax.
+ Syntax syntax = 6;
+}
+
+// A single field of a message type.
+message Field {
+ // Basic field types.
+ enum Kind {
+ // Field type unknown.
+ TYPE_UNKNOWN = 0;
+ // Field type double.
+ TYPE_DOUBLE = 1;
+ // Field type float.
+ TYPE_FLOAT = 2;
+ // Field type int64.
+ TYPE_INT64 = 3;
+ // Field type uint64.
+ TYPE_UINT64 = 4;
+ // Field type int32.
+ TYPE_INT32 = 5;
+ // Field type fixed64.
+ TYPE_FIXED64 = 6;
+ // Field type fixed32.
+ TYPE_FIXED32 = 7;
+ // Field type bool.
+ TYPE_BOOL = 8;
+ // Field type string.
+ TYPE_STRING = 9;
+ // Field type group. Proto2 syntax only, and deprecated.
+ TYPE_GROUP = 10;
+ // Field type message.
+ TYPE_MESSAGE = 11;
+ // Field type bytes.
+ TYPE_BYTES = 12;
+ // Field type uint32.
+ TYPE_UINT32 = 13;
+ // Field type enum.
+ TYPE_ENUM = 14;
+ // Field type sfixed32.
+ TYPE_SFIXED32 = 15;
+ // Field type sfixed64.
+ TYPE_SFIXED64 = 16;
+ // Field type sint32.
+ TYPE_SINT32 = 17;
+ // Field type sint64.
+ TYPE_SINT64 = 18;
+ }
+
+ // Whether a field is optional, required, or repeated.
+ enum Cardinality {
+ // For fields with unknown cardinality.
+ CARDINALITY_UNKNOWN = 0;
+ // For optional fields.
+ CARDINALITY_OPTIONAL = 1;
+ // For required fields. Proto2 syntax only.
+ CARDINALITY_REQUIRED = 2;
+ // For repeated fields.
+ CARDINALITY_REPEATED = 3;
+ }
+
+ // The field type.
+ Kind kind = 1;
+ // The field cardinality.
+ Cardinality cardinality = 2;
+ // The field number.
+ int32 number = 3;
+ // The field name.
+ string name = 4;
+ // The field type URL, without the scheme, for message or enumeration
+ // types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`.
+ string type_url = 6;
+ // The index of the field type in `Type.oneofs`, for message or enumeration
+ // types. The first type has index 1; zero means the type is not in the list.
+ int32 oneof_index = 7;
+ // Whether to use alternative packed wire representation.
+ bool packed = 8;
+ // The protocol buffer options.
+ repeated Option options = 9;
+ // The field JSON name.
+ string json_name = 10;
+ // The string value of the default value of this field. Proto2 syntax only.
+ string default_value = 11;
+}
+
+// Enum type definition.
+message Enum {
+ // Enum type name.
+ string name = 1;
+ // Enum value definitions.
+ repeated EnumValue enumvalue = 2;
+ // Protocol buffer options.
+ repeated Option options = 3;
+ // The source context.
+ SourceContext source_context = 4;
+ // The source syntax.
+ Syntax syntax = 5;
+}
+
+// Enum value definition.
+message EnumValue {
+ // Enum value name.
+ string name = 1;
+ // Enum value number.
+ int32 number = 2;
+ // Protocol buffer options.
+ repeated Option options = 3;
+}
+
+// A protocol buffer option, which can be attached to a message, field,
+// enumeration, etc.
+message Option {
+ // The option's name. For protobuf built-in options (options defined in
+ // descriptor.proto), this is the short name. For example, `"map_entry"`.
+ // For custom options, it should be the fully-qualified name. For example,
+ // `"google.api.http"`.
+ string name = 1;
+ // The option's value packed in an Any message. If the value is a primitive,
+ // the corresponding wrapper type defined in google/protobuf/wrappers.proto
+ // should be used. If the value is an enum, it should be stored as an int32
+ // value using the google.protobuf.Int32Value type.
+ Any value = 2;
+}
+
+// The syntax in which a protocol buffer element is defined.
+enum Syntax {
+ // Syntax `proto2`.
+ SYNTAX_PROTO2 = 0;
+ // Syntax `proto3`.
+ SYNTAX_PROTO3 = 1;
+}
diff --git a/java/kotlin-lite/target/classes/google/protobuf/wrappers.proto b/java/kotlin-lite/target/classes/google/protobuf/wrappers.proto
new file mode 100644
index 0000000000000..d49dd53c8d8f3
--- /dev/null
+++ b/java/kotlin-lite/target/classes/google/protobuf/wrappers.proto
@@ -0,0 +1,123 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Wrappers for primitive (non-message) types. These types are useful
+// for embedding primitives in the `google.protobuf.Any` type and for places
+// where we need to distinguish between the absence of a primitive
+// typed field and its default value.
+//
+// These wrappers have no meaningful use within repeated fields as they lack
+// the ability to detect presence on individual elements.
+// These wrappers have no meaningful use within a map or a oneof since
+// individual entries of a map or fields of a oneof can already detect presence.
+
+syntax = "proto3";
+
+package google.protobuf;
+
+option csharp_namespace = "Google.Protobuf.WellKnownTypes";
+option cc_enable_arenas = true;
+option go_package = "google.golang.org/protobuf/types/known/wrapperspb";
+option java_package = "com.google.protobuf";
+option java_outer_classname = "WrappersProto";
+option java_multiple_files = true;
+option objc_class_prefix = "GPB";
+
+// Wrapper message for `double`.
+//
+// The JSON representation for `DoubleValue` is JSON number.
+message DoubleValue {
+ // The double value.
+ double value = 1;
+}
+
+// Wrapper message for `float`.
+//
+// The JSON representation for `FloatValue` is JSON number.
+message FloatValue {
+ // The float value.
+ float value = 1;
+}
+
+// Wrapper message for `int64`.
+//
+// The JSON representation for `Int64Value` is JSON string.
+message Int64Value {
+ // The int64 value.
+ int64 value = 1;
+}
+
+// Wrapper message for `uint64`.
+//
+// The JSON representation for `UInt64Value` is JSON string.
+message UInt64Value {
+ // The uint64 value.
+ uint64 value = 1;
+}
+
+// Wrapper message for `int32`.
+//
+// The JSON representation for `Int32Value` is JSON number.
+message Int32Value {
+ // The int32 value.
+ int32 value = 1;
+}
+
+// Wrapper message for `uint32`.
+//
+// The JSON representation for `UInt32Value` is JSON number.
+message UInt32Value {
+ // The uint32 value.
+ uint32 value = 1;
+}
+
+// Wrapper message for `bool`.
+//
+// The JSON representation for `BoolValue` is JSON `true` and `false`.
+message BoolValue {
+ // The bool value.
+ bool value = 1;
+}
+
+// Wrapper message for `string`.
+//
+// The JSON representation for `StringValue` is JSON string.
+message StringValue {
+ // The string value.
+ string value = 1;
+}
+
+// Wrapper message for `bytes`.
+//
+// The JSON representation for `BytesValue` is JSON string.
+message BytesValue {
+ // The bytes value.
+ bytes value = 1;
+}
diff --git a/java/kotlin-lite/target/generated-sources/com/google/protobuf/AbstractMessageLite.java b/java/kotlin-lite/target/generated-sources/com/google/protobuf/AbstractMessageLite.java
new file mode 100644
index 0000000000000..4e3cf427184a1
--- /dev/null
+++ b/java/kotlin-lite/target/generated-sources/com/google/protobuf/AbstractMessageLite.java
@@ -0,0 +1,439 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package com.google.protobuf;
+
+import static com.google.protobuf.Internal.checkNotNull;
+
+import java.io.FilterInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * A partial implementation of the {@link MessageLite} interface which implements as many methods of
+ * that interface as possible in terms of other methods.
+ *
+ * @author kenton@google.com Kenton Varda
+ */
+public abstract class AbstractMessageLite<
+ MessageType extends AbstractMessageLite,
+ BuilderType extends AbstractMessageLite.Builder>
+ implements MessageLite {
+ protected int memoizedHashCode = 0;
+
+ @Override
+ public ByteString toByteString() {
+ try {
+ final ByteString.CodedBuilder out = ByteString.newCodedBuilder(getSerializedSize());
+ writeTo(out.getCodedOutput());
+ return out.build();
+ } catch (IOException e) {
+ throw new RuntimeException(getSerializingExceptionMessage("ByteString"), e);
+ }
+ }
+
+ @Override
+ public byte[] toByteArray() {
+ try {
+ final byte[] result = new byte[getSerializedSize()];
+ final CodedOutputStream output = CodedOutputStream.newInstance(result);
+ writeTo(output);
+ output.checkNoSpaceLeft();
+ return result;
+ } catch (IOException e) {
+ throw new RuntimeException(getSerializingExceptionMessage("byte array"), e);
+ }
+ }
+
+ @Override
+ public void writeTo(final OutputStream output) throws IOException {
+ final int bufferSize = CodedOutputStream.computePreferredBufferSize(getSerializedSize());
+ final CodedOutputStream codedOutput = CodedOutputStream.newInstance(output, bufferSize);
+ writeTo(codedOutput);
+ codedOutput.flush();
+ }
+
+ @Override
+ public void writeDelimitedTo(final OutputStream output) throws IOException {
+ final int serialized = getSerializedSize();
+ final int bufferSize =
+ CodedOutputStream.computePreferredBufferSize(
+ CodedOutputStream.computeRawVarint32Size(serialized) + serialized);
+ final CodedOutputStream codedOutput = CodedOutputStream.newInstance(output, bufferSize);
+ codedOutput.writeRawVarint32(serialized);
+ writeTo(codedOutput);
+ codedOutput.flush();
+ }
+
+ // We'd like these to be abstract but some folks are extending this class directly. They shouldn't
+ // be doing that and they should feel bad.
+ int getMemoizedSerializedSize() {
+ throw new UnsupportedOperationException();
+ }
+
+ void setMemoizedSerializedSize(int size) {
+ throw new UnsupportedOperationException();
+ }
+
+
+ int getSerializedSize(Schema schema) {
+ int memoizedSerializedSize = getMemoizedSerializedSize();
+ if (memoizedSerializedSize == -1) {
+ memoizedSerializedSize = schema.getSerializedSize(this);
+ setMemoizedSerializedSize(memoizedSerializedSize);
+ }
+ return memoizedSerializedSize;
+ }
+
+ /** Package private helper method for AbstractParser to create UninitializedMessageException. */
+ UninitializedMessageException newUninitializedMessageException() {
+ return new UninitializedMessageException(this);
+ }
+
+ private String getSerializingExceptionMessage(String target) {
+ return "Serializing "
+ + getClass().getName()
+ + " to a "
+ + target
+ + " threw an IOException (should never happen).";
+ }
+
+ protected static void checkByteStringIsUtf8(ByteString byteString)
+ throws IllegalArgumentException {
+ if (!byteString.isValidUtf8()) {
+ throw new IllegalArgumentException("Byte string is not UTF-8.");
+ }
+ }
+
+ // For binary compatibility
+ @Deprecated
+ protected static void addAll(final Iterable values, final Collection super T> list) {
+ Builder.addAll(values, (List) list);
+ }
+
+ protected static void addAll(final Iterable values, final List super T> list) {
+ Builder.addAll(values, list);
+ }
+
+ /** Interface for an enum which signifies which field in a {@code oneof} was specified. */
+ protected interface InternalOneOfEnum {
+ /**
+ * Retrieves the field number of the field which was set in this {@code oneof}, or {@code 0} if
+ * none were.
+ */
+ int getNumber();
+ }
+
+ /**
+ * A partial implementation of the {@link Message.Builder} interface which implements as many
+ * methods of that interface as possible in terms of other methods.
+ */
+ @SuppressWarnings("unchecked")
+ public abstract static class Builder<
+ MessageType extends AbstractMessageLite,
+ BuilderType extends Builder>
+ implements MessageLite.Builder {
+ // The compiler produces an error if this is not declared explicitly.
+ @Override
+ public abstract BuilderType clone();
+
+ @Override
+ public BuilderType mergeFrom(final CodedInputStream input) throws IOException {
+ return mergeFrom(input, ExtensionRegistryLite.getEmptyRegistry());
+ }
+
+ // Re-defined here for return type covariance.
+ @Override
+ public abstract BuilderType mergeFrom(
+ final CodedInputStream input, final ExtensionRegistryLite extensionRegistry)
+ throws IOException;
+
+ @Override
+ 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(getReadingExceptionMessage("ByteString"), e);
+ }
+ }
+
+ @Override
+ public BuilderType mergeFrom(
+ final ByteString data, final ExtensionRegistryLite extensionRegistry)
+ throws InvalidProtocolBufferException {
+ try {
+ final CodedInputStream input = data.newCodedInput();
+ mergeFrom(input, extensionRegistry);
+ input.checkLastTagWas(0);
+ return (BuilderType) this;
+ } catch (InvalidProtocolBufferException e) {
+ throw e;
+ } catch (IOException e) {
+ throw new RuntimeException(getReadingExceptionMessage("ByteString"), e);
+ }
+ }
+
+ @Override
+ public BuilderType mergeFrom(final byte[] data) throws InvalidProtocolBufferException {
+ return mergeFrom(data, 0, data.length);
+ }
+
+ @Override
+ 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(getReadingExceptionMessage("byte array"), e);
+ }
+ }
+
+ @Override
+ public BuilderType mergeFrom(final byte[] data, final ExtensionRegistryLite extensionRegistry)
+ throws InvalidProtocolBufferException {
+ return mergeFrom(data, 0, data.length, extensionRegistry);
+ }
+
+ @Override
+ public BuilderType mergeFrom(
+ final byte[] data,
+ final int off,
+ final int len,
+ final ExtensionRegistryLite extensionRegistry)
+ throws InvalidProtocolBufferException {
+ try {
+ final CodedInputStream input = CodedInputStream.newInstance(data, off, len);
+ mergeFrom(input, extensionRegistry);
+ input.checkLastTagWas(0);
+ return (BuilderType) this;
+ } catch (InvalidProtocolBufferException e) {
+ throw e;
+ } catch (IOException e) {
+ throw new RuntimeException(getReadingExceptionMessage("byte array"), e);
+ }
+ }
+
+ @Override
+ public BuilderType mergeFrom(final InputStream input) throws IOException {
+ final CodedInputStream codedInput = CodedInputStream.newInstance(input);
+ mergeFrom(codedInput);
+ codedInput.checkLastTagWas(0);
+ return (BuilderType) this;
+ }
+
+ @Override
+ 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;
+ }
+
+ /**
+ * An InputStream implementations which reads from some other InputStream but is limited to a
+ * particular number of bytes. Used by mergeDelimitedFrom(). This is intentionally
+ * package-private so that UnknownFieldSet can share it.
+ */
+ static final class LimitedInputStream extends FilterInputStream {
+ private int limit;
+
+ LimitedInputStream(InputStream in, int limit) {
+ super(in);
+ this.limit = limit;
+ }
+
+ @Override
+ public int available() throws IOException {
+ return Math.min(super.available(), limit);
+ }
+
+ @Override
+ public int read() throws IOException {
+ if (limit <= 0) {
+ return -1;
+ }
+ final int result = super.read();
+ if (result >= 0) {
+ --limit;
+ }
+ return result;
+ }
+
+ @Override
+ public int read(final byte[] b, final int off, int len) throws IOException {
+ if (limit <= 0) {
+ return -1;
+ }
+ len = Math.min(len, limit);
+ final int result = super.read(b, off, len);
+ if (result >= 0) {
+ limit -= result;
+ }
+ return result;
+ }
+
+ @Override
+ public long skip(final long n) throws IOException {
+ final long result = super.skip(Math.min(n, limit));
+ if (result >= 0) {
+ limit -= result;
+ }
+ return result;
+ }
+ }
+
+ @Override
+ 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;
+ }
+
+ @Override
+ public boolean mergeDelimitedFrom(final InputStream input) throws IOException {
+ return mergeDelimitedFrom(input, ExtensionRegistryLite.getEmptyRegistry());
+ }
+
+ @Override
+ @SuppressWarnings("unchecked") // isInstance takes care of this
+ public BuilderType mergeFrom(final MessageLite other) {
+ if (!getDefaultInstanceForType().getClass().isInstance(other)) {
+ throw new IllegalArgumentException(
+ "mergeFrom(MessageLite) can only merge messages of the same type.");
+ }
+
+ return internalMergeFrom((MessageType) other);
+ }
+
+ protected abstract BuilderType internalMergeFrom(MessageType message);
+
+ private String getReadingExceptionMessage(String target) {
+ return "Reading "
+ + getClass().getName()
+ + " from a "
+ + target
+ + " threw an IOException (should never happen).";
+ }
+
+ // We check nulls as we iterate to avoid iterating over values twice.
+ private static void addAllCheckingNulls(Iterable values, List super T> list) {
+ if (list instanceof ArrayList && values instanceof Collection) {
+ ((ArrayList) list).ensureCapacity(list.size() + ((Collection) values).size());
+ }
+ int begin = list.size();
+ for (T value : values) {
+ if (value == null) {
+ // encountered a null value so we must undo our modifications prior to throwing
+ String message = "Element at index " + (list.size() - begin) + " is null.";
+ for (int i = list.size() - 1; i >= begin; i--) {
+ list.remove(i);
+ }
+ throw new NullPointerException(message);
+ }
+ list.add(value);
+ }
+ }
+
+ /** Construct an UninitializedMessageException reporting missing fields in the given message. */
+ protected static UninitializedMessageException newUninitializedMessageException(
+ MessageLite message) {
+ return new UninitializedMessageException(message);
+ }
+
+ // For binary compatibility.
+ @Deprecated
+ protected static void addAll(final Iterable values, final Collection super T> list) {
+ addAll(values, (List) list);
+ }
+
+ /**
+ * Adds the {@code values} to the {@code list}. This is a helper method used by generated code.
+ * Users should ignore it.
+ *
+ * @throws NullPointerException if {@code values} or any of the elements of {@code values} is
+ * null.
+ */
+ protected static void addAll(final Iterable values, final List super T> list) {
+ checkNotNull(values);
+ if (values instanceof LazyStringList) {
+ // For StringOrByteStringLists, check the underlying elements to avoid
+ // forcing conversions of ByteStrings to Strings.
+ // TODO(dweis): Could we just prohibit nulls in all protobuf lists and get rid of this? Is
+ // if even possible to hit this condition as all protobuf methods check for null first,
+ // right?
+ List> lazyValues = ((LazyStringList) values).getUnderlyingElements();
+ LazyStringList lazyList = (LazyStringList) list;
+ int begin = list.size();
+ for (Object value : lazyValues) {
+ if (value == null) {
+ // encountered a null value so we must undo our modifications prior to throwing
+ String message = "Element at index " + (lazyList.size() - begin) + " is null.";
+ for (int i = lazyList.size() - 1; i >= begin; i--) {
+ lazyList.remove(i);
+ }
+ throw new NullPointerException(message);
+ }
+ if (value instanceof ByteString) {
+ lazyList.add((ByteString) value);
+ } else {
+ lazyList.add((String) value);
+ }
+ }
+ } else {
+ if (values instanceof PrimitiveNonBoxingCollection) {
+ list.addAll((Collection) values);
+ } else {
+ addAllCheckingNulls(values, list);
+ }
+ }
+ }
+ }
+}
diff --git a/java/kotlin-lite/target/generated-sources/com/google/protobuf/AbstractParser.java b/java/kotlin-lite/target/generated-sources/com/google/protobuf/AbstractParser.java
new file mode 100644
index 0000000000000..abfaca8cd8b1f
--- /dev/null
+++ b/java/kotlin-lite/target/generated-sources/com/google/protobuf/AbstractParser.java
@@ -0,0 +1,274 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package com.google.protobuf;
+
+import com.google.protobuf.AbstractMessageLite.Builder.LimitedInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.ByteBuffer;
+
+/**
+ * A partial implementation of the {@link Parser} interface which implements as many methods of that
+ * interface as possible in terms of other methods.
+ *
+ *
Note: This class implements all the convenience methods in the {@link Parser} interface. See
+ * {@link Parser} for related javadocs. Subclasses need to implement {@link
+ * Parser#parsePartialFrom(CodedInputStream, ExtensionRegistryLite)}
+ *
+ * @author liujisi@google.com (Pherl Liu)
+ */
+public abstract class AbstractParser
+ implements Parser {
+ /** Creates an UninitializedMessageException for MessageType. */
+ private UninitializedMessageException newUninitializedMessageException(MessageType message) {
+ if (message instanceof AbstractMessageLite) {
+ return ((AbstractMessageLite) message).newUninitializedMessageException();
+ }
+ return new UninitializedMessageException(message);
+ }
+
+ /**
+ * Helper method to check if message is initialized.
+ *
+ * @throws InvalidProtocolBufferException if it is not initialized.
+ * @return The message to check.
+ */
+ private MessageType checkMessageInitialized(MessageType message)
+ throws InvalidProtocolBufferException {
+ if (message != null && !message.isInitialized()) {
+ throw newUninitializedMessageException(message)
+ .asInvalidProtocolBufferException()
+ .setUnfinishedMessage(message);
+ }
+ return message;
+ }
+
+ private static final ExtensionRegistryLite EMPTY_REGISTRY =
+ ExtensionRegistryLite.getEmptyRegistry();
+
+ @Override
+ public MessageType parsePartialFrom(CodedInputStream input)
+ throws InvalidProtocolBufferException {
+ return parsePartialFrom(input, EMPTY_REGISTRY);
+ }
+
+ @Override
+ public MessageType parseFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)
+ throws InvalidProtocolBufferException {
+ return checkMessageInitialized(parsePartialFrom(input, extensionRegistry));
+ }
+
+ @Override
+ public MessageType parseFrom(CodedInputStream input) throws InvalidProtocolBufferException {
+ return parseFrom(input, EMPTY_REGISTRY);
+ }
+
+ @Override
+ public MessageType parsePartialFrom(ByteString data, ExtensionRegistryLite extensionRegistry)
+ throws InvalidProtocolBufferException {
+ MessageType message;
+ try {
+ CodedInputStream input = data.newCodedInput();
+ message = parsePartialFrom(input, extensionRegistry);
+ try {
+ input.checkLastTagWas(0);
+ } catch (InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(message);
+ }
+ return message;
+ } catch (InvalidProtocolBufferException e) {
+ throw e;
+ }
+ }
+
+ @Override
+ public MessageType parsePartialFrom(ByteString data) throws InvalidProtocolBufferException {
+ return parsePartialFrom(data, EMPTY_REGISTRY);
+ }
+
+ @Override
+ public MessageType parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)
+ throws InvalidProtocolBufferException {
+ return checkMessageInitialized(parsePartialFrom(data, extensionRegistry));
+ }
+
+ @Override
+ public MessageType parseFrom(ByteString data) throws InvalidProtocolBufferException {
+ return parseFrom(data, EMPTY_REGISTRY);
+ }
+
+ @Override
+ public MessageType parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)
+ throws InvalidProtocolBufferException {
+ MessageType message;
+ try {
+ CodedInputStream input = CodedInputStream.newInstance(data);
+ message = parsePartialFrom(input, extensionRegistry);
+ try {
+ input.checkLastTagWas(0);
+ } catch (InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(message);
+ }
+ } catch (InvalidProtocolBufferException e) {
+ throw e;
+ }
+
+ return checkMessageInitialized(message);
+ }
+
+ @Override
+ public MessageType parseFrom(ByteBuffer data) throws InvalidProtocolBufferException {
+ return parseFrom(data, EMPTY_REGISTRY);
+ }
+
+ @Override
+ public MessageType parsePartialFrom(
+ byte[] data, int off, int len, ExtensionRegistryLite extensionRegistry)
+ throws InvalidProtocolBufferException {
+ try {
+ CodedInputStream input = CodedInputStream.newInstance(data, off, len);
+ MessageType message = parsePartialFrom(input, extensionRegistry);
+ try {
+ input.checkLastTagWas(0);
+ } catch (InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(message);
+ }
+ return message;
+ } catch (InvalidProtocolBufferException e) {
+ throw e;
+ }
+ }
+
+ @Override
+ public MessageType parsePartialFrom(byte[] data, int off, int len)
+ throws InvalidProtocolBufferException {
+ return parsePartialFrom(data, off, len, EMPTY_REGISTRY);
+ }
+
+ @Override
+ public MessageType parsePartialFrom(byte[] data, ExtensionRegistryLite extensionRegistry)
+ throws InvalidProtocolBufferException {
+ return parsePartialFrom(data, 0, data.length, extensionRegistry);
+ }
+
+ @Override
+ public MessageType parsePartialFrom(byte[] data) throws InvalidProtocolBufferException {
+ return parsePartialFrom(data, 0, data.length, EMPTY_REGISTRY);
+ }
+
+ @Override
+ public MessageType parseFrom(
+ byte[] data, int off, int len, ExtensionRegistryLite extensionRegistry)
+ throws InvalidProtocolBufferException {
+ return checkMessageInitialized(parsePartialFrom(data, off, len, extensionRegistry));
+ }
+
+ @Override
+ public MessageType parseFrom(byte[] data, int off, int len)
+ throws InvalidProtocolBufferException {
+ return parseFrom(data, off, len, EMPTY_REGISTRY);
+ }
+
+ @Override
+ public MessageType parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)
+ throws InvalidProtocolBufferException {
+ return parseFrom(data, 0, data.length, extensionRegistry);
+ }
+
+ @Override
+ public MessageType parseFrom(byte[] data) throws InvalidProtocolBufferException {
+ return parseFrom(data, EMPTY_REGISTRY);
+ }
+
+ @Override
+ public MessageType parsePartialFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
+ throws InvalidProtocolBufferException {
+ CodedInputStream codedInput = CodedInputStream.newInstance(input);
+ MessageType message = parsePartialFrom(codedInput, extensionRegistry);
+ try {
+ codedInput.checkLastTagWas(0);
+ } catch (InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(message);
+ }
+ return message;
+ }
+
+ @Override
+ public MessageType parsePartialFrom(InputStream input) throws InvalidProtocolBufferException {
+ return parsePartialFrom(input, EMPTY_REGISTRY);
+ }
+
+ @Override
+ public MessageType parseFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
+ throws InvalidProtocolBufferException {
+ return checkMessageInitialized(parsePartialFrom(input, extensionRegistry));
+ }
+
+ @Override
+ public MessageType parseFrom(InputStream input) throws InvalidProtocolBufferException {
+ return parseFrom(input, EMPTY_REGISTRY);
+ }
+
+ @Override
+ public MessageType parsePartialDelimitedFrom(
+ InputStream input, ExtensionRegistryLite extensionRegistry)
+ throws InvalidProtocolBufferException {
+ int size;
+ try {
+ int firstByte = input.read();
+ if (firstByte == -1) {
+ return null;
+ }
+ size = CodedInputStream.readRawVarint32(firstByte, input);
+ } catch (IOException e) {
+ throw new InvalidProtocolBufferException(e);
+ }
+ InputStream limitedInput = new LimitedInputStream(input, size);
+ return parsePartialFrom(limitedInput, extensionRegistry);
+ }
+
+ @Override
+ public MessageType parsePartialDelimitedFrom(InputStream input)
+ throws InvalidProtocolBufferException {
+ return parsePartialDelimitedFrom(input, EMPTY_REGISTRY);
+ }
+
+ @Override
+ public MessageType parseDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
+ throws InvalidProtocolBufferException {
+ return checkMessageInitialized(parsePartialDelimitedFrom(input, extensionRegistry));
+ }
+
+ @Override
+ public MessageType parseDelimitedFrom(InputStream input) throws InvalidProtocolBufferException {
+ return parseDelimitedFrom(input, EMPTY_REGISTRY);
+ }
+}
diff --git a/java/kotlin-lite/target/generated-sources/com/google/protobuf/AbstractProtobufList.java b/java/kotlin-lite/target/generated-sources/com/google/protobuf/AbstractProtobufList.java
new file mode 100644
index 0000000000000..e792d7d981198
--- /dev/null
+++ b/java/kotlin-lite/target/generated-sources/com/google/protobuf/AbstractProtobufList.java
@@ -0,0 +1,180 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package com.google.protobuf;
+
+import com.google.protobuf.Internal.ProtobufList;
+import java.util.AbstractList;
+import java.util.Collection;
+import java.util.List;
+import java.util.RandomAccess;
+
+/**
+ * An abstract implementation of {@link ProtobufList} which manages mutability semantics. All mutate
+ * methods must check if the list is mutable before proceeding. Subclasses must invoke {@link
+ * #ensureIsMutable()} manually when overriding those methods.
+ *
+ *
This implementation assumes all subclasses are array based, supporting random access.
+ */
+abstract class AbstractProtobufList extends AbstractList implements ProtobufList {
+
+ protected static final int DEFAULT_CAPACITY = 10;
+
+ /** Whether or not this list is modifiable. */
+ private boolean isMutable;
+
+ /** Constructs a mutable list by default. */
+ AbstractProtobufList() {
+ isMutable = true;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (o == this) {
+ return true;
+ }
+ if (!(o instanceof List)) {
+ return false;
+ }
+ // Handle lists that do not support RandomAccess as efficiently as possible by using an iterator
+ // based approach in our super class. Otherwise our index based approach will avoid those
+ // allocations.
+ if (!(o instanceof RandomAccess)) {
+ return super.equals(o);
+ }
+
+ List> other = (List>) o;
+ final int size = size();
+ if (size != other.size()) {
+ return false;
+ }
+ for (int i = 0; i < size; i++) {
+ if (!get(i).equals(other.get(i))) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int size = size();
+ int hashCode = 1;
+ for (int i = 0; i < size; i++) {
+ hashCode = (31 * hashCode) + get(i).hashCode();
+ }
+ return hashCode;
+ }
+
+ @Override
+ public boolean add(E e) {
+ ensureIsMutable();
+ return super.add(e);
+ }
+
+ @Override
+ public void add(int index, E element) {
+ ensureIsMutable();
+ super.add(index, element);
+ }
+
+ @Override
+ public boolean addAll(Collection extends E> c) {
+ ensureIsMutable();
+ return super.addAll(c);
+ }
+
+ @Override
+ public boolean addAll(int index, Collection extends E> c) {
+ ensureIsMutable();
+ return super.addAll(index, c);
+ }
+
+ @Override
+ public void clear() {
+ ensureIsMutable();
+ super.clear();
+ }
+
+ @Override
+ public boolean isModifiable() {
+ return isMutable;
+ }
+
+ @Override
+ public final void makeImmutable() {
+ isMutable = false;
+ }
+
+ @Override
+ public E remove(int index) {
+ ensureIsMutable();
+ return super.remove(index);
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ ensureIsMutable();
+ int index = indexOf(o);
+ if (index == -1) {
+ return false;
+ }
+ remove(index);
+ return true;
+ }
+
+ @Override
+ public boolean removeAll(Collection> c) {
+ ensureIsMutable();
+ return super.removeAll(c);
+ }
+
+ @Override
+ public boolean retainAll(Collection> c) {
+ ensureIsMutable();
+ return super.retainAll(c);
+ }
+
+ @Override
+ public E set(int index, E element) {
+ ensureIsMutable();
+ return super.set(index, element);
+ }
+
+ /**
+ * Throws an {@link UnsupportedOperationException} if the list is immutable. Subclasses are
+ * responsible for invoking this method on mutate operations.
+ */
+ protected void ensureIsMutable() {
+ if (!isMutable) {
+ throw new UnsupportedOperationException();
+ }
+ }
+}
diff --git a/java/kotlin-lite/target/generated-sources/com/google/protobuf/AllocatedBuffer.java b/java/kotlin-lite/target/generated-sources/com/google/protobuf/AllocatedBuffer.java
new file mode 100644
index 0000000000000..a01a6c1a8b75f
--- /dev/null
+++ b/java/kotlin-lite/target/generated-sources/com/google/protobuf/AllocatedBuffer.java
@@ -0,0 +1,263 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package com.google.protobuf;
+
+import static com.google.protobuf.Internal.checkNotNull;
+
+import java.nio.ByteBuffer;
+
+/**
+ * A buffer that was allocated by a {@link BufferAllocator}. For every buffer, it is guaranteed that
+ * at least one of {@link #hasArray()} or {@link #hasNioBuffer()} will be {@code true}.
+ */
+@ExperimentalApi
+abstract class AllocatedBuffer {
+ /**
+ * Indicates whether this buffer contains a backing {@link ByteBuffer} (i.e. it is safe to call
+ * {@link #nioBuffer()}).
+ */
+ public abstract boolean hasNioBuffer();
+
+ /**
+ * Indicates whether this buffer contains a backing array (i.e. it is safe to call {@link
+ * #array()}).
+ */
+ public abstract boolean hasArray();
+
+ /**
+ * Returns the {@link ByteBuffer} that backs this buffer (optional operation).
+ *
+ *
Call {@link #hasNioBuffer()} before invoking this method in order to ensure that this buffer
+ * has a backing {@link ByteBuffer}.
+ *
+ * @return The {@link ByteBuffer} that backs this buffer
+ * @throws UnsupportedOperationException If this buffer is not backed by a {@link ByteBuffer}.
+ */
+ public abstract ByteBuffer nioBuffer();
+
+ /**
+ * Returns the byte array that backs this buffer (optional operation).
+ *
+ *
Call {@link #hasArray()} before invoking this method in order to ensure that this buffer has
+ * an accessible backing array.
+ *
+ * @return The array that backs this buffer
+ * @throws java.nio.ReadOnlyBufferException If this buffer is backed by an array but is read-only
+ * @throws UnsupportedOperationException If this buffer is not backed by an accessible array
+ */
+ public abstract byte[] array();
+
+ /**
+ * Returns the offset within this buffer's backing array of the first element of the buffer
+ * (optional operation).
+ *
+ *
If this buffer is backed by an array then {@link #position()} corresponds to the array index
+ * {@link #position()} {@code +} {@link #arrayOffset()}.
+ *
+ *
Invoke the {@link #hasArray hasArray} method before invoking this method in order to ensure
+ * that this buffer has an accessible backing array.
+ *
+ * @return The offset within this buffer's array of the first element of the buffer
+ * @throws java.nio.ReadOnlyBufferException If this buffer is backed by an array but is read-only
+ * @throws UnsupportedOperationException If this buffer is not backed by an accessible array
+ */
+ public abstract int arrayOffset();
+
+ /**
+ * Returns this buffer's position.
+ *
+ * @return The position of this buffer
+ */
+ public abstract int position();
+
+ /**
+ * Sets this buffer's position.
+ *
+ * @param position The new position value; must be non-negative and no larger than the current
+ * limit
+ * @return This buffer
+ * @throws IllegalArgumentException If the preconditions on {@code position} do not hold
+ */
+ public abstract AllocatedBuffer position(int position);
+
+ /**
+ * Returns this buffer's limit.
+ *
+ * @return The limit of this buffer
+ */
+ public abstract int limit();
+
+ /**
+ * Returns the number of elements between the current {@link #position()} and the {@link #limit()}
+ * .
+ *
+ * @return The number of elements remaining in this buffer
+ */
+ public abstract int remaining();
+
+ /**
+ * Creates a new {@link AllocatedBuffer} that is backed by the given array. The returned buffer
+ * will have {@link #hasArray} == {@code true}, {@link #arrayOffset()} == {@code 0}, {@link
+ * #position()} == {@code 0} and {@link #limit()} equal to the length of {@code bytes}.
+ */
+ public static AllocatedBuffer wrap(byte[] bytes) {
+ return wrapNoCheck(bytes, 0, bytes.length);
+ }
+
+ /**
+ * Creates a new {@link AllocatedBuffer} that is backed by the given array. The returned buffer
+ * will have {@link #hasArray} == {@code true}, {@link #arrayOffset()} == {@code offset}, {@link
+ * #position()} == {@code 0} and {@link #limit()} == {@code length}.
+ */
+ public static AllocatedBuffer wrap(final byte[] bytes, final int offset, final int length) {
+ if (offset < 0 || length < 0 || (offset + length) > bytes.length) {
+ throw new IndexOutOfBoundsException(
+ String.format("bytes.length=%d, offset=%d, length=%d", bytes.length, offset, length));
+ }
+
+ return wrapNoCheck(bytes, offset, length);
+ }
+
+ /**
+ * Creates a new {@link AllocatedBuffer} that is backed by the given {@link ByteBuffer}. The
+ * returned buffer will have {@link #hasNioBuffer} == {@code true}.
+ */
+ public static AllocatedBuffer wrap(final ByteBuffer buffer) {
+ checkNotNull(buffer, "buffer");
+
+ return new AllocatedBuffer() {
+
+ @Override
+ public boolean hasNioBuffer() {
+ return true;
+ }
+
+ @Override
+ public ByteBuffer nioBuffer() {
+ return buffer;
+ }
+
+ @Override
+ public boolean hasArray() {
+ return buffer.hasArray();
+ }
+
+ @Override
+ public byte[] array() {
+ return buffer.array();
+ }
+
+ @Override
+ public int arrayOffset() {
+ return buffer.arrayOffset();
+ }
+
+ @Override
+ public int position() {
+ return buffer.position();
+ }
+
+ @Override
+ public AllocatedBuffer position(int position) {
+ buffer.position(position);
+ return this;
+ }
+
+ @Override
+ public int limit() {
+ return buffer.limit();
+ }
+
+ @Override
+ public int remaining() {
+ return buffer.remaining();
+ }
+ };
+ }
+
+ private static AllocatedBuffer wrapNoCheck(
+ final byte[] bytes, final int offset, final int length) {
+ return new AllocatedBuffer() {
+ // Relative to offset.
+ private int position;
+
+ @Override
+ public boolean hasNioBuffer() {
+ return false;
+ }
+
+ @Override
+ public ByteBuffer nioBuffer() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean hasArray() {
+ return true;
+ }
+
+ @Override
+ public byte[] array() {
+ return bytes;
+ }
+
+ @Override
+ public int arrayOffset() {
+ return offset;
+ }
+
+ @Override
+ public int position() {
+ return position;
+ }
+
+ @Override
+ public AllocatedBuffer position(int position) {
+ if (position < 0 || position > length) {
+ throw new IllegalArgumentException("Invalid position: " + position);
+ }
+ this.position = position;
+ return this;
+ }
+
+ @Override
+ public int limit() {
+ // Relative to offset.
+ return length;
+ }
+
+ @Override
+ public int remaining() {
+ return length - position;
+ }
+ };
+ }
+}
diff --git a/java/kotlin-lite/target/generated-sources/com/google/protobuf/Android.java b/java/kotlin-lite/target/generated-sources/com/google/protobuf/Android.java
new file mode 100644
index 0000000000000..5a7ce9e581acc
--- /dev/null
+++ b/java/kotlin-lite/target/generated-sources/com/google/protobuf/Android.java
@@ -0,0 +1,64 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package com.google.protobuf;
+
+final class Android {
+ private Android() {
+ }
+
+ // Set to true in lite_proguard_android.pgcfg.
+ @SuppressWarnings("ConstantField")
+ private static boolean ASSUME_ANDROID;
+
+ private static final Class> MEMORY_CLASS = getClassForName("libcore.io.Memory");
+
+ private static final boolean IS_ROBOLECTRIC =
+ !ASSUME_ANDROID && getClassForName("org.robolectric.Robolectric") != null;
+
+ /** Returns {@code true} if running on an Android device. */
+ static boolean isOnAndroidDevice() {
+ return ASSUME_ANDROID || (MEMORY_CLASS != null && !IS_ROBOLECTRIC);
+ }
+
+ /** Returns the memory class or {@code null} if not on Android device. */
+ static Class> getMemoryClass() {
+ return MEMORY_CLASS;
+ }
+
+ @SuppressWarnings("unchecked")
+ private static Class getClassForName(String name) {
+ try {
+ return (Class) Class.forName(name);
+ } catch (Throwable e) {
+ return null;
+ }
+ }
+}
diff --git a/java/kotlin-lite/target/generated-sources/com/google/protobuf/Any.java b/java/kotlin-lite/target/generated-sources/com/google/protobuf/Any.java
new file mode 100644
index 0000000000000..70ab047b4ff0d
--- /dev/null
+++ b/java/kotlin-lite/target/generated-sources/com/google/protobuf/Any.java
@@ -0,0 +1,761 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/any.proto
+
+package com.google.protobuf;
+
+/**
+ *
+ * `Any` contains an arbitrary serialized protocol buffer message along with a
+ * URL that describes the type of the serialized message.
+ * Protobuf library provides support to pack/unpack Any values in the form
+ * of utility functions or additional generated methods of the Any type.
+ * Example 1: Pack and unpack a message in C++.
+ * Foo foo = ...;
+ * Any any;
+ * any.PackFrom(foo);
+ * ...
+ * if (any.UnpackTo(&foo)) {
+ * ...
+ * }
+ * Example 2: Pack and unpack a message in Java.
+ * Foo foo = ...;
+ * Any any = Any.pack(foo);
+ * ...
+ * if (any.is(Foo.class)) {
+ * foo = any.unpack(Foo.class);
+ * }
+ * Example 3: Pack and unpack a message in Python.
+ * foo = Foo(...)
+ * any = Any()
+ * any.Pack(foo)
+ * ...
+ * if any.Is(Foo.DESCRIPTOR):
+ * any.Unpack(foo)
+ * ...
+ * Example 4: Pack and unpack a message in Go
+ * foo := &pb.Foo{...}
+ * any, err := anypb.New(foo)
+ * if err != nil {
+ * ...
+ * }
+ * ...
+ * foo := &pb.Foo{}
+ * if err := any.UnmarshalTo(foo); err != nil {
+ * ...
+ * }
+ * The pack methods provided by protobuf library will by default use
+ * 'type.googleapis.com/full.type.name' as the type URL and the unpack
+ * methods only use the fully qualified type name after the last '/'
+ * in the type URL, for example "foo.bar.com/x/y.z" will yield type
+ * name "y.z".
+ * JSON
+ * ====
+ * The JSON representation of an `Any` value uses the regular
+ * representation of the deserialized, embedded message, with an
+ * additional field `@type` which contains the type URL. Example:
+ * package google.profile;
+ * message Person {
+ * string first_name = 1;
+ * string last_name = 2;
+ * }
+ * {
+ * "@type": "type.googleapis.com/google.profile.Person",
+ * "firstName": <string>,
+ * "lastName": <string>
+ * }
+ * If the embedded message type is well-known and has a custom JSON
+ * representation, that representation will be embedded adding a field
+ * `value` which holds the custom JSON in addition to the `@type`
+ * field. Example (for message [google.protobuf.Duration][]):
+ * {
+ * "@type": "type.googleapis.com/google.protobuf.Duration",
+ * "value": "1.212s"
+ * }
+ *
+ *
+ * Protobuf type {@code google.protobuf.Any}
+ */
+public final class Any extends
+ com.google.protobuf.GeneratedMessageLite<
+ Any, Any.Builder> implements
+ // @@protoc_insertion_point(message_implements:google.protobuf.Any)
+ AnyOrBuilder {
+ private Any() {
+ typeUrl_ = "";
+ value_ = com.google.protobuf.ByteString.EMPTY;
+ }
+ public static final int TYPE_URL_FIELD_NUMBER = 1;
+ private java.lang.String typeUrl_;
+ /**
+ *
+ * A URL/resource name that uniquely identifies the type of the serialized
+ * protocol buffer message. This string must contain at least
+ * one "/" character. The last segment of the URL's path must represent
+ * the fully qualified name of the type (as in
+ * `path/google.protobuf.Duration`). The name should be in a canonical form
+ * (e.g., leading "." is not accepted).
+ * In practice, teams usually precompile into the binary all types that they
+ * expect it to use in the context of Any. However, for URLs which use the
+ * scheme `http`, `https`, or no scheme, one can optionally set up a type
+ * server that maps type URLs to message definitions as follows:
+ * * If no scheme is provided, `https` is assumed.
+ * * An HTTP GET on the URL must yield a [google.protobuf.Type][]
+ * value in binary format, or produce an error.
+ * * Applications are allowed to cache lookup results based on the
+ * URL, or have them precompiled into a binary to avoid any
+ * lookup. Therefore, binary compatibility needs to be preserved
+ * on changes to types. (Use versioned type names to manage
+ * breaking changes.)
+ * Note: this functionality is not currently available in the official
+ * protobuf release, and it is not used for type URLs beginning with
+ * type.googleapis.com.
+ * Schemes other than `http`, `https` (or the empty scheme) might be
+ * used with implementation specific semantics.
+ *
+ * A URL/resource name that uniquely identifies the type of the serialized
+ * protocol buffer message. This string must contain at least
+ * one "/" character. The last segment of the URL's path must represent
+ * the fully qualified name of the type (as in
+ * `path/google.protobuf.Duration`). The name should be in a canonical form
+ * (e.g., leading "." is not accepted).
+ * In practice, teams usually precompile into the binary all types that they
+ * expect it to use in the context of Any. However, for URLs which use the
+ * scheme `http`, `https`, or no scheme, one can optionally set up a type
+ * server that maps type URLs to message definitions as follows:
+ * * If no scheme is provided, `https` is assumed.
+ * * An HTTP GET on the URL must yield a [google.protobuf.Type][]
+ * value in binary format, or produce an error.
+ * * Applications are allowed to cache lookup results based on the
+ * URL, or have them precompiled into a binary to avoid any
+ * lookup. Therefore, binary compatibility needs to be preserved
+ * on changes to types. (Use versioned type names to manage
+ * breaking changes.)
+ * Note: this functionality is not currently available in the official
+ * protobuf release, and it is not used for type URLs beginning with
+ * type.googleapis.com.
+ * Schemes other than `http`, `https` (or the empty scheme) might be
+ * used with implementation specific semantics.
+ *
+ * A URL/resource name that uniquely identifies the type of the serialized
+ * protocol buffer message. This string must contain at least
+ * one "/" character. The last segment of the URL's path must represent
+ * the fully qualified name of the type (as in
+ * `path/google.protobuf.Duration`). The name should be in a canonical form
+ * (e.g., leading "." is not accepted).
+ * In practice, teams usually precompile into the binary all types that they
+ * expect it to use in the context of Any. However, for URLs which use the
+ * scheme `http`, `https`, or no scheme, one can optionally set up a type
+ * server that maps type URLs to message definitions as follows:
+ * * If no scheme is provided, `https` is assumed.
+ * * An HTTP GET on the URL must yield a [google.protobuf.Type][]
+ * value in binary format, or produce an error.
+ * * Applications are allowed to cache lookup results based on the
+ * URL, or have them precompiled into a binary to avoid any
+ * lookup. Therefore, binary compatibility needs to be preserved
+ * on changes to types. (Use versioned type names to manage
+ * breaking changes.)
+ * Note: this functionality is not currently available in the official
+ * protobuf release, and it is not used for type URLs beginning with
+ * type.googleapis.com.
+ * Schemes other than `http`, `https` (or the empty scheme) might be
+ * used with implementation specific semantics.
+ *
+ * A URL/resource name that uniquely identifies the type of the serialized
+ * protocol buffer message. This string must contain at least
+ * one "/" character. The last segment of the URL's path must represent
+ * the fully qualified name of the type (as in
+ * `path/google.protobuf.Duration`). The name should be in a canonical form
+ * (e.g., leading "." is not accepted).
+ * In practice, teams usually precompile into the binary all types that they
+ * expect it to use in the context of Any. However, for URLs which use the
+ * scheme `http`, `https`, or no scheme, one can optionally set up a type
+ * server that maps type URLs to message definitions as follows:
+ * * If no scheme is provided, `https` is assumed.
+ * * An HTTP GET on the URL must yield a [google.protobuf.Type][]
+ * value in binary format, or produce an error.
+ * * Applications are allowed to cache lookup results based on the
+ * URL, or have them precompiled into a binary to avoid any
+ * lookup. Therefore, binary compatibility needs to be preserved
+ * on changes to types. (Use versioned type names to manage
+ * breaking changes.)
+ * Note: this functionality is not currently available in the official
+ * protobuf release, and it is not used for type URLs beginning with
+ * type.googleapis.com.
+ * Schemes other than `http`, `https` (or the empty scheme) might be
+ * used with implementation specific semantics.
+ *
+ * A URL/resource name that uniquely identifies the type of the serialized
+ * protocol buffer message. This string must contain at least
+ * one "/" character. The last segment of the URL's path must represent
+ * the fully qualified name of the type (as in
+ * `path/google.protobuf.Duration`). The name should be in a canonical form
+ * (e.g., leading "." is not accepted).
+ * In practice, teams usually precompile into the binary all types that they
+ * expect it to use in the context of Any. However, for URLs which use the
+ * scheme `http`, `https`, or no scheme, one can optionally set up a type
+ * server that maps type URLs to message definitions as follows:
+ * * If no scheme is provided, `https` is assumed.
+ * * An HTTP GET on the URL must yield a [google.protobuf.Type][]
+ * value in binary format, or produce an error.
+ * * Applications are allowed to cache lookup results based on the
+ * URL, or have them precompiled into a binary to avoid any
+ * lookup. Therefore, binary compatibility needs to be preserved
+ * on changes to types. (Use versioned type names to manage
+ * breaking changes.)
+ * Note: this functionality is not currently available in the official
+ * protobuf release, and it is not used for type URLs beginning with
+ * type.googleapis.com.
+ * Schemes other than `http`, `https` (or the empty scheme) might be
+ * used with implementation specific semantics.
+ *
+ *
+ * string type_url = 1;
+ * @param value The bytes for typeUrl to set.
+ */
+ private void setTypeUrlBytes(
+ com.google.protobuf.ByteString value) {
+ checkByteStringIsUtf8(value);
+ typeUrl_ = value.toStringUtf8();
+
+ }
+
+ public static final int VALUE_FIELD_NUMBER = 2;
+ private com.google.protobuf.ByteString value_;
+ /**
+ *
+ * Must be a valid serialized protocol buffer of the above specified type.
+ *
+ * `Any` contains an arbitrary serialized protocol buffer message along with a
+ * URL that describes the type of the serialized message.
+ * Protobuf library provides support to pack/unpack Any values in the form
+ * of utility functions or additional generated methods of the Any type.
+ * Example 1: Pack and unpack a message in C++.
+ * Foo foo = ...;
+ * Any any;
+ * any.PackFrom(foo);
+ * ...
+ * if (any.UnpackTo(&foo)) {
+ * ...
+ * }
+ * Example 2: Pack and unpack a message in Java.
+ * Foo foo = ...;
+ * Any any = Any.pack(foo);
+ * ...
+ * if (any.is(Foo.class)) {
+ * foo = any.unpack(Foo.class);
+ * }
+ * Example 3: Pack and unpack a message in Python.
+ * foo = Foo(...)
+ * any = Any()
+ * any.Pack(foo)
+ * ...
+ * if any.Is(Foo.DESCRIPTOR):
+ * any.Unpack(foo)
+ * ...
+ * Example 4: Pack and unpack a message in Go
+ * foo := &pb.Foo{...}
+ * any, err := anypb.New(foo)
+ * if err != nil {
+ * ...
+ * }
+ * ...
+ * foo := &pb.Foo{}
+ * if err := any.UnmarshalTo(foo); err != nil {
+ * ...
+ * }
+ * The pack methods provided by protobuf library will by default use
+ * 'type.googleapis.com/full.type.name' as the type URL and the unpack
+ * methods only use the fully qualified type name after the last '/'
+ * in the type URL, for example "foo.bar.com/x/y.z" will yield type
+ * name "y.z".
+ * JSON
+ * ====
+ * The JSON representation of an `Any` value uses the regular
+ * representation of the deserialized, embedded message, with an
+ * additional field `@type` which contains the type URL. Example:
+ * package google.profile;
+ * message Person {
+ * string first_name = 1;
+ * string last_name = 2;
+ * }
+ * {
+ * "@type": "type.googleapis.com/google.profile.Person",
+ * "firstName": <string>,
+ * "lastName": <string>
+ * }
+ * If the embedded message type is well-known and has a custom JSON
+ * representation, that representation will be embedded adding a field
+ * `value` which holds the custom JSON in addition to the `@type`
+ * field. Example (for message [google.protobuf.Duration][]):
+ * {
+ * "@type": "type.googleapis.com/google.protobuf.Duration",
+ * "value": "1.212s"
+ * }
+ *
+ *
+ * Protobuf type {@code google.protobuf.Any}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageLite.Builder<
+ com.google.protobuf.Any, Builder> implements
+ // @@protoc_insertion_point(builder_implements:google.protobuf.Any)
+ com.google.protobuf.AnyOrBuilder {
+ // Construct using com.google.protobuf.Any.newBuilder()
+ private Builder() {
+ super(DEFAULT_INSTANCE);
+ }
+
+
+ /**
+ *
+ * A URL/resource name that uniquely identifies the type of the serialized
+ * protocol buffer message. This string must contain at least
+ * one "/" character. The last segment of the URL's path must represent
+ * the fully qualified name of the type (as in
+ * `path/google.protobuf.Duration`). The name should be in a canonical form
+ * (e.g., leading "." is not accepted).
+ * In practice, teams usually precompile into the binary all types that they
+ * expect it to use in the context of Any. However, for URLs which use the
+ * scheme `http`, `https`, or no scheme, one can optionally set up a type
+ * server that maps type URLs to message definitions as follows:
+ * * If no scheme is provided, `https` is assumed.
+ * * An HTTP GET on the URL must yield a [google.protobuf.Type][]
+ * value in binary format, or produce an error.
+ * * Applications are allowed to cache lookup results based on the
+ * URL, or have them precompiled into a binary to avoid any
+ * lookup. Therefore, binary compatibility needs to be preserved
+ * on changes to types. (Use versioned type names to manage
+ * breaking changes.)
+ * Note: this functionality is not currently available in the official
+ * protobuf release, and it is not used for type URLs beginning with
+ * type.googleapis.com.
+ * Schemes other than `http`, `https` (or the empty scheme) might be
+ * used with implementation specific semantics.
+ *
+ * A URL/resource name that uniquely identifies the type of the serialized
+ * protocol buffer message. This string must contain at least
+ * one "/" character. The last segment of the URL's path must represent
+ * the fully qualified name of the type (as in
+ * `path/google.protobuf.Duration`). The name should be in a canonical form
+ * (e.g., leading "." is not accepted).
+ * In practice, teams usually precompile into the binary all types that they
+ * expect it to use in the context of Any. However, for URLs which use the
+ * scheme `http`, `https`, or no scheme, one can optionally set up a type
+ * server that maps type URLs to message definitions as follows:
+ * * If no scheme is provided, `https` is assumed.
+ * * An HTTP GET on the URL must yield a [google.protobuf.Type][]
+ * value in binary format, or produce an error.
+ * * Applications are allowed to cache lookup results based on the
+ * URL, or have them precompiled into a binary to avoid any
+ * lookup. Therefore, binary compatibility needs to be preserved
+ * on changes to types. (Use versioned type names to manage
+ * breaking changes.)
+ * Note: this functionality is not currently available in the official
+ * protobuf release, and it is not used for type URLs beginning with
+ * type.googleapis.com.
+ * Schemes other than `http`, `https` (or the empty scheme) might be
+ * used with implementation specific semantics.
+ *
+ * A URL/resource name that uniquely identifies the type of the serialized
+ * protocol buffer message. This string must contain at least
+ * one "/" character. The last segment of the URL's path must represent
+ * the fully qualified name of the type (as in
+ * `path/google.protobuf.Duration`). The name should be in a canonical form
+ * (e.g., leading "." is not accepted).
+ * In practice, teams usually precompile into the binary all types that they
+ * expect it to use in the context of Any. However, for URLs which use the
+ * scheme `http`, `https`, or no scheme, one can optionally set up a type
+ * server that maps type URLs to message definitions as follows:
+ * * If no scheme is provided, `https` is assumed.
+ * * An HTTP GET on the URL must yield a [google.protobuf.Type][]
+ * value in binary format, or produce an error.
+ * * Applications are allowed to cache lookup results based on the
+ * URL, or have them precompiled into a binary to avoid any
+ * lookup. Therefore, binary compatibility needs to be preserved
+ * on changes to types. (Use versioned type names to manage
+ * breaking changes.)
+ * Note: this functionality is not currently available in the official
+ * protobuf release, and it is not used for type URLs beginning with
+ * type.googleapis.com.
+ * Schemes other than `http`, `https` (or the empty scheme) might be
+ * used with implementation specific semantics.
+ *
+ *
+ * string type_url = 1;
+ * @param value The typeUrl to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTypeUrl(
+ java.lang.String value) {
+ copyOnWrite();
+ instance.setTypeUrl(value);
+ return this;
+ }
+ /**
+ *
+ * A URL/resource name that uniquely identifies the type of the serialized
+ * protocol buffer message. This string must contain at least
+ * one "/" character. The last segment of the URL's path must represent
+ * the fully qualified name of the type (as in
+ * `path/google.protobuf.Duration`). The name should be in a canonical form
+ * (e.g., leading "." is not accepted).
+ * In practice, teams usually precompile into the binary all types that they
+ * expect it to use in the context of Any. However, for URLs which use the
+ * scheme `http`, `https`, or no scheme, one can optionally set up a type
+ * server that maps type URLs to message definitions as follows:
+ * * If no scheme is provided, `https` is assumed.
+ * * An HTTP GET on the URL must yield a [google.protobuf.Type][]
+ * value in binary format, or produce an error.
+ * * Applications are allowed to cache lookup results based on the
+ * URL, or have them precompiled into a binary to avoid any
+ * lookup. Therefore, binary compatibility needs to be preserved
+ * on changes to types. (Use versioned type names to manage
+ * breaking changes.)
+ * Note: this functionality is not currently available in the official
+ * protobuf release, and it is not used for type URLs beginning with
+ * type.googleapis.com.
+ * Schemes other than `http`, `https` (or the empty scheme) might be
+ * used with implementation specific semantics.
+ *
+ * A URL/resource name that uniquely identifies the type of the serialized
+ * protocol buffer message. This string must contain at least
+ * one "/" character. The last segment of the URL's path must represent
+ * the fully qualified name of the type (as in
+ * `path/google.protobuf.Duration`). The name should be in a canonical form
+ * (e.g., leading "." is not accepted).
+ * In practice, teams usually precompile into the binary all types that they
+ * expect it to use in the context of Any. However, for URLs which use the
+ * scheme `http`, `https`, or no scheme, one can optionally set up a type
+ * server that maps type URLs to message definitions as follows:
+ * * If no scheme is provided, `https` is assumed.
+ * * An HTTP GET on the URL must yield a [google.protobuf.Type][]
+ * value in binary format, or produce an error.
+ * * Applications are allowed to cache lookup results based on the
+ * URL, or have them precompiled into a binary to avoid any
+ * lookup. Therefore, binary compatibility needs to be preserved
+ * on changes to types. (Use versioned type names to manage
+ * breaking changes.)
+ * Note: this functionality is not currently available in the official
+ * protobuf release, and it is not used for type URLs beginning with
+ * type.googleapis.com.
+ * Schemes other than `http`, `https` (or the empty scheme) might be
+ * used with implementation specific semantics.
+ *
+ *
+ * string type_url = 1;
+ * @param value The bytes for typeUrl to set.
+ * @return This builder for chaining.
+ */
+ public Builder setTypeUrlBytes(
+ com.google.protobuf.ByteString value) {
+ copyOnWrite();
+ instance.setTypeUrlBytes(value);
+ return this;
+ }
+
+ /**
+ *
+ * Must be a valid serialized protocol buffer of the above specified type.
+ *
+ * Must be a valid serialized protocol buffer of the above specified type.
+ *
+ *
+ * bytes value = 2;
+ * @param value The value to set.
+ * @return This builder for chaining.
+ */
+ public Builder setValue(com.google.protobuf.ByteString value) {
+ copyOnWrite();
+ instance.setValue(value);
+ return this;
+ }
+ /**
+ *
+ * Must be a valid serialized protocol buffer of the above specified type.
+ *
+ *
+ * bytes value = 2;
+ * @return This builder for chaining.
+ */
+ public Builder clearValue() {
+ copyOnWrite();
+ instance.clearValue();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.protobuf.Any)
+ }
+ @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 com.google.protobuf.Any();
+ }
+ case NEW_BUILDER: {
+ return new Builder();
+ }
+ case BUILD_MESSAGE_INFO: {
+ java.lang.Object[] objects = new java.lang.Object[] {
+ "typeUrl_",
+ "value_",
+ };
+ java.lang.String info =
+ "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u0208\u0002\n" +
+ "";
+ return newMessageInfo(DEFAULT_INSTANCE, info, objects);
+ }
+ // fall through
+ case GET_DEFAULT_INSTANCE: {
+ return DEFAULT_INSTANCE;
+ }
+ case GET_PARSER: {
+ com.google.protobuf.Parser parser = PARSER;
+ if (parser == null) {
+ synchronized (com.google.protobuf.Any.class) {
+ parser = PARSER;
+ if (parser == null) {
+ parser =
+ new DefaultInstanceBasedParser(
+ 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:google.protobuf.Any)
+ private static final com.google.protobuf.Any DEFAULT_INSTANCE;
+ static {
+ Any defaultInstance = new Any();
+ // New instances are implicitly immutable so no need to make
+ // immutable.
+ DEFAULT_INSTANCE = defaultInstance;
+ com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
+ Any.class, defaultInstance);
+ }
+
+ public static com.google.protobuf.Any getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static volatile com.google.protobuf.Parser PARSER;
+
+ public static com.google.protobuf.Parser parser() {
+ return DEFAULT_INSTANCE.getParserForType();
+ }
+}
+
diff --git a/java/kotlin-lite/target/generated-sources/com/google/protobuf/AnyOrBuilder.java b/java/kotlin-lite/target/generated-sources/com/google/protobuf/AnyOrBuilder.java
new file mode 100644
index 0000000000000..5fcd84c842ea7
--- /dev/null
+++ b/java/kotlin-lite/target/generated-sources/com/google/protobuf/AnyOrBuilder.java
@@ -0,0 +1,83 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/any.proto
+
+package com.google.protobuf;
+
+public interface AnyOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:google.protobuf.Any)
+ com.google.protobuf.MessageLiteOrBuilder {
+
+ /**
+ *
+ * A URL/resource name that uniquely identifies the type of the serialized
+ * protocol buffer message. This string must contain at least
+ * one "/" character. The last segment of the URL's path must represent
+ * the fully qualified name of the type (as in
+ * `path/google.protobuf.Duration`). The name should be in a canonical form
+ * (e.g., leading "." is not accepted).
+ * In practice, teams usually precompile into the binary all types that they
+ * expect it to use in the context of Any. However, for URLs which use the
+ * scheme `http`, `https`, or no scheme, one can optionally set up a type
+ * server that maps type URLs to message definitions as follows:
+ * * If no scheme is provided, `https` is assumed.
+ * * An HTTP GET on the URL must yield a [google.protobuf.Type][]
+ * value in binary format, or produce an error.
+ * * Applications are allowed to cache lookup results based on the
+ * URL, or have them precompiled into a binary to avoid any
+ * lookup. Therefore, binary compatibility needs to be preserved
+ * on changes to types. (Use versioned type names to manage
+ * breaking changes.)
+ * Note: this functionality is not currently available in the official
+ * protobuf release, and it is not used for type URLs beginning with
+ * type.googleapis.com.
+ * Schemes other than `http`, `https` (or the empty scheme) might be
+ * used with implementation specific semantics.
+ *
+ * A URL/resource name that uniquely identifies the type of the serialized
+ * protocol buffer message. This string must contain at least
+ * one "/" character. The last segment of the URL's path must represent
+ * the fully qualified name of the type (as in
+ * `path/google.protobuf.Duration`). The name should be in a canonical form
+ * (e.g., leading "." is not accepted).
+ * In practice, teams usually precompile into the binary all types that they
+ * expect it to use in the context of Any. However, for URLs which use the
+ * scheme `http`, `https`, or no scheme, one can optionally set up a type
+ * server that maps type URLs to message definitions as follows:
+ * * If no scheme is provided, `https` is assumed.
+ * * An HTTP GET on the URL must yield a [google.protobuf.Type][]
+ * value in binary format, or produce an error.
+ * * Applications are allowed to cache lookup results based on the
+ * URL, or have them precompiled into a binary to avoid any
+ * lookup. Therefore, binary compatibility needs to be preserved
+ * on changes to types. (Use versioned type names to manage
+ * breaking changes.)
+ * Note: this functionality is not currently available in the official
+ * protobuf release, and it is not used for type URLs beginning with
+ * type.googleapis.com.
+ * Schemes other than `http`, `https` (or the empty scheme) might be
+ * used with implementation specific semantics.
+ *
+ * Must be a valid serialized protocol buffer of the above specified type.
+ *
+ *
+ * bytes value = 2;
+ * @return The value.
+ */
+ com.google.protobuf.ByteString getValue();
+}
diff --git a/java/kotlin-lite/target/generated-sources/com/google/protobuf/AnyProto.java b/java/kotlin-lite/target/generated-sources/com/google/protobuf/AnyProto.java
new file mode 100644
index 0000000000000..f6dc68bb5034c
--- /dev/null
+++ b/java/kotlin-lite/target/generated-sources/com/google/protobuf/AnyProto.java
@@ -0,0 +1,16 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/any.proto
+
+package com.google.protobuf;
+
+public final class AnyProto {
+ private AnyProto() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ static {
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/java/kotlin-lite/target/generated-sources/com/google/protobuf/Api.java b/java/kotlin-lite/target/generated-sources/com/google/protobuf/Api.java
new file mode 100644
index 0000000000000..00be720e761d5
--- /dev/null
+++ b/java/kotlin-lite/target/generated-sources/com/google/protobuf/Api.java
@@ -0,0 +1,1803 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/api.proto
+
+package com.google.protobuf;
+
+/**
+ *
+ * Api is a light-weight descriptor for an API Interface.
+ * Interfaces are also described as "protocol buffer services" in some contexts,
+ * such as by the "service" keyword in a .proto file, but they are different
+ * from API Services, which represent a concrete implementation of an interface
+ * as opposed to simply a description of methods and bindings. They are also
+ * sometimes simply referred to as "APIs" in other contexts, such as the name of
+ * this message itself. See https://cloud.google.com/apis/design/glossary for
+ * detailed terminology.
+ *
+ *
+ * Protobuf type {@code google.protobuf.Api}
+ */
+public final class Api extends
+ com.google.protobuf.GeneratedMessageLite<
+ Api, Api.Builder> implements
+ // @@protoc_insertion_point(message_implements:google.protobuf.Api)
+ ApiOrBuilder {
+ private Api() {
+ name_ = "";
+ methods_ = emptyProtobufList();
+ options_ = emptyProtobufList();
+ version_ = "";
+ mixins_ = emptyProtobufList();
+ }
+ public static final int NAME_FIELD_NUMBER = 1;
+ private java.lang.String name_;
+ /**
+ *
+ * The fully qualified name of this interface, including package name
+ * followed by the interface's simple name.
+ *
+ * A version string for this interface. If specified, must have the form
+ * `major-version.minor-version`, as in `1.10`. If the minor version is
+ * omitted, it defaults to zero. If the entire version field is empty, the
+ * major version is derived from the package name, as outlined below. If the
+ * field is not empty, the version in the package name will be verified to be
+ * consistent with what is provided here.
+ * The versioning schema uses [semantic
+ * versioning](http://semver.org) where the major version number
+ * indicates a breaking change and the minor version an additive,
+ * non-breaking change. Both version numbers are signals to users
+ * what to expect from different versions, and should be carefully
+ * chosen based on the product plan.
+ * The major version is also reflected in the package name of the
+ * interface, which must end in `v<major-version>`, as in
+ * `google.feature.v1`. For major versions 0 and 1, the suffix can
+ * be omitted. Zero major versions must only be used for
+ * experimental, non-GA interfaces.
+ *
+ * A version string for this interface. If specified, must have the form
+ * `major-version.minor-version`, as in `1.10`. If the minor version is
+ * omitted, it defaults to zero. If the entire version field is empty, the
+ * major version is derived from the package name, as outlined below. If the
+ * field is not empty, the version in the package name will be verified to be
+ * consistent with what is provided here.
+ * The versioning schema uses [semantic
+ * versioning](http://semver.org) where the major version number
+ * indicates a breaking change and the minor version an additive,
+ * non-breaking change. Both version numbers are signals to users
+ * what to expect from different versions, and should be carefully
+ * chosen based on the product plan.
+ * The major version is also reflected in the package name of the
+ * interface, which must end in `v<major-version>`, as in
+ * `google.feature.v1`. For major versions 0 and 1, the suffix can
+ * be omitted. Zero major versions must only be used for
+ * experimental, non-GA interfaces.
+ *
+ *
+ * string version = 4;
+ * @return The bytes for version.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getVersionBytes() {
+ return com.google.protobuf.ByteString.copyFromUtf8(version_);
+ }
+ /**
+ *
+ * A version string for this interface. If specified, must have the form
+ * `major-version.minor-version`, as in `1.10`. If the minor version is
+ * omitted, it defaults to zero. If the entire version field is empty, the
+ * major version is derived from the package name, as outlined below. If the
+ * field is not empty, the version in the package name will be verified to be
+ * consistent with what is provided here.
+ * The versioning schema uses [semantic
+ * versioning](http://semver.org) where the major version number
+ * indicates a breaking change and the minor version an additive,
+ * non-breaking change. Both version numbers are signals to users
+ * what to expect from different versions, and should be carefully
+ * chosen based on the product plan.
+ * The major version is also reflected in the package name of the
+ * interface, which must end in `v<major-version>`, as in
+ * `google.feature.v1`. For major versions 0 and 1, the suffix can
+ * be omitted. Zero major versions must only be used for
+ * experimental, non-GA interfaces.
+ *
+ *
+ * string version = 4;
+ * @param value The version to set.
+ */
+ private void setVersion(
+ java.lang.String value) {
+ value.getClass();
+
+ version_ = value;
+ }
+ /**
+ *
+ * A version string for this interface. If specified, must have the form
+ * `major-version.minor-version`, as in `1.10`. If the minor version is
+ * omitted, it defaults to zero. If the entire version field is empty, the
+ * major version is derived from the package name, as outlined below. If the
+ * field is not empty, the version in the package name will be verified to be
+ * consistent with what is provided here.
+ * The versioning schema uses [semantic
+ * versioning](http://semver.org) where the major version number
+ * indicates a breaking change and the minor version an additive,
+ * non-breaking change. Both version numbers are signals to users
+ * what to expect from different versions, and should be carefully
+ * chosen based on the product plan.
+ * The major version is also reflected in the package name of the
+ * interface, which must end in `v<major-version>`, as in
+ * `google.feature.v1`. For major versions 0 and 1, the suffix can
+ * be omitted. Zero major versions must only be used for
+ * experimental, non-GA interfaces.
+ *
+ * A version string for this interface. If specified, must have the form
+ * `major-version.minor-version`, as in `1.10`. If the minor version is
+ * omitted, it defaults to zero. If the entire version field is empty, the
+ * major version is derived from the package name, as outlined below. If the
+ * field is not empty, the version in the package name will be verified to be
+ * consistent with what is provided here.
+ * The versioning schema uses [semantic
+ * versioning](http://semver.org) where the major version number
+ * indicates a breaking change and the minor version an additive,
+ * non-breaking change. Both version numbers are signals to users
+ * what to expect from different versions, and should be carefully
+ * chosen based on the product plan.
+ * The major version is also reflected in the package name of the
+ * interface, which must end in `v<major-version>`, as in
+ * `google.feature.v1`. For major versions 0 and 1, the suffix can
+ * be omitted. Zero major versions must only be used for
+ * experimental, non-GA interfaces.
+ *
+ *
+ * string version = 4;
+ * @param value The bytes for version to set.
+ */
+ private void setVersionBytes(
+ com.google.protobuf.ByteString value) {
+ checkByteStringIsUtf8(value);
+ version_ = value.toStringUtf8();
+
+ }
+
+ public static final int SOURCE_CONTEXT_FIELD_NUMBER = 5;
+ private com.google.protobuf.SourceContext sourceContext_;
+ /**
+ *
+ * Source context for the protocol buffer service represented by this
+ * message.
+ *
+ * Api is a light-weight descriptor for an API Interface.
+ * Interfaces are also described as "protocol buffer services" in some contexts,
+ * such as by the "service" keyword in a .proto file, but they are different
+ * from API Services, which represent a concrete implementation of an interface
+ * as opposed to simply a description of methods and bindings. They are also
+ * sometimes simply referred to as "APIs" in other contexts, such as the name of
+ * this message itself. See https://cloud.google.com/apis/design/glossary for
+ * detailed terminology.
+ *
+ *
+ * Protobuf type {@code google.protobuf.Api}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageLite.Builder<
+ com.google.protobuf.Api, Builder> implements
+ // @@protoc_insertion_point(builder_implements:google.protobuf.Api)
+ com.google.protobuf.ApiOrBuilder {
+ // Construct using com.google.protobuf.Api.newBuilder()
+ private Builder() {
+ super(DEFAULT_INSTANCE);
+ }
+
+
+ /**
+ *
+ * The fully qualified name of this interface, including package name
+ * followed by the interface's simple name.
+ *
+ * A version string for this interface. If specified, must have the form
+ * `major-version.minor-version`, as in `1.10`. If the minor version is
+ * omitted, it defaults to zero. If the entire version field is empty, the
+ * major version is derived from the package name, as outlined below. If the
+ * field is not empty, the version in the package name will be verified to be
+ * consistent with what is provided here.
+ * The versioning schema uses [semantic
+ * versioning](http://semver.org) where the major version number
+ * indicates a breaking change and the minor version an additive,
+ * non-breaking change. Both version numbers are signals to users
+ * what to expect from different versions, and should be carefully
+ * chosen based on the product plan.
+ * The major version is also reflected in the package name of the
+ * interface, which must end in `v<major-version>`, as in
+ * `google.feature.v1`. For major versions 0 and 1, the suffix can
+ * be omitted. Zero major versions must only be used for
+ * experimental, non-GA interfaces.
+ *
+ * A version string for this interface. If specified, must have the form
+ * `major-version.minor-version`, as in `1.10`. If the minor version is
+ * omitted, it defaults to zero. If the entire version field is empty, the
+ * major version is derived from the package name, as outlined below. If the
+ * field is not empty, the version in the package name will be verified to be
+ * consistent with what is provided here.
+ * The versioning schema uses [semantic
+ * versioning](http://semver.org) where the major version number
+ * indicates a breaking change and the minor version an additive,
+ * non-breaking change. Both version numbers are signals to users
+ * what to expect from different versions, and should be carefully
+ * chosen based on the product plan.
+ * The major version is also reflected in the package name of the
+ * interface, which must end in `v<major-version>`, as in
+ * `google.feature.v1`. For major versions 0 and 1, the suffix can
+ * be omitted. Zero major versions must only be used for
+ * experimental, non-GA interfaces.
+ *
+ *
+ * string version = 4;
+ * @return The bytes for version.
+ */
+ @java.lang.Override
+ public com.google.protobuf.ByteString
+ getVersionBytes() {
+ return instance.getVersionBytes();
+ }
+ /**
+ *
+ * A version string for this interface. If specified, must have the form
+ * `major-version.minor-version`, as in `1.10`. If the minor version is
+ * omitted, it defaults to zero. If the entire version field is empty, the
+ * major version is derived from the package name, as outlined below. If the
+ * field is not empty, the version in the package name will be verified to be
+ * consistent with what is provided here.
+ * The versioning schema uses [semantic
+ * versioning](http://semver.org) where the major version number
+ * indicates a breaking change and the minor version an additive,
+ * non-breaking change. Both version numbers are signals to users
+ * what to expect from different versions, and should be carefully
+ * chosen based on the product plan.
+ * The major version is also reflected in the package name of the
+ * interface, which must end in `v<major-version>`, as in
+ * `google.feature.v1`. For major versions 0 and 1, the suffix can
+ * be omitted. Zero major versions must only be used for
+ * experimental, non-GA interfaces.
+ *
+ *
+ * string version = 4;
+ * @param value The version to set.
+ * @return This builder for chaining.
+ */
+ public Builder setVersion(
+ java.lang.String value) {
+ copyOnWrite();
+ instance.setVersion(value);
+ return this;
+ }
+ /**
+ *
+ * A version string for this interface. If specified, must have the form
+ * `major-version.minor-version`, as in `1.10`. If the minor version is
+ * omitted, it defaults to zero. If the entire version field is empty, the
+ * major version is derived from the package name, as outlined below. If the
+ * field is not empty, the version in the package name will be verified to be
+ * consistent with what is provided here.
+ * The versioning schema uses [semantic
+ * versioning](http://semver.org) where the major version number
+ * indicates a breaking change and the minor version an additive,
+ * non-breaking change. Both version numbers are signals to users
+ * what to expect from different versions, and should be carefully
+ * chosen based on the product plan.
+ * The major version is also reflected in the package name of the
+ * interface, which must end in `v<major-version>`, as in
+ * `google.feature.v1`. For major versions 0 and 1, the suffix can
+ * be omitted. Zero major versions must only be used for
+ * experimental, non-GA interfaces.
+ *
+ *
+ * string version = 4;
+ * @return This builder for chaining.
+ */
+ public Builder clearVersion() {
+ copyOnWrite();
+ instance.clearVersion();
+ return this;
+ }
+ /**
+ *
+ * A version string for this interface. If specified, must have the form
+ * `major-version.minor-version`, as in `1.10`. If the minor version is
+ * omitted, it defaults to zero. If the entire version field is empty, the
+ * major version is derived from the package name, as outlined below. If the
+ * field is not empty, the version in the package name will be verified to be
+ * consistent with what is provided here.
+ * The versioning schema uses [semantic
+ * versioning](http://semver.org) where the major version number
+ * indicates a breaking change and the minor version an additive,
+ * non-breaking change. Both version numbers are signals to users
+ * what to expect from different versions, and should be carefully
+ * chosen based on the product plan.
+ * The major version is also reflected in the package name of the
+ * interface, which must end in `v<major-version>`, as in
+ * `google.feature.v1`. For major versions 0 and 1, the suffix can
+ * be omitted. Zero major versions must only be used for
+ * experimental, non-GA interfaces.
+ *
+ *
+ * string version = 4;
+ * @param value The bytes for version to set.
+ * @return This builder for chaining.
+ */
+ public Builder setVersionBytes(
+ com.google.protobuf.ByteString value) {
+ copyOnWrite();
+ instance.setVersionBytes(value);
+ return this;
+ }
+
+ /**
+ *
+ * Source context for the protocol buffer service represented by this
+ * message.
+ *
+ * A version string for this interface. If specified, must have the form
+ * `major-version.minor-version`, as in `1.10`. If the minor version is
+ * omitted, it defaults to zero. If the entire version field is empty, the
+ * major version is derived from the package name, as outlined below. If the
+ * field is not empty, the version in the package name will be verified to be
+ * consistent with what is provided here.
+ * The versioning schema uses [semantic
+ * versioning](http://semver.org) where the major version number
+ * indicates a breaking change and the minor version an additive,
+ * non-breaking change. Both version numbers are signals to users
+ * what to expect from different versions, and should be carefully
+ * chosen based on the product plan.
+ * The major version is also reflected in the package name of the
+ * interface, which must end in `v<major-version>`, as in
+ * `google.feature.v1`. For major versions 0 and 1, the suffix can
+ * be omitted. Zero major versions must only be used for
+ * experimental, non-GA interfaces.
+ *
+ * A version string for this interface. If specified, must have the form
+ * `major-version.minor-version`, as in `1.10`. If the minor version is
+ * omitted, it defaults to zero. If the entire version field is empty, the
+ * major version is derived from the package name, as outlined below. If the
+ * field is not empty, the version in the package name will be verified to be
+ * consistent with what is provided here.
+ * The versioning schema uses [semantic
+ * versioning](http://semver.org) where the major version number
+ * indicates a breaking change and the minor version an additive,
+ * non-breaking change. Both version numbers are signals to users
+ * what to expect from different versions, and should be carefully
+ * chosen based on the product plan.
+ * The major version is also reflected in the package name of the
+ * interface, which must end in `v<major-version>`, as in
+ * `google.feature.v1`. For major versions 0 and 1, the suffix can
+ * be omitted. Zero major versions must only be used for
+ * experimental, non-GA interfaces.
+ *
+ *
+ * string version = 4;
+ * @return The bytes for version.
+ */
+ com.google.protobuf.ByteString
+ getVersionBytes();
+
+ /**
+ *
+ * Source context for the protocol buffer service represented by this
+ * message.
+ *
+ *
+ * .google.protobuf.SourceContext source_context = 5;
+ * @return Whether the sourceContext field is set.
+ */
+ boolean hasSourceContext();
+ /**
+ *
+ * Source context for the protocol buffer service represented by this
+ * message.
+ *
+ *
+ * .google.protobuf.Syntax syntax = 7;
+ * @return The enum numeric value on the wire for syntax.
+ */
+ int getSyntaxValue();
+ /**
+ *
+ * The source syntax of the service.
+ *
+ *
+ * .google.protobuf.Syntax syntax = 7;
+ * @return The syntax.
+ */
+ com.google.protobuf.Syntax getSyntax();
+}
diff --git a/java/kotlin-lite/target/generated-sources/com/google/protobuf/ApiProto.java b/java/kotlin-lite/target/generated-sources/com/google/protobuf/ApiProto.java
new file mode 100644
index 0000000000000..79a9b3da72fd4
--- /dev/null
+++ b/java/kotlin-lite/target/generated-sources/com/google/protobuf/ApiProto.java
@@ -0,0 +1,16 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/api.proto
+
+package com.google.protobuf;
+
+public final class ApiProto {
+ private ApiProto() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ static {
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/java/kotlin-lite/target/generated-sources/com/google/protobuf/ArrayDecoders.java b/java/kotlin-lite/target/generated-sources/com/google/protobuf/ArrayDecoders.java
new file mode 100644
index 0000000000000..1217e112e0cef
--- /dev/null
+++ b/java/kotlin-lite/target/generated-sources/com/google/protobuf/ArrayDecoders.java
@@ -0,0 +1,1076 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package com.google.protobuf;
+
+import static com.google.protobuf.MessageSchema.getMutableUnknownFields;
+
+import com.google.protobuf.Internal.ProtobufList;
+import java.io.IOException;
+
+/**
+ * Helper functions to decode protobuf wire format from a byte array.
+ *
+ *
Note that these functions don't do boundary check on the byte array but instead rely on Java
+ * VM to check it. That means parsing routines utilizing these functions must catch
+ * IndexOutOfBoundsException and convert it to protobuf's InvalidProtocolBufferException when
+ * crossing protobuf public API boundaries.
+ */
+final class ArrayDecoders {
+ /**
+ * A helper used to return multiple values in a Java function. Java doesn't natively support
+ * returning multiple values in a function. Creating a new Object to hold the return values will
+ * be too expensive. Instead, we pass a Registers instance to functions that want to return
+ * multiple values and let the function set the return value in this Registers instance instead.
+ *
+ *
TODO(xiaofeng): This could be merged into CodedInputStream or CodedInputStreamReader which
+ * is already being passed through all the parsing routines.
+ */
+ static final class Registers {
+ public int int1;
+ public long long1;
+ public Object object1;
+ public final ExtensionRegistryLite extensionRegistry;
+
+ Registers() {
+ this.extensionRegistry = ExtensionRegistryLite.getEmptyRegistry();
+ }
+
+ Registers(ExtensionRegistryLite extensionRegistry) {
+ if (extensionRegistry == null) {
+ throw new NullPointerException();
+ }
+ this.extensionRegistry = extensionRegistry;
+ }
+ }
+
+ /**
+ * Decodes a varint. Returns the position after the varint. The decoded varint is stored in
+ * registers.int1.
+ */
+ static int decodeVarint32(byte[] data, int position, Registers registers) {
+ int value = data[position++];
+ if (value >= 0) {
+ registers.int1 = value;
+ return position;
+ }
+ return decodeVarint32(value, data, position, registers);
+ }
+
+ /** Like decodeVarint32 except that the first byte is already read. */
+ static int decodeVarint32(int firstByte, byte[] data, int position, Registers registers) {
+ int value = firstByte & 0x7F;
+ final byte b2 = data[position++];
+ if (b2 >= 0) {
+ registers.int1 = value | ((int) b2 << 7);
+ return position;
+ }
+ value |= (b2 & 0x7F) << 7;
+
+ final byte b3 = data[position++];
+ if (b3 >= 0) {
+ registers.int1 = value | ((int) b3 << 14);
+ return position;
+ }
+ value |= (b3 & 0x7F) << 14;
+
+ final byte b4 = data[position++];
+ if (b4 >= 0) {
+ registers.int1 = value | ((int) b4 << 21);
+ return position;
+ }
+ value |= (b4 & 0x7F) << 21;
+
+ final byte b5 = data[position++];
+ if (b5 >= 0) {
+ registers.int1 = value | ((int) b5 << 28);
+ return position;
+ }
+ value |= (b5 & 0x7F) << 28;
+
+ while (data[position++] < 0) {}
+
+ registers.int1 = value;
+ return position;
+ }
+
+ /**
+ * Decodes a varint. Returns the position after the varint. The decoded varint is stored in
+ * registers.long1.
+ */
+ static int decodeVarint64(byte[] data, int position, Registers registers) {
+ long value = data[position++];
+ if (value >= 0) {
+ registers.long1 = value;
+ return position;
+ } else {
+ return decodeVarint64(value, data, position, registers);
+ }
+ }
+
+ /** Like decodeVarint64 except that the first byte is already read. */
+ static int decodeVarint64(long firstByte, byte[] data, int position, Registers registers) {
+ long value = firstByte & 0x7F;
+ byte next = data[position++];
+ int shift = 7;
+ value |= (long) (next & 0x7F) << 7;
+ while (next < 0) {
+ next = data[position++];
+ shift += 7;
+ value |= (long) (next & 0x7F) << shift;
+ }
+ registers.long1 = value;
+ return position;
+ }
+
+ /** Decodes and returns a fixed32 value. */
+ static int decodeFixed32(byte[] data, int position) {
+ return (data[position] & 0xff)
+ | ((data[position + 1] & 0xff) << 8)
+ | ((data[position + 2] & 0xff) << 16)
+ | ((data[position + 3] & 0xff) << 24);
+ }
+
+ /** Decodes and returns a fixed64 value. */
+ static long decodeFixed64(byte[] data, int position) {
+ return (data[position] & 0xffL)
+ | ((data[position + 1] & 0xffL) << 8)
+ | ((data[position + 2] & 0xffL) << 16)
+ | ((data[position + 3] & 0xffL) << 24)
+ | ((data[position + 4] & 0xffL) << 32)
+ | ((data[position + 5] & 0xffL) << 40)
+ | ((data[position + 6] & 0xffL) << 48)
+ | ((data[position + 7] & 0xffL) << 56);
+ }
+
+ /** Decodes and returns a double value. */
+ static double decodeDouble(byte[] data, int position) {
+ return Double.longBitsToDouble(decodeFixed64(data, position));
+ }
+
+ /** Decodes and returns a float value. */
+ static float decodeFloat(byte[] data, int position) {
+ return Float.intBitsToFloat(decodeFixed32(data, position));
+ }
+
+ /** Decodes a string value. */
+ static int decodeString(byte[] data, int position, Registers registers)
+ throws InvalidProtocolBufferException {
+ position = decodeVarint32(data, position, registers);
+ final int length = registers.int1;
+ if (length < 0) {
+ throw InvalidProtocolBufferException.negativeSize();
+ } else if (length == 0) {
+ registers.object1 = "";
+ return position;
+ } else {
+ registers.object1 = new String(data, position, length, Internal.UTF_8);
+ return position + length;
+ }
+ }
+
+ /** Decodes a string value with utf8 check. */
+ static int decodeStringRequireUtf8(byte[] data, int position, Registers registers)
+ throws InvalidProtocolBufferException {
+ position = decodeVarint32(data, position, registers);
+ final int length = registers.int1;
+ if (length < 0) {
+ throw InvalidProtocolBufferException.negativeSize();
+ } else if (length == 0) {
+ registers.object1 = "";
+ return position;
+ } else {
+ registers.object1 = Utf8.decodeUtf8(data, position, length);
+ return position + length;
+ }
+ }
+
+ /** Decodes a bytes value. */
+ static int decodeBytes(byte[] data, int position, Registers registers)
+ throws InvalidProtocolBufferException {
+ position = decodeVarint32(data, position, registers);
+ final int length = registers.int1;
+ if (length < 0) {
+ throw InvalidProtocolBufferException.negativeSize();
+ } else if (length > data.length - position) {
+ throw InvalidProtocolBufferException.truncatedMessage();
+ } else if (length == 0) {
+ registers.object1 = ByteString.EMPTY;
+ return position;
+ } else {
+ registers.object1 = ByteString.copyFrom(data, position, length);
+ return position + length;
+ }
+ }
+
+ /** Decodes a message value. */
+ @SuppressWarnings({"unchecked", "rawtypes"})
+ static int decodeMessageField(
+ Schema schema, byte[] data, int position, int limit, Registers registers) throws IOException {
+ int length = data[position++];
+ if (length < 0) {
+ position = decodeVarint32(length, data, position, registers);
+ length = registers.int1;
+ }
+ if (length < 0 || length > limit - position) {
+ throw InvalidProtocolBufferException.truncatedMessage();
+ }
+ Object result = schema.newInstance();
+ schema.mergeFrom(result, data, position, position + length, registers);
+ schema.makeImmutable(result);
+ registers.object1 = result;
+ return position + length;
+ }
+
+ /** Decodes a group value. */
+ @SuppressWarnings({"unchecked", "rawtypes"})
+ static int decodeGroupField(
+ Schema schema, byte[] data, int position, int limit, int endGroup, Registers registers)
+ throws IOException {
+ // A group field must has a MessageSchema (the only other subclass of Schema is MessageSetSchema
+ // and it can't be used in group fields).
+ final MessageSchema messageSchema = (MessageSchema) schema;
+ Object result = messageSchema.newInstance();
+ // It's OK to directly use parseProto2Message since proto3 doesn't have group.
+ final int endPosition =
+ messageSchema.parseProto2Message(result, data, position, limit, endGroup, registers);
+ messageSchema.makeImmutable(result);
+ registers.object1 = result;
+ return endPosition;
+ }
+
+ /** Decodes a repeated 32-bit varint field. Returns the position after all read values. */
+ static int decodeVarint32List(
+ int tag, byte[] data, int position, int limit, ProtobufList> list, Registers registers) {
+ final IntArrayList output = (IntArrayList) list;
+ position = decodeVarint32(data, position, registers);
+ output.addInt(registers.int1);
+ while (position < limit) {
+ int nextPosition = decodeVarint32(data, position, registers);
+ if (tag != registers.int1) {
+ break;
+ }
+ position = decodeVarint32(data, nextPosition, registers);
+ output.addInt(registers.int1);
+ }
+ return position;
+ }
+
+ /** Decodes a repeated 64-bit varint field. Returns the position after all read values. */
+ static int decodeVarint64List(
+ int tag, byte[] data, int position, int limit, ProtobufList> list, Registers registers) {
+ final LongArrayList output = (LongArrayList) list;
+ position = decodeVarint64(data, position, registers);
+ output.addLong(registers.long1);
+ while (position < limit) {
+ int nextPosition = decodeVarint32(data, position, registers);
+ if (tag != registers.int1) {
+ break;
+ }
+ position = decodeVarint64(data, nextPosition, registers);
+ output.addLong(registers.long1);
+ }
+ return position;
+ }
+
+ /** Decodes a repeated fixed32 field. Returns the position after all read values. */
+ static int decodeFixed32List(
+ int tag, byte[] data, int position, int limit, ProtobufList> list, Registers registers) {
+ final IntArrayList output = (IntArrayList) list;
+ output.addInt(decodeFixed32(data, position));
+ position += 4;
+ while (position < limit) {
+ int nextPosition = decodeVarint32(data, position, registers);
+ if (tag != registers.int1) {
+ break;
+ }
+ output.addInt(decodeFixed32(data, nextPosition));
+ position = nextPosition + 4;
+ }
+ return position;
+ }
+
+ /** Decodes a repeated fixed64 field. Returns the position after all read values. */
+ static int decodeFixed64List(
+ int tag, byte[] data, int position, int limit, ProtobufList> list, Registers registers) {
+ final LongArrayList output = (LongArrayList) list;
+ output.addLong(decodeFixed64(data, position));
+ position += 8;
+ while (position < limit) {
+ int nextPosition = decodeVarint32(data, position, registers);
+ if (tag != registers.int1) {
+ break;
+ }
+ output.addLong(decodeFixed64(data, nextPosition));
+ position = nextPosition + 8;
+ }
+ return position;
+ }
+
+ /** Decodes a repeated float field. Returns the position after all read values. */
+ static int decodeFloatList(
+ int tag, byte[] data, int position, int limit, ProtobufList> list, Registers registers) {
+ final FloatArrayList output = (FloatArrayList) list;
+ output.addFloat(decodeFloat(data, position));
+ position += 4;
+ while (position < limit) {
+ int nextPosition = decodeVarint32(data, position, registers);
+ if (tag != registers.int1) {
+ break;
+ }
+ output.addFloat(decodeFloat(data, nextPosition));
+ position = nextPosition + 4;
+ }
+ return position;
+ }
+
+ /** Decodes a repeated double field. Returns the position after all read values. */
+ static int decodeDoubleList(
+ int tag, byte[] data, int position, int limit, ProtobufList> list, Registers registers) {
+ final DoubleArrayList output = (DoubleArrayList) list;
+ output.addDouble(decodeDouble(data, position));
+ position += 8;
+ while (position < limit) {
+ int nextPosition = decodeVarint32(data, position, registers);
+ if (tag != registers.int1) {
+ break;
+ }
+ output.addDouble(decodeDouble(data, nextPosition));
+ position = nextPosition + 8;
+ }
+ return position;
+ }
+
+ /** Decodes a repeated boolean field. Returns the position after all read values. */
+ static int decodeBoolList(
+ int tag, byte[] data, int position, int limit, ProtobufList> list, Registers registers) {
+ final BooleanArrayList output = (BooleanArrayList) list;
+ position = decodeVarint64(data, position, registers);
+ output.addBoolean(registers.long1 != 0);
+ while (position < limit) {
+ int nextPosition = decodeVarint32(data, position, registers);
+ if (tag != registers.int1) {
+ break;
+ }
+ position = decodeVarint64(data, nextPosition, registers);
+ output.addBoolean(registers.long1 != 0);
+ }
+ return position;
+ }
+
+ /** Decodes a repeated sint32 field. Returns the position after all read values. */
+ static int decodeSInt32List(
+ int tag, byte[] data, int position, int limit, ProtobufList> list, Registers registers) {
+ final IntArrayList output = (IntArrayList) list;
+ position = decodeVarint32(data, position, registers);
+ output.addInt(CodedInputStream.decodeZigZag32(registers.int1));
+ while (position < limit) {
+ int nextPosition = decodeVarint32(data, position, registers);
+ if (tag != registers.int1) {
+ break;
+ }
+ position = decodeVarint32(data, nextPosition, registers);
+ output.addInt(CodedInputStream.decodeZigZag32(registers.int1));
+ }
+ return position;
+ }
+
+ /** Decodes a repeated sint64 field. Returns the position after all read values. */
+ static int decodeSInt64List(
+ int tag, byte[] data, int position, int limit, ProtobufList> list, Registers registers) {
+ final LongArrayList output = (LongArrayList) list;
+ position = decodeVarint64(data, position, registers);
+ output.addLong(CodedInputStream.decodeZigZag64(registers.long1));
+ while (position < limit) {
+ int nextPosition = decodeVarint32(data, position, registers);
+ if (tag != registers.int1) {
+ break;
+ }
+ position = decodeVarint64(data, nextPosition, registers);
+ output.addLong(CodedInputStream.decodeZigZag64(registers.long1));
+ }
+ return position;
+ }
+
+ /** Decodes a packed 32-bit varint field. Returns the position after all read values. */
+ static int decodePackedVarint32List(
+ byte[] data, int position, ProtobufList> list, Registers registers) throws IOException {
+ final IntArrayList output = (IntArrayList) list;
+ position = decodeVarint32(data, position, registers);
+ final int fieldLimit = position + registers.int1;
+ while (position < fieldLimit) {
+ position = decodeVarint32(data, position, registers);
+ output.addInt(registers.int1);
+ }
+ if (position != fieldLimit) {
+ throw InvalidProtocolBufferException.truncatedMessage();
+ }
+ return position;
+ }
+
+ /** Decodes a packed 64-bit varint field. Returns the position after all read values. */
+ static int decodePackedVarint64List(
+ byte[] data, int position, ProtobufList> list, Registers registers) throws IOException {
+ final LongArrayList output = (LongArrayList) list;
+ position = decodeVarint32(data, position, registers);
+ final int fieldLimit = position + registers.int1;
+ while (position < fieldLimit) {
+ position = decodeVarint64(data, position, registers);
+ output.addLong(registers.long1);
+ }
+ if (position != fieldLimit) {
+ throw InvalidProtocolBufferException.truncatedMessage();
+ }
+ return position;
+ }
+
+ /** Decodes a packed fixed32 field. Returns the position after all read values. */
+ static int decodePackedFixed32List(
+ byte[] data, int position, ProtobufList> list, Registers registers) throws IOException {
+ final IntArrayList output = (IntArrayList) list;
+ position = decodeVarint32(data, position, registers);
+ final int fieldLimit = position + registers.int1;
+ while (position < fieldLimit) {
+ output.addInt(decodeFixed32(data, position));
+ position += 4;
+ }
+ if (position != fieldLimit) {
+ throw InvalidProtocolBufferException.truncatedMessage();
+ }
+ return position;
+ }
+
+ /** Decodes a packed fixed64 field. Returns the position after all read values. */
+ static int decodePackedFixed64List(
+ byte[] data, int position, ProtobufList> list, Registers registers) throws IOException {
+ final LongArrayList output = (LongArrayList) list;
+ position = decodeVarint32(data, position, registers);
+ final int fieldLimit = position + registers.int1;
+ while (position < fieldLimit) {
+ output.addLong(decodeFixed64(data, position));
+ position += 8;
+ }
+ if (position != fieldLimit) {
+ throw InvalidProtocolBufferException.truncatedMessage();
+ }
+ return position;
+ }
+
+ /** Decodes a packed float field. Returns the position after all read values. */
+ static int decodePackedFloatList(
+ byte[] data, int position, ProtobufList> list, Registers registers) throws IOException {
+ final FloatArrayList output = (FloatArrayList) list;
+ position = decodeVarint32(data, position, registers);
+ final int fieldLimit = position + registers.int1;
+ while (position < fieldLimit) {
+ output.addFloat(decodeFloat(data, position));
+ position += 4;
+ }
+ if (position != fieldLimit) {
+ throw InvalidProtocolBufferException.truncatedMessage();
+ }
+ return position;
+ }
+
+ /** Decodes a packed double field. Returns the position after all read values. */
+ static int decodePackedDoubleList(
+ byte[] data, int position, ProtobufList> list, Registers registers) throws IOException {
+ final DoubleArrayList output = (DoubleArrayList) list;
+ position = decodeVarint32(data, position, registers);
+ final int fieldLimit = position + registers.int1;
+ while (position < fieldLimit) {
+ output.addDouble(decodeDouble(data, position));
+ position += 8;
+ }
+ if (position != fieldLimit) {
+ throw InvalidProtocolBufferException.truncatedMessage();
+ }
+ return position;
+ }
+
+ /** Decodes a packed boolean field. Returns the position after all read values. */
+ static int decodePackedBoolList(
+ byte[] data, int position, ProtobufList> list, Registers registers) throws IOException {
+ final BooleanArrayList output = (BooleanArrayList) list;
+ position = decodeVarint32(data, position, registers);
+ final int fieldLimit = position + registers.int1;
+ while (position < fieldLimit) {
+ position = decodeVarint64(data, position, registers);
+ output.addBoolean(registers.long1 != 0);
+ }
+ if (position != fieldLimit) {
+ throw InvalidProtocolBufferException.truncatedMessage();
+ }
+ return position;
+ }
+
+ /** Decodes a packed sint32 field. Returns the position after all read values. */
+ static int decodePackedSInt32List(
+ byte[] data, int position, ProtobufList> list, Registers registers) throws IOException {
+ final IntArrayList output = (IntArrayList) list;
+ position = decodeVarint32(data, position, registers);
+ final int fieldLimit = position + registers.int1;
+ while (position < fieldLimit) {
+ position = decodeVarint32(data, position, registers);
+ output.addInt(CodedInputStream.decodeZigZag32(registers.int1));
+ }
+ if (position != fieldLimit) {
+ throw InvalidProtocolBufferException.truncatedMessage();
+ }
+ return position;
+ }
+
+ /** Decodes a packed sint64 field. Returns the position after all read values. */
+ @SuppressWarnings("unchecked")
+ static int decodePackedSInt64List(
+ byte[] data, int position, ProtobufList> list, Registers registers) throws IOException {
+ final LongArrayList output = (LongArrayList) list;
+ position = decodeVarint32(data, position, registers);
+ final int fieldLimit = position + registers.int1;
+ while (position < fieldLimit) {
+ position = decodeVarint64(data, position, registers);
+ output.addLong(CodedInputStream.decodeZigZag64(registers.long1));
+ }
+ if (position != fieldLimit) {
+ throw InvalidProtocolBufferException.truncatedMessage();
+ }
+ return position;
+ }
+
+ /** Decodes a repeated string field. Returns the position after all read values. */
+ @SuppressWarnings("unchecked")
+ static int decodeStringList(
+ int tag, byte[] data, int position, int limit, ProtobufList> list, Registers registers)
+ throws InvalidProtocolBufferException {
+ final ProtobufList output = (ProtobufList) list;
+ position = decodeVarint32(data, position, registers);
+ final int length = registers.int1;
+ if (length < 0) {
+ throw InvalidProtocolBufferException.negativeSize();
+ } else if (length == 0) {
+ output.add("");
+ } else {
+ String value = new String(data, position, length, Internal.UTF_8);
+ output.add(value);
+ position += length;
+ }
+ while (position < limit) {
+ int nextPosition = decodeVarint32(data, position, registers);
+ if (tag != registers.int1) {
+ break;
+ }
+ position = decodeVarint32(data, nextPosition, registers);
+ final int nextLength = registers.int1;
+ if (nextLength < 0) {
+ throw InvalidProtocolBufferException.negativeSize();
+ } else if (nextLength == 0) {
+ output.add("");
+ } else {
+ String value = new String(data, position, nextLength, Internal.UTF_8);
+ output.add(value);
+ position += nextLength;
+ }
+ }
+ return position;
+ }
+
+ /**
+ * Decodes a repeated string field with utf8 check. Returns the position after all read values.
+ */
+ @SuppressWarnings("unchecked")
+ static int decodeStringListRequireUtf8(
+ int tag, byte[] data, int position, int limit, ProtobufList> list, Registers registers)
+ throws InvalidProtocolBufferException {
+ final ProtobufList output = (ProtobufList) list;
+ position = decodeVarint32(data, position, registers);
+ final int length = registers.int1;
+ if (length < 0) {
+ throw InvalidProtocolBufferException.negativeSize();
+ } else if (length == 0) {
+ output.add("");
+ } else {
+ if (!Utf8.isValidUtf8(data, position, position + length)) {
+ throw InvalidProtocolBufferException.invalidUtf8();
+ }
+ String value = new String(data, position, length, Internal.UTF_8);
+ output.add(value);
+ position += length;
+ }
+ while (position < limit) {
+ int nextPosition = decodeVarint32(data, position, registers);
+ if (tag != registers.int1) {
+ break;
+ }
+ position = decodeVarint32(data, nextPosition, registers);
+ final int nextLength = registers.int1;
+ if (nextLength < 0) {
+ throw InvalidProtocolBufferException.negativeSize();
+ } else if (nextLength == 0) {
+ output.add("");
+ } else {
+ if (!Utf8.isValidUtf8(data, position, position + nextLength)) {
+ throw InvalidProtocolBufferException.invalidUtf8();
+ }
+ String value = new String(data, position, nextLength, Internal.UTF_8);
+ output.add(value);
+ position += nextLength;
+ }
+ }
+ return position;
+ }
+
+ /** Decodes a repeated bytes field. Returns the position after all read values. */
+ @SuppressWarnings("unchecked")
+ static int decodeBytesList(
+ int tag, byte[] data, int position, int limit, ProtobufList> list, Registers registers)
+ throws InvalidProtocolBufferException {
+ final ProtobufList output = (ProtobufList) list;
+ position = decodeVarint32(data, position, registers);
+ final int length = registers.int1;
+ if (length < 0) {
+ throw InvalidProtocolBufferException.negativeSize();
+ } else if (length > data.length - position) {
+ throw InvalidProtocolBufferException.truncatedMessage();
+ } else if (length == 0) {
+ output.add(ByteString.EMPTY);
+ } else {
+ output.add(ByteString.copyFrom(data, position, length));
+ position += length;
+ }
+ while (position < limit) {
+ int nextPosition = decodeVarint32(data, position, registers);
+ if (tag != registers.int1) {
+ break;
+ }
+ position = decodeVarint32(data, nextPosition, registers);
+ final int nextLength = registers.int1;
+ if (nextLength < 0) {
+ throw InvalidProtocolBufferException.negativeSize();
+ } else if (nextLength > data.length - position) {
+ throw InvalidProtocolBufferException.truncatedMessage();
+ } else if (nextLength == 0) {
+ output.add(ByteString.EMPTY);
+ } else {
+ output.add(ByteString.copyFrom(data, position, nextLength));
+ position += nextLength;
+ }
+ }
+ return position;
+ }
+
+ /**
+ * Decodes a repeated message field
+ *
+ * @return The position of after read all messages
+ */
+ @SuppressWarnings({"unchecked"})
+ static int decodeMessageList(
+ Schema> schema,
+ int tag,
+ byte[] data,
+ int position,
+ int limit,
+ ProtobufList> list,
+ Registers registers)
+ throws IOException {
+ final ProtobufList