Merge tag 'v1.27.1' into HEAD

Change-Id: I693fc9c48785ab569996abcea6194652f53cc3cb
diff --git a/Android.gen.bp b/Android.gen.bp
index eb645da..65138a2 100644
--- a/Android.gen.bp
+++ b/Android.gen.bp
@@ -671,7 +671,6 @@
     pkgPath: "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3",
     deps: [
         "golang-protobuf-reflect-protoreflect",
-        "golang-protobuf-runtime-protoiface",
         "golang-protobuf-runtime-protoimpl",
     ],
     srcs: [
@@ -692,7 +691,6 @@
     pkgPath: "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message4",
     deps: [
         "golang-protobuf-reflect-protoreflect",
-        "golang-protobuf-runtime-protoiface",
         "golang-protobuf-runtime-protoimpl",
     ],
     srcs: [
@@ -720,7 +718,6 @@
     pkgPath: "google.golang.org/protobuf/internal/testprotos/conformance",
     deps: [
         "golang-protobuf-reflect-protoreflect",
-        "golang-protobuf-runtime-protoiface",
         "golang-protobuf-runtime-protoimpl",
         "golang-protobuf-types-known-anypb",
         "golang-protobuf-types-known-durationpb",
@@ -737,6 +734,18 @@
 }
 
 bootstrap_go_package {
+    name: "golang-protobuf-internal-testprotos-enums",
+    pkgPath: "google.golang.org/protobuf/internal/testprotos/enums",
+    deps: [
+        "golang-protobuf-reflect-protoreflect",
+        "golang-protobuf-runtime-protoimpl",
+    ],
+    srcs: [
+        "internal/testprotos/enums/enums.pb.go",
+    ],
+}
+
+bootstrap_go_package {
     name: "golang-protobuf-internal-testprotos-fieldtrack",
     pkgPath: "google.golang.org/protobuf/internal/testprotos/fieldtrack",
     deps: [
@@ -955,7 +964,6 @@
     pkgPath: "google.golang.org/protobuf/internal/testprotos/messageset/messagesetpb",
     deps: [
         "golang-protobuf-reflect-protoreflect",
-        "golang-protobuf-runtime-protoiface",
         "golang-protobuf-runtime-protoimpl",
     ],
     srcs: [
@@ -977,12 +985,30 @@
 }
 
 bootstrap_go_package {
+    name: "golang-protobuf-internal-testprotos-news",
+    pkgPath: "google.golang.org/protobuf/internal/testprotos/news",
+    deps: [
+        "golang-protobuf-reflect-protoreflect",
+        "golang-protobuf-runtime-protoimpl",
+        "golang-protobuf-types-known-anypb",
+        "golang-protobuf-types-known-timestamppb",
+    ],
+    srcs: [
+        "internal/testprotos/news/news.pb.go",
+    ],
+}
+
+bootstrap_go_package {
     name: "golang-protobuf-internal-testprotos-nullable",
     pkgPath: "google.golang.org/protobuf/internal/testprotos/nullable",
     deps: [
+        "go-cmp",
         "golang-protobuf-encoding-prototext",
+        "golang-protobuf-encoding-protowire",
+        "golang-protobuf-proto",
         "golang-protobuf-reflect-protoreflect",
         "golang-protobuf-runtime-protoimpl",
+        "golang-protobuf-testing-protocmp",
         "golang-protobuf-types-descriptorpb",
     ],
     srcs: [
@@ -998,7 +1024,6 @@
     pkgPath: "google.golang.org/protobuf/internal/testprotos/order",
     deps: [
         "golang-protobuf-reflect-protoreflect",
-        "golang-protobuf-runtime-protoiface",
         "golang-protobuf-runtime-protoimpl",
     ],
     srcs: [
@@ -1011,7 +1036,6 @@
     pkgPath: "google.golang.org/protobuf/internal/testprotos/registry",
     deps: [
         "golang-protobuf-reflect-protoreflect",
-        "golang-protobuf-runtime-protoiface",
         "golang-protobuf-runtime-protoimpl",
     ],
     srcs: [
@@ -1035,9 +1059,9 @@
     name: "golang-protobuf-internal-testprotos-test",
     pkgPath: "google.golang.org/protobuf/internal/testprotos/test",
     deps: [
+        "golang-protobuf-internal-testprotos-enums",
         "golang-protobuf-proto",
         "golang-protobuf-reflect-protoreflect",
-        "golang-protobuf-runtime-protoiface",
         "golang-protobuf-runtime-protoimpl",
     ],
     srcs: [
@@ -1092,7 +1116,6 @@
     pkgPath: "google.golang.org/protobuf/internal/testprotos/textpb2",
     deps: [
         "golang-protobuf-reflect-protoreflect",
-        "golang-protobuf-runtime-protoiface",
         "golang-protobuf-runtime-protoimpl",
         "golang-protobuf-types-known-anypb",
         "golang-protobuf-types-known-durationpb",
@@ -1202,6 +1225,45 @@
 }
 
 bootstrap_go_package {
+    name: "golang-protobuf-reflect-protopath",
+    pkgPath: "google.golang.org/protobuf/reflect/protopath",
+    deps: [
+        "golang-protobuf-internal-encoding-text",
+        "golang-protobuf-internal-msgfmt",
+        "golang-protobuf-reflect-protoreflect",
+    ],
+    srcs: [
+        "reflect/protopath/path.go",
+        "reflect/protopath/step.go",
+    ],
+}
+
+bootstrap_go_package {
+    name: "golang-protobuf-reflect-protorange",
+    pkgPath: "google.golang.org/protobuf/reflect/protorange",
+    deps: [
+        "go-cmp",
+        "go-cmp-cmpopts",
+        "golang-protobuf-internal-genid",
+        "golang-protobuf-internal-order",
+        "golang-protobuf-internal-testprotos-news",
+        "golang-protobuf-proto",
+        "golang-protobuf-reflect-protopath",
+        "golang-protobuf-reflect-protoreflect",
+        "golang-protobuf-reflect-protoregistry",
+        "golang-protobuf-testing-protocmp",
+        "golang-protobuf-types-known-anypb",
+        "golang-protobuf-types-known-timestamppb",
+    ],
+    srcs: [
+        "reflect/protorange/range.go",
+    ],
+    testSrcs: [
+        "reflect/protorange/range_test.go",
+    ],
+}
+
+bootstrap_go_package {
     name: "golang-protobuf-reflect-protoreflect",
     pkgPath: "google.golang.org/protobuf/reflect/protoreflect",
     deps: [
@@ -1341,7 +1403,6 @@
     pkgPath: "google.golang.org/protobuf/types/descriptorpb",
     deps: [
         "golang-protobuf-reflect-protoreflect",
-        "golang-protobuf-runtime-protoiface",
         "golang-protobuf-runtime-protoimpl",
     ],
     srcs: [