Browse Source

Upgrade cmake build to grpc 162 (#12417)

wu-hui 2 years ago
parent
commit
ab606e002e
93 changed files with 22911 additions and 23469 deletions
  1. 1 1
      .github/workflows/firestore.yml
  2. 4 11
      CMakeLists.txt
  3. 9 13
      Firestore/Example/Firestore.xcodeproj/xcshareddata/xcschemes/Firestore_Example_iOS.xcscheme
  4. 9 13
      Firestore/Example/Firestore.xcodeproj/xcshareddata/xcschemes/Firestore_Example_macOS.xcscheme
  5. 9 13
      Firestore/Example/Firestore.xcodeproj/xcshareddata/xcschemes/Firestore_Example_tvOS.xcscheme
  6. 6 0
      Firestore/Example/Podfile
  7. 11 3
      Firestore/Example/ProtobufCpp.podspec
  8. 469 426
      Firestore/Protos/cpp/firestore/bundle.pb.cc
  9. 780 576
      Firestore/Protos/cpp/firestore/bundle.pb.h
  10. 507 479
      Firestore/Protos/cpp/firestore/local/maybe_document.pb.cc
  11. 566 372
      Firestore/Protos/cpp/firestore/local/maybe_document.pb.h
  12. 487 459
      Firestore/Protos/cpp/firestore/local/mutation.pb.cc
  13. 495 336
      Firestore/Protos/cpp/firestore/local/mutation.pb.h
  14. 494 443
      Firestore/Protos/cpp/firestore/local/target.pb.cc
  15. 718 481
      Firestore/Protos/cpp/firestore/local/target.pb.h
  16. 77 48
      Firestore/Protos/cpp/google/api/annotations.pb.cc
  17. 60 51
      Firestore/Protos/cpp/google/api/annotations.pb.h
  18. 596 683
      Firestore/Protos/cpp/google/api/http.pb.cc
  19. 549 546
      Firestore/Protos/cpp/google/api/http.pb.h
  20. 540 591
      Firestore/Protos/cpp/google/api/resource.pb.cc
  21. 644 726
      Firestore/Protos/cpp/google/api/resource.pb.h
  22. 551 549
      Firestore/Protos/cpp/google/firestore/admin/index.pb.cc
  23. 530 444
      Firestore/Protos/cpp/google/firestore/admin/index.pb.h
  24. 283 285
      Firestore/Protos/cpp/google/firestore/v1/aggregation_result.pb.cc
  25. 205 160
      Firestore/Protos/cpp/google/firestore/v1/aggregation_result.pb.h
  26. 452 419
      Firestore/Protos/cpp/google/firestore/v1/bloom_filter.pb.cc
  27. 417 278
      Firestore/Protos/cpp/google/firestore/v1/bloom_filter.pb.h
  28. 512 493
      Firestore/Protos/cpp/google/firestore/v1/common.pb.cc
  29. 623 423
      Firestore/Protos/cpp/google/firestore/v1/common.pb.h
  30. 541 513
      Firestore/Protos/cpp/google/firestore/v1/document.pb.cc
  31. 544 344
      Firestore/Protos/cpp/google/firestore/v1/document.pb.h
  32. 1398 1200
      Firestore/Protos/cpp/google/firestore/v1/firestore.pb.cc
  33. 674 648
      Firestore/Protos/cpp/google/firestore/v1/firestore.pb.h
  34. 661 593
      Firestore/Protos/cpp/google/firestore/v1/query.pb.cc
  35. 945 832
      Firestore/Protos/cpp/google/firestore/v1/query.pb.h
  36. 752 698
      Firestore/Protos/cpp/google/firestore/v1/write.pb.cc
  37. 1856 1362
      Firestore/Protos/cpp/google/firestore/v1/write.pb.h
  38. 275 253
      Firestore/Protos/cpp/google/rpc/status.pb.cc
  39. 260 196
      Firestore/Protos/cpp/google/rpc/status.pb.h
  40. 259 208
      Firestore/Protos/cpp/google/type/latlng.pb.cc
  41. 189 123
      Firestore/Protos/cpp/google/type/latlng.pb.h
  42. 1 1
      Firestore/Protos/nanopb/firestore/bundle.nanopb.cc
  43. 1 1
      Firestore/Protos/nanopb/firestore/bundle.nanopb.h
  44. 1 1
      Firestore/Protos/nanopb/firestore/local/maybe_document.nanopb.cc
  45. 1 1
      Firestore/Protos/nanopb/firestore/local/maybe_document.nanopb.h
  46. 1 1
      Firestore/Protos/nanopb/firestore/local/mutation.nanopb.cc
  47. 1 1
      Firestore/Protos/nanopb/firestore/local/mutation.nanopb.h
  48. 1 1
      Firestore/Protos/nanopb/firestore/local/target.nanopb.cc
  49. 1 1
      Firestore/Protos/nanopb/firestore/local/target.nanopb.h
  50. 1 1
      Firestore/Protos/nanopb/google/api/annotations.nanopb.cc
  51. 1 1
      Firestore/Protos/nanopb/google/api/annotations.nanopb.h
  52. 1 1
      Firestore/Protos/nanopb/google/api/http.nanopb.cc
  53. 1 1
      Firestore/Protos/nanopb/google/api/http.nanopb.h
  54. 1 1
      Firestore/Protos/nanopb/google/api/resource.nanopb.cc
  55. 1 1
      Firestore/Protos/nanopb/google/api/resource.nanopb.h
  56. 1 1
      Firestore/Protos/nanopb/google/firestore/admin/index.nanopb.cc
  57. 1 1
      Firestore/Protos/nanopb/google/firestore/admin/index.nanopb.h
  58. 1 1
      Firestore/Protos/nanopb/google/firestore/v1/aggregation_result.nanopb.cc
  59. 1 1
      Firestore/Protos/nanopb/google/firestore/v1/aggregation_result.nanopb.h
  60. 1 1
      Firestore/Protos/nanopb/google/firestore/v1/bloom_filter.nanopb.cc
  61. 1 1
      Firestore/Protos/nanopb/google/firestore/v1/bloom_filter.nanopb.h
  62. 1 1
      Firestore/Protos/nanopb/google/firestore/v1/common.nanopb.cc
  63. 1 1
      Firestore/Protos/nanopb/google/firestore/v1/common.nanopb.h
  64. 1 1
      Firestore/Protos/nanopb/google/firestore/v1/document.nanopb.cc
  65. 1 1
      Firestore/Protos/nanopb/google/firestore/v1/document.nanopb.h
  66. 1 1
      Firestore/Protos/nanopb/google/firestore/v1/firestore.nanopb.cc
  67. 1 1
      Firestore/Protos/nanopb/google/firestore/v1/firestore.nanopb.h
  68. 1 1
      Firestore/Protos/nanopb/google/firestore/v1/query.nanopb.cc
  69. 1 1
      Firestore/Protos/nanopb/google/firestore/v1/query.nanopb.h
  70. 1 1
      Firestore/Protos/nanopb/google/firestore/v1/write.nanopb.cc
  71. 1 1
      Firestore/Protos/nanopb/google/firestore/v1/write.nanopb.h
  72. 1 1
      Firestore/Protos/nanopb/google/protobuf/any.nanopb.cc
  73. 1 1
      Firestore/Protos/nanopb/google/protobuf/any.nanopb.h
  74. 1 1
      Firestore/Protos/nanopb/google/protobuf/empty.nanopb.cc
  75. 1 1
      Firestore/Protos/nanopb/google/protobuf/empty.nanopb.h
  76. 1 1
      Firestore/Protos/nanopb/google/protobuf/struct.nanopb.cc
  77. 1 1
      Firestore/Protos/nanopb/google/protobuf/struct.nanopb.h
  78. 1 1
      Firestore/Protos/nanopb/google/protobuf/timestamp.nanopb.cc
  79. 1 1
      Firestore/Protos/nanopb/google/protobuf/timestamp.nanopb.h
  80. 1 1
      Firestore/Protos/nanopb/google/protobuf/wrappers.nanopb.cc
  81. 1 1
      Firestore/Protos/nanopb/google/protobuf/wrappers.nanopb.h
  82. 1 1
      Firestore/Protos/nanopb/google/rpc/status.nanopb.cc
  83. 1 1
      Firestore/Protos/nanopb/google/rpc/status.nanopb.h
  84. 1 1
      Firestore/Protos/nanopb/google/type/latlng.nanopb.cc
  85. 1 1
      Firestore/Protos/nanopb/google/type/latlng.nanopb.h
  86. 3884 7116
      Firestore/core/src/remote/grpc_root_certificates_generated.cc
  87. 3 1
      Firestore/core/src/util/string_format.cc
  88. 6 1
      Firestore/core/test/unit/bundle/bundle_reader_test.cc
  89. 6 1
      Firestore/core/test/unit/bundle/bundle_serializer_test.cc
  90. 2 5
      cmake/external/abseil-cpp.cmake
  91. 3 3
      cmake/external/boringssl.cmake
  92. 2 2
      cmake/external/grpc.cmake
  93. 3 4
      cmake/external/protobuf.cmake

+ 1 - 1
.github/workflows/firestore.yml

@@ -328,7 +328,7 @@ jobs:
 
     strategy:
       matrix:
-        target: [iOS, tvOS, macOS]
+        target: [iOS, macOS, tvOS]
 
     steps:
     - uses: actions/checkout@v4

+ 4 - 11
CMakeLists.txt

@@ -160,6 +160,10 @@ unset(RANDOM_FILE CACHE)
 set(CARES_INSTALL OFF CACHE BOOL "Disabled")
 
 set(protobuf_BUILD_TESTS OFF CACHE BOOL "Disabled")
+# See https://github.com/protocolbuffers/protobuf/issues/12185#issuecomment-1887892723
+set(protobuf_INSTALL OFF)
+set(utf8_range_ENABLE_INSTALL OFF)
+
 if(IOS OR ANDROID)
   # C-Ares includes a number of example binaries (e.g. `ahost`) that fail to
   # build when compiling for non-host targets.
@@ -207,17 +211,6 @@ set(PROTOBUF_ROOT_DIR ${FIREBASE_EXTERNAL_SOURCE_DIR}/protobuf)
 
 add_external_subdirectory(grpc)
 
-
-# Fix up targets included by gRPC
-if(CXX_CLANG)
-  target_compile_options(
-    absl_time_zone PRIVATE
-    -Wno-unused-template
-    -Wno-shadow
-    -Wno-tautological-type-limit-compare
-  )
-endif()
-
 # Fix up targets included by boringssl (ver: b9232f9e27e5668bc0414879dcdedb2a59ea75f2)
 # We might be able to remove this with newer versions.
 if(CXX_CLANG)

+ 9 - 13
Firestore/Example/Firestore.xcodeproj/xcshareddata/xcschemes/Firestore_Example_iOS.xcscheme

@@ -27,6 +27,15 @@
       selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
       selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
       shouldUseLaunchSchemeArgsEnv = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "6003F589195388D20070C39A"
+            BuildableName = "Firestore_Example_iOS.app"
+            BlueprintName = "Firestore_Example_iOS"
+            ReferencedContainer = "container:Firestore.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
       <Testables>
          <TestableReference
             skipped = "NO">
@@ -59,17 +68,6 @@
             </BuildableReference>
          </TestableReference>
       </Testables>
-      <MacroExpansion>
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "6003F589195388D20070C39A"
-            BuildableName = "Firestore_Example_iOS.app"
-            BlueprintName = "Firestore_Example_iOS"
-            ReferencedContainer = "container:Firestore.xcodeproj">
-         </BuildableReference>
-      </MacroExpansion>
-      <AdditionalOptions>
-      </AdditionalOptions>
    </TestAction>
    <LaunchAction
       buildConfiguration = "Debug"
@@ -91,8 +89,6 @@
             ReferencedContainer = "container:Firestore.xcodeproj">
          </BuildableReference>
       </BuildableProductRunnable>
-      <AdditionalOptions>
-      </AdditionalOptions>
    </LaunchAction>
    <ProfileAction
       buildConfiguration = "Release"

+ 9 - 13
Firestore/Example/Firestore.xcodeproj/xcshareddata/xcschemes/Firestore_Example_macOS.xcscheme

@@ -27,6 +27,15 @@
       selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
       selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
       shouldUseLaunchSchemeArgsEnv = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "DAFF0CF421E64AC30062958F"
+            BuildableName = "Firestore_Example_macOS.app"
+            BlueprintName = "Firestore_Example_macOS"
+            ReferencedContainer = "container:Firestore.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
       <Testables>
          <TestableReference
             skipped = "NO">
@@ -49,17 +58,6 @@
             </BuildableReference>
          </TestableReference>
       </Testables>
-      <MacroExpansion>
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "DAFF0CF421E64AC30062958F"
-            BuildableName = "Firestore_Example_macOS.app"
-            BlueprintName = "Firestore_Example_macOS"
-            ReferencedContainer = "container:Firestore.xcodeproj">
-         </BuildableReference>
-      </MacroExpansion>
-      <AdditionalOptions>
-      </AdditionalOptions>
    </TestAction>
    <LaunchAction
       buildConfiguration = "Debug"
@@ -81,8 +79,6 @@
             ReferencedContainer = "container:Firestore.xcodeproj">
          </BuildableReference>
       </BuildableProductRunnable>
-      <AdditionalOptions>
-      </AdditionalOptions>
    </LaunchAction>
    <ProfileAction
       buildConfiguration = "Release"

+ 9 - 13
Firestore/Example/Firestore.xcodeproj/xcshareddata/xcschemes/Firestore_Example_tvOS.xcscheme

@@ -27,6 +27,15 @@
       selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
       selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
       shouldUseLaunchSchemeArgsEnv = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "54AA338E224BF935006CE580"
+            BuildableName = "Firestore_Example_tvOS.app"
+            BlueprintName = "Firestore_Example_tvOS"
+            ReferencedContainer = "container:Firestore.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
       <Testables>
          <TestableReference
             skipped = "NO">
@@ -49,17 +58,6 @@
             </BuildableReference>
          </TestableReference>
       </Testables>
-      <MacroExpansion>
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "54AA338E224BF935006CE580"
-            BuildableName = "Firestore_Example_tvOS.app"
-            BlueprintName = "Firestore_Example_tvOS"
-            ReferencedContainer = "container:Firestore.xcodeproj">
-         </BuildableReference>
-      </MacroExpansion>
-      <AdditionalOptions>
-      </AdditionalOptions>
    </TestAction>
    <LaunchAction
       buildConfiguration = "Debug"
@@ -81,8 +79,6 @@
             ReferencedContainer = "container:Firestore.xcodeproj">
          </BuildableReference>
       </BuildableProductRunnable>
-      <AdditionalOptions>
-      </AdditionalOptions>
    </LaunchAction>
    <ProfileAction
       buildConfiguration = "Release"

+ 6 - 0
Firestore/Example/Podfile

@@ -99,6 +99,8 @@ if is_platform(:ios)
 
     configure_local_pods()
 
+    pod 'abseil', '~> 1.20240116.1'
+
     target 'Firestore_Tests_iOS' do
       inherit! :search_paths
 
@@ -141,6 +143,8 @@ if is_platform(:osx)
 
     configure_local_pods()
 
+    pod 'abseil', '~> 1.20240116.1'
+
     target 'Firestore_Tests_macOS' do
       inherit! :search_paths
 
@@ -170,6 +174,8 @@ if is_platform(:tvos)
 
     configure_local_pods()
 
+    pod 'abseil', '~> 1.20240116.1'
+
     target 'Firestore_Tests_tvOS' do
       inherit! :search_paths
 

+ 11 - 3
Firestore/Example/ProtobufCpp.podspec

@@ -17,7 +17,7 @@
 
 Pod::Spec.new do |s|
   s.name             = 'ProtobufCpp'
-  s.version          = '3.11.4'
+  s.version          = '25.0'
   s.summary          = 'Protocol Buffers v.3 runtime library for C++.'
   s.homepage         = 'https://github.com/protocolbuffers/protobuf'
   s.license          = '3-Clause BSD License'
@@ -33,7 +33,9 @@ Pod::Spec.new do |s|
   s.osx.deployment_target = '10.13'
   s.tvos.deployment_target = '12.0'
 
-  s.source_files = 'src/**/*.{h,cc,inc}'
+  s.source_files = 'src/**/*.{h,cc,inc}',
+                   # utf8_range is needed too, to avoid build errors.
+                   'third_party/utf8_range/*.{h,cc,inc}'
   s.exclude_files = # skip test files. (Yes, the test files are intermixed with
                     # the source. No there doesn't seem to be a common/simple
                     # pattern we could use to exclude them; 'test' appears in
@@ -46,6 +48,9 @@ Pod::Spec.new do |s|
                     'src/**/*[^y]test*.*',
                     'src/**/testing/**',
                     'src/**/mock*',
+                    'third_party/utf8_range/*_test.{h,cc,inc}',
+                    # skip benchmark code that failed to compile.
+                    'src/**/map_probe_benchmark.cc',
                     # skip the javascript handling code.
                     'src/**/js/**',
                     # skip the protoc compiler
@@ -53,13 +58,16 @@ Pod::Spec.new do |s|
 
   s.header_mappings_dir = 'src/'
 
+  s.dependency 'abseil', '~> 1.20240116.1'
+
   # Set a CPP symbol so the code knows to use framework imports.
   s.pod_target_xcconfig = {
+    'CLANG_CXX_LANGUAGE_STANDARD' => 'c++14',
     'GCC_PREPROCESSOR_DEFINITIONS' =>
       '$(inherited) ' +
       'GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1 ' +
       'HAVE_PTHREAD=1',
-    'HEADER_SEARCH_PATHS' => '"${PODS_ROOT}/ProtobufCpp/src"',
+    'HEADER_SEARCH_PATHS' => '"${PODS_ROOT}/ProtobufCpp/src" "${PODS_ROOT}/ProtobufCpp/third_party/utf8_range"',
 
     # Cocoapods flattens header imports, leading to much anguish.  The
     # following two statements work around this.

File diff suppressed because it is too large
+ 469 - 426
Firestore/Protos/cpp/firestore/bundle.pb.cc


File diff suppressed because it is too large
+ 780 - 576
Firestore/Protos/cpp/firestore/bundle.pb.h


File diff suppressed because it is too large
+ 507 - 479
Firestore/Protos/cpp/firestore/local/maybe_document.pb.cc


File diff suppressed because it is too large
+ 566 - 372
Firestore/Protos/cpp/firestore/local/maybe_document.pb.h


File diff suppressed because it is too large
+ 487 - 459
Firestore/Protos/cpp/firestore/local/mutation.pb.cc


+ 495 - 336
Firestore/Protos/cpp/firestore/local/mutation.pb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,88 +16,96 @@
 
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: firestore/local/mutation.proto
+// Protobuf C++ Version: 4.25.1
 
-#ifndef GOOGLE_PROTOBUF_INCLUDED_firestore_2flocal_2fmutation_2eproto
-#define GOOGLE_PROTOBUF_INCLUDED_firestore_2flocal_2fmutation_2eproto
+#ifndef GOOGLE_PROTOBUF_INCLUDED_firestore_2flocal_2fmutation_2eproto_2epb_2eh
+#define GOOGLE_PROTOBUF_INCLUDED_firestore_2flocal_2fmutation_2eproto_2epb_2eh
 
 #include <limits>
 #include <string>
-
-#include <google/protobuf/port_def.inc>
-#if PROTOBUF_VERSION < 3011000
-#error This file was generated by a newer version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please update
-#error your headers.
-#endif
-#if 3011002 < PROTOBUF_MIN_PROTOC_VERSION
-#error This file was generated by an older version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please
-#error regenerate this file with a newer version of protoc.
-#endif
-
-#include <google/protobuf/port_undef.inc>
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/arena.h>
-#include <google/protobuf/arenastring.h>
-#include <google/protobuf/generated_message_table_driven.h>
-#include <google/protobuf/generated_message_util.h>
-#include <google/protobuf/inlined_string_field.h>
-#include <google/protobuf/metadata.h>
-#include <google/protobuf/generated_message_reflection.h>
-#include <google/protobuf/message.h>
-#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
-#include <google/protobuf/extension_set.h>  // IWYU pragma: export
-#include <google/protobuf/unknown_field_set.h>
+#include <type_traits>
+#include <utility>
+
+#include "google/protobuf/port_def.inc"
+#if PROTOBUF_VERSION < 4025000
+#error "This file was generated by a newer version of protoc which is"
+#error "incompatible with your Protocol Buffer headers. Please update"
+#error "your headers."
+#endif  // PROTOBUF_VERSION
+
+#if 4025001 < PROTOBUF_MIN_PROTOC_VERSION
+#error "This file was generated by an older version of protoc which is"
+#error "incompatible with your Protocol Buffer headers. Please"
+#error "regenerate this file with a newer version of protoc."
+#endif  // PROTOBUF_MIN_PROTOC_VERSION
+#include "google/protobuf/port_undef.inc"
+#include "google/protobuf/io/coded_stream.h"
+#include "google/protobuf/arena.h"
+#include "google/protobuf/arenastring.h"
+#include "google/protobuf/generated_message_tctable_decl.h"
+#include "google/protobuf/generated_message_util.h"
+#include "google/protobuf/metadata_lite.h"
+#include "google/protobuf/generated_message_reflection.h"
+#include "google/protobuf/message.h"
+#include "google/protobuf/repeated_field.h"  // IWYU pragma: export
+#include "google/protobuf/extension_set.h"  // IWYU pragma: export
+#include "google/protobuf/unknown_field_set.h"
 #include "google/firestore/v1/write.pb.h"
-#include <google/protobuf/timestamp.pb.h>
+#include "google/protobuf/timestamp.pb.h"
 // @@protoc_insertion_point(includes)
-#include <google/protobuf/port_def.inc>
+
+// Must be included last.
+#include "google/protobuf/port_def.inc"
+
 #define PROTOBUF_INTERNAL_EXPORT_firestore_2flocal_2fmutation_2eproto
-PROTOBUF_NAMESPACE_OPEN
+
+namespace google {
+namespace protobuf {
 namespace internal {
 class AnyMetadata;
 }  // namespace internal
-PROTOBUF_NAMESPACE_CLOSE
+}  // namespace protobuf
+}  // namespace google
 
 // Internal implementation detail -- do not use these members.
 struct TableStruct_firestore_2flocal_2fmutation_2eproto {
-  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[2]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
-  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
-  static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
+  static const ::uint32_t offsets[];
 };
-extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_firestore_2flocal_2fmutation_2eproto;
+extern const ::google::protobuf::internal::DescriptorTable
+    descriptor_table_firestore_2flocal_2fmutation_2eproto;
 namespace firestore {
 namespace client {
 class MutationQueue;
-class MutationQueueDefaultTypeInternal;
+struct MutationQueueDefaultTypeInternal;
 extern MutationQueueDefaultTypeInternal _MutationQueue_default_instance_;
 class WriteBatch;
-class WriteBatchDefaultTypeInternal;
+struct WriteBatchDefaultTypeInternal;
 extern WriteBatchDefaultTypeInternal _WriteBatch_default_instance_;
 }  // namespace client
 }  // namespace firestore
-PROTOBUF_NAMESPACE_OPEN
-template<> ::firestore::client::MutationQueue* Arena::CreateMaybeMessage<::firestore::client::MutationQueue>(Arena*);
-template<> ::firestore::client::WriteBatch* Arena::CreateMaybeMessage<::firestore::client::WriteBatch>(Arena*);
-PROTOBUF_NAMESPACE_CLOSE
+namespace google {
+namespace protobuf {
+}  // namespace protobuf
+}  // namespace google
+
 namespace firestore {
 namespace client {
 
 // ===================================================================
 
-class MutationQueue :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:firestore.client.MutationQueue) */ {
+
+// -------------------------------------------------------------------
+
+class MutationQueue final :
+    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:firestore.client.MutationQueue) */ {
  public:
-  MutationQueue();
-  virtual ~MutationQueue();
+  inline MutationQueue() : MutationQueue(nullptr) {}
+  ~MutationQueue() override;
+  template<typename = void>
+  explicit PROTOBUF_CONSTEXPR MutationQueue(::google::protobuf::internal::ConstantInitialized);
 
-  MutationQueue(const MutationQueue& from);
+  inline MutationQueue(const MutationQueue& from)
+      : MutationQueue(nullptr, from) {}
   MutationQueue(MutationQueue&& from) noexcept
     : MutationQueue() {
     *this = ::std::move(from);
@@ -108,26 +116,40 @@ class MutationQueue :
     return *this;
   }
   inline MutationQueue& operator=(MutationQueue&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
+    if (this == &from) return *this;
+    if (GetArena() == from.GetArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
     } else {
       CopyFrom(from);
     }
     return *this;
   }
 
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
+      ABSL_ATTRIBUTE_LIFETIME_BOUND {
+    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
+  }
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields()
+      ABSL_ATTRIBUTE_LIFETIME_BOUND {
+    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor() {
     return GetDescriptor();
   }
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
-    return GetMetadataStatic().descriptor;
+  static const ::google::protobuf::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
   }
-  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
-    return GetMetadataStatic().reflection;
+  static const ::google::protobuf::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const MutationQueue& default_instance() {
+    return *internal_default_instance();
   }
-  static const MutationQueue& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
   static inline const MutationQueue* internal_default_instance() {
     return reinterpret_cast<const MutationQueue*>(
                &_MutationQueue_default_instance_);
@@ -140,57 +162,66 @@ class MutationQueue :
   }
   inline void Swap(MutationQueue* other) {
     if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetArena() != nullptr &&
+        GetArena() == other->GetArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetArena() == other->GetArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::google::protobuf::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(MutationQueue* other) {
+    if (other == this) return;
+    ABSL_DCHECK(GetArena() == other->GetArena());
     InternalSwap(other);
   }
 
   // implements Message ----------------------------------------------
 
-  inline MutationQueue* New() const final {
-    return CreateMaybeMessage<MutationQueue>(nullptr);
-  }
-
-  MutationQueue* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
+  MutationQueue* New(::google::protobuf::Arena* arena = nullptr) const final {
     return CreateMaybeMessage<MutationQueue>(arena);
   }
-  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
+  using ::google::protobuf::Message::CopyFrom;
   void CopyFrom(const MutationQueue& from);
-  void MergeFrom(const MutationQueue& from);
+  using ::google::protobuf::Message::MergeFrom;
+  void MergeFrom( const MutationQueue& from) {
+    MutationQueue::MergeImpl(*this, from);
+  }
+  private:
+  static void MergeImpl(::google::protobuf::Message& to_msg, const ::google::protobuf::Message& from_msg);
+  public:
   PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
   bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
+  ::size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
+  ::uint8_t* _InternalSerialize(
+      ::uint8_t* target, ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const { return _impl_._cached_size_.Get(); }
 
   private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const final;
+  ::google::protobuf::internal::CachedSize* AccessCachedSize() const final;
+  void SharedCtor(::google::protobuf::Arena* arena);
+  void SharedDtor();
   void InternalSwap(MutationQueue* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "firestore.client.MutationQueue";
-  }
+
   private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
+  friend class ::google::protobuf::internal::AnyMetadata;
+  static ::absl::string_view FullMessageName() {
+    return "firestore.client.MutationQueue";
   }
+  protected:
+  explicit MutationQueue(::google::protobuf::Arena* arena);
+  MutationQueue(::google::protobuf::Arena* arena, const MutationQueue& from);
   public:
 
-  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
-  private:
-  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
-    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_firestore_2flocal_2fmutation_2eproto);
-    return ::descriptor_table_firestore_2flocal_2fmutation_2eproto.file_level_metadata[kIndexInFileMessages];
-  }
+  static const ClassData _class_data_;
+  const ::google::protobuf::Message::ClassData*GetClassData() const final;
 
-  public:
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -201,49 +232,73 @@ class MutationQueue :
     kLastAcknowledgedBatchIdFieldNumber = 1,
   };
   // bytes last_stream_token = 2;
-  void clear_last_stream_token();
+  void clear_last_stream_token() ;
   const std::string& last_stream_token() const;
-  void set_last_stream_token(const std::string& value);
-  void set_last_stream_token(std::string&& value);
-  void set_last_stream_token(const char* value);
-  void set_last_stream_token(const void* value, size_t size);
+  template <typename Arg_ = const std::string&, typename... Args_>
+  void set_last_stream_token(Arg_&& arg, Args_... args);
   std::string* mutable_last_stream_token();
-  std::string* release_last_stream_token();
-  void set_allocated_last_stream_token(std::string* last_stream_token);
+  PROTOBUF_NODISCARD std::string* release_last_stream_token();
+  void set_allocated_last_stream_token(std::string* value);
+
   private:
   const std::string& _internal_last_stream_token() const;
-  void _internal_set_last_stream_token(const std::string& value);
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_last_stream_token(
+      const std::string& value);
   std::string* _internal_mutable_last_stream_token();
-  public:
 
+  public:
   // int32 last_acknowledged_batch_id = 1;
-  void clear_last_acknowledged_batch_id();
-  ::PROTOBUF_NAMESPACE_ID::int32 last_acknowledged_batch_id() const;
-  void set_last_acknowledged_batch_id(::PROTOBUF_NAMESPACE_ID::int32 value);
+  void clear_last_acknowledged_batch_id() ;
+  ::int32_t last_acknowledged_batch_id() const;
+  void set_last_acknowledged_batch_id(::int32_t value);
+
   private:
-  ::PROTOBUF_NAMESPACE_ID::int32 _internal_last_acknowledged_batch_id() const;
-  void _internal_set_last_acknowledged_batch_id(::PROTOBUF_NAMESPACE_ID::int32 value);
-  public:
+  ::int32_t _internal_last_acknowledged_batch_id() const;
+  void _internal_set_last_acknowledged_batch_id(::int32_t value);
 
+  public:
   // @@protoc_insertion_point(class_scope:firestore.client.MutationQueue)
  private:
   class _Internal;
 
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr last_stream_token_;
-  ::PROTOBUF_NAMESPACE_ID::int32 last_acknowledged_batch_id_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  friend class ::google::protobuf::internal::TcParser;
+  static const ::google::protobuf::internal::TcParseTable<
+      1, 2, 0,
+      0, 2>
+      _table_;
+  friend class ::google::protobuf::MessageLite;
+  friend class ::google::protobuf::Arena;
+  template <typename T>
+  friend class ::google::protobuf::Arena::InternalHelper;
+  using InternalArenaConstructable_ = void;
+  using DestructorSkippable_ = void;
+  struct Impl_ {
+
+        inline explicit constexpr Impl_(
+            ::google::protobuf::internal::ConstantInitialized) noexcept;
+        inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
+                              ::google::protobuf::Arena* arena);
+        inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
+                              ::google::protobuf::Arena* arena, const Impl_& from);
+    ::google::protobuf::internal::ArenaStringPtr last_stream_token_;
+    ::int32_t last_acknowledged_batch_id_;
+    mutable ::google::protobuf::internal::CachedSize _cached_size_;
+    PROTOBUF_TSAN_DECLARE_MEMBER
+  };
+  union { Impl_ _impl_; };
   friend struct ::TableStruct_firestore_2flocal_2fmutation_2eproto;
-};
-// -------------------------------------------------------------------
+};// -------------------------------------------------------------------
 
-class WriteBatch :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:firestore.client.WriteBatch) */ {
+class WriteBatch final :
+    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:firestore.client.WriteBatch) */ {
  public:
-  WriteBatch();
-  virtual ~WriteBatch();
+  inline WriteBatch() : WriteBatch(nullptr) {}
+  ~WriteBatch() override;
+  template<typename = void>
+  explicit PROTOBUF_CONSTEXPR WriteBatch(::google::protobuf::internal::ConstantInitialized);
 
-  WriteBatch(const WriteBatch& from);
+  inline WriteBatch(const WriteBatch& from)
+      : WriteBatch(nullptr, from) {}
   WriteBatch(WriteBatch&& from) noexcept
     : WriteBatch() {
     *this = ::std::move(from);
@@ -254,26 +309,40 @@ class WriteBatch :
     return *this;
   }
   inline WriteBatch& operator=(WriteBatch&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
+    if (this == &from) return *this;
+    if (GetArena() == from.GetArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
     } else {
       CopyFrom(from);
     }
     return *this;
   }
 
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
+      ABSL_ATTRIBUTE_LIFETIME_BOUND {
+    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
+  }
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields()
+      ABSL_ATTRIBUTE_LIFETIME_BOUND {
+    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor() {
     return GetDescriptor();
   }
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
-    return GetMetadataStatic().descriptor;
+  static const ::google::protobuf::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
   }
-  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
-    return GetMetadataStatic().reflection;
+  static const ::google::protobuf::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const WriteBatch& default_instance() {
+    return *internal_default_instance();
   }
-  static const WriteBatch& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
   static inline const WriteBatch* internal_default_instance() {
     return reinterpret_cast<const WriteBatch*>(
                &_WriteBatch_default_instance_);
@@ -286,57 +355,66 @@ class WriteBatch :
   }
   inline void Swap(WriteBatch* other) {
     if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetArena() != nullptr &&
+        GetArena() == other->GetArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetArena() == other->GetArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::google::protobuf::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(WriteBatch* other) {
+    if (other == this) return;
+    ABSL_DCHECK(GetArena() == other->GetArena());
     InternalSwap(other);
   }
 
   // implements Message ----------------------------------------------
 
-  inline WriteBatch* New() const final {
-    return CreateMaybeMessage<WriteBatch>(nullptr);
-  }
-
-  WriteBatch* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
+  WriteBatch* New(::google::protobuf::Arena* arena = nullptr) const final {
     return CreateMaybeMessage<WriteBatch>(arena);
   }
-  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
+  using ::google::protobuf::Message::CopyFrom;
   void CopyFrom(const WriteBatch& from);
-  void MergeFrom(const WriteBatch& from);
+  using ::google::protobuf::Message::MergeFrom;
+  void MergeFrom( const WriteBatch& from) {
+    WriteBatch::MergeImpl(*this, from);
+  }
+  private:
+  static void MergeImpl(::google::protobuf::Message& to_msg, const ::google::protobuf::Message& from_msg);
+  public:
   PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
   bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
+  ::size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
+  ::uint8_t* _InternalSerialize(
+      ::uint8_t* target, ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const { return _impl_._cached_size_.Get(); }
 
   private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const final;
+  ::google::protobuf::internal::CachedSize* AccessCachedSize() const final;
+  void SharedCtor(::google::protobuf::Arena* arena);
+  void SharedDtor();
   void InternalSwap(WriteBatch* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "firestore.client.WriteBatch";
-  }
+
   private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
+  friend class ::google::protobuf::internal::AnyMetadata;
+  static ::absl::string_view FullMessageName() {
+    return "firestore.client.WriteBatch";
   }
+  protected:
+  explicit WriteBatch(::google::protobuf::Arena* arena);
+  WriteBatch(::google::protobuf::Arena* arena, const WriteBatch& from);
   public:
 
-  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
-  private:
-  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
-    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_firestore_2flocal_2fmutation_2eproto);
-    return ::descriptor_table_firestore_2flocal_2fmutation_2eproto.file_level_metadata[kIndexInFileMessages];
-  }
+  static const ClassData _class_data_;
+  const ::google::protobuf::Message::ClassData*GetClassData() const final;
 
-  public:
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -352,162 +430,187 @@ class WriteBatch :
   int writes_size() const;
   private:
   int _internal_writes_size() const;
+
   public:
-  void clear_writes();
+  void clear_writes() ;
   ::google::firestore::v1::Write* mutable_writes(int index);
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::Write >*
+  ::google::protobuf::RepeatedPtrField< ::google::firestore::v1::Write >*
       mutable_writes();
   private:
-  const ::google::firestore::v1::Write& _internal_writes(int index) const;
-  ::google::firestore::v1::Write* _internal_add_writes();
+  const ::google::protobuf::RepeatedPtrField<::google::firestore::v1::Write>& _internal_writes() const;
+  ::google::protobuf::RepeatedPtrField<::google::firestore::v1::Write>* _internal_mutable_writes();
   public:
   const ::google::firestore::v1::Write& writes(int index) const;
   ::google::firestore::v1::Write* add_writes();
-  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::Write >&
+  const ::google::protobuf::RepeatedPtrField< ::google::firestore::v1::Write >&
       writes() const;
-
   // repeated .google.firestore.v1.Write base_writes = 4;
   int base_writes_size() const;
   private:
   int _internal_base_writes_size() const;
+
   public:
-  void clear_base_writes();
+  void clear_base_writes() ;
   ::google::firestore::v1::Write* mutable_base_writes(int index);
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::Write >*
+  ::google::protobuf::RepeatedPtrField< ::google::firestore::v1::Write >*
       mutable_base_writes();
   private:
-  const ::google::firestore::v1::Write& _internal_base_writes(int index) const;
-  ::google::firestore::v1::Write* _internal_add_base_writes();
+  const ::google::protobuf::RepeatedPtrField<::google::firestore::v1::Write>& _internal_base_writes() const;
+  ::google::protobuf::RepeatedPtrField<::google::firestore::v1::Write>* _internal_mutable_base_writes();
   public:
   const ::google::firestore::v1::Write& base_writes(int index) const;
   ::google::firestore::v1::Write* add_base_writes();
-  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::Write >&
+  const ::google::protobuf::RepeatedPtrField< ::google::firestore::v1::Write >&
       base_writes() const;
-
   // .google.protobuf.Timestamp local_write_time = 3;
   bool has_local_write_time() const;
+  void clear_local_write_time() ;
+  const ::google::protobuf::Timestamp& local_write_time() const;
+  PROTOBUF_NODISCARD ::google::protobuf::Timestamp* release_local_write_time();
+  ::google::protobuf::Timestamp* mutable_local_write_time();
+  void set_allocated_local_write_time(::google::protobuf::Timestamp* value);
+  void unsafe_arena_set_allocated_local_write_time(::google::protobuf::Timestamp* value);
+  ::google::protobuf::Timestamp* unsafe_arena_release_local_write_time();
+
   private:
-  bool _internal_has_local_write_time() const;
-  public:
-  void clear_local_write_time();
-  const PROTOBUF_NAMESPACE_ID::Timestamp& local_write_time() const;
-  PROTOBUF_NAMESPACE_ID::Timestamp* release_local_write_time();
-  PROTOBUF_NAMESPACE_ID::Timestamp* mutable_local_write_time();
-  void set_allocated_local_write_time(PROTOBUF_NAMESPACE_ID::Timestamp* local_write_time);
-  private:
-  const PROTOBUF_NAMESPACE_ID::Timestamp& _internal_local_write_time() const;
-  PROTOBUF_NAMESPACE_ID::Timestamp* _internal_mutable_local_write_time();
-  public:
+  const ::google::protobuf::Timestamp& _internal_local_write_time() const;
+  ::google::protobuf::Timestamp* _internal_mutable_local_write_time();
 
+  public:
   // int32 batch_id = 1;
-  void clear_batch_id();
-  ::PROTOBUF_NAMESPACE_ID::int32 batch_id() const;
-  void set_batch_id(::PROTOBUF_NAMESPACE_ID::int32 value);
+  void clear_batch_id() ;
+  ::int32_t batch_id() const;
+  void set_batch_id(::int32_t value);
+
   private:
-  ::PROTOBUF_NAMESPACE_ID::int32 _internal_batch_id() const;
-  void _internal_set_batch_id(::PROTOBUF_NAMESPACE_ID::int32 value);
-  public:
+  ::int32_t _internal_batch_id() const;
+  void _internal_set_batch_id(::int32_t value);
 
+  public:
   // @@protoc_insertion_point(class_scope:firestore.client.WriteBatch)
  private:
   class _Internal;
 
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::Write > writes_;
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::Write > base_writes_;
-  PROTOBUF_NAMESPACE_ID::Timestamp* local_write_time_;
-  ::PROTOBUF_NAMESPACE_ID::int32 batch_id_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  friend class ::google::protobuf::internal::TcParser;
+  static const ::google::protobuf::internal::TcParseTable<
+      2, 4, 3,
+      0, 2>
+      _table_;
+  friend class ::google::protobuf::MessageLite;
+  friend class ::google::protobuf::Arena;
+  template <typename T>
+  friend class ::google::protobuf::Arena::InternalHelper;
+  using InternalArenaConstructable_ = void;
+  using DestructorSkippable_ = void;
+  struct Impl_ {
+
+        inline explicit constexpr Impl_(
+            ::google::protobuf::internal::ConstantInitialized) noexcept;
+        inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
+                              ::google::protobuf::Arena* arena);
+        inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
+                              ::google::protobuf::Arena* arena, const Impl_& from);
+    ::google::protobuf::internal::HasBits<1> _has_bits_;
+    mutable ::google::protobuf::internal::CachedSize _cached_size_;
+    ::google::protobuf::RepeatedPtrField< ::google::firestore::v1::Write > writes_;
+    ::google::protobuf::RepeatedPtrField< ::google::firestore::v1::Write > base_writes_;
+    ::google::protobuf::Timestamp* local_write_time_;
+    ::int32_t batch_id_;
+    PROTOBUF_TSAN_DECLARE_MEMBER
+  };
+  union { Impl_ _impl_; };
   friend struct ::TableStruct_firestore_2flocal_2fmutation_2eproto;
 };
+
 // ===================================================================
 
 
+
+
 // ===================================================================
 
+
 #ifdef __GNUC__
-  #pragma GCC diagnostic push
-  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
 #endif  // __GNUC__
+// -------------------------------------------------------------------
+
 // MutationQueue
 
 // int32 last_acknowledged_batch_id = 1;
 inline void MutationQueue::clear_last_acknowledged_batch_id() {
-  last_acknowledged_batch_id_ = 0;
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  _impl_.last_acknowledged_batch_id_ = 0;
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 MutationQueue::_internal_last_acknowledged_batch_id() const {
-  return last_acknowledged_batch_id_;
-}
-inline ::PROTOBUF_NAMESPACE_ID::int32 MutationQueue::last_acknowledged_batch_id() const {
+inline ::int32_t MutationQueue::last_acknowledged_batch_id() const {
   // @@protoc_insertion_point(field_get:firestore.client.MutationQueue.last_acknowledged_batch_id)
   return _internal_last_acknowledged_batch_id();
 }
-inline void MutationQueue::_internal_set_last_acknowledged_batch_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  
-  last_acknowledged_batch_id_ = value;
-}
-inline void MutationQueue::set_last_acknowledged_batch_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
+inline void MutationQueue::set_last_acknowledged_batch_id(::int32_t value) {
   _internal_set_last_acknowledged_batch_id(value);
   // @@protoc_insertion_point(field_set:firestore.client.MutationQueue.last_acknowledged_batch_id)
 }
+inline ::int32_t MutationQueue::_internal_last_acknowledged_batch_id() const {
+  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
+  return _impl_.last_acknowledged_batch_id_;
+}
+inline void MutationQueue::_internal_set_last_acknowledged_batch_id(::int32_t value) {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  ;
+  _impl_.last_acknowledged_batch_id_ = value;
+}
 
 // bytes last_stream_token = 2;
 inline void MutationQueue::clear_last_stream_token() {
-  last_stream_token_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  _impl_.last_stream_token_.ClearToEmpty();
 }
-inline const std::string& MutationQueue::last_stream_token() const {
+inline const std::string& MutationQueue::last_stream_token() const
+    ABSL_ATTRIBUTE_LIFETIME_BOUND {
   // @@protoc_insertion_point(field_get:firestore.client.MutationQueue.last_stream_token)
   return _internal_last_stream_token();
 }
-inline void MutationQueue::set_last_stream_token(const std::string& value) {
-  _internal_set_last_stream_token(value);
+template <typename Arg_, typename... Args_>
+inline PROTOBUF_ALWAYS_INLINE void MutationQueue::set_last_stream_token(Arg_&& arg,
+                                                     Args_... args) {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  ;
+  _impl_.last_stream_token_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
   // @@protoc_insertion_point(field_set:firestore.client.MutationQueue.last_stream_token)
 }
-inline std::string* MutationQueue::mutable_last_stream_token() {
+inline std::string* MutationQueue::mutable_last_stream_token() ABSL_ATTRIBUTE_LIFETIME_BOUND {
+  std::string* _s = _internal_mutable_last_stream_token();
   // @@protoc_insertion_point(field_mutable:firestore.client.MutationQueue.last_stream_token)
-  return _internal_mutable_last_stream_token();
+  return _s;
 }
 inline const std::string& MutationQueue::_internal_last_stream_token() const {
-  return last_stream_token_.GetNoArena();
+  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
+  return _impl_.last_stream_token_.Get();
 }
 inline void MutationQueue::_internal_set_last_stream_token(const std::string& value) {
-  
-  last_stream_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void MutationQueue::set_last_stream_token(std::string&& value) {
-  
-  last_stream_token_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:firestore.client.MutationQueue.last_stream_token)
-}
-inline void MutationQueue::set_last_stream_token(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  last_stream_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:firestore.client.MutationQueue.last_stream_token)
-}
-inline void MutationQueue::set_last_stream_token(const void* value, size_t size) {
-  
-  last_stream_token_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:firestore.client.MutationQueue.last_stream_token)
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  ;
+  _impl_.last_stream_token_.Set(value, GetArena());
 }
 inline std::string* MutationQueue::_internal_mutable_last_stream_token() {
-  
-  return last_stream_token_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  ;
+  return _impl_.last_stream_token_.Mutable( GetArena());
 }
 inline std::string* MutationQueue::release_last_stream_token() {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
   // @@protoc_insertion_point(field_release:firestore.client.MutationQueue.last_stream_token)
-  
-  return last_stream_token_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-inline void MutationQueue::set_allocated_last_stream_token(std::string* last_stream_token) {
-  if (last_stream_token != nullptr) {
-    
-  } else {
-    
-  }
-  last_stream_token_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), last_stream_token);
+  return _impl_.last_stream_token_.Release();
+}
+inline void MutationQueue::set_allocated_last_stream_token(std::string* value) {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  _impl_.last_stream_token_.SetAllocated(value, GetArena());
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+        if (_impl_.last_stream_token_.IsDefault()) {
+          _impl_.last_stream_token_.Set("", GetArena());
+        }
+  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
   // @@protoc_insertion_point(field_set_allocated:firestore.client.MutationQueue.last_stream_token)
 }
 
@@ -517,163 +620,219 @@ inline void MutationQueue::set_allocated_last_stream_token(std::string* last_str
 
 // int32 batch_id = 1;
 inline void WriteBatch::clear_batch_id() {
-  batch_id_ = 0;
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  _impl_.batch_id_ = 0;
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 WriteBatch::_internal_batch_id() const {
-  return batch_id_;
-}
-inline ::PROTOBUF_NAMESPACE_ID::int32 WriteBatch::batch_id() const {
+inline ::int32_t WriteBatch::batch_id() const {
   // @@protoc_insertion_point(field_get:firestore.client.WriteBatch.batch_id)
   return _internal_batch_id();
 }
-inline void WriteBatch::_internal_set_batch_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  
-  batch_id_ = value;
-}
-inline void WriteBatch::set_batch_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
+inline void WriteBatch::set_batch_id(::int32_t value) {
   _internal_set_batch_id(value);
   // @@protoc_insertion_point(field_set:firestore.client.WriteBatch.batch_id)
 }
+inline ::int32_t WriteBatch::_internal_batch_id() const {
+  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
+  return _impl_.batch_id_;
+}
+inline void WriteBatch::_internal_set_batch_id(::int32_t value) {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  ;
+  _impl_.batch_id_ = value;
+}
 
 // repeated .google.firestore.v1.Write writes = 2;
 inline int WriteBatch::_internal_writes_size() const {
-  return writes_.size();
+  return _internal_writes().size();
 }
 inline int WriteBatch::writes_size() const {
   return _internal_writes_size();
 }
-inline ::google::firestore::v1::Write* WriteBatch::mutable_writes(int index) {
+inline ::google::firestore::v1::Write* WriteBatch::mutable_writes(int index)
+    ABSL_ATTRIBUTE_LIFETIME_BOUND {
   // @@protoc_insertion_point(field_mutable:firestore.client.WriteBatch.writes)
-  return writes_.Mutable(index);
+  return _internal_mutable_writes()->Mutable(index);
 }
-inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::Write >*
-WriteBatch::mutable_writes() {
+inline ::google::protobuf::RepeatedPtrField<::google::firestore::v1::Write>* WriteBatch::mutable_writes()
+    ABSL_ATTRIBUTE_LIFETIME_BOUND {
   // @@protoc_insertion_point(field_mutable_list:firestore.client.WriteBatch.writes)
-  return &writes_;
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  return _internal_mutable_writes();
 }
-inline const ::google::firestore::v1::Write& WriteBatch::_internal_writes(int index) const {
-  return writes_.Get(index);
-}
-inline const ::google::firestore::v1::Write& WriteBatch::writes(int index) const {
+inline const ::google::firestore::v1::Write& WriteBatch::writes(int index) const
+    ABSL_ATTRIBUTE_LIFETIME_BOUND {
   // @@protoc_insertion_point(field_get:firestore.client.WriteBatch.writes)
-  return _internal_writes(index);
-}
-inline ::google::firestore::v1::Write* WriteBatch::_internal_add_writes() {
-  return writes_.Add();
+  return _internal_writes().Get(index);
 }
-inline ::google::firestore::v1::Write* WriteBatch::add_writes() {
+inline ::google::firestore::v1::Write* WriteBatch::add_writes() ABSL_ATTRIBUTE_LIFETIME_BOUND {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  ::google::firestore::v1::Write* _add = _internal_mutable_writes()->Add();
   // @@protoc_insertion_point(field_add:firestore.client.WriteBatch.writes)
-  return _internal_add_writes();
+  return _add;
 }
-inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::Write >&
-WriteBatch::writes() const {
+inline const ::google::protobuf::RepeatedPtrField<::google::firestore::v1::Write>& WriteBatch::writes() const
+    ABSL_ATTRIBUTE_LIFETIME_BOUND {
   // @@protoc_insertion_point(field_list:firestore.client.WriteBatch.writes)
-  return writes_;
+  return _internal_writes();
+}
+inline const ::google::protobuf::RepeatedPtrField<::google::firestore::v1::Write>&
+WriteBatch::_internal_writes() const {
+  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
+  return _impl_.writes_;
+}
+inline ::google::protobuf::RepeatedPtrField<::google::firestore::v1::Write>*
+WriteBatch::_internal_mutable_writes() {
+  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
+  return &_impl_.writes_;
 }
 
 // .google.protobuf.Timestamp local_write_time = 3;
-inline bool WriteBatch::_internal_has_local_write_time() const {
-  return this != internal_default_instance() && local_write_time_ != nullptr;
-}
 inline bool WriteBatch::has_local_write_time() const {
-  return _internal_has_local_write_time();
+  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
+  PROTOBUF_ASSUME(!value || _impl_.local_write_time_ != nullptr);
+  return value;
 }
-inline const PROTOBUF_NAMESPACE_ID::Timestamp& WriteBatch::_internal_local_write_time() const {
-  const PROTOBUF_NAMESPACE_ID::Timestamp* p = local_write_time_;
-  return p != nullptr ? *p : *reinterpret_cast<const PROTOBUF_NAMESPACE_ID::Timestamp*>(
-      &PROTOBUF_NAMESPACE_ID::_Timestamp_default_instance_);
+inline const ::google::protobuf::Timestamp& WriteBatch::_internal_local_write_time() const {
+  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
+  const ::google::protobuf::Timestamp* p = _impl_.local_write_time_;
+  return p != nullptr ? *p : reinterpret_cast<const ::google::protobuf::Timestamp&>(::google::protobuf::_Timestamp_default_instance_);
 }
-inline const PROTOBUF_NAMESPACE_ID::Timestamp& WriteBatch::local_write_time() const {
+inline const ::google::protobuf::Timestamp& WriteBatch::local_write_time() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
   // @@protoc_insertion_point(field_get:firestore.client.WriteBatch.local_write_time)
   return _internal_local_write_time();
 }
-inline PROTOBUF_NAMESPACE_ID::Timestamp* WriteBatch::release_local_write_time() {
+inline void WriteBatch::unsafe_arena_set_allocated_local_write_time(::google::protobuf::Timestamp* value) {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  if (GetArena() == nullptr) {
+    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.local_write_time_);
+  }
+  _impl_.local_write_time_ = reinterpret_cast<::google::protobuf::Timestamp*>(value);
+  if (value != nullptr) {
+    _impl_._has_bits_[0] |= 0x00000001u;
+  } else {
+    _impl_._has_bits_[0] &= ~0x00000001u;
+  }
+  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:firestore.client.WriteBatch.local_write_time)
+}
+inline ::google::protobuf::Timestamp* WriteBatch::release_local_write_time() {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+
+  _impl_._has_bits_[0] &= ~0x00000001u;
+  ::google::protobuf::Timestamp* released = _impl_.local_write_time_;
+  _impl_.local_write_time_ = nullptr;
+#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
+  auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
+  released = ::google::protobuf::internal::DuplicateIfNonNull(released);
+  if (GetArena() == nullptr) {
+    delete old;
+  }
+#else   // PROTOBUF_FORCE_COPY_IN_RELEASE
+  if (GetArena() != nullptr) {
+    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
+  }
+#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
+  return released;
+}
+inline ::google::protobuf::Timestamp* WriteBatch::unsafe_arena_release_local_write_time() {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
   // @@protoc_insertion_point(field_release:firestore.client.WriteBatch.local_write_time)
-  
-  PROTOBUF_NAMESPACE_ID::Timestamp* temp = local_write_time_;
-  local_write_time_ = nullptr;
+
+  _impl_._has_bits_[0] &= ~0x00000001u;
+  ::google::protobuf::Timestamp* temp = _impl_.local_write_time_;
+  _impl_.local_write_time_ = nullptr;
   return temp;
 }
-inline PROTOBUF_NAMESPACE_ID::Timestamp* WriteBatch::_internal_mutable_local_write_time() {
-  
-  if (local_write_time_ == nullptr) {
-    auto* p = CreateMaybeMessage<PROTOBUF_NAMESPACE_ID::Timestamp>(GetArenaNoVirtual());
-    local_write_time_ = p;
+inline ::google::protobuf::Timestamp* WriteBatch::_internal_mutable_local_write_time() {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  _impl_._has_bits_[0] |= 0x00000001u;
+  if (_impl_.local_write_time_ == nullptr) {
+    auto* p = CreateMaybeMessage<::google::protobuf::Timestamp>(GetArena());
+    _impl_.local_write_time_ = reinterpret_cast<::google::protobuf::Timestamp*>(p);
   }
-  return local_write_time_;
+  return _impl_.local_write_time_;
 }
-inline PROTOBUF_NAMESPACE_ID::Timestamp* WriteBatch::mutable_local_write_time() {
+inline ::google::protobuf::Timestamp* WriteBatch::mutable_local_write_time() ABSL_ATTRIBUTE_LIFETIME_BOUND {
+  ::google::protobuf::Timestamp* _msg = _internal_mutable_local_write_time();
   // @@protoc_insertion_point(field_mutable:firestore.client.WriteBatch.local_write_time)
-  return _internal_mutable_local_write_time();
+  return _msg;
 }
-inline void WriteBatch::set_allocated_local_write_time(PROTOBUF_NAMESPACE_ID::Timestamp* local_write_time) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
+inline void WriteBatch::set_allocated_local_write_time(::google::protobuf::Timestamp* value) {
+  ::google::protobuf::Arena* message_arena = GetArena();
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
   if (message_arena == nullptr) {
-    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(local_write_time_);
+    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.local_write_time_);
   }
-  if (local_write_time) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
-      reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(local_write_time)->GetArena();
+
+  if (value != nullptr) {
+    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::MessageLite*>(value)->GetArena();
     if (message_arena != submessage_arena) {
-      local_write_time = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, local_write_time, submessage_arena);
+      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
     }
-    
+    _impl_._has_bits_[0] |= 0x00000001u;
   } else {
-    
+    _impl_._has_bits_[0] &= ~0x00000001u;
   }
-  local_write_time_ = local_write_time;
+
+  _impl_.local_write_time_ = reinterpret_cast<::google::protobuf::Timestamp*>(value);
   // @@protoc_insertion_point(field_set_allocated:firestore.client.WriteBatch.local_write_time)
 }
 
 // repeated .google.firestore.v1.Write base_writes = 4;
 inline int WriteBatch::_internal_base_writes_size() const {
-  return base_writes_.size();
+  return _internal_base_writes().size();
 }
 inline int WriteBatch::base_writes_size() const {
   return _internal_base_writes_size();
 }
-inline ::google::firestore::v1::Write* WriteBatch::mutable_base_writes(int index) {
+inline ::google::firestore::v1::Write* WriteBatch::mutable_base_writes(int index)
+    ABSL_ATTRIBUTE_LIFETIME_BOUND {
   // @@protoc_insertion_point(field_mutable:firestore.client.WriteBatch.base_writes)
-  return base_writes_.Mutable(index);
+  return _internal_mutable_base_writes()->Mutable(index);
 }
-inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::Write >*
-WriteBatch::mutable_base_writes() {
+inline ::google::protobuf::RepeatedPtrField<::google::firestore::v1::Write>* WriteBatch::mutable_base_writes()
+    ABSL_ATTRIBUTE_LIFETIME_BOUND {
   // @@protoc_insertion_point(field_mutable_list:firestore.client.WriteBatch.base_writes)
-  return &base_writes_;
-}
-inline const ::google::firestore::v1::Write& WriteBatch::_internal_base_writes(int index) const {
-  return base_writes_.Get(index);
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  return _internal_mutable_base_writes();
 }
-inline const ::google::firestore::v1::Write& WriteBatch::base_writes(int index) const {
+inline const ::google::firestore::v1::Write& WriteBatch::base_writes(int index) const
+    ABSL_ATTRIBUTE_LIFETIME_BOUND {
   // @@protoc_insertion_point(field_get:firestore.client.WriteBatch.base_writes)
-  return _internal_base_writes(index);
-}
-inline ::google::firestore::v1::Write* WriteBatch::_internal_add_base_writes() {
-  return base_writes_.Add();
+  return _internal_base_writes().Get(index);
 }
-inline ::google::firestore::v1::Write* WriteBatch::add_base_writes() {
+inline ::google::firestore::v1::Write* WriteBatch::add_base_writes() ABSL_ATTRIBUTE_LIFETIME_BOUND {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  ::google::firestore::v1::Write* _add = _internal_mutable_base_writes()->Add();
   // @@protoc_insertion_point(field_add:firestore.client.WriteBatch.base_writes)
-  return _internal_add_base_writes();
+  return _add;
 }
-inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::google::firestore::v1::Write >&
-WriteBatch::base_writes() const {
+inline const ::google::protobuf::RepeatedPtrField<::google::firestore::v1::Write>& WriteBatch::base_writes() const
+    ABSL_ATTRIBUTE_LIFETIME_BOUND {
   // @@protoc_insertion_point(field_list:firestore.client.WriteBatch.base_writes)
-  return base_writes_;
+  return _internal_base_writes();
+}
+inline const ::google::protobuf::RepeatedPtrField<::google::firestore::v1::Write>&
+WriteBatch::_internal_base_writes() const {
+  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
+  return _impl_.base_writes_;
+}
+inline ::google::protobuf::RepeatedPtrField<::google::firestore::v1::Write>*
+WriteBatch::_internal_mutable_base_writes() {
+  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
+  return &_impl_.base_writes_;
 }
 
 #ifdef __GNUC__
-  #pragma GCC diagnostic pop
+#pragma GCC diagnostic pop
 #endif  // __GNUC__
-// -------------------------------------------------------------------
-
 
 // @@protoc_insertion_point(namespace_scope)
-
 }  // namespace client
 }  // namespace firestore
 
+
 // @@protoc_insertion_point(global_scope)
 
-#include <google/protobuf/port_undef.inc>
-#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_firestore_2flocal_2fmutation_2eproto
+#include "google/protobuf/port_undef.inc"
+
+#endif  // GOOGLE_PROTOBUF_INCLUDED_firestore_2flocal_2fmutation_2eproto_2epb_2eh

File diff suppressed because it is too large
+ 494 - 443
Firestore/Protos/cpp/firestore/local/target.pb.cc


File diff suppressed because it is too large
+ 718 - 481
Firestore/Protos/cpp/firestore/local/target.pb.h


+ 77 - 48
Firestore/Protos/cpp/google/api/annotations.pb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,66 +20,95 @@
 #include "google/api/annotations.pb.h"
 
 #include <algorithm>
-
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/extension_set.h>
-#include <google/protobuf/wire_format_lite.h>
-#include <google/protobuf/descriptor.h>
-#include <google/protobuf/generated_message_reflection.h>
-#include <google/protobuf/reflection_ops.h>
-#include <google/protobuf/wire_format.h>
+#include "google/protobuf/io/coded_stream.h"
+#include "google/protobuf/extension_set.h"
+#include "google/protobuf/wire_format_lite.h"
+#include "google/protobuf/descriptor.h"
+#include "google/protobuf/generated_message_reflection.h"
+#include "google/protobuf/reflection_ops.h"
+#include "google/protobuf/wire_format.h"
+#include "google/protobuf/generated_message_tctable_impl.h"
 // @@protoc_insertion_point(includes)
-#include <google/protobuf/port_def.inc>
-extern PROTOBUF_INTERNAL_EXPORT_google_2fapi_2fhttp_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_HttpRule_google_2fapi_2fhttp_2eproto;
+
+// Must be included last.
+#include "google/protobuf/port_def.inc"
+PROTOBUF_PRAGMA_INIT_SEG
+namespace _pb = ::google::protobuf;
+namespace _pbi = ::google::protobuf::internal;
+namespace _fl = ::google::protobuf::internal::field_layout;
 namespace google {
 namespace api {
 }  // namespace api
 }  // namespace google
-static constexpr ::PROTOBUF_NAMESPACE_ID::Metadata* file_level_metadata_google_2fapi_2fannotations_2eproto = nullptr;
-static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_google_2fapi_2fannotations_2eproto = nullptr;
-static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_google_2fapi_2fannotations_2eproto = nullptr;
-const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_google_2fapi_2fannotations_2eproto::offsets[1] = {};
-static constexpr ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema* schemas = nullptr;
-static constexpr ::PROTOBUF_NAMESPACE_ID::Message* const* file_default_instances = nullptr;
-
-const char descriptor_table_protodef_google_2fapi_2fannotations_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
-  "\n\034google/api/annotations.proto\022\ngoogle.a"
-  "pi\032\025google/api/http.proto\032 google/protob"
-  "uf/descriptor.proto:E\n\004http\022\036.google.pro"
-  "tobuf.MethodOptions\030\260\312\274\" \001(\0132\024.google.ap"
-  "i.HttpRuleBn\n\016com.google.apiB\020Annotation"
-  "sProtoP\001ZAgoogle.golang.org/genproto/goo"
-  "gleapis/api/annotations;annotations\242\002\004GA"
-  "PIb\006proto3"
-  ;
-static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_google_2fapi_2fannotations_2eproto_deps[2] = {
-  &::descriptor_table_google_2fapi_2fhttp_2eproto,
-  &::descriptor_table_google_2fprotobuf_2fdescriptor_2eproto,
+static constexpr const ::_pb::EnumDescriptor**
+    file_level_enum_descriptors_google_2fapi_2fannotations_2eproto = nullptr;
+static constexpr const ::_pb::ServiceDescriptor**
+    file_level_service_descriptors_google_2fapi_2fannotations_2eproto = nullptr;
+const ::uint32_t TableStruct_google_2fapi_2fannotations_2eproto::offsets[1] = {};
+static constexpr ::_pbi::MigrationSchema* schemas = nullptr;
+static constexpr ::_pb::Message* const* file_default_instances = nullptr;
+const char descriptor_table_protodef_google_2fapi_2fannotations_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
+    "\n\034google/api/annotations.proto\022\ngoogle.a"
+    "pi\032\025google/api/http.proto\032 google/protob"
+    "uf/descriptor.proto:E\n\004http\022\036.google.pro"
+    "tobuf.MethodOptions\030\260\312\274\" \001(\0132\024.google.ap"
+    "i.HttpRuleBn\n\016com.google.apiB\020Annotation"
+    "sProtoP\001ZAgoogle.golang.org/genproto/goo"
+    "gleapis/api/annotations;annotations\242\002\004GA"
+    "PIb\006proto3"
 };
-static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_google_2fapi_2fannotations_2eproto_sccs[1] = {
+static const ::_pbi::DescriptorTable* const descriptor_table_google_2fapi_2fannotations_2eproto_deps[2] =
+    {
+        &::descriptor_table_google_2fapi_2fhttp_2eproto,
+        &::descriptor_table_google_2fprotobuf_2fdescriptor_2eproto,
 };
-static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_google_2fapi_2fannotations_2eproto_once;
-static bool descriptor_table_google_2fapi_2fannotations_2eproto_initialized = false;
-const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_google_2fapi_2fannotations_2eproto = {
-  &descriptor_table_google_2fapi_2fannotations_2eproto_initialized, descriptor_table_protodef_google_2fapi_2fannotations_2eproto, "google/api/annotations.proto", 290,
-  &descriptor_table_google_2fapi_2fannotations_2eproto_once, descriptor_table_google_2fapi_2fannotations_2eproto_sccs, descriptor_table_google_2fapi_2fannotations_2eproto_deps, 0, 2,
-  schemas, file_default_instances, TableStruct_google_2fapi_2fannotations_2eproto::offsets,
-  file_level_metadata_google_2fapi_2fannotations_2eproto, 0, file_level_enum_descriptors_google_2fapi_2fannotations_2eproto, file_level_service_descriptors_google_2fapi_2fannotations_2eproto,
+static ::absl::once_flag descriptor_table_google_2fapi_2fannotations_2eproto_once;
+const ::_pbi::DescriptorTable descriptor_table_google_2fapi_2fannotations_2eproto = {
+    false,
+    false,
+    290,
+    descriptor_table_protodef_google_2fapi_2fannotations_2eproto,
+    "google/api/annotations.proto",
+    &descriptor_table_google_2fapi_2fannotations_2eproto_once,
+    descriptor_table_google_2fapi_2fannotations_2eproto_deps,
+    2,
+    0,
+    schemas,
+    file_default_instances,
+    TableStruct_google_2fapi_2fannotations_2eproto::offsets,
+    nullptr,
+    file_level_enum_descriptors_google_2fapi_2fannotations_2eproto,
+    file_level_service_descriptors_google_2fapi_2fannotations_2eproto,
 };
 
+// This function exists to be marked as weak.
+// It can significantly speed up compilation by breaking up LLVM's SCC
+// in the .pb.cc translation units. Large translation units see a
+// reduction of more than 35% of walltime for optimized builds. Without
+// the weak attribute all the messages in the file, including all the
+// vtables and everything they use become part of the same SCC through
+// a cycle like:
+// GetMetadata -> descriptor table -> default instances ->
+//   vtables -> GetMetadata
+// By adding a weak function here we break the connection from the
+// individual vtables back into the descriptor table.
+PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_google_2fapi_2fannotations_2eproto_getter() {
+  return &descriptor_table_google_2fapi_2fannotations_2eproto;
+}
 // Force running AddDescriptors() at dynamic initialization time.
-static bool dynamic_init_dummy_google_2fapi_2fannotations_2eproto = (  ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_google_2fapi_2fannotations_2eproto), true);
+PROTOBUF_ATTRIBUTE_INIT_PRIORITY2
+static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_google_2fapi_2fannotations_2eproto(&descriptor_table_google_2fapi_2fannotations_2eproto);
 namespace google {
 namespace api {
-::PROTOBUF_NAMESPACE_ID::internal::ExtensionIdentifier< ::google::protobuf::MethodOptions,
-    ::PROTOBUF_NAMESPACE_ID::internal::MessageTypeTraits< ::google::api::HttpRule >, 11, false >
-  http(kHttpFieldNumber, *::google::api::HttpRule::internal_default_instance());
-
+PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 ::google::protobuf::internal::ExtensionIdentifier< ::google::protobuf::MethodOptions,
+    ::google::protobuf::internal::MessageTypeTraits< ::google::api::HttpRule >, 11, false>
+  http(kHttpFieldNumber, ::google::api::HttpRule::default_instance(), nullptr);
 // @@protoc_insertion_point(namespace_scope)
 }  // namespace api
 }  // namespace google
-PROTOBUF_NAMESPACE_OPEN
-PROTOBUF_NAMESPACE_CLOSE
-
+namespace google {
+namespace protobuf {
+}  // namespace protobuf
+}  // namespace google
 // @@protoc_insertion_point(global_scope)
-#include <google/protobuf/port_undef.inc>
+#include "google/protobuf/port_undef.inc"

+ 60 - 51
Firestore/Protos/cpp/google/api/annotations.pb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,91 +16,100 @@
 
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/api/annotations.proto
+// Protobuf C++ Version: 4.25.1
 
-#ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fapi_2fannotations_2eproto
-#define GOOGLE_PROTOBUF_INCLUDED_google_2fapi_2fannotations_2eproto
+#ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fapi_2fannotations_2eproto_2epb_2eh
+#define GOOGLE_PROTOBUF_INCLUDED_google_2fapi_2fannotations_2eproto_2epb_2eh
 
 #include <limits>
 #include <string>
-
-#include <google/protobuf/port_def.inc>
-#if PROTOBUF_VERSION < 3011000
-#error This file was generated by a newer version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please update
-#error your headers.
-#endif
-#if 3011002 < PROTOBUF_MIN_PROTOC_VERSION
-#error This file was generated by an older version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please
-#error regenerate this file with a newer version of protoc.
-#endif
-
-#include <google/protobuf/port_undef.inc>
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/arena.h>
-#include <google/protobuf/arenastring.h>
-#include <google/protobuf/generated_message_table_driven.h>
-#include <google/protobuf/generated_message_util.h>
-#include <google/protobuf/inlined_string_field.h>
-#include <google/protobuf/metadata.h>
-#include <google/protobuf/generated_message_reflection.h>
-#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
-#include <google/protobuf/extension_set.h>  // IWYU pragma: export
+#include <type_traits>
+#include <utility>
+
+#include "google/protobuf/port_def.inc"
+#if PROTOBUF_VERSION < 4025000
+#error "This file was generated by a newer version of protoc which is"
+#error "incompatible with your Protocol Buffer headers. Please update"
+#error "your headers."
+#endif  // PROTOBUF_VERSION
+
+#if 4025001 < PROTOBUF_MIN_PROTOC_VERSION
+#error "This file was generated by an older version of protoc which is"
+#error "incompatible with your Protocol Buffer headers. Please"
+#error "regenerate this file with a newer version of protoc."
+#endif  // PROTOBUF_MIN_PROTOC_VERSION
+#include "google/protobuf/port_undef.inc"
+#include "google/protobuf/io/coded_stream.h"
+#include "google/protobuf/arena.h"
+#include "google/protobuf/arenastring.h"
+#include "google/protobuf/generated_message_tctable_decl.h"
+#include "google/protobuf/generated_message_util.h"
+#include "google/protobuf/metadata_lite.h"
+#include "google/protobuf/generated_message_reflection.h"
+#include "google/protobuf/repeated_field.h"  // IWYU pragma: export
+#include "google/protobuf/extension_set.h"  // IWYU pragma: export
 #include "google/api/http.pb.h"
-#include <google/protobuf/descriptor.pb.h>
+#include "google/protobuf/descriptor.pb.h"
 // @@protoc_insertion_point(includes)
-#include <google/protobuf/port_def.inc>
+
+// Must be included last.
+#include "google/protobuf/port_def.inc"
+
 #define PROTOBUF_INTERNAL_EXPORT_google_2fapi_2fannotations_2eproto
-PROTOBUF_NAMESPACE_OPEN
+
+namespace google {
+namespace protobuf {
 namespace internal {
 class AnyMetadata;
 }  // namespace internal
-PROTOBUF_NAMESPACE_CLOSE
+}  // namespace protobuf
+}  // namespace google
 
 // Internal implementation detail -- do not use these members.
 struct TableStruct_google_2fapi_2fannotations_2eproto {
-  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[1]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
-  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
-  static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
+  static const ::uint32_t offsets[];
 };
-extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_google_2fapi_2fannotations_2eproto;
-PROTOBUF_NAMESPACE_OPEN
-PROTOBUF_NAMESPACE_CLOSE
+extern const ::google::protobuf::internal::DescriptorTable
+    descriptor_table_google_2fapi_2fannotations_2eproto;
+namespace google {
+namespace protobuf {
+}  // namespace protobuf
+}  // namespace google
+
 namespace google {
 namespace api {
 
 // ===================================================================
 
 
+
 // ===================================================================
 
+
+
 static const int kHttpFieldNumber = 72295728;
-extern ::PROTOBUF_NAMESPACE_ID::internal::ExtensionIdentifier< ::google::protobuf::MethodOptions,
-    ::PROTOBUF_NAMESPACE_ID::internal::MessageTypeTraits< ::google::api::HttpRule >, 11, false >
+extern ::google::protobuf::internal::ExtensionIdentifier< ::google::protobuf::MethodOptions,
+    ::google::protobuf::internal::MessageTypeTraits< ::google::api::HttpRule >, 11, false >
   http;
 
 // ===================================================================
 
+
 #ifdef __GNUC__
-  #pragma GCC diagnostic push
-  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
 #endif  // __GNUC__
 #ifdef __GNUC__
-  #pragma GCC diagnostic pop
+#pragma GCC diagnostic pop
 #endif  // __GNUC__
 
 // @@protoc_insertion_point(namespace_scope)
-
 }  // namespace api
 }  // namespace google
 
+
 // @@protoc_insertion_point(global_scope)
 
-#include <google/protobuf/port_undef.inc>
-#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_google_2fapi_2fannotations_2eproto
+#include "google/protobuf/port_undef.inc"
+
+#endif  // GOOGLE_PROTOBUF_INCLUDED_google_2fapi_2fannotations_2eproto_2epb_2eh

File diff suppressed because it is too large
+ 596 - 683
Firestore/Protos/cpp/google/api/http.pb.cc


File diff suppressed because it is too large
+ 549 - 546
Firestore/Protos/cpp/google/api/http.pb.h


File diff suppressed because it is too large
+ 540 - 591
Firestore/Protos/cpp/google/api/resource.pb.cc


File diff suppressed because it is too large
+ 644 - 726
Firestore/Protos/cpp/google/api/resource.pb.h


File diff suppressed because it is too large
+ 551 - 549
Firestore/Protos/cpp/google/firestore/admin/index.pb.cc


File diff suppressed because it is too large
+ 530 - 444
Firestore/Protos/cpp/google/firestore/admin/index.pb.h


+ 283 - 285
Firestore/Protos/cpp/google/firestore/v1/aggregation_result.pb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,351 +20,351 @@
 #include "google/firestore/v1/aggregation_result.pb.h"
 
 #include <algorithm>
-
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/extension_set.h>
-#include <google/protobuf/wire_format_lite.h>
-#include <google/protobuf/descriptor.h>
-#include <google/protobuf/generated_message_reflection.h>
-#include <google/protobuf/reflection_ops.h>
-#include <google/protobuf/wire_format.h>
+#include "google/protobuf/io/coded_stream.h"
+#include "google/protobuf/extension_set.h"
+#include "google/protobuf/wire_format_lite.h"
+#include "google/protobuf/descriptor.h"
+#include "google/protobuf/generated_message_reflection.h"
+#include "google/protobuf/reflection_ops.h"
+#include "google/protobuf/wire_format.h"
+#include "google/protobuf/generated_message_tctable_impl.h"
 // @@protoc_insertion_point(includes)
-#include <google/protobuf/port_def.inc>
-extern PROTOBUF_INTERNAL_EXPORT_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_AggregationResult_AggregateFieldsEntry_DoNotUse_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_google_2ffirestore_2fv1_2fdocument_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_ArrayValue_google_2ffirestore_2fv1_2fdocument_2eproto;
+
+// Must be included last.
+#include "google/protobuf/port_def.inc"
+PROTOBUF_PRAGMA_INIT_SEG
+namespace _pb = ::google::protobuf;
+namespace _pbi = ::google::protobuf::internal;
+namespace _fl = ::google::protobuf::internal::field_layout;
 namespace google {
 namespace firestore {
 namespace v1 {
-class AggregationResult_AggregateFieldsEntry_DoNotUseDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AggregationResult_AggregateFieldsEntry_DoNotUse> _instance;
-} _AggregationResult_AggregateFieldsEntry_DoNotUse_default_instance_;
-class AggregationResultDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AggregationResult> _instance;
-} _AggregationResult_default_instance_;
+      template <typename>
+PROTOBUF_CONSTEXPR AggregationResult_AggregateFieldsEntry_DoNotUse::AggregationResult_AggregateFieldsEntry_DoNotUse(::_pbi::ConstantInitialized) {}
+struct AggregationResult_AggregateFieldsEntry_DoNotUseDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR AggregationResult_AggregateFieldsEntry_DoNotUseDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
+  ~AggregationResult_AggregateFieldsEntry_DoNotUseDefaultTypeInternal() {}
+  union {
+    AggregationResult_AggregateFieldsEntry_DoNotUse _instance;
+  };
+};
+
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
+    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AggregationResult_AggregateFieldsEntry_DoNotUseDefaultTypeInternal _AggregationResult_AggregateFieldsEntry_DoNotUse_default_instance_;
+
+inline constexpr AggregationResult::Impl_::Impl_(
+    ::_pbi::ConstantInitialized) noexcept
+      : aggregate_fields_{},
+        _cached_size_{0} {}
+
+template <typename>
+PROTOBUF_CONSTEXPR AggregationResult::AggregationResult(::_pbi::ConstantInitialized)
+    : _impl_(::_pbi::ConstantInitialized()) {}
+struct AggregationResultDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR AggregationResultDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
+  ~AggregationResultDefaultTypeInternal() {}
+  union {
+    AggregationResult _instance;
+  };
+};
+
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
+    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AggregationResultDefaultTypeInternal _AggregationResult_default_instance_;
 }  // namespace v1
 }  // namespace firestore
 }  // namespace google
-static void InitDefaultsscc_info_AggregationResult_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::google::firestore::v1::_AggregationResult_default_instance_;
-    new (ptr) ::google::firestore::v1::AggregationResult();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::google::firestore::v1::AggregationResult::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_AggregationResult_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_AggregationResult_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto}, {
-      &scc_info_AggregationResult_AggregateFieldsEntry_DoNotUse_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto.base,}};
-
-static void InitDefaultsscc_info_AggregationResult_AggregateFieldsEntry_DoNotUse_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::google::firestore::v1::_AggregationResult_AggregateFieldsEntry_DoNotUse_default_instance_;
-    new (ptr) ::google::firestore::v1::AggregationResult_AggregateFieldsEntry_DoNotUse();
-  }
-  ::google::firestore::v1::AggregationResult_AggregateFieldsEntry_DoNotUse::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_AggregationResult_AggregateFieldsEntry_DoNotUse_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_AggregationResult_AggregateFieldsEntry_DoNotUse_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto}, {
-      &scc_info_ArrayValue_google_2ffirestore_2fv1_2fdocument_2eproto.base,}};
-
-static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto[2];
-static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto = nullptr;
-static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto = nullptr;
-
-const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
-  PROTOBUF_FIELD_OFFSET(::google::firestore::v1::AggregationResult_AggregateFieldsEntry_DoNotUse, _has_bits_),
-  PROTOBUF_FIELD_OFFSET(::google::firestore::v1::AggregationResult_AggregateFieldsEntry_DoNotUse, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::google::firestore::v1::AggregationResult_AggregateFieldsEntry_DoNotUse, key_),
-  PROTOBUF_FIELD_OFFSET(::google::firestore::v1::AggregationResult_AggregateFieldsEntry_DoNotUse, value_),
-  0,
-  1,
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::google::firestore::v1::AggregationResult, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::google::firestore::v1::AggregationResult, aggregate_fields_),
-};
-static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
-  { 0, 7, sizeof(::google::firestore::v1::AggregationResult_AggregateFieldsEntry_DoNotUse)},
-  { 9, -1, sizeof(::google::firestore::v1::AggregationResult)},
+static ::_pb::Metadata file_level_metadata_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto[2];
+static constexpr const ::_pb::EnumDescriptor**
+    file_level_enum_descriptors_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto = nullptr;
+static constexpr const ::_pb::ServiceDescriptor**
+    file_level_service_descriptors_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto = nullptr;
+const ::uint32_t TableStruct_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(
+    protodesc_cold) = {
+    PROTOBUF_FIELD_OFFSET(::google::firestore::v1::AggregationResult_AggregateFieldsEntry_DoNotUse, _has_bits_),
+    PROTOBUF_FIELD_OFFSET(::google::firestore::v1::AggregationResult_AggregateFieldsEntry_DoNotUse, _internal_metadata_),
+    ~0u,  // no _extensions_
+    ~0u,  // no _oneof_case_
+    ~0u,  // no _weak_field_map_
+    ~0u,  // no _inlined_string_donated_
+    ~0u,  // no _split_
+    ~0u,  // no sizeof(Split)
+    PROTOBUF_FIELD_OFFSET(::google::firestore::v1::AggregationResult_AggregateFieldsEntry_DoNotUse, key_),
+    PROTOBUF_FIELD_OFFSET(::google::firestore::v1::AggregationResult_AggregateFieldsEntry_DoNotUse, value_),
+    0,
+    1,
+    ~0u,  // no _has_bits_
+    PROTOBUF_FIELD_OFFSET(::google::firestore::v1::AggregationResult, _internal_metadata_),
+    ~0u,  // no _extensions_
+    ~0u,  // no _oneof_case_
+    ~0u,  // no _weak_field_map_
+    ~0u,  // no _inlined_string_donated_
+    ~0u,  // no _split_
+    ~0u,  // no sizeof(Split)
+    PROTOBUF_FIELD_OFFSET(::google::firestore::v1::AggregationResult, _impl_.aggregate_fields_),
 };
 
-static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
-  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::google::firestore::v1::_AggregationResult_AggregateFieldsEntry_DoNotUse_default_instance_),
-  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::google::firestore::v1::_AggregationResult_default_instance_),
+static const ::_pbi::MigrationSchema
+    schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
+        {0, 10, -1, sizeof(::google::firestore::v1::AggregationResult_AggregateFieldsEntry_DoNotUse)},
+        {12, -1, -1, sizeof(::google::firestore::v1::AggregationResult)},
 };
 
-const char descriptor_table_protodef_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
-  "\n,google/firestore/v1/aggregation_result"
-  ".proto\022\023google.firestore.v1\032\"google/fire"
-  "store/v1/document.proto\"\276\001\n\021AggregationR"
-  "esult\022U\n\020aggregate_fields\030\002 \003(\0132;.google"
-  ".firestore.v1.AggregationResult.Aggregat"
-  "eFieldsEntry\032R\n\024AggregateFieldsEntry\022\013\n\003"
-  "key\030\001 \001(\t\022)\n\005value\030\002 \001(\0132\032.google.firest"
-  "ore.v1.Value:\0028\001B\317\001\n\027com.google.firestor"
-  "e.v1B\026AggregationResultProtoP\001Z<google.g"
-  "olang.org/genproto/googleapis/firestore/"
-  "v1;firestore\242\002\004GCFS\252\002\031Google.Cloud.Fires"
-  "tore.V1\312\002\031Google\\Cloud\\Firestore\\V1\352\002\034Go"
-  "ogle::Cloud::Firestore::V1b\006proto3"
-  ;
-static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto_deps[1] = {
-  &::descriptor_table_google_2ffirestore_2fv1_2fdocument_2eproto,
+static const ::_pb::Message* const file_default_instances[] = {
+    &::google::firestore::v1::_AggregationResult_AggregateFieldsEntry_DoNotUse_default_instance_._instance,
+    &::google::firestore::v1::_AggregationResult_default_instance_._instance,
 };
-static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto_sccs[2] = {
-  &scc_info_AggregationResult_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto.base,
-  &scc_info_AggregationResult_AggregateFieldsEntry_DoNotUse_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto.base,
+const char descriptor_table_protodef_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
+    "\n,google/firestore/v1/aggregation_result"
+    ".proto\022\023google.firestore.v1\032\"google/fire"
+    "store/v1/document.proto\"\276\001\n\021AggregationR"
+    "esult\022U\n\020aggregate_fields\030\002 \003(\0132;.google"
+    ".firestore.v1.AggregationResult.Aggregat"
+    "eFieldsEntry\032R\n\024AggregateFieldsEntry\022\013\n\003"
+    "key\030\001 \001(\t\022)\n\005value\030\002 \001(\0132\032.google.firest"
+    "ore.v1.Value:\0028\001B\317\001\n\027com.google.firestor"
+    "e.v1B\026AggregationResultProtoP\001Z<google.g"
+    "olang.org/genproto/googleapis/firestore/"
+    "v1;firestore\242\002\004GCFS\252\002\031Google.Cloud.Fires"
+    "tore.V1\312\002\031Google\\Cloud\\Firestore\\V1\352\002\034Go"
+    "ogle::Cloud::Firestore::V1b\006proto3"
 };
-static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto_once;
-static bool descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto_initialized = false;
-const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto = {
-  &descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto_initialized, descriptor_table_protodef_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto, "google/firestore/v1/aggregation_result.proto", 514,
-  &descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto_once, descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto_sccs, descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto_deps, 2, 1,
-  schemas, file_default_instances, TableStruct_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto::offsets,
-  file_level_metadata_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto, 2, file_level_enum_descriptors_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto, file_level_service_descriptors_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto,
+static const ::_pbi::DescriptorTable* const descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto_deps[1] =
+    {
+        &::descriptor_table_google_2ffirestore_2fv1_2fdocument_2eproto,
+};
+static ::absl::once_flag descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto_once;
+const ::_pbi::DescriptorTable descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto = {
+    false,
+    false,
+    514,
+    descriptor_table_protodef_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto,
+    "google/firestore/v1/aggregation_result.proto",
+    &descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto_once,
+    descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto_deps,
+    1,
+    2,
+    schemas,
+    file_default_instances,
+    TableStruct_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto::offsets,
+    file_level_metadata_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto,
+    file_level_enum_descriptors_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto,
+    file_level_service_descriptors_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto,
 };
 
+// This function exists to be marked as weak.
+// It can significantly speed up compilation by breaking up LLVM's SCC
+// in the .pb.cc translation units. Large translation units see a
+// reduction of more than 35% of walltime for optimized builds. Without
+// the weak attribute all the messages in the file, including all the
+// vtables and everything they use become part of the same SCC through
+// a cycle like:
+// GetMetadata -> descriptor table -> default instances ->
+//   vtables -> GetMetadata
+// By adding a weak function here we break the connection from the
+// individual vtables back into the descriptor table.
+PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto_getter() {
+  return &descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto;
+}
 // Force running AddDescriptors() at dynamic initialization time.
-static bool dynamic_init_dummy_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto = (  ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto), true);
+PROTOBUF_ATTRIBUTE_INIT_PRIORITY2
+static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto(&descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto);
 namespace google {
 namespace firestore {
 namespace v1 {
-
 // ===================================================================
 
 AggregationResult_AggregateFieldsEntry_DoNotUse::AggregationResult_AggregateFieldsEntry_DoNotUse() {}
-AggregationResult_AggregateFieldsEntry_DoNotUse::AggregationResult_AggregateFieldsEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
+AggregationResult_AggregateFieldsEntry_DoNotUse::AggregationResult_AggregateFieldsEntry_DoNotUse(::google::protobuf::Arena* arena)
     : SuperType(arena) {}
-void AggregationResult_AggregateFieldsEntry_DoNotUse::MergeFrom(const AggregationResult_AggregateFieldsEntry_DoNotUse& other) {
-  MergeFromInternal(other);
-}
-::PROTOBUF_NAMESPACE_ID::Metadata AggregationResult_AggregateFieldsEntry_DoNotUse::GetMetadata() const {
-  return GetMetadataStatic();
+::google::protobuf::Metadata AggregationResult_AggregateFieldsEntry_DoNotUse::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto_getter, &descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto_once,
+      file_level_metadata_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto[0]);
 }
-void AggregationResult_AggregateFieldsEntry_DoNotUse::MergeFrom(
-    const ::PROTOBUF_NAMESPACE_ID::Message& other) {
-  ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom(other);
-}
-
-
 // ===================================================================
 
-void AggregationResult::InitAsDefaultInstance() {
-}
 class AggregationResult::_Internal {
  public:
 };
 
 void AggregationResult::clear_aggregate_fields() {
-  aggregate_fields_.Clear();
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  _impl_.aggregate_fields_.Clear();
 }
-AggregationResult::AggregationResult()
-  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:google.firestore.v1.AggregationResult)
+AggregationResult::AggregationResult(::google::protobuf::Arena* arena)
+    : ::google::protobuf::Message(arena) {
+  SharedCtor(arena);
+  // @@protoc_insertion_point(arena_constructor:google.firestore.v1.AggregationResult)
 }
-AggregationResult::AggregationResult(const AggregationResult& from)
-  : ::PROTOBUF_NAMESPACE_ID::Message(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  aggregate_fields_.MergeFrom(from.aggregate_fields_);
+inline PROTOBUF_NDEBUG_INLINE AggregationResult::Impl_::Impl_(
+    ::google::protobuf::internal::InternalVisibility visibility, ::google::protobuf::Arena* arena,
+    const Impl_& from)
+      : aggregate_fields_{visibility, arena, from.aggregate_fields_},
+        _cached_size_{0} {}
+
+AggregationResult::AggregationResult(
+    ::google::protobuf::Arena* arena,
+    const AggregationResult& from)
+    : ::google::protobuf::Message(arena) {
+  AggregationResult* const _this = this;
+  (void)_this;
+  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
+      from._internal_metadata_);
+  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_);
+
   // @@protoc_insertion_point(copy_constructor:google.firestore.v1.AggregationResult)
 }
-
-void AggregationResult::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_AggregationResult_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto.base);
+inline PROTOBUF_NDEBUG_INLINE AggregationResult::Impl_::Impl_(
+    ::google::protobuf::internal::InternalVisibility visibility,
+    ::google::protobuf::Arena* arena)
+      : aggregate_fields_{visibility, arena},
+        _cached_size_{0} {}
+
+inline void AggregationResult::SharedCtor(::_pb::Arena* arena) {
+  new (&_impl_) Impl_(internal_visibility(), arena);
 }
-
 AggregationResult::~AggregationResult() {
   // @@protoc_insertion_point(destructor:google.firestore.v1.AggregationResult)
+  _internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
   SharedDtor();
 }
-
-void AggregationResult::SharedDtor() {
-}
-
-void AggregationResult::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const AggregationResult& AggregationResult::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_AggregationResult_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto.base);
-  return *internal_default_instance();
+inline void AggregationResult::SharedDtor() {
+  ABSL_DCHECK(GetArena() == nullptr);
+  _impl_.~Impl_();
 }
 
-
-void AggregationResult::Clear() {
+PROTOBUF_NOINLINE void AggregationResult::Clear() {
 // @@protoc_insertion_point(message_clear_start:google.firestore.v1.AggregationResult)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  ::uint32_t cached_has_bits = 0;
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
-  aggregate_fields_.Clear();
-  _internal_metadata_.Clear();
+  _impl_.aggregate_fields_.Clear();
+  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
 }
 
-const char* AggregationResult::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // map<string, .google.firestore.v1.Value> aggregate_fields = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
-          ptr -= 1;
-          do {
-            ptr += 1;
-            ptr = ctx->ParseMessage(&aggregate_fields_, ptr);
-            CHK_(ptr);
-            if (!ctx->DataAvailable(ptr)) break;
-          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
+const char* AggregationResult::_InternalParse(
+    const char* ptr, ::_pbi::ParseContext* ctx) {
+  ptr = ::_pbi::TcParser::ParseLoop(this, ptr, ctx, &_table_.header);
   return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
 }
 
-::PROTOBUF_NAMESPACE_ID::uint8* AggregationResult::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+
+PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
+const ::_pbi::TcParseTable<0, 1, 2, 62, 2> AggregationResult::_table_ = {
+  {
+    0,  // no _has_bits_
+    0, // no _extensions_
+    2, 0,  // max_field_number, fast_idx_mask
+    offsetof(decltype(_table_), field_lookup_table),
+    4294967293,  // skipmap
+    offsetof(decltype(_table_), field_entries),
+    1,  // num_field_entries
+    2,  // num_aux_entries
+    offsetof(decltype(_table_), aux_entries),
+    &_AggregationResult_default_instance_._instance,
+    ::_pbi::TcParser::GenericFallback,  // fallback
+  }, {{
+    {::_pbi::TcParser::MiniParse, {}},
+  }}, {{
+    65535, 65535
+  }}, {{
+    // map<string, .google.firestore.v1.Value> aggregate_fields = 2;
+    {PROTOBUF_FIELD_OFFSET(AggregationResult, _impl_.aggregate_fields_), 0, 0,
+    (0 | ::_fl::kFcRepeated | ::_fl::kMap)},
+  }}, {{
+    {::_pbi::TcParser::GetMapAuxInfo<
+        decltype(AggregationResult()._impl_.aggregate_fields_)>(
+        1, 0, 0, 9,
+        11)},
+    {::_pbi::TcParser::CreateInArenaStorageCb<::google::firestore::v1::Value>},
+  }}, {{
+    "\45\20\0\0\0\0\0\0"
+    "google.firestore.v1.AggregationResult"
+    "aggregate_fields"
+  }},
+};
+
+::uint8_t* AggregationResult::_InternalSerialize(
+    ::uint8_t* target,
+    ::google::protobuf::io::EpsCopyOutputStream* stream) const {
   // @@protoc_insertion_point(serialize_to_array_start:google.firestore.v1.AggregationResult)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
+  ::uint32_t cached_has_bits = 0;
+  (void)cached_has_bits;
 
   // map<string, .google.firestore.v1.Value> aggregate_fields = 2;
-  if (!this->_internal_aggregate_fields().empty()) {
-    typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::google::firestore::v1::Value >::const_pointer
-        ConstPtr;
-    typedef ConstPtr SortItem;
-    typedef ::PROTOBUF_NAMESPACE_ID::internal::CompareByDerefFirst<SortItem> Less;
-    struct Utf8Check {
-      static void Check(ConstPtr p) {
-        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
-          p->first.data(), static_cast<int>(p->first.length()),
-          ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
-          "google.firestore.v1.AggregationResult.AggregateFieldsEntry.key");
-      }
-    };
-
-    if (stream->IsSerializationDeterministic() &&
-        this->_internal_aggregate_fields().size() > 1) {
-      ::std::unique_ptr<SortItem[]> items(
-          new SortItem[this->_internal_aggregate_fields().size()]);
-      typedef ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::google::firestore::v1::Value >::size_type size_type;
-      size_type n = 0;
-      for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::google::firestore::v1::Value >::const_iterator
-          it = this->_internal_aggregate_fields().begin();
-          it != this->_internal_aggregate_fields().end(); ++it, ++n) {
-        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
-      }
-      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
-      for (size_type i = 0; i < n; i++) {
-        target = AggregationResult_AggregateFieldsEntry_DoNotUse::Funcs::InternalSerialize(2, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream);
-        Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)]));
+  if (!_internal_aggregate_fields().empty()) {
+    using MapType = ::google::protobuf::Map<std::string, ::google::firestore::v1::Value>;
+    using WireHelper = _pbi::MapEntryFuncs<std::string, ::google::firestore::v1::Value,
+                                   _pbi::WireFormatLite::TYPE_STRING,
+                                   _pbi::WireFormatLite::TYPE_MESSAGE>;
+    const auto& field = _internal_aggregate_fields();
+
+    if (stream->IsSerializationDeterministic() && field.size() > 1) {
+      for (const auto& entry : ::google::protobuf::internal::MapSorterPtr<MapType>(field)) {
+        target = WireHelper::InternalSerialize(
+            2, entry.first, entry.second, target, stream);
+        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+            entry.first.data(), static_cast<int>(entry.first.length()),
+ ::google::protobuf::internal::WireFormatLite::SERIALIZE, "google.firestore.v1.AggregationResult.aggregate_fields");
       }
     } else {
-      for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::google::firestore::v1::Value >::const_iterator
-          it = this->_internal_aggregate_fields().begin();
-          it != this->_internal_aggregate_fields().end(); ++it) {
-        target = AggregationResult_AggregateFieldsEntry_DoNotUse::Funcs::InternalSerialize(2, it->first, it->second, target, stream);
-        Utf8Check::Check(&(*it));
+      for (const auto& entry : field) {
+        target = WireHelper::InternalSerialize(
+            2, entry.first, entry.second, target, stream);
+        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+            entry.first.data(), static_cast<int>(entry.first.length()),
+ ::google::protobuf::internal::WireFormatLite::SERIALIZE, "google.firestore.v1.AggregationResult.aggregate_fields");
       }
     }
   }
 
   if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target, stream);
+    target =
+        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+            _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
   }
   // @@protoc_insertion_point(serialize_to_array_end:google.firestore.v1.AggregationResult)
   return target;
 }
 
-size_t AggregationResult::ByteSizeLong() const {
+::size_t AggregationResult::ByteSizeLong() const {
 // @@protoc_insertion_point(message_byte_size_start:google.firestore.v1.AggregationResult)
-  size_t total_size = 0;
+  ::size_t total_size = 0;
 
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
+  ::uint32_t cached_has_bits = 0;
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
   // map<string, .google.firestore.v1.Value> aggregate_fields = 2;
-  total_size += 1 *
-      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_aggregate_fields_size());
-  for (::PROTOBUF_NAMESPACE_ID::Map< std::string, ::google::firestore::v1::Value >::const_iterator
-      it = this->_internal_aggregate_fields().begin();
-      it != this->_internal_aggregate_fields().end(); ++it) {
-    total_size += AggregationResult_AggregateFieldsEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
-  }
-
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
-        _internal_metadata_, total_size, &_cached_size_);
+  total_size += 1 * ::google::protobuf::internal::FromIntSize(_internal_aggregate_fields_size());
+  for (const auto& entry : _internal_aggregate_fields()) {
+    total_size += _pbi::MapEntryFuncs<std::string, ::google::firestore::v1::Value,
+                                   _pbi::WireFormatLite::TYPE_STRING,
+                                   _pbi::WireFormatLite::TYPE_MESSAGE>::ByteSizeLong(entry.first, entry.second);
   }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
+  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
 }
 
-void AggregationResult::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:google.firestore.v1.AggregationResult)
-  GOOGLE_DCHECK_NE(&from, this);
-  const AggregationResult* source =
-      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<AggregationResult>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.firestore.v1.AggregationResult)
-    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.firestore.v1.AggregationResult)
-    MergeFrom(*source);
-  }
+const ::google::protobuf::Message::ClassData AggregationResult::_class_data_ = {
+    AggregationResult::MergeImpl,
+    nullptr,  // OnDemandRegisterArenaDtor
+};
+const ::google::protobuf::Message::ClassData* AggregationResult::GetClassData() const {
+  return &_class_data_;
 }
 
-void AggregationResult::MergeFrom(const AggregationResult& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:google.firestore.v1.AggregationResult)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
+void AggregationResult::MergeImpl(::google::protobuf::Message& to_msg, const ::google::protobuf::Message& from_msg) {
+  auto* const _this = static_cast<AggregationResult*>(&to_msg);
+  auto& from = static_cast<const AggregationResult&>(from_msg);
+  // @@protoc_insertion_point(class_specific_merge_from_start:google.firestore.v1.AggregationResult)
+  ABSL_DCHECK_NE(&from, _this);
+  ::uint32_t cached_has_bits = 0;
   (void) cached_has_bits;
 
-  aggregate_fields_.MergeFrom(from.aggregate_fields_);
-}
-
-void AggregationResult::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:google.firestore.v1.AggregationResult)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
+  _this->_impl_.aggregate_fields_.MergeFrom(from._impl_.aggregate_fields_);
+  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
 }
 
 void AggregationResult::CopyFrom(const AggregationResult& from) {
@@ -374,33 +374,31 @@ void AggregationResult::CopyFrom(const AggregationResult& from) {
   MergeFrom(from);
 }
 
-bool AggregationResult::IsInitialized() const {
+PROTOBUF_NOINLINE bool AggregationResult::IsInitialized() const {
   return true;
 }
 
-void AggregationResult::InternalSwap(AggregationResult* other) {
+::_pbi::CachedSize* AggregationResult::AccessCachedSize() const {
+  return &_impl_._cached_size_;
+}
+void AggregationResult::InternalSwap(AggregationResult* PROTOBUF_RESTRICT other) {
   using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  aggregate_fields_.Swap(&other->aggregate_fields_);
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  _impl_.aggregate_fields_.InternalSwap(&other->_impl_.aggregate_fields_);
 }
 
-::PROTOBUF_NAMESPACE_ID::Metadata AggregationResult::GetMetadata() const {
-  return GetMetadataStatic();
+::google::protobuf::Metadata AggregationResult::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto_getter, &descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto_once,
+      file_level_metadata_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto[1]);
 }
-
-
 // @@protoc_insertion_point(namespace_scope)
 }  // namespace v1
 }  // namespace firestore
 }  // namespace google
-PROTOBUF_NAMESPACE_OPEN
-template<> PROTOBUF_NOINLINE ::google::firestore::v1::AggregationResult_AggregateFieldsEntry_DoNotUse* Arena::CreateMaybeMessage< ::google::firestore::v1::AggregationResult_AggregateFieldsEntry_DoNotUse >(Arena* arena) {
-  return Arena::CreateInternal< ::google::firestore::v1::AggregationResult_AggregateFieldsEntry_DoNotUse >(arena);
-}
-template<> PROTOBUF_NOINLINE ::google::firestore::v1::AggregationResult* Arena::CreateMaybeMessage< ::google::firestore::v1::AggregationResult >(Arena* arena) {
-  return Arena::CreateInternal< ::google::firestore::v1::AggregationResult >(arena);
-}
-PROTOBUF_NAMESPACE_CLOSE
-
+namespace google {
+namespace protobuf {
+}  // namespace protobuf
+}  // namespace google
 // @@protoc_insertion_point(global_scope)
-#include <google/protobuf/port_undef.inc>
+#include "google/protobuf/port_undef.inc"

+ 205 - 160
Firestore/Protos/cpp/google/firestore/v1/aggregation_result.pb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,125 +16,127 @@
 
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/firestore/v1/aggregation_result.proto
+// Protobuf C++ Version: 4.25.1
 
-#ifndef GOOGLE_PROTOBUF_INCLUDED_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto
-#define GOOGLE_PROTOBUF_INCLUDED_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto
+#ifndef GOOGLE_PROTOBUF_INCLUDED_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto_2epb_2eh
+#define GOOGLE_PROTOBUF_INCLUDED_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto_2epb_2eh
 
 #include <limits>
 #include <string>
-
-#include <google/protobuf/port_def.inc>
-#if PROTOBUF_VERSION < 3011000
-#error This file was generated by a newer version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please update
-#error your headers.
-#endif
-#if 3011002 < PROTOBUF_MIN_PROTOC_VERSION
-#error This file was generated by an older version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please
-#error regenerate this file with a newer version of protoc.
-#endif
-
-#include <google/protobuf/port_undef.inc>
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/arena.h>
-#include <google/protobuf/arenastring.h>
-#include <google/protobuf/generated_message_table_driven.h>
-#include <google/protobuf/generated_message_util.h>
-#include <google/protobuf/inlined_string_field.h>
-#include <google/protobuf/metadata.h>
-#include <google/protobuf/generated_message_reflection.h>
-#include <google/protobuf/message.h>
-#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
-#include <google/protobuf/extension_set.h>  // IWYU pragma: export
-#include <google/protobuf/map.h>  // IWYU pragma: export
-#include <google/protobuf/map_entry.h>
-#include <google/protobuf/map_field_inl.h>
-#include <google/protobuf/unknown_field_set.h>
+#include <type_traits>
+#include <utility>
+
+#include "google/protobuf/port_def.inc"
+#if PROTOBUF_VERSION < 4025000
+#error "This file was generated by a newer version of protoc which is"
+#error "incompatible with your Protocol Buffer headers. Please update"
+#error "your headers."
+#endif  // PROTOBUF_VERSION
+
+#if 4025001 < PROTOBUF_MIN_PROTOC_VERSION
+#error "This file was generated by an older version of protoc which is"
+#error "incompatible with your Protocol Buffer headers. Please"
+#error "regenerate this file with a newer version of protoc."
+#endif  // PROTOBUF_MIN_PROTOC_VERSION
+#include "google/protobuf/port_undef.inc"
+#include "google/protobuf/io/coded_stream.h"
+#include "google/protobuf/arena.h"
+#include "google/protobuf/arenastring.h"
+#include "google/protobuf/generated_message_tctable_decl.h"
+#include "google/protobuf/generated_message_util.h"
+#include "google/protobuf/metadata_lite.h"
+#include "google/protobuf/generated_message_reflection.h"
+#include "google/protobuf/message.h"
+#include "google/protobuf/repeated_field.h"  // IWYU pragma: export
+#include "google/protobuf/extension_set.h"  // IWYU pragma: export
+#include "google/protobuf/map.h"  // IWYU pragma: export
+#include "google/protobuf/map_entry.h"
+#include "google/protobuf/map_field_inl.h"
+#include "google/protobuf/unknown_field_set.h"
 #include "google/firestore/v1/document.pb.h"
 // @@protoc_insertion_point(includes)
-#include <google/protobuf/port_def.inc>
+
+// Must be included last.
+#include "google/protobuf/port_def.inc"
+
 #define PROTOBUF_INTERNAL_EXPORT_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto
-PROTOBUF_NAMESPACE_OPEN
+
+namespace google {
+namespace protobuf {
 namespace internal {
 class AnyMetadata;
 }  // namespace internal
-PROTOBUF_NAMESPACE_CLOSE
+}  // namespace protobuf
+}  // namespace google
 
 // Internal implementation detail -- do not use these members.
 struct TableStruct_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto {
-  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[2]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
-  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
-  static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
+  static const ::uint32_t offsets[];
 };
-extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto;
+extern const ::google::protobuf::internal::DescriptorTable
+    descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto;
 namespace google {
 namespace firestore {
 namespace v1 {
 class AggregationResult;
-class AggregationResultDefaultTypeInternal;
+struct AggregationResultDefaultTypeInternal;
 extern AggregationResultDefaultTypeInternal _AggregationResult_default_instance_;
 class AggregationResult_AggregateFieldsEntry_DoNotUse;
-class AggregationResult_AggregateFieldsEntry_DoNotUseDefaultTypeInternal;
+struct AggregationResult_AggregateFieldsEntry_DoNotUseDefaultTypeInternal;
 extern AggregationResult_AggregateFieldsEntry_DoNotUseDefaultTypeInternal _AggregationResult_AggregateFieldsEntry_DoNotUse_default_instance_;
 }  // namespace v1
 }  // namespace firestore
+namespace protobuf {
+}  // namespace protobuf
 }  // namespace google
-PROTOBUF_NAMESPACE_OPEN
-template<> ::google::firestore::v1::AggregationResult* Arena::CreateMaybeMessage<::google::firestore::v1::AggregationResult>(Arena*);
-template<> ::google::firestore::v1::AggregationResult_AggregateFieldsEntry_DoNotUse* Arena::CreateMaybeMessage<::google::firestore::v1::AggregationResult_AggregateFieldsEntry_DoNotUse>(Arena*);
-PROTOBUF_NAMESPACE_CLOSE
+
 namespace google {
 namespace firestore {
 namespace v1 {
 
 // ===================================================================
 
-class AggregationResult_AggregateFieldsEntry_DoNotUse : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<AggregationResult_AggregateFieldsEntry_DoNotUse, 
-    std::string, ::google::firestore::v1::Value,
-    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
-    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE,
-    0 > {
-public:
-  typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntry<AggregationResult_AggregateFieldsEntry_DoNotUse, 
-    std::string, ::google::firestore::v1::Value,
-    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
-    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE,
-    0 > SuperType;
+
+// -------------------------------------------------------------------
+
+class AggregationResult_AggregateFieldsEntry_DoNotUse final
+    : public ::google::protobuf::internal::MapEntry<
+          AggregationResult_AggregateFieldsEntry_DoNotUse, std::string, ::google::firestore::v1::Value,
+          ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
+          ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE> {
+ public:
+  using SuperType = ::google::protobuf::internal::MapEntry<
+      AggregationResult_AggregateFieldsEntry_DoNotUse, std::string, ::google::firestore::v1::Value,
+      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
+      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE>;
   AggregationResult_AggregateFieldsEntry_DoNotUse();
-  AggregationResult_AggregateFieldsEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
-  void MergeFrom(const AggregationResult_AggregateFieldsEntry_DoNotUse& other);
-  static const AggregationResult_AggregateFieldsEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const AggregationResult_AggregateFieldsEntry_DoNotUse*>(&_AggregationResult_AggregateFieldsEntry_DoNotUse_default_instance_); }
+  template <typename = void>
+  explicit PROTOBUF_CONSTEXPR AggregationResult_AggregateFieldsEntry_DoNotUse(
+      ::google::protobuf::internal::ConstantInitialized);
+  explicit AggregationResult_AggregateFieldsEntry_DoNotUse(::google::protobuf::Arena* arena);
+  static const AggregationResult_AggregateFieldsEntry_DoNotUse* internal_default_instance() {
+    return reinterpret_cast<const AggregationResult_AggregateFieldsEntry_DoNotUse*>(
+        &_AggregationResult_AggregateFieldsEntry_DoNotUse_default_instance_);
+  }
   static bool ValidateKey(std::string* s) {
-    return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "google.firestore.v1.AggregationResult.AggregateFieldsEntry.key");
+    return ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::google::protobuf::internal::WireFormatLite::PARSE, "google.firestore.v1.AggregationResult.AggregateFieldsEntry.key");
  }
   static bool ValidateValue(void*) { return true; }
-  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& other) final;
-  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
-  private:
-  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
-    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto);
-    return ::descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto.file_level_metadata[0];
-  }
-
-  public:
+  ::google::protobuf::Metadata GetMetadata() const final;
+  friend struct ::TableStruct_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto;
 };
-
 // -------------------------------------------------------------------
 
-class AggregationResult :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.AggregationResult) */ {
+class AggregationResult final :
+    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.AggregationResult) */ {
  public:
-  AggregationResult();
-  virtual ~AggregationResult();
+  inline AggregationResult() : AggregationResult(nullptr) {}
+  ~AggregationResult() override;
+  template<typename = void>
+  explicit PROTOBUF_CONSTEXPR AggregationResult(::google::protobuf::internal::ConstantInitialized);
 
-  AggregationResult(const AggregationResult& from);
+  inline AggregationResult(const AggregationResult& from)
+      : AggregationResult(nullptr, from) {}
   AggregationResult(AggregationResult&& from) noexcept
     : AggregationResult() {
     *this = ::std::move(from);
@@ -145,26 +147,40 @@ class AggregationResult :
     return *this;
   }
   inline AggregationResult& operator=(AggregationResult&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
+    if (this == &from) return *this;
+    if (GetArena() == from.GetArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
     } else {
       CopyFrom(from);
     }
     return *this;
   }
 
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
+      ABSL_ATTRIBUTE_LIFETIME_BOUND {
+    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
+  }
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields()
+      ABSL_ATTRIBUTE_LIFETIME_BOUND {
+    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor() {
     return GetDescriptor();
   }
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
-    return GetMetadataStatic().descriptor;
+  static const ::google::protobuf::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
   }
-  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
-    return GetMetadataStatic().reflection;
+  static const ::google::protobuf::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const AggregationResult& default_instance() {
+    return *internal_default_instance();
   }
-  static const AggregationResult& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
   static inline const AggregationResult* internal_default_instance() {
     return reinterpret_cast<const AggregationResult*>(
                &_AggregationResult_default_instance_);
@@ -177,57 +193,66 @@ class AggregationResult :
   }
   inline void Swap(AggregationResult* other) {
     if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetArena() != nullptr &&
+        GetArena() == other->GetArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetArena() == other->GetArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::google::protobuf::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(AggregationResult* other) {
+    if (other == this) return;
+    ABSL_DCHECK(GetArena() == other->GetArena());
     InternalSwap(other);
   }
 
   // implements Message ----------------------------------------------
 
-  inline AggregationResult* New() const final {
-    return CreateMaybeMessage<AggregationResult>(nullptr);
-  }
-
-  AggregationResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
+  AggregationResult* New(::google::protobuf::Arena* arena = nullptr) const final {
     return CreateMaybeMessage<AggregationResult>(arena);
   }
-  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
+  using ::google::protobuf::Message::CopyFrom;
   void CopyFrom(const AggregationResult& from);
-  void MergeFrom(const AggregationResult& from);
+  using ::google::protobuf::Message::MergeFrom;
+  void MergeFrom( const AggregationResult& from) {
+    AggregationResult::MergeImpl(*this, from);
+  }
+  private:
+  static void MergeImpl(::google::protobuf::Message& to_msg, const ::google::protobuf::Message& from_msg);
+  public:
   PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
   bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
+  ::size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
+  ::uint8_t* _InternalSerialize(
+      ::uint8_t* target, ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const { return _impl_._cached_size_.Get(); }
 
   private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const final;
+  ::google::protobuf::internal::CachedSize* AccessCachedSize() const final;
+  void SharedCtor(::google::protobuf::Arena* arena);
+  void SharedDtor();
   void InternalSwap(AggregationResult* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "google.firestore.v1.AggregationResult";
-  }
+
   private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
+  friend class ::google::protobuf::internal::AnyMetadata;
+  static ::absl::string_view FullMessageName() {
+    return "google.firestore.v1.AggregationResult";
   }
+  protected:
+  explicit AggregationResult(::google::protobuf::Arena* arena);
+  AggregationResult(::google::protobuf::Arena* arena, const AggregationResult& from);
   public:
 
-  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
-  private:
-  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
-    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto);
-    return ::descriptor_table_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto.file_level_metadata[kIndexInFileMessages];
-  }
+  static const ClassData _class_data_;
+  const ::google::protobuf::Message::ClassData*GetClassData() const final;
 
-  public:
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -241,85 +266,105 @@ class AggregationResult :
   int aggregate_fields_size() const;
   private:
   int _internal_aggregate_fields_size() const;
+
   public:
-  void clear_aggregate_fields();
+  void clear_aggregate_fields() ;
+  const ::google::protobuf::Map<std::string, ::google::firestore::v1::Value>& aggregate_fields() const;
+  ::google::protobuf::Map<std::string, ::google::firestore::v1::Value>* mutable_aggregate_fields();
+
   private:
-  const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::google::firestore::v1::Value >&
-      _internal_aggregate_fields() const;
-  ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::google::firestore::v1::Value >*
-      _internal_mutable_aggregate_fields();
-  public:
-  const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::google::firestore::v1::Value >&
-      aggregate_fields() const;
-  ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::google::firestore::v1::Value >*
-      mutable_aggregate_fields();
+  const ::google::protobuf::Map<std::string, ::google::firestore::v1::Value>& _internal_aggregate_fields() const;
+  ::google::protobuf::Map<std::string, ::google::firestore::v1::Value>* _internal_mutable_aggregate_fields();
 
+  public:
   // @@protoc_insertion_point(class_scope:google.firestore.v1.AggregationResult)
  private:
   class _Internal;
 
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
-  ::PROTOBUF_NAMESPACE_ID::internal::MapField<
-      AggregationResult_AggregateFieldsEntry_DoNotUse,
-      std::string, ::google::firestore::v1::Value,
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_MESSAGE,
-      0 > aggregate_fields_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  friend class ::google::protobuf::internal::TcParser;
+  static const ::google::protobuf::internal::TcParseTable<
+      0, 1, 2,
+      62, 2>
+      _table_;
+  friend class ::google::protobuf::MessageLite;
+  friend class ::google::protobuf::Arena;
+  template <typename T>
+  friend class ::google::protobuf::Arena::InternalHelper;
+  using InternalArenaConstructable_ = void;
+  using DestructorSkippable_ = void;
+  struct Impl_ {
+
+        inline explicit constexpr Impl_(
+            ::google::protobuf::internal::ConstantInitialized) noexcept;
+        inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
+                              ::google::protobuf::Arena* arena);
+        inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
+                              ::google::protobuf::Arena* arena, const Impl_& from);
+    ::google::protobuf::internal::MapField<AggregationResult_AggregateFieldsEntry_DoNotUse, std::string, ::google::firestore::v1::Value,
+                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
+                      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE>
+        aggregate_fields_;
+    mutable ::google::protobuf::internal::CachedSize _cached_size_;
+    PROTOBUF_TSAN_DECLARE_MEMBER
+  };
+  union { Impl_ _impl_; };
   friend struct ::TableStruct_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto;
 };
+
 // ===================================================================
 
 
+
+
 // ===================================================================
 
+
 #ifdef __GNUC__
-  #pragma GCC diagnostic push
-  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
 #endif  // __GNUC__
 // -------------------------------------------------------------------
 
+// -------------------------------------------------------------------
+
 // AggregationResult
 
 // map<string, .google.firestore.v1.Value> aggregate_fields = 2;
 inline int AggregationResult::_internal_aggregate_fields_size() const {
-  return aggregate_fields_.size();
+  return _internal_aggregate_fields().size();
 }
 inline int AggregationResult::aggregate_fields_size() const {
   return _internal_aggregate_fields_size();
 }
-inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::google::firestore::v1::Value >&
-AggregationResult::_internal_aggregate_fields() const {
-  return aggregate_fields_.GetMap();
+inline const ::google::protobuf::Map<std::string, ::google::firestore::v1::Value>& AggregationResult::_internal_aggregate_fields() const {
+  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
+  return _impl_.aggregate_fields_.GetMap();
 }
-inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::google::firestore::v1::Value >&
-AggregationResult::aggregate_fields() const {
+inline const ::google::protobuf::Map<std::string, ::google::firestore::v1::Value>& AggregationResult::aggregate_fields() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
   // @@protoc_insertion_point(field_map:google.firestore.v1.AggregationResult.aggregate_fields)
   return _internal_aggregate_fields();
 }
-inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::google::firestore::v1::Value >*
-AggregationResult::_internal_mutable_aggregate_fields() {
-  return aggregate_fields_.MutableMap();
+inline ::google::protobuf::Map<std::string, ::google::firestore::v1::Value>* AggregationResult::_internal_mutable_aggregate_fields() {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  return _impl_.aggregate_fields_.MutableMap();
 }
-inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, ::google::firestore::v1::Value >*
-AggregationResult::mutable_aggregate_fields() {
+inline ::google::protobuf::Map<std::string, ::google::firestore::v1::Value>* AggregationResult::mutable_aggregate_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
   // @@protoc_insertion_point(field_mutable_map:google.firestore.v1.AggregationResult.aggregate_fields)
   return _internal_mutable_aggregate_fields();
 }
 
 #ifdef __GNUC__
-  #pragma GCC diagnostic pop
+#pragma GCC diagnostic pop
 #endif  // __GNUC__
-// -------------------------------------------------------------------
-
 
 // @@protoc_insertion_point(namespace_scope)
-
 }  // namespace v1
 }  // namespace firestore
 }  // namespace google
 
+
 // @@protoc_insertion_point(global_scope)
 
-#include <google/protobuf/port_undef.inc>
-#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto
+#include "google/protobuf/port_undef.inc"
+
+#endif  // GOOGLE_PROTOBUF_INCLUDED_google_2ffirestore_2fv1_2faggregation_5fresult_2eproto_2epb_2eh

+ 452 - 419
Firestore/Protos/cpp/google/firestore/v1/bloom_filter.pb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,319 +20,344 @@
 #include "google/firestore/v1/bloom_filter.pb.h"
 
 #include <algorithm>
-
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/extension_set.h>
-#include <google/protobuf/wire_format_lite.h>
-#include <google/protobuf/descriptor.h>
-#include <google/protobuf/generated_message_reflection.h>
-#include <google/protobuf/reflection_ops.h>
-#include <google/protobuf/wire_format.h>
+#include "google/protobuf/io/coded_stream.h"
+#include "google/protobuf/extension_set.h"
+#include "google/protobuf/wire_format_lite.h"
+#include "google/protobuf/descriptor.h"
+#include "google/protobuf/generated_message_reflection.h"
+#include "google/protobuf/reflection_ops.h"
+#include "google/protobuf/wire_format.h"
+#include "google/protobuf/generated_message_tctable_impl.h"
 // @@protoc_insertion_point(includes)
-#include <google/protobuf/port_def.inc>
-extern PROTOBUF_INTERNAL_EXPORT_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_BitSequence_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto;
+
+// Must be included last.
+#include "google/protobuf/port_def.inc"
+PROTOBUF_PRAGMA_INIT_SEG
+namespace _pb = ::google::protobuf;
+namespace _pbi = ::google::protobuf::internal;
+namespace _fl = ::google::protobuf::internal::field_layout;
 namespace google {
 namespace firestore {
 namespace v1 {
-class BitSequenceDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<BitSequence> _instance;
-} _BitSequence_default_instance_;
-class BloomFilterDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<BloomFilter> _instance;
-} _BloomFilter_default_instance_;
-}  // namespace v1
-}  // namespace firestore
-}  // namespace google
-static void InitDefaultsscc_info_BitSequence_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  {
-    void* ptr = &::google::firestore::v1::_BitSequence_default_instance_;
-    new (ptr) ::google::firestore::v1::BitSequence();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::google::firestore::v1::BitSequence::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_BitSequence_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_BitSequence_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto}, {}};
 
-static void InitDefaultsscc_info_BloomFilter_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
+inline constexpr BitSequence::Impl_::Impl_(
+    ::_pbi::ConstantInitialized) noexcept
+      : bitmap_(
+            &::google::protobuf::internal::fixed_address_empty_string,
+            ::_pbi::ConstantInitialized()),
+        padding_{0},
+        _cached_size_{0} {}
+
+template <typename>
+PROTOBUF_CONSTEXPR BitSequence::BitSequence(::_pbi::ConstantInitialized)
+    : _impl_(::_pbi::ConstantInitialized()) {}
+struct BitSequenceDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR BitSequenceDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
+  ~BitSequenceDefaultTypeInternal() {}
+  union {
+    BitSequence _instance;
+  };
+};
 
-  {
-    void* ptr = &::google::firestore::v1::_BloomFilter_default_instance_;
-    new (ptr) ::google::firestore::v1::BloomFilter();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::google::firestore::v1::BloomFilter::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_BloomFilter_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_BloomFilter_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto}, {
-      &scc_info_BitSequence_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto.base,}};
-
-static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto[2];
-static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto = nullptr;
-static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto = nullptr;
-
-const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::google::firestore::v1::BitSequence, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::google::firestore::v1::BitSequence, bitmap_),
-  PROTOBUF_FIELD_OFFSET(::google::firestore::v1::BitSequence, padding_),
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::google::firestore::v1::BloomFilter, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::google::firestore::v1::BloomFilter, bits_),
-  PROTOBUF_FIELD_OFFSET(::google::firestore::v1::BloomFilter, hash_count_),
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
+    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 BitSequenceDefaultTypeInternal _BitSequence_default_instance_;
+
+inline constexpr BloomFilter::Impl_::Impl_(
+    ::_pbi::ConstantInitialized) noexcept
+      : _cached_size_{0},
+        bits_{nullptr},
+        hash_count_{0} {}
+
+template <typename>
+PROTOBUF_CONSTEXPR BloomFilter::BloomFilter(::_pbi::ConstantInitialized)
+    : _impl_(::_pbi::ConstantInitialized()) {}
+struct BloomFilterDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR BloomFilterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
+  ~BloomFilterDefaultTypeInternal() {}
+  union {
+    BloomFilter _instance;
+  };
 };
-static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
-  { 0, -1, sizeof(::google::firestore::v1::BitSequence)},
-  { 7, -1, sizeof(::google::firestore::v1::BloomFilter)},
+
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
+    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 BloomFilterDefaultTypeInternal _BloomFilter_default_instance_;
+}  // namespace v1
+}  // namespace firestore
+}  // namespace google
+static ::_pb::Metadata file_level_metadata_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto[2];
+static constexpr const ::_pb::EnumDescriptor**
+    file_level_enum_descriptors_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto = nullptr;
+static constexpr const ::_pb::ServiceDescriptor**
+    file_level_service_descriptors_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto = nullptr;
+const ::uint32_t TableStruct_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(
+    protodesc_cold) = {
+    ~0u,  // no _has_bits_
+    PROTOBUF_FIELD_OFFSET(::google::firestore::v1::BitSequence, _internal_metadata_),
+    ~0u,  // no _extensions_
+    ~0u,  // no _oneof_case_
+    ~0u,  // no _weak_field_map_
+    ~0u,  // no _inlined_string_donated_
+    ~0u,  // no _split_
+    ~0u,  // no sizeof(Split)
+    PROTOBUF_FIELD_OFFSET(::google::firestore::v1::BitSequence, _impl_.bitmap_),
+    PROTOBUF_FIELD_OFFSET(::google::firestore::v1::BitSequence, _impl_.padding_),
+    PROTOBUF_FIELD_OFFSET(::google::firestore::v1::BloomFilter, _impl_._has_bits_),
+    PROTOBUF_FIELD_OFFSET(::google::firestore::v1::BloomFilter, _internal_metadata_),
+    ~0u,  // no _extensions_
+    ~0u,  // no _oneof_case_
+    ~0u,  // no _weak_field_map_
+    ~0u,  // no _inlined_string_donated_
+    ~0u,  // no _split_
+    ~0u,  // no sizeof(Split)
+    PROTOBUF_FIELD_OFFSET(::google::firestore::v1::BloomFilter, _impl_.bits_),
+    PROTOBUF_FIELD_OFFSET(::google::firestore::v1::BloomFilter, _impl_.hash_count_),
+    0,
+    ~0u,
 };
 
-static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
-  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::google::firestore::v1::_BitSequence_default_instance_),
-  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::google::firestore::v1::_BloomFilter_default_instance_),
+static const ::_pbi::MigrationSchema
+    schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
+        {0, -1, -1, sizeof(::google::firestore::v1::BitSequence)},
+        {10, 20, -1, sizeof(::google::firestore::v1::BloomFilter)},
 };
 
-const char descriptor_table_protodef_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
-  "\n&google/firestore/v1/bloom_filter.proto"
-  "\022\023google.firestore.v1\".\n\013BitSequence\022\016\n\006"
-  "bitmap\030\001 \001(\014\022\017\n\007padding\030\002 \001(\005\"Q\n\013BloomFi"
-  "lter\022.\n\004bits\030\001 \001(\0132 .google.firestore.v1"
-  ".BitSequence\022\022\n\nhash_count\030\002 \001(\005B\311\001\n\027com"
-  ".google.firestore.v1B\020BloomFilterProtoP\001"
-  "Z<google.golang.org/genproto/googleapis/"
-  "firestore/v1;firestore\242\002\004GCFS\252\002\031Google.C"
-  "loud.Firestore.V1\312\002\031Google\\Cloud\\Firesto"
-  "re\\V1\352\002\034Google::Cloud::Firestore::V1b\006pr"
-  "oto3"
-  ;
-static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto_deps[1] = {
+static const ::_pb::Message* const file_default_instances[] = {
+    &::google::firestore::v1::_BitSequence_default_instance_._instance,
+    &::google::firestore::v1::_BloomFilter_default_instance_._instance,
 };
-static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto_sccs[2] = {
-  &scc_info_BitSequence_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto.base,
-  &scc_info_BloomFilter_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto.base,
+const char descriptor_table_protodef_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
+    "\n&google/firestore/v1/bloom_filter.proto"
+    "\022\023google.firestore.v1\".\n\013BitSequence\022\016\n\006"
+    "bitmap\030\001 \001(\014\022\017\n\007padding\030\002 \001(\005\"Q\n\013BloomFi"
+    "lter\022.\n\004bits\030\001 \001(\0132 .google.firestore.v1"
+    ".BitSequence\022\022\n\nhash_count\030\002 \001(\005B\311\001\n\027com"
+    ".google.firestore.v1B\020BloomFilterProtoP\001"
+    "Z<google.golang.org/genproto/googleapis/"
+    "firestore/v1;firestore\242\002\004GCFS\252\002\031Google.C"
+    "loud.Firestore.V1\312\002\031Google\\Cloud\\Firesto"
+    "re\\V1\352\002\034Google::Cloud::Firestore::V1b\006pr"
+    "oto3"
 };
-static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto_once;
-static bool descriptor_table_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto_initialized = false;
-const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto = {
-  &descriptor_table_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto_initialized, descriptor_table_protodef_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto, "google/firestore/v1/bloom_filter.proto", 404,
-  &descriptor_table_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto_once, descriptor_table_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto_sccs, descriptor_table_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto_deps, 2, 0,
-  schemas, file_default_instances, TableStruct_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto::offsets,
-  file_level_metadata_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto, 2, file_level_enum_descriptors_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto, file_level_service_descriptors_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto,
+static ::absl::once_flag descriptor_table_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto_once;
+const ::_pbi::DescriptorTable descriptor_table_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto = {
+    false,
+    false,
+    404,
+    descriptor_table_protodef_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto,
+    "google/firestore/v1/bloom_filter.proto",
+    &descriptor_table_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto_once,
+    nullptr,
+    0,
+    2,
+    schemas,
+    file_default_instances,
+    TableStruct_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto::offsets,
+    file_level_metadata_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto,
+    file_level_enum_descriptors_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto,
+    file_level_service_descriptors_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto,
 };
 
+// This function exists to be marked as weak.
+// It can significantly speed up compilation by breaking up LLVM's SCC
+// in the .pb.cc translation units. Large translation units see a
+// reduction of more than 35% of walltime for optimized builds. Without
+// the weak attribute all the messages in the file, including all the
+// vtables and everything they use become part of the same SCC through
+// a cycle like:
+// GetMetadata -> descriptor table -> default instances ->
+//   vtables -> GetMetadata
+// By adding a weak function here we break the connection from the
+// individual vtables back into the descriptor table.
+PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto_getter() {
+  return &descriptor_table_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto;
+}
 // Force running AddDescriptors() at dynamic initialization time.
-static bool dynamic_init_dummy_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto = (  ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto), true);
+PROTOBUF_ATTRIBUTE_INIT_PRIORITY2
+static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto(&descriptor_table_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto);
 namespace google {
 namespace firestore {
 namespace v1 {
-
 // ===================================================================
 
-void BitSequence::InitAsDefaultInstance() {
-}
 class BitSequence::_Internal {
  public:
 };
 
-BitSequence::BitSequence()
-  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:google.firestore.v1.BitSequence)
-}
-BitSequence::BitSequence(const BitSequence& from)
-  : ::PROTOBUF_NAMESPACE_ID::Message(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  bitmap_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_bitmap().empty()) {
-    bitmap_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.bitmap_);
-  }
-  padding_ = from.padding_;
+BitSequence::BitSequence(::google::protobuf::Arena* arena)
+    : ::google::protobuf::Message(arena) {
+  SharedCtor(arena);
+  // @@protoc_insertion_point(arena_constructor:google.firestore.v1.BitSequence)
+}
+inline PROTOBUF_NDEBUG_INLINE BitSequence::Impl_::Impl_(
+    ::google::protobuf::internal::InternalVisibility visibility, ::google::protobuf::Arena* arena,
+    const Impl_& from)
+      : bitmap_(arena, from.bitmap_),
+        _cached_size_{0} {}
+
+BitSequence::BitSequence(
+    ::google::protobuf::Arena* arena,
+    const BitSequence& from)
+    : ::google::protobuf::Message(arena) {
+  BitSequence* const _this = this;
+  (void)_this;
+  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
+      from._internal_metadata_);
+  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_);
+  _impl_.padding_ = from._impl_.padding_;
+
   // @@protoc_insertion_point(copy_constructor:google.firestore.v1.BitSequence)
 }
+inline PROTOBUF_NDEBUG_INLINE BitSequence::Impl_::Impl_(
+    ::google::protobuf::internal::InternalVisibility visibility,
+    ::google::protobuf::Arena* arena)
+      : bitmap_(arena),
+        _cached_size_{0} {}
 
-void BitSequence::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_BitSequence_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto.base);
-  bitmap_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  padding_ = 0;
+inline void BitSequence::SharedCtor(::_pb::Arena* arena) {
+  new (&_impl_) Impl_(internal_visibility(), arena);
+  _impl_.padding_ = {};
 }
-
 BitSequence::~BitSequence() {
   // @@protoc_insertion_point(destructor:google.firestore.v1.BitSequence)
+  _internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
   SharedDtor();
 }
-
-void BitSequence::SharedDtor() {
-  bitmap_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-
-void BitSequence::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const BitSequence& BitSequence::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_BitSequence_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto.base);
-  return *internal_default_instance();
+inline void BitSequence::SharedDtor() {
+  ABSL_DCHECK(GetArena() == nullptr);
+  _impl_.bitmap_.Destroy();
+  _impl_.~Impl_();
 }
 
-
-void BitSequence::Clear() {
+PROTOBUF_NOINLINE void BitSequence::Clear() {
 // @@protoc_insertion_point(message_clear_start:google.firestore.v1.BitSequence)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  ::uint32_t cached_has_bits = 0;
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
-  bitmap_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  padding_ = 0;
-  _internal_metadata_.Clear();
-}
-
-const char* BitSequence::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // bytes bitmap = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          auto str = _internal_mutable_bitmap();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // int32 padding = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
-          padding_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
+  _impl_.bitmap_.ClearToEmpty();
+  _impl_.padding_ = 0;
+  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
+}
+
+const char* BitSequence::_InternalParse(
+    const char* ptr, ::_pbi::ParseContext* ctx) {
+  ptr = ::_pbi::TcParser::ParseLoop(this, ptr, ctx, &_table_.header);
   return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
 }
 
-::PROTOBUF_NAMESPACE_ID::uint8* BitSequence::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+
+PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
+const ::_pbi::TcParseTable<1, 2, 0, 0, 2> BitSequence::_table_ = {
+  {
+    0,  // no _has_bits_
+    0, // no _extensions_
+    2, 8,  // max_field_number, fast_idx_mask
+    offsetof(decltype(_table_), field_lookup_table),
+    4294967292,  // skipmap
+    offsetof(decltype(_table_), field_entries),
+    2,  // num_field_entries
+    0,  // num_aux_entries
+    offsetof(decltype(_table_), field_names),  // no aux_entries
+    &_BitSequence_default_instance_._instance,
+    ::_pbi::TcParser::GenericFallback,  // fallback
+  }, {{
+    // int32 padding = 2;
+    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(BitSequence, _impl_.padding_), 63>(),
+     {16, 63, 0, PROTOBUF_FIELD_OFFSET(BitSequence, _impl_.padding_)}},
+    // bytes bitmap = 1;
+    {::_pbi::TcParser::FastBS1,
+     {10, 63, 0, PROTOBUF_FIELD_OFFSET(BitSequence, _impl_.bitmap_)}},
+  }}, {{
+    65535, 65535
+  }}, {{
+    // bytes bitmap = 1;
+    {PROTOBUF_FIELD_OFFSET(BitSequence, _impl_.bitmap_), 0, 0,
+    (0 | ::_fl::kFcSingular | ::_fl::kBytes | ::_fl::kRepAString)},
+    // int32 padding = 2;
+    {PROTOBUF_FIELD_OFFSET(BitSequence, _impl_.padding_), 0, 0,
+    (0 | ::_fl::kFcSingular | ::_fl::kInt32)},
+  }},
+  // no aux_entries
+  {{
+  }},
+};
+
+::uint8_t* BitSequence::_InternalSerialize(
+    ::uint8_t* target,
+    ::google::protobuf::io::EpsCopyOutputStream* stream) const {
   // @@protoc_insertion_point(serialize_to_array_start:google.firestore.v1.BitSequence)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
+  ::uint32_t cached_has_bits = 0;
+  (void)cached_has_bits;
 
   // bytes bitmap = 1;
-  if (this->bitmap().size() > 0) {
-    target = stream->WriteBytesMaybeAliased(
-        1, this->_internal_bitmap(), target);
+  if (!this->_internal_bitmap().empty()) {
+    const std::string& _s = this->_internal_bitmap();
+    target = stream->WriteBytesMaybeAliased(1, _s, target);
   }
 
   // int32 padding = 2;
-  if (this->padding() != 0) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_padding(), target);
+  if (this->_internal_padding() != 0) {
+    target = ::google::protobuf::internal::WireFormatLite::
+        WriteInt32ToArrayWithField<2>(
+            stream, this->_internal_padding(), target);
   }
 
   if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target, stream);
+    target =
+        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+            _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
   }
   // @@protoc_insertion_point(serialize_to_array_end:google.firestore.v1.BitSequence)
   return target;
 }
 
-size_t BitSequence::ByteSizeLong() const {
+::size_t BitSequence::ByteSizeLong() const {
 // @@protoc_insertion_point(message_byte_size_start:google.firestore.v1.BitSequence)
-  size_t total_size = 0;
+  ::size_t total_size = 0;
 
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
+  ::uint32_t cached_has_bits = 0;
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
   // bytes bitmap = 1;
-  if (this->bitmap().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
-        this->_internal_bitmap());
+  if (!this->_internal_bitmap().empty()) {
+    total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
+                                    this->_internal_bitmap());
   }
 
   // int32 padding = 2;
-  if (this->padding() != 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
+  if (this->_internal_padding() != 0) {
+    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
         this->_internal_padding());
   }
 
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
-        _internal_metadata_, total_size, &_cached_size_);
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void BitSequence::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:google.firestore.v1.BitSequence)
-  GOOGLE_DCHECK_NE(&from, this);
-  const BitSequence* source =
-      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<BitSequence>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.firestore.v1.BitSequence)
-    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.firestore.v1.BitSequence)
-    MergeFrom(*source);
-  }
+  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
 }
 
-void BitSequence::MergeFrom(const BitSequence& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:google.firestore.v1.BitSequence)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
+const ::google::protobuf::Message::ClassData BitSequence::_class_data_ = {
+    BitSequence::MergeImpl,
+    nullptr,  // OnDemandRegisterArenaDtor
+};
+const ::google::protobuf::Message::ClassData* BitSequence::GetClassData() const {
+  return &_class_data_;
+}
 
-  if (from.bitmap().size() > 0) {
+void BitSequence::MergeImpl(::google::protobuf::Message& to_msg, const ::google::protobuf::Message& from_msg) {
+  auto* const _this = static_cast<BitSequence*>(&to_msg);
+  auto& from = static_cast<const BitSequence&>(from_msg);
+  // @@protoc_insertion_point(class_specific_merge_from_start:google.firestore.v1.BitSequence)
+  ABSL_DCHECK_NE(&from, _this);
+  ::uint32_t cached_has_bits = 0;
+  (void) cached_has_bits;
 
-    bitmap_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.bitmap_);
+  if (!from._internal_bitmap().empty()) {
+    _this->_internal_set_bitmap(from._internal_bitmap());
   }
-  if (from.padding() != 0) {
-    _internal_set_padding(from._internal_padding());
+  if (from._internal_padding() != 0) {
+    _this->_internal_set_padding(from._internal_padding());
   }
-}
-
-void BitSequence::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:google.firestore.v1.BitSequence)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
+  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
 }
 
 void BitSequence::CopyFrom(const BitSequence& from) {
@@ -342,230 +367,235 @@ void BitSequence::CopyFrom(const BitSequence& from) {
   MergeFrom(from);
 }
 
-bool BitSequence::IsInitialized() const {
+PROTOBUF_NOINLINE bool BitSequence::IsInitialized() const {
   return true;
 }
 
-void BitSequence::InternalSwap(BitSequence* other) {
+::_pbi::CachedSize* BitSequence::AccessCachedSize() const {
+  return &_impl_._cached_size_;
+}
+void BitSequence::InternalSwap(BitSequence* PROTOBUF_RESTRICT other) {
   using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  bitmap_.Swap(&other->bitmap_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  swap(padding_, other->padding_);
+  auto* arena = GetArena();
+  ABSL_DCHECK_EQ(arena, other->GetArena());
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.bitmap_, &other->_impl_.bitmap_, arena);
+        swap(_impl_.padding_, other->_impl_.padding_);
 }
 
-::PROTOBUF_NAMESPACE_ID::Metadata BitSequence::GetMetadata() const {
-  return GetMetadataStatic();
+::google::protobuf::Metadata BitSequence::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto_getter, &descriptor_table_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto_once,
+      file_level_metadata_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto[0]);
 }
-
-
 // ===================================================================
 
-void BloomFilter::InitAsDefaultInstance() {
-  ::google::firestore::v1::_BloomFilter_default_instance_._instance.get_mutable()->bits_ = const_cast< ::google::firestore::v1::BitSequence*>(
-      ::google::firestore::v1::BitSequence::internal_default_instance());
-}
 class BloomFilter::_Internal {
  public:
+  using HasBits = decltype(std::declval<BloomFilter>()._impl_._has_bits_);
+  static constexpr ::int32_t kHasBitsOffset =
+    8 * PROTOBUF_FIELD_OFFSET(BloomFilter, _impl_._has_bits_);
   static const ::google::firestore::v1::BitSequence& bits(const BloomFilter* msg);
+  static void set_has_bits(HasBits* has_bits) {
+    (*has_bits)[0] |= 1u;
+  }
 };
 
-const ::google::firestore::v1::BitSequence&
-BloomFilter::_Internal::bits(const BloomFilter* msg) {
-  return *msg->bits_;
-}
-BloomFilter::BloomFilter()
-  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:google.firestore.v1.BloomFilter)
-}
-BloomFilter::BloomFilter(const BloomFilter& from)
-  : ::PROTOBUF_NAMESPACE_ID::Message(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  if (from._internal_has_bits()) {
-    bits_ = new ::google::firestore::v1::BitSequence(*from.bits_);
-  } else {
-    bits_ = nullptr;
-  }
-  hash_count_ = from.hash_count_;
+const ::google::firestore::v1::BitSequence& BloomFilter::_Internal::bits(const BloomFilter* msg) {
+  return *msg->_impl_.bits_;
+}
+BloomFilter::BloomFilter(::google::protobuf::Arena* arena)
+    : ::google::protobuf::Message(arena) {
+  SharedCtor(arena);
+  // @@protoc_insertion_point(arena_constructor:google.firestore.v1.BloomFilter)
+}
+inline PROTOBUF_NDEBUG_INLINE BloomFilter::Impl_::Impl_(
+    ::google::protobuf::internal::InternalVisibility visibility, ::google::protobuf::Arena* arena,
+    const Impl_& from)
+      : _has_bits_{from._has_bits_},
+        _cached_size_{0} {}
+
+BloomFilter::BloomFilter(
+    ::google::protobuf::Arena* arena,
+    const BloomFilter& from)
+    : ::google::protobuf::Message(arena) {
+  BloomFilter* const _this = this;
+  (void)_this;
+  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
+      from._internal_metadata_);
+  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_);
+  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
+  _impl_.bits_ = (cached_has_bits & 0x00000001u)
+                ? CreateMaybeMessage<::google::firestore::v1::BitSequence>(arena, *from._impl_.bits_)
+                : nullptr;
+  _impl_.hash_count_ = from._impl_.hash_count_;
+
   // @@protoc_insertion_point(copy_constructor:google.firestore.v1.BloomFilter)
 }
+inline PROTOBUF_NDEBUG_INLINE BloomFilter::Impl_::Impl_(
+    ::google::protobuf::internal::InternalVisibility visibility,
+    ::google::protobuf::Arena* arena)
+      : _cached_size_{0} {}
 
-void BloomFilter::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_BloomFilter_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto.base);
-  ::memset(&bits_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&hash_count_) -
-      reinterpret_cast<char*>(&bits_)) + sizeof(hash_count_));
+inline void BloomFilter::SharedCtor(::_pb::Arena* arena) {
+  new (&_impl_) Impl_(internal_visibility(), arena);
+  ::memset(reinterpret_cast<char *>(&_impl_) +
+               offsetof(Impl_, bits_),
+           0,
+           offsetof(Impl_, hash_count_) -
+               offsetof(Impl_, bits_) +
+               sizeof(Impl_::hash_count_));
 }
-
 BloomFilter::~BloomFilter() {
   // @@protoc_insertion_point(destructor:google.firestore.v1.BloomFilter)
+  _internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
   SharedDtor();
 }
-
-void BloomFilter::SharedDtor() {
-  if (this != internal_default_instance()) delete bits_;
-}
-
-void BloomFilter::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const BloomFilter& BloomFilter::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_BloomFilter_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto.base);
-  return *internal_default_instance();
+inline void BloomFilter::SharedDtor() {
+  ABSL_DCHECK(GetArena() == nullptr);
+  delete _impl_.bits_;
+  _impl_.~Impl_();
 }
 
-
-void BloomFilter::Clear() {
+PROTOBUF_NOINLINE void BloomFilter::Clear() {
 // @@protoc_insertion_point(message_clear_start:google.firestore.v1.BloomFilter)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  ::uint32_t cached_has_bits = 0;
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
-  if (GetArenaNoVirtual() == nullptr && bits_ != nullptr) {
-    delete bits_;
+  cached_has_bits = _impl_._has_bits_[0];
+  if (cached_has_bits & 0x00000001u) {
+    ABSL_DCHECK(_impl_.bits_ != nullptr);
+    _impl_.bits_->Clear();
   }
-  bits_ = nullptr;
-  hash_count_ = 0;
-  _internal_metadata_.Clear();
-}
-
-const char* BloomFilter::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // .google.firestore.v1.BitSequence bits = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
-          ptr = ctx->ParseMessage(_internal_mutable_bits(), ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // int32 hash_count = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
-          hash_count_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
+  _impl_.hash_count_ = 0;
+  _impl_._has_bits_.Clear();
+  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
+}
+
+const char* BloomFilter::_InternalParse(
+    const char* ptr, ::_pbi::ParseContext* ctx) {
+  ptr = ::_pbi::TcParser::ParseLoop(this, ptr, ctx, &_table_.header);
   return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
 }
 
-::PROTOBUF_NAMESPACE_ID::uint8* BloomFilter::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+
+PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
+const ::_pbi::TcParseTable<1, 2, 1, 0, 2> BloomFilter::_table_ = {
+  {
+    PROTOBUF_FIELD_OFFSET(BloomFilter, _impl_._has_bits_),
+    0, // no _extensions_
+    2, 8,  // max_field_number, fast_idx_mask
+    offsetof(decltype(_table_), field_lookup_table),
+    4294967292,  // skipmap
+    offsetof(decltype(_table_), field_entries),
+    2,  // num_field_entries
+    1,  // num_aux_entries
+    offsetof(decltype(_table_), aux_entries),
+    &_BloomFilter_default_instance_._instance,
+    ::_pbi::TcParser::GenericFallback,  // fallback
+  }, {{
+    // int32 hash_count = 2;
+    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(BloomFilter, _impl_.hash_count_), 63>(),
+     {16, 63, 0, PROTOBUF_FIELD_OFFSET(BloomFilter, _impl_.hash_count_)}},
+    // .google.firestore.v1.BitSequence bits = 1;
+    {::_pbi::TcParser::FastMtS1,
+     {10, 0, 0, PROTOBUF_FIELD_OFFSET(BloomFilter, _impl_.bits_)}},
+  }}, {{
+    65535, 65535
+  }}, {{
+    // .google.firestore.v1.BitSequence bits = 1;
+    {PROTOBUF_FIELD_OFFSET(BloomFilter, _impl_.bits_), _Internal::kHasBitsOffset + 0, 0,
+    (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
+    // int32 hash_count = 2;
+    {PROTOBUF_FIELD_OFFSET(BloomFilter, _impl_.hash_count_), -1, 0,
+    (0 | ::_fl::kFcSingular | ::_fl::kInt32)},
+  }}, {{
+    {::_pbi::TcParser::GetTable<::google::firestore::v1::BitSequence>()},
+  }}, {{
+  }},
+};
+
+::uint8_t* BloomFilter::_InternalSerialize(
+    ::uint8_t* target,
+    ::google::protobuf::io::EpsCopyOutputStream* stream) const {
   // @@protoc_insertion_point(serialize_to_array_start:google.firestore.v1.BloomFilter)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
+  ::uint32_t cached_has_bits = 0;
+  (void)cached_has_bits;
 
+  cached_has_bits = _impl_._has_bits_[0];
   // .google.firestore.v1.BitSequence bits = 1;
-  if (this->has_bits()) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(
-        1, _Internal::bits(this), target, stream);
+  if (cached_has_bits & 0x00000001u) {
+    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
+        1, _Internal::bits(this),
+        _Internal::bits(this).GetCachedSize(), target, stream);
   }
 
   // int32 hash_count = 2;
-  if (this->hash_count() != 0) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_hash_count(), target);
+  if (this->_internal_hash_count() != 0) {
+    target = ::google::protobuf::internal::WireFormatLite::
+        WriteInt32ToArrayWithField<2>(
+            stream, this->_internal_hash_count(), target);
   }
 
   if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target, stream);
+    target =
+        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+            _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
   }
   // @@protoc_insertion_point(serialize_to_array_end:google.firestore.v1.BloomFilter)
   return target;
 }
 
-size_t BloomFilter::ByteSizeLong() const {
+::size_t BloomFilter::ByteSizeLong() const {
 // @@protoc_insertion_point(message_byte_size_start:google.firestore.v1.BloomFilter)
-  size_t total_size = 0;
+  ::size_t total_size = 0;
 
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
+  ::uint32_t cached_has_bits = 0;
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
   // .google.firestore.v1.BitSequence bits = 1;
-  if (this->has_bits()) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
-        *bits_);
+  cached_has_bits = _impl_._has_bits_[0];
+  if (cached_has_bits & 0x00000001u) {
+    total_size +=
+        1 + ::google::protobuf::internal::WireFormatLite::MessageSize(*_impl_.bits_);
   }
 
   // int32 hash_count = 2;
-  if (this->hash_count() != 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
+  if (this->_internal_hash_count() != 0) {
+    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
         this->_internal_hash_count());
   }
 
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
-        _internal_metadata_, total_size, &_cached_size_);
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
-}
-
-void BloomFilter::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:google.firestore.v1.BloomFilter)
-  GOOGLE_DCHECK_NE(&from, this);
-  const BloomFilter* source =
-      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<BloomFilter>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.firestore.v1.BloomFilter)
-    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.firestore.v1.BloomFilter)
-    MergeFrom(*source);
-  }
+  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
 }
 
-void BloomFilter::MergeFrom(const BloomFilter& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:google.firestore.v1.BloomFilter)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
+const ::google::protobuf::Message::ClassData BloomFilter::_class_data_ = {
+    BloomFilter::MergeImpl,
+    nullptr,  // OnDemandRegisterArenaDtor
+};
+const ::google::protobuf::Message::ClassData* BloomFilter::GetClassData() const {
+  return &_class_data_;
+}
+
+void BloomFilter::MergeImpl(::google::protobuf::Message& to_msg, const ::google::protobuf::Message& from_msg) {
+  auto* const _this = static_cast<BloomFilter*>(&to_msg);
+  auto& from = static_cast<const BloomFilter&>(from_msg);
+  // @@protoc_insertion_point(class_specific_merge_from_start:google.firestore.v1.BloomFilter)
+  ABSL_DCHECK_NE(&from, _this);
+  ::uint32_t cached_has_bits = 0;
   (void) cached_has_bits;
 
-  if (from.has_bits()) {
-    _internal_mutable_bits()->::google::firestore::v1::BitSequence::MergeFrom(from._internal_bits());
+  if ((from._impl_._has_bits_[0] & 0x00000001u) != 0) {
+    _this->_internal_mutable_bits()->::google::firestore::v1::BitSequence::MergeFrom(
+        from._internal_bits());
   }
-  if (from.hash_count() != 0) {
-    _internal_set_hash_count(from._internal_hash_count());
+  if (from._internal_hash_count() != 0) {
+    _this->_internal_set_hash_count(from._internal_hash_count());
   }
-}
-
-void BloomFilter::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:google.firestore.v1.BloomFilter)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
+  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
 }
 
 void BloomFilter::CopyFrom(const BloomFilter& from) {
@@ -575,34 +605,37 @@ void BloomFilter::CopyFrom(const BloomFilter& from) {
   MergeFrom(from);
 }
 
-bool BloomFilter::IsInitialized() const {
+PROTOBUF_NOINLINE bool BloomFilter::IsInitialized() const {
   return true;
 }
 
-void BloomFilter::InternalSwap(BloomFilter* other) {
+::_pbi::CachedSize* BloomFilter::AccessCachedSize() const {
+  return &_impl_._cached_size_;
+}
+void BloomFilter::InternalSwap(BloomFilter* PROTOBUF_RESTRICT other) {
   using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(bits_, other->bits_);
-  swap(hash_count_, other->hash_count_);
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
+  ::google::protobuf::internal::memswap<
+      PROTOBUF_FIELD_OFFSET(BloomFilter, _impl_.hash_count_)
+      + sizeof(BloomFilter::_impl_.hash_count_)
+      - PROTOBUF_FIELD_OFFSET(BloomFilter, _impl_.bits_)>(
+          reinterpret_cast<char*>(&_impl_.bits_),
+          reinterpret_cast<char*>(&other->_impl_.bits_));
 }
 
-::PROTOBUF_NAMESPACE_ID::Metadata BloomFilter::GetMetadata() const {
-  return GetMetadataStatic();
+::google::protobuf::Metadata BloomFilter::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto_getter, &descriptor_table_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto_once,
+      file_level_metadata_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto[1]);
 }
-
-
 // @@protoc_insertion_point(namespace_scope)
 }  // namespace v1
 }  // namespace firestore
 }  // namespace google
-PROTOBUF_NAMESPACE_OPEN
-template<> PROTOBUF_NOINLINE ::google::firestore::v1::BitSequence* Arena::CreateMaybeMessage< ::google::firestore::v1::BitSequence >(Arena* arena) {
-  return Arena::CreateInternal< ::google::firestore::v1::BitSequence >(arena);
-}
-template<> PROTOBUF_NOINLINE ::google::firestore::v1::BloomFilter* Arena::CreateMaybeMessage< ::google::firestore::v1::BloomFilter >(Arena* arena) {
-  return Arena::CreateInternal< ::google::firestore::v1::BloomFilter >(arena);
-}
-PROTOBUF_NAMESPACE_CLOSE
-
+namespace google {
+namespace protobuf {
+}  // namespace protobuf
+}  // namespace google
 // @@protoc_insertion_point(global_scope)
-#include <google/protobuf/port_undef.inc>
+#include "google/protobuf/port_undef.inc"

+ 417 - 278
Firestore/Protos/cpp/google/firestore/v1/bloom_filter.pb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,89 +16,95 @@
 
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/firestore/v1/bloom_filter.proto
+// Protobuf C++ Version: 4.25.1
 
-#ifndef GOOGLE_PROTOBUF_INCLUDED_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto
-#define GOOGLE_PROTOBUF_INCLUDED_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto
+#ifndef GOOGLE_PROTOBUF_INCLUDED_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto_2epb_2eh
+#define GOOGLE_PROTOBUF_INCLUDED_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto_2epb_2eh
 
 #include <limits>
 #include <string>
-
-#include <google/protobuf/port_def.inc>
-#if PROTOBUF_VERSION < 3011000
-#error This file was generated by a newer version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please update
-#error your headers.
-#endif
-#if 3011002 < PROTOBUF_MIN_PROTOC_VERSION
-#error This file was generated by an older version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please
-#error regenerate this file with a newer version of protoc.
-#endif
-
-#include <google/protobuf/port_undef.inc>
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/arena.h>
-#include <google/protobuf/arenastring.h>
-#include <google/protobuf/generated_message_table_driven.h>
-#include <google/protobuf/generated_message_util.h>
-#include <google/protobuf/inlined_string_field.h>
-#include <google/protobuf/metadata.h>
-#include <google/protobuf/generated_message_reflection.h>
-#include <google/protobuf/message.h>
-#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
-#include <google/protobuf/extension_set.h>  // IWYU pragma: export
-#include <google/protobuf/unknown_field_set.h>
+#include <type_traits>
+#include <utility>
+
+#include "google/protobuf/port_def.inc"
+#if PROTOBUF_VERSION < 4025000
+#error "This file was generated by a newer version of protoc which is"
+#error "incompatible with your Protocol Buffer headers. Please update"
+#error "your headers."
+#endif  // PROTOBUF_VERSION
+
+#if 4025001 < PROTOBUF_MIN_PROTOC_VERSION
+#error "This file was generated by an older version of protoc which is"
+#error "incompatible with your Protocol Buffer headers. Please"
+#error "regenerate this file with a newer version of protoc."
+#endif  // PROTOBUF_MIN_PROTOC_VERSION
+#include "google/protobuf/port_undef.inc"
+#include "google/protobuf/io/coded_stream.h"
+#include "google/protobuf/arena.h"
+#include "google/protobuf/arenastring.h"
+#include "google/protobuf/generated_message_tctable_decl.h"
+#include "google/protobuf/generated_message_util.h"
+#include "google/protobuf/metadata_lite.h"
+#include "google/protobuf/generated_message_reflection.h"
+#include "google/protobuf/message.h"
+#include "google/protobuf/repeated_field.h"  // IWYU pragma: export
+#include "google/protobuf/extension_set.h"  // IWYU pragma: export
+#include "google/protobuf/unknown_field_set.h"
 // @@protoc_insertion_point(includes)
-#include <google/protobuf/port_def.inc>
+
+// Must be included last.
+#include "google/protobuf/port_def.inc"
+
 #define PROTOBUF_INTERNAL_EXPORT_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto
-PROTOBUF_NAMESPACE_OPEN
+
+namespace google {
+namespace protobuf {
 namespace internal {
 class AnyMetadata;
 }  // namespace internal
-PROTOBUF_NAMESPACE_CLOSE
+}  // namespace protobuf
+}  // namespace google
 
 // Internal implementation detail -- do not use these members.
 struct TableStruct_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto {
-  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[2]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
-  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
-  static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
+  static const ::uint32_t offsets[];
 };
-extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto;
+extern const ::google::protobuf::internal::DescriptorTable
+    descriptor_table_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto;
 namespace google {
 namespace firestore {
 namespace v1 {
 class BitSequence;
-class BitSequenceDefaultTypeInternal;
+struct BitSequenceDefaultTypeInternal;
 extern BitSequenceDefaultTypeInternal _BitSequence_default_instance_;
 class BloomFilter;
-class BloomFilterDefaultTypeInternal;
+struct BloomFilterDefaultTypeInternal;
 extern BloomFilterDefaultTypeInternal _BloomFilter_default_instance_;
 }  // namespace v1
 }  // namespace firestore
+namespace protobuf {
+}  // namespace protobuf
 }  // namespace google
-PROTOBUF_NAMESPACE_OPEN
-template<> ::google::firestore::v1::BitSequence* Arena::CreateMaybeMessage<::google::firestore::v1::BitSequence>(Arena*);
-template<> ::google::firestore::v1::BloomFilter* Arena::CreateMaybeMessage<::google::firestore::v1::BloomFilter>(Arena*);
-PROTOBUF_NAMESPACE_CLOSE
+
 namespace google {
 namespace firestore {
 namespace v1 {
 
 // ===================================================================
 
-class BitSequence :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.BitSequence) */ {
+
+// -------------------------------------------------------------------
+
+class BitSequence final :
+    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.BitSequence) */ {
  public:
-  BitSequence();
-  virtual ~BitSequence();
+  inline BitSequence() : BitSequence(nullptr) {}
+  ~BitSequence() override;
+  template<typename = void>
+  explicit PROTOBUF_CONSTEXPR BitSequence(::google::protobuf::internal::ConstantInitialized);
 
-  BitSequence(const BitSequence& from);
+  inline BitSequence(const BitSequence& from)
+      : BitSequence(nullptr, from) {}
   BitSequence(BitSequence&& from) noexcept
     : BitSequence() {
     *this = ::std::move(from);
@@ -109,26 +115,40 @@ class BitSequence :
     return *this;
   }
   inline BitSequence& operator=(BitSequence&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
+    if (this == &from) return *this;
+    if (GetArena() == from.GetArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
     } else {
       CopyFrom(from);
     }
     return *this;
   }
 
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
+      ABSL_ATTRIBUTE_LIFETIME_BOUND {
+    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
+  }
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields()
+      ABSL_ATTRIBUTE_LIFETIME_BOUND {
+    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor() {
     return GetDescriptor();
   }
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
-    return GetMetadataStatic().descriptor;
+  static const ::google::protobuf::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
   }
-  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
-    return GetMetadataStatic().reflection;
+  static const ::google::protobuf::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const BitSequence& default_instance() {
+    return *internal_default_instance();
   }
-  static const BitSequence& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
   static inline const BitSequence* internal_default_instance() {
     return reinterpret_cast<const BitSequence*>(
                &_BitSequence_default_instance_);
@@ -141,57 +161,66 @@ class BitSequence :
   }
   inline void Swap(BitSequence* other) {
     if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetArena() != nullptr &&
+        GetArena() == other->GetArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetArena() == other->GetArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::google::protobuf::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(BitSequence* other) {
+    if (other == this) return;
+    ABSL_DCHECK(GetArena() == other->GetArena());
     InternalSwap(other);
   }
 
   // implements Message ----------------------------------------------
 
-  inline BitSequence* New() const final {
-    return CreateMaybeMessage<BitSequence>(nullptr);
-  }
-
-  BitSequence* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
+  BitSequence* New(::google::protobuf::Arena* arena = nullptr) const final {
     return CreateMaybeMessage<BitSequence>(arena);
   }
-  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
+  using ::google::protobuf::Message::CopyFrom;
   void CopyFrom(const BitSequence& from);
-  void MergeFrom(const BitSequence& from);
+  using ::google::protobuf::Message::MergeFrom;
+  void MergeFrom( const BitSequence& from) {
+    BitSequence::MergeImpl(*this, from);
+  }
+  private:
+  static void MergeImpl(::google::protobuf::Message& to_msg, const ::google::protobuf::Message& from_msg);
+  public:
   PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
   bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
+  ::size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
+  ::uint8_t* _InternalSerialize(
+      ::uint8_t* target, ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const { return _impl_._cached_size_.Get(); }
 
   private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const final;
+  ::google::protobuf::internal::CachedSize* AccessCachedSize() const final;
+  void SharedCtor(::google::protobuf::Arena* arena);
+  void SharedDtor();
   void InternalSwap(BitSequence* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "google.firestore.v1.BitSequence";
-  }
+
   private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
+  friend class ::google::protobuf::internal::AnyMetadata;
+  static ::absl::string_view FullMessageName() {
+    return "google.firestore.v1.BitSequence";
   }
+  protected:
+  explicit BitSequence(::google::protobuf::Arena* arena);
+  BitSequence(::google::protobuf::Arena* arena, const BitSequence& from);
   public:
 
-  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
-  private:
-  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
-    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto);
-    return ::descriptor_table_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto.file_level_metadata[kIndexInFileMessages];
-  }
+  static const ClassData _class_data_;
+  const ::google::protobuf::Message::ClassData*GetClassData() const final;
 
-  public:
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -202,49 +231,73 @@ class BitSequence :
     kPaddingFieldNumber = 2,
   };
   // bytes bitmap = 1;
-  void clear_bitmap();
+  void clear_bitmap() ;
   const std::string& bitmap() const;
-  void set_bitmap(const std::string& value);
-  void set_bitmap(std::string&& value);
-  void set_bitmap(const char* value);
-  void set_bitmap(const void* value, size_t size);
+  template <typename Arg_ = const std::string&, typename... Args_>
+  void set_bitmap(Arg_&& arg, Args_... args);
   std::string* mutable_bitmap();
-  std::string* release_bitmap();
-  void set_allocated_bitmap(std::string* bitmap);
+  PROTOBUF_NODISCARD std::string* release_bitmap();
+  void set_allocated_bitmap(std::string* value);
+
   private:
   const std::string& _internal_bitmap() const;
-  void _internal_set_bitmap(const std::string& value);
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_bitmap(
+      const std::string& value);
   std::string* _internal_mutable_bitmap();
-  public:
 
+  public:
   // int32 padding = 2;
-  void clear_padding();
-  ::PROTOBUF_NAMESPACE_ID::int32 padding() const;
-  void set_padding(::PROTOBUF_NAMESPACE_ID::int32 value);
+  void clear_padding() ;
+  ::int32_t padding() const;
+  void set_padding(::int32_t value);
+
   private:
-  ::PROTOBUF_NAMESPACE_ID::int32 _internal_padding() const;
-  void _internal_set_padding(::PROTOBUF_NAMESPACE_ID::int32 value);
-  public:
+  ::int32_t _internal_padding() const;
+  void _internal_set_padding(::int32_t value);
 
+  public:
   // @@protoc_insertion_point(class_scope:google.firestore.v1.BitSequence)
  private:
   class _Internal;
 
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr bitmap_;
-  ::PROTOBUF_NAMESPACE_ID::int32 padding_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  friend class ::google::protobuf::internal::TcParser;
+  static const ::google::protobuf::internal::TcParseTable<
+      1, 2, 0,
+      0, 2>
+      _table_;
+  friend class ::google::protobuf::MessageLite;
+  friend class ::google::protobuf::Arena;
+  template <typename T>
+  friend class ::google::protobuf::Arena::InternalHelper;
+  using InternalArenaConstructable_ = void;
+  using DestructorSkippable_ = void;
+  struct Impl_ {
+
+        inline explicit constexpr Impl_(
+            ::google::protobuf::internal::ConstantInitialized) noexcept;
+        inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
+                              ::google::protobuf::Arena* arena);
+        inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
+                              ::google::protobuf::Arena* arena, const Impl_& from);
+    ::google::protobuf::internal::ArenaStringPtr bitmap_;
+    ::int32_t padding_;
+    mutable ::google::protobuf::internal::CachedSize _cached_size_;
+    PROTOBUF_TSAN_DECLARE_MEMBER
+  };
+  union { Impl_ _impl_; };
   friend struct ::TableStruct_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto;
-};
-// -------------------------------------------------------------------
+};// -------------------------------------------------------------------
 
-class BloomFilter :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.BloomFilter) */ {
+class BloomFilter final :
+    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.firestore.v1.BloomFilter) */ {
  public:
-  BloomFilter();
-  virtual ~BloomFilter();
+  inline BloomFilter() : BloomFilter(nullptr) {}
+  ~BloomFilter() override;
+  template<typename = void>
+  explicit PROTOBUF_CONSTEXPR BloomFilter(::google::protobuf::internal::ConstantInitialized);
 
-  BloomFilter(const BloomFilter& from);
+  inline BloomFilter(const BloomFilter& from)
+      : BloomFilter(nullptr, from) {}
   BloomFilter(BloomFilter&& from) noexcept
     : BloomFilter() {
     *this = ::std::move(from);
@@ -255,26 +308,40 @@ class BloomFilter :
     return *this;
   }
   inline BloomFilter& operator=(BloomFilter&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
+    if (this == &from) return *this;
+    if (GetArena() == from.GetArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
     } else {
       CopyFrom(from);
     }
     return *this;
   }
 
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
+      ABSL_ATTRIBUTE_LIFETIME_BOUND {
+    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
+  }
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields()
+      ABSL_ATTRIBUTE_LIFETIME_BOUND {
+    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor() {
     return GetDescriptor();
   }
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
-    return GetMetadataStatic().descriptor;
+  static const ::google::protobuf::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
   }
-  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
-    return GetMetadataStatic().reflection;
+  static const ::google::protobuf::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const BloomFilter& default_instance() {
+    return *internal_default_instance();
   }
-  static const BloomFilter& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
   static inline const BloomFilter* internal_default_instance() {
     return reinterpret_cast<const BloomFilter*>(
                &_BloomFilter_default_instance_);
@@ -287,57 +354,66 @@ class BloomFilter :
   }
   inline void Swap(BloomFilter* other) {
     if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetArena() != nullptr &&
+        GetArena() == other->GetArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetArena() == other->GetArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::google::protobuf::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(BloomFilter* other) {
+    if (other == this) return;
+    ABSL_DCHECK(GetArena() == other->GetArena());
     InternalSwap(other);
   }
 
   // implements Message ----------------------------------------------
 
-  inline BloomFilter* New() const final {
-    return CreateMaybeMessage<BloomFilter>(nullptr);
-  }
-
-  BloomFilter* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
+  BloomFilter* New(::google::protobuf::Arena* arena = nullptr) const final {
     return CreateMaybeMessage<BloomFilter>(arena);
   }
-  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
+  using ::google::protobuf::Message::CopyFrom;
   void CopyFrom(const BloomFilter& from);
-  void MergeFrom(const BloomFilter& from);
+  using ::google::protobuf::Message::MergeFrom;
+  void MergeFrom( const BloomFilter& from) {
+    BloomFilter::MergeImpl(*this, from);
+  }
+  private:
+  static void MergeImpl(::google::protobuf::Message& to_msg, const ::google::protobuf::Message& from_msg);
+  public:
   PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
   bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
+  ::size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
+  ::uint8_t* _InternalSerialize(
+      ::uint8_t* target, ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const { return _impl_._cached_size_.Get(); }
 
   private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const final;
+  ::google::protobuf::internal::CachedSize* AccessCachedSize() const final;
+  void SharedCtor(::google::protobuf::Arena* arena);
+  void SharedDtor();
   void InternalSwap(BloomFilter* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "google.firestore.v1.BloomFilter";
-  }
+
   private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
+  friend class ::google::protobuf::internal::AnyMetadata;
+  static ::absl::string_view FullMessageName() {
+    return "google.firestore.v1.BloomFilter";
   }
+  protected:
+  explicit BloomFilter(::google::protobuf::Arena* arena);
+  BloomFilter(::google::protobuf::Arena* arena, const BloomFilter& from);
   public:
 
-  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
-  private:
-  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
-    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto);
-    return ::descriptor_table_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto.file_level_metadata[kIndexInFileMessages];
-  }
+  static const ClassData _class_data_;
+  const ::google::protobuf::Message::ClassData*GetClassData() const final;
 
-  public:
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -349,226 +425,289 @@ class BloomFilter :
   };
   // .google.firestore.v1.BitSequence bits = 1;
   bool has_bits() const;
-  private:
-  bool _internal_has_bits() const;
-  public:
-  void clear_bits();
+  void clear_bits() ;
   const ::google::firestore::v1::BitSequence& bits() const;
-  ::google::firestore::v1::BitSequence* release_bits();
+  PROTOBUF_NODISCARD ::google::firestore::v1::BitSequence* release_bits();
   ::google::firestore::v1::BitSequence* mutable_bits();
-  void set_allocated_bits(::google::firestore::v1::BitSequence* bits);
+  void set_allocated_bits(::google::firestore::v1::BitSequence* value);
+  void unsafe_arena_set_allocated_bits(::google::firestore::v1::BitSequence* value);
+  ::google::firestore::v1::BitSequence* unsafe_arena_release_bits();
+
   private:
   const ::google::firestore::v1::BitSequence& _internal_bits() const;
   ::google::firestore::v1::BitSequence* _internal_mutable_bits();
-  public:
 
+  public:
   // int32 hash_count = 2;
-  void clear_hash_count();
-  ::PROTOBUF_NAMESPACE_ID::int32 hash_count() const;
-  void set_hash_count(::PROTOBUF_NAMESPACE_ID::int32 value);
+  void clear_hash_count() ;
+  ::int32_t hash_count() const;
+  void set_hash_count(::int32_t value);
+
   private:
-  ::PROTOBUF_NAMESPACE_ID::int32 _internal_hash_count() const;
-  void _internal_set_hash_count(::PROTOBUF_NAMESPACE_ID::int32 value);
-  public:
+  ::int32_t _internal_hash_count() const;
+  void _internal_set_hash_count(::int32_t value);
 
+  public:
   // @@protoc_insertion_point(class_scope:google.firestore.v1.BloomFilter)
  private:
   class _Internal;
 
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
-  ::google::firestore::v1::BitSequence* bits_;
-  ::PROTOBUF_NAMESPACE_ID::int32 hash_count_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  friend class ::google::protobuf::internal::TcParser;
+  static const ::google::protobuf::internal::TcParseTable<
+      1, 2, 1,
+      0, 2>
+      _table_;
+  friend class ::google::protobuf::MessageLite;
+  friend class ::google::protobuf::Arena;
+  template <typename T>
+  friend class ::google::protobuf::Arena::InternalHelper;
+  using InternalArenaConstructable_ = void;
+  using DestructorSkippable_ = void;
+  struct Impl_ {
+
+        inline explicit constexpr Impl_(
+            ::google::protobuf::internal::ConstantInitialized) noexcept;
+        inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
+                              ::google::protobuf::Arena* arena);
+        inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
+                              ::google::protobuf::Arena* arena, const Impl_& from);
+    ::google::protobuf::internal::HasBits<1> _has_bits_;
+    mutable ::google::protobuf::internal::CachedSize _cached_size_;
+    ::google::firestore::v1::BitSequence* bits_;
+    ::int32_t hash_count_;
+    PROTOBUF_TSAN_DECLARE_MEMBER
+  };
+  union { Impl_ _impl_; };
   friend struct ::TableStruct_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto;
 };
+
 // ===================================================================
 
 
+
+
 // ===================================================================
 
+
 #ifdef __GNUC__
-  #pragma GCC diagnostic push
-  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
 #endif  // __GNUC__
+// -------------------------------------------------------------------
+
 // BitSequence
 
 // bytes bitmap = 1;
 inline void BitSequence::clear_bitmap() {
-  bitmap_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  _impl_.bitmap_.ClearToEmpty();
 }
-inline const std::string& BitSequence::bitmap() const {
+inline const std::string& BitSequence::bitmap() const
+    ABSL_ATTRIBUTE_LIFETIME_BOUND {
   // @@protoc_insertion_point(field_get:google.firestore.v1.BitSequence.bitmap)
   return _internal_bitmap();
 }
-inline void BitSequence::set_bitmap(const std::string& value) {
-  _internal_set_bitmap(value);
+template <typename Arg_, typename... Args_>
+inline PROTOBUF_ALWAYS_INLINE void BitSequence::set_bitmap(Arg_&& arg,
+                                                     Args_... args) {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  ;
+  _impl_.bitmap_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
   // @@protoc_insertion_point(field_set:google.firestore.v1.BitSequence.bitmap)
 }
-inline std::string* BitSequence::mutable_bitmap() {
+inline std::string* BitSequence::mutable_bitmap() ABSL_ATTRIBUTE_LIFETIME_BOUND {
+  std::string* _s = _internal_mutable_bitmap();
   // @@protoc_insertion_point(field_mutable:google.firestore.v1.BitSequence.bitmap)
-  return _internal_mutable_bitmap();
+  return _s;
 }
 inline const std::string& BitSequence::_internal_bitmap() const {
-  return bitmap_.GetNoArena();
+  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
+  return _impl_.bitmap_.Get();
 }
 inline void BitSequence::_internal_set_bitmap(const std::string& value) {
-  
-  bitmap_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void BitSequence::set_bitmap(std::string&& value) {
-  
-  bitmap_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:google.firestore.v1.BitSequence.bitmap)
-}
-inline void BitSequence::set_bitmap(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  bitmap_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:google.firestore.v1.BitSequence.bitmap)
-}
-inline void BitSequence::set_bitmap(const void* value, size_t size) {
-  
-  bitmap_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:google.firestore.v1.BitSequence.bitmap)
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  ;
+  _impl_.bitmap_.Set(value, GetArena());
 }
 inline std::string* BitSequence::_internal_mutable_bitmap() {
-  
-  return bitmap_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  ;
+  return _impl_.bitmap_.Mutable( GetArena());
 }
 inline std::string* BitSequence::release_bitmap() {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
   // @@protoc_insertion_point(field_release:google.firestore.v1.BitSequence.bitmap)
-  
-  return bitmap_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return _impl_.bitmap_.Release();
 }
-inline void BitSequence::set_allocated_bitmap(std::string* bitmap) {
-  if (bitmap != nullptr) {
-    
-  } else {
-    
-  }
-  bitmap_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), bitmap);
+inline void BitSequence::set_allocated_bitmap(std::string* value) {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  _impl_.bitmap_.SetAllocated(value, GetArena());
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+        if (_impl_.bitmap_.IsDefault()) {
+          _impl_.bitmap_.Set("", GetArena());
+        }
+  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
   // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.BitSequence.bitmap)
 }
 
 // int32 padding = 2;
 inline void BitSequence::clear_padding() {
-  padding_ = 0;
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  _impl_.padding_ = 0;
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 BitSequence::_internal_padding() const {
-  return padding_;
-}
-inline ::PROTOBUF_NAMESPACE_ID::int32 BitSequence::padding() const {
+inline ::int32_t BitSequence::padding() const {
   // @@protoc_insertion_point(field_get:google.firestore.v1.BitSequence.padding)
   return _internal_padding();
 }
-inline void BitSequence::_internal_set_padding(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  
-  padding_ = value;
-}
-inline void BitSequence::set_padding(::PROTOBUF_NAMESPACE_ID::int32 value) {
+inline void BitSequence::set_padding(::int32_t value) {
   _internal_set_padding(value);
   // @@protoc_insertion_point(field_set:google.firestore.v1.BitSequence.padding)
 }
+inline ::int32_t BitSequence::_internal_padding() const {
+  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
+  return _impl_.padding_;
+}
+inline void BitSequence::_internal_set_padding(::int32_t value) {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  ;
+  _impl_.padding_ = value;
+}
 
 // -------------------------------------------------------------------
 
 // BloomFilter
 
 // .google.firestore.v1.BitSequence bits = 1;
-inline bool BloomFilter::_internal_has_bits() const {
-  return this != internal_default_instance() && bits_ != nullptr;
-}
 inline bool BloomFilter::has_bits() const {
-  return _internal_has_bits();
+  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
+  PROTOBUF_ASSUME(!value || _impl_.bits_ != nullptr);
+  return value;
 }
 inline void BloomFilter::clear_bits() {
-  if (GetArenaNoVirtual() == nullptr && bits_ != nullptr) {
-    delete bits_;
-  }
-  bits_ = nullptr;
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  if (_impl_.bits_ != nullptr) _impl_.bits_->Clear();
+  _impl_._has_bits_[0] &= ~0x00000001u;
 }
 inline const ::google::firestore::v1::BitSequence& BloomFilter::_internal_bits() const {
-  const ::google::firestore::v1::BitSequence* p = bits_;
-  return p != nullptr ? *p : *reinterpret_cast<const ::google::firestore::v1::BitSequence*>(
-      &::google::firestore::v1::_BitSequence_default_instance_);
+  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
+  const ::google::firestore::v1::BitSequence* p = _impl_.bits_;
+  return p != nullptr ? *p : reinterpret_cast<const ::google::firestore::v1::BitSequence&>(::google::firestore::v1::_BitSequence_default_instance_);
 }
-inline const ::google::firestore::v1::BitSequence& BloomFilter::bits() const {
+inline const ::google::firestore::v1::BitSequence& BloomFilter::bits() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
   // @@protoc_insertion_point(field_get:google.firestore.v1.BloomFilter.bits)
   return _internal_bits();
 }
+inline void BloomFilter::unsafe_arena_set_allocated_bits(::google::firestore::v1::BitSequence* value) {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  if (GetArena() == nullptr) {
+    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.bits_);
+  }
+  _impl_.bits_ = reinterpret_cast<::google::firestore::v1::BitSequence*>(value);
+  if (value != nullptr) {
+    _impl_._has_bits_[0] |= 0x00000001u;
+  } else {
+    _impl_._has_bits_[0] &= ~0x00000001u;
+  }
+  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.firestore.v1.BloomFilter.bits)
+}
 inline ::google::firestore::v1::BitSequence* BloomFilter::release_bits() {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+
+  _impl_._has_bits_[0] &= ~0x00000001u;
+  ::google::firestore::v1::BitSequence* released = _impl_.bits_;
+  _impl_.bits_ = nullptr;
+#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
+  auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
+  released = ::google::protobuf::internal::DuplicateIfNonNull(released);
+  if (GetArena() == nullptr) {
+    delete old;
+  }
+#else   // PROTOBUF_FORCE_COPY_IN_RELEASE
+  if (GetArena() != nullptr) {
+    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
+  }
+#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
+  return released;
+}
+inline ::google::firestore::v1::BitSequence* BloomFilter::unsafe_arena_release_bits() {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
   // @@protoc_insertion_point(field_release:google.firestore.v1.BloomFilter.bits)
-  
-  ::google::firestore::v1::BitSequence* temp = bits_;
-  bits_ = nullptr;
+
+  _impl_._has_bits_[0] &= ~0x00000001u;
+  ::google::firestore::v1::BitSequence* temp = _impl_.bits_;
+  _impl_.bits_ = nullptr;
   return temp;
 }
 inline ::google::firestore::v1::BitSequence* BloomFilter::_internal_mutable_bits() {
-  
-  if (bits_ == nullptr) {
-    auto* p = CreateMaybeMessage<::google::firestore::v1::BitSequence>(GetArenaNoVirtual());
-    bits_ = p;
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  _impl_._has_bits_[0] |= 0x00000001u;
+  if (_impl_.bits_ == nullptr) {
+    auto* p = CreateMaybeMessage<::google::firestore::v1::BitSequence>(GetArena());
+    _impl_.bits_ = reinterpret_cast<::google::firestore::v1::BitSequence*>(p);
   }
-  return bits_;
+  return _impl_.bits_;
 }
-inline ::google::firestore::v1::BitSequence* BloomFilter::mutable_bits() {
+inline ::google::firestore::v1::BitSequence* BloomFilter::mutable_bits() ABSL_ATTRIBUTE_LIFETIME_BOUND {
+  ::google::firestore::v1::BitSequence* _msg = _internal_mutable_bits();
   // @@protoc_insertion_point(field_mutable:google.firestore.v1.BloomFilter.bits)
-  return _internal_mutable_bits();
+  return _msg;
 }
-inline void BloomFilter::set_allocated_bits(::google::firestore::v1::BitSequence* bits) {
-  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
+inline void BloomFilter::set_allocated_bits(::google::firestore::v1::BitSequence* value) {
+  ::google::protobuf::Arena* message_arena = GetArena();
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
   if (message_arena == nullptr) {
-    delete bits_;
+    delete reinterpret_cast<::google::firestore::v1::BitSequence*>(_impl_.bits_);
   }
-  if (bits) {
-    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
+
+  if (value != nullptr) {
+    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::firestore::v1::BitSequence*>(value)->GetArena();
     if (message_arena != submessage_arena) {
-      bits = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
-          message_arena, bits, submessage_arena);
+      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
     }
-    
+    _impl_._has_bits_[0] |= 0x00000001u;
   } else {
-    
+    _impl_._has_bits_[0] &= ~0x00000001u;
   }
-  bits_ = bits;
+
+  _impl_.bits_ = reinterpret_cast<::google::firestore::v1::BitSequence*>(value);
   // @@protoc_insertion_point(field_set_allocated:google.firestore.v1.BloomFilter.bits)
 }
 
 // int32 hash_count = 2;
 inline void BloomFilter::clear_hash_count() {
-  hash_count_ = 0;
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  _impl_.hash_count_ = 0;
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 BloomFilter::_internal_hash_count() const {
-  return hash_count_;
-}
-inline ::PROTOBUF_NAMESPACE_ID::int32 BloomFilter::hash_count() const {
+inline ::int32_t BloomFilter::hash_count() const {
   // @@protoc_insertion_point(field_get:google.firestore.v1.BloomFilter.hash_count)
   return _internal_hash_count();
 }
-inline void BloomFilter::_internal_set_hash_count(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  
-  hash_count_ = value;
-}
-inline void BloomFilter::set_hash_count(::PROTOBUF_NAMESPACE_ID::int32 value) {
+inline void BloomFilter::set_hash_count(::int32_t value) {
   _internal_set_hash_count(value);
   // @@protoc_insertion_point(field_set:google.firestore.v1.BloomFilter.hash_count)
 }
+inline ::int32_t BloomFilter::_internal_hash_count() const {
+  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
+  return _impl_.hash_count_;
+}
+inline void BloomFilter::_internal_set_hash_count(::int32_t value) {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  ;
+  _impl_.hash_count_ = value;
+}
 
 #ifdef __GNUC__
-  #pragma GCC diagnostic pop
+#pragma GCC diagnostic pop
 #endif  // __GNUC__
-// -------------------------------------------------------------------
-
 
 // @@protoc_insertion_point(namespace_scope)
-
 }  // namespace v1
 }  // namespace firestore
 }  // namespace google
 
+
 // @@protoc_insertion_point(global_scope)
 
-#include <google/protobuf/port_undef.inc>
-#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto
+#include "google/protobuf/port_undef.inc"
+
+#endif  // GOOGLE_PROTOBUF_INCLUDED_google_2ffirestore_2fv1_2fbloom_5ffilter_2eproto_2epb_2eh

File diff suppressed because it is too large
+ 512 - 493
Firestore/Protos/cpp/google/firestore/v1/common.pb.cc


File diff suppressed because it is too large
+ 623 - 423
Firestore/Protos/cpp/google/firestore/v1/common.pb.h


File diff suppressed because it is too large
+ 541 - 513
Firestore/Protos/cpp/google/firestore/v1/document.pb.cc


File diff suppressed because it is too large
+ 544 - 344
Firestore/Protos/cpp/google/firestore/v1/document.pb.h


File diff suppressed because it is too large
+ 1398 - 1200
Firestore/Protos/cpp/google/firestore/v1/firestore.pb.cc


File diff suppressed because it is too large
+ 674 - 648
Firestore/Protos/cpp/google/firestore/v1/firestore.pb.h


File diff suppressed because it is too large
+ 661 - 593
Firestore/Protos/cpp/google/firestore/v1/query.pb.cc


File diff suppressed because it is too large
+ 945 - 832
Firestore/Protos/cpp/google/firestore/v1/query.pb.h


File diff suppressed because it is too large
+ 752 - 698
Firestore/Protos/cpp/google/firestore/v1/write.pb.cc


File diff suppressed because it is too large
+ 1856 - 1362
Firestore/Protos/cpp/google/firestore/v1/write.pb.h


+ 275 - 253
Firestore/Protos/cpp/google/rpc/status.pb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,324 +20,344 @@
 #include "google/rpc/status.pb.h"
 
 #include <algorithm>
-
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/extension_set.h>
-#include <google/protobuf/wire_format_lite.h>
-#include <google/protobuf/descriptor.h>
-#include <google/protobuf/generated_message_reflection.h>
-#include <google/protobuf/reflection_ops.h>
-#include <google/protobuf/wire_format.h>
+#include "google/protobuf/io/coded_stream.h"
+#include "google/protobuf/extension_set.h"
+#include "google/protobuf/wire_format_lite.h"
+#include "google/protobuf/descriptor.h"
+#include "google/protobuf/generated_message_reflection.h"
+#include "google/protobuf/reflection_ops.h"
+#include "google/protobuf/wire_format.h"
+#include "google/protobuf/generated_message_tctable_impl.h"
 // @@protoc_insertion_point(includes)
-#include <google/protobuf/port_def.inc>
-extern PROTOBUF_INTERNAL_EXPORT_google_2fprotobuf_2fany_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Any_google_2fprotobuf_2fany_2eproto;
+
+// Must be included last.
+#include "google/protobuf/port_def.inc"
+PROTOBUF_PRAGMA_INIT_SEG
+namespace _pb = ::google::protobuf;
+namespace _pbi = ::google::protobuf::internal;
+namespace _fl = ::google::protobuf::internal::field_layout;
 namespace google {
 namespace rpc {
-class StatusDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Status> _instance;
-} _Status_default_instance_;
-}  // namespace rpc
-}  // namespace google
-static void InitDefaultsscc_info_Status_google_2frpc_2fstatus_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
 
-  {
-    void* ptr = &::google::rpc::_Status_default_instance_;
-    new (ptr) ::google::rpc::Status();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::google::rpc::Status::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Status_google_2frpc_2fstatus_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_Status_google_2frpc_2fstatus_2eproto}, {
-      &scc_info_Any_google_2fprotobuf_2fany_2eproto.base,}};
-
-static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_google_2frpc_2fstatus_2eproto[1];
-static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_google_2frpc_2fstatus_2eproto = nullptr;
-static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_google_2frpc_2fstatus_2eproto = nullptr;
-
-const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_google_2frpc_2fstatus_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::google::rpc::Status, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::google::rpc::Status, code_),
-  PROTOBUF_FIELD_OFFSET(::google::rpc::Status, message_),
-  PROTOBUF_FIELD_OFFSET(::google::rpc::Status, details_),
+inline constexpr Status::Impl_::Impl_(
+    ::_pbi::ConstantInitialized) noexcept
+      : details_{},
+        message_(
+            &::google::protobuf::internal::fixed_address_empty_string,
+            ::_pbi::ConstantInitialized()),
+        code_{0},
+        _cached_size_{0} {}
+
+template <typename>
+PROTOBUF_CONSTEXPR Status::Status(::_pbi::ConstantInitialized)
+    : _impl_(::_pbi::ConstantInitialized()) {}
+struct StatusDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR StatusDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
+  ~StatusDefaultTypeInternal() {}
+  union {
+    Status _instance;
+  };
 };
-static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
-  { 0, -1, sizeof(::google::rpc::Status)},
+
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
+    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 StatusDefaultTypeInternal _Status_default_instance_;
+}  // namespace rpc
+}  // namespace google
+static ::_pb::Metadata file_level_metadata_google_2frpc_2fstatus_2eproto[1];
+static constexpr const ::_pb::EnumDescriptor**
+    file_level_enum_descriptors_google_2frpc_2fstatus_2eproto = nullptr;
+static constexpr const ::_pb::ServiceDescriptor**
+    file_level_service_descriptors_google_2frpc_2fstatus_2eproto = nullptr;
+const ::uint32_t TableStruct_google_2frpc_2fstatus_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(
+    protodesc_cold) = {
+    ~0u,  // no _has_bits_
+    PROTOBUF_FIELD_OFFSET(::google::rpc::Status, _internal_metadata_),
+    ~0u,  // no _extensions_
+    ~0u,  // no _oneof_case_
+    ~0u,  // no _weak_field_map_
+    ~0u,  // no _inlined_string_donated_
+    ~0u,  // no _split_
+    ~0u,  // no sizeof(Split)
+    PROTOBUF_FIELD_OFFSET(::google::rpc::Status, _impl_.code_),
+    PROTOBUF_FIELD_OFFSET(::google::rpc::Status, _impl_.message_),
+    PROTOBUF_FIELD_OFFSET(::google::rpc::Status, _impl_.details_),
 };
 
-static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
-  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::google::rpc::_Status_default_instance_),
+static const ::_pbi::MigrationSchema
+    schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
+        {0, -1, -1, sizeof(::google::rpc::Status)},
 };
 
-const char descriptor_table_protodef_google_2frpc_2fstatus_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
-  "\n\027google/rpc/status.proto\022\ngoogle.rpc\032\031g"
-  "oogle/protobuf/any.proto\"N\n\006Status\022\014\n\004co"
-  "de\030\001 \001(\005\022\017\n\007message\030\002 \001(\t\022%\n\007details\030\003 \003"
-  "(\0132\024.google.protobuf.AnyB^\n\016com.google.r"
-  "pcB\013StatusProtoP\001Z7google.golang.org/gen"
-  "proto/googleapis/rpc/status;status\242\002\003RPC"
-  "b\006proto3"
-  ;
-static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_google_2frpc_2fstatus_2eproto_deps[1] = {
-  &::descriptor_table_google_2fprotobuf_2fany_2eproto,
+static const ::_pb::Message* const file_default_instances[] = {
+    &::google::rpc::_Status_default_instance_._instance,
+};
+const char descriptor_table_protodef_google_2frpc_2fstatus_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
+    "\n\027google/rpc/status.proto\022\ngoogle.rpc\032\031g"
+    "oogle/protobuf/any.proto\"N\n\006Status\022\014\n\004co"
+    "de\030\001 \001(\005\022\017\n\007message\030\002 \001(\t\022%\n\007details\030\003 \003"
+    "(\0132\024.google.protobuf.AnyB^\n\016com.google.r"
+    "pcB\013StatusProtoP\001Z7google.golang.org/gen"
+    "proto/googleapis/rpc/status;status\242\002\003RPC"
+    "b\006proto3"
 };
-static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_google_2frpc_2fstatus_2eproto_sccs[1] = {
-  &scc_info_Status_google_2frpc_2fstatus_2eproto.base,
+static const ::_pbi::DescriptorTable* const descriptor_table_google_2frpc_2fstatus_2eproto_deps[1] =
+    {
+        &::descriptor_table_google_2fprotobuf_2fany_2eproto,
 };
-static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_google_2frpc_2fstatus_2eproto_once;
-static bool descriptor_table_google_2frpc_2fstatus_2eproto_initialized = false;
-const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_google_2frpc_2fstatus_2eproto = {
-  &descriptor_table_google_2frpc_2fstatus_2eproto_initialized, descriptor_table_protodef_google_2frpc_2fstatus_2eproto, "google/rpc/status.proto", 248,
-  &descriptor_table_google_2frpc_2fstatus_2eproto_once, descriptor_table_google_2frpc_2fstatus_2eproto_sccs, descriptor_table_google_2frpc_2fstatus_2eproto_deps, 1, 1,
-  schemas, file_default_instances, TableStruct_google_2frpc_2fstatus_2eproto::offsets,
-  file_level_metadata_google_2frpc_2fstatus_2eproto, 1, file_level_enum_descriptors_google_2frpc_2fstatus_2eproto, file_level_service_descriptors_google_2frpc_2fstatus_2eproto,
+static ::absl::once_flag descriptor_table_google_2frpc_2fstatus_2eproto_once;
+const ::_pbi::DescriptorTable descriptor_table_google_2frpc_2fstatus_2eproto = {
+    false,
+    false,
+    248,
+    descriptor_table_protodef_google_2frpc_2fstatus_2eproto,
+    "google/rpc/status.proto",
+    &descriptor_table_google_2frpc_2fstatus_2eproto_once,
+    descriptor_table_google_2frpc_2fstatus_2eproto_deps,
+    1,
+    1,
+    schemas,
+    file_default_instances,
+    TableStruct_google_2frpc_2fstatus_2eproto::offsets,
+    file_level_metadata_google_2frpc_2fstatus_2eproto,
+    file_level_enum_descriptors_google_2frpc_2fstatus_2eproto,
+    file_level_service_descriptors_google_2frpc_2fstatus_2eproto,
 };
 
+// This function exists to be marked as weak.
+// It can significantly speed up compilation by breaking up LLVM's SCC
+// in the .pb.cc translation units. Large translation units see a
+// reduction of more than 35% of walltime for optimized builds. Without
+// the weak attribute all the messages in the file, including all the
+// vtables and everything they use become part of the same SCC through
+// a cycle like:
+// GetMetadata -> descriptor table -> default instances ->
+//   vtables -> GetMetadata
+// By adding a weak function here we break the connection from the
+// individual vtables back into the descriptor table.
+PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_google_2frpc_2fstatus_2eproto_getter() {
+  return &descriptor_table_google_2frpc_2fstatus_2eproto;
+}
 // Force running AddDescriptors() at dynamic initialization time.
-static bool dynamic_init_dummy_google_2frpc_2fstatus_2eproto = (  ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_google_2frpc_2fstatus_2eproto), true);
+PROTOBUF_ATTRIBUTE_INIT_PRIORITY2
+static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_google_2frpc_2fstatus_2eproto(&descriptor_table_google_2frpc_2fstatus_2eproto);
 namespace google {
 namespace rpc {
-
 // ===================================================================
 
-void Status::InitAsDefaultInstance() {
-}
 class Status::_Internal {
  public:
 };
 
 void Status::clear_details() {
-  details_.Clear();
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  _impl_.details_.Clear();
 }
-Status::Status()
-  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:google.rpc.Status)
+Status::Status(::google::protobuf::Arena* arena)
+    : ::google::protobuf::Message(arena) {
+  SharedCtor(arena);
+  // @@protoc_insertion_point(arena_constructor:google.rpc.Status)
 }
-Status::Status(const Status& from)
-  : ::PROTOBUF_NAMESPACE_ID::Message(),
-      _internal_metadata_(nullptr),
-      details_(from.details_) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  message_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  if (!from._internal_message().empty()) {
-    message_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.message_);
-  }
-  code_ = from.code_;
+inline PROTOBUF_NDEBUG_INLINE Status::Impl_::Impl_(
+    ::google::protobuf::internal::InternalVisibility visibility, ::google::protobuf::Arena* arena,
+    const Impl_& from)
+      : details_{visibility, arena, from.details_},
+        message_(arena, from.message_),
+        _cached_size_{0} {}
+
+Status::Status(
+    ::google::protobuf::Arena* arena,
+    const Status& from)
+    : ::google::protobuf::Message(arena) {
+  Status* const _this = this;
+  (void)_this;
+  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
+      from._internal_metadata_);
+  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_);
+  _impl_.code_ = from._impl_.code_;
+
   // @@protoc_insertion_point(copy_constructor:google.rpc.Status)
 }
-
-void Status::SharedCtor() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Status_google_2frpc_2fstatus_2eproto.base);
-  message_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  code_ = 0;
+inline PROTOBUF_NDEBUG_INLINE Status::Impl_::Impl_(
+    ::google::protobuf::internal::InternalVisibility visibility,
+    ::google::protobuf::Arena* arena)
+      : details_{visibility, arena},
+        message_(arena),
+        _cached_size_{0} {}
+
+inline void Status::SharedCtor(::_pb::Arena* arena) {
+  new (&_impl_) Impl_(internal_visibility(), arena);
+  _impl_.code_ = {};
 }
-
 Status::~Status() {
   // @@protoc_insertion_point(destructor:google.rpc.Status)
+  _internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
   SharedDtor();
 }
-
-void Status::SharedDtor() {
-  message_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-}
-
-void Status::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const Status& Status::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Status_google_2frpc_2fstatus_2eproto.base);
-  return *internal_default_instance();
+inline void Status::SharedDtor() {
+  ABSL_DCHECK(GetArena() == nullptr);
+  _impl_.message_.Destroy();
+  _impl_.~Impl_();
 }
 
-
-void Status::Clear() {
+PROTOBUF_NOINLINE void Status::Clear() {
 // @@protoc_insertion_point(message_clear_start:google.rpc.Status)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  ::uint32_t cached_has_bits = 0;
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
-  details_.Clear();
-  message_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
-  code_ = 0;
-  _internal_metadata_.Clear();
+  _impl_.details_.Clear();
+  _impl_.message_.ClearToEmpty();
+  _impl_.code_ = 0;
+  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
 }
 
-const char* Status::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // int32 code = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
-          code_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // string message = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
-          auto str = _internal_mutable_message();
-          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
-          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "google.rpc.Status.message"));
-          CHK_(ptr);
-        } else goto handle_unusual;
-        continue;
-      // repeated .google.protobuf.Any details = 3;
-      case 3:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
-          ptr -= 1;
-          do {
-            ptr += 1;
-            ptr = ctx->ParseMessage(_internal_add_details(), ptr);
-            CHK_(ptr);
-            if (!ctx->DataAvailable(ptr)) break;
-          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
+const char* Status::_InternalParse(
+    const char* ptr, ::_pbi::ParseContext* ctx) {
+  ptr = ::_pbi::TcParser::ParseLoop(this, ptr, ctx, &_table_.header);
   return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
 }
 
-::PROTOBUF_NAMESPACE_ID::uint8* Status::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+
+PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
+const ::_pbi::TcParseTable<2, 3, 1, 33, 2> Status::_table_ = {
+  {
+    0,  // no _has_bits_
+    0, // no _extensions_
+    3, 24,  // max_field_number, fast_idx_mask
+    offsetof(decltype(_table_), field_lookup_table),
+    4294967288,  // skipmap
+    offsetof(decltype(_table_), field_entries),
+    3,  // num_field_entries
+    1,  // num_aux_entries
+    offsetof(decltype(_table_), aux_entries),
+    &_Status_default_instance_._instance,
+    ::_pbi::TcParser::GenericFallback,  // fallback
+  }, {{
+    {::_pbi::TcParser::MiniParse, {}},
+    // int32 code = 1;
+    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Status, _impl_.code_), 63>(),
+     {8, 63, 0, PROTOBUF_FIELD_OFFSET(Status, _impl_.code_)}},
+    // string message = 2;
+    {::_pbi::TcParser::FastUS1,
+     {18, 63, 0, PROTOBUF_FIELD_OFFSET(Status, _impl_.message_)}},
+    // repeated .google.protobuf.Any details = 3;
+    {::_pbi::TcParser::FastMtR1,
+     {26, 63, 0, PROTOBUF_FIELD_OFFSET(Status, _impl_.details_)}},
+  }}, {{
+    65535, 65535
+  }}, {{
+    // int32 code = 1;
+    {PROTOBUF_FIELD_OFFSET(Status, _impl_.code_), 0, 0,
+    (0 | ::_fl::kFcSingular | ::_fl::kInt32)},
+    // string message = 2;
+    {PROTOBUF_FIELD_OFFSET(Status, _impl_.message_), 0, 0,
+    (0 | ::_fl::kFcSingular | ::_fl::kUtf8String | ::_fl::kRepAString)},
+    // repeated .google.protobuf.Any details = 3;
+    {PROTOBUF_FIELD_OFFSET(Status, _impl_.details_), 0, 0,
+    (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
+  }}, {{
+    {::_pbi::TcParser::GetTable<::google::protobuf::Any>()},
+  }}, {{
+    "\21\0\7\0\0\0\0\0"
+    "google.rpc.Status"
+    "message"
+  }},
+};
+
+::uint8_t* Status::_InternalSerialize(
+    ::uint8_t* target,
+    ::google::protobuf::io::EpsCopyOutputStream* stream) const {
   // @@protoc_insertion_point(serialize_to_array_start:google.rpc.Status)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
+  ::uint32_t cached_has_bits = 0;
+  (void)cached_has_bits;
 
   // int32 code = 1;
-  if (this->code() != 0) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_code(), target);
+  if (this->_internal_code() != 0) {
+    target = ::google::protobuf::internal::WireFormatLite::
+        WriteInt32ToArrayWithField<1>(
+            stream, this->_internal_code(), target);
   }
 
   // string message = 2;
-  if (this->message().size() > 0) {
-    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
-      this->_internal_message().data(), static_cast<int>(this->_internal_message().length()),
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
-      "google.rpc.Status.message");
-    target = stream->WriteStringMaybeAliased(
-        2, this->_internal_message(), target);
+  if (!this->_internal_message().empty()) {
+    const std::string& _s = this->_internal_message();
+    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+        _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "google.rpc.Status.message");
+    target = stream->WriteStringMaybeAliased(2, _s, target);
   }
 
   // repeated .google.protobuf.Any details = 3;
-  for (unsigned int i = 0,
-      n = static_cast<unsigned int>(this->_internal_details_size()); i < n; i++) {
-    target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
-      InternalWriteMessage(3, this->_internal_details(i), target, stream);
+  for (unsigned i = 0,
+      n = static_cast<unsigned>(this->_internal_details_size()); i < n; i++) {
+    const auto& repfield = this->_internal_details().Get(i);
+    target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessage(3, repfield, repfield.GetCachedSize(), target, stream);
   }
 
   if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target, stream);
+    target =
+        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+            _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
   }
   // @@protoc_insertion_point(serialize_to_array_end:google.rpc.Status)
   return target;
 }
 
-size_t Status::ByteSizeLong() const {
+::size_t Status::ByteSizeLong() const {
 // @@protoc_insertion_point(message_byte_size_start:google.rpc.Status)
-  size_t total_size = 0;
+  ::size_t total_size = 0;
 
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
+  ::uint32_t cached_has_bits = 0;
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
   // repeated .google.protobuf.Any details = 3;
   total_size += 1UL * this->_internal_details_size();
-  for (const auto& msg : this->details_) {
+  for (const auto& msg : this->_internal_details()) {
     total_size +=
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
+      ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
   }
-
   // string message = 2;
-  if (this->message().size() > 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
-        this->_internal_message());
+  if (!this->_internal_message().empty()) {
+    total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
+                                    this->_internal_message());
   }
 
   // int32 code = 1;
-  if (this->code() != 0) {
-    total_size += 1 +
-      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
+  if (this->_internal_code() != 0) {
+    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
         this->_internal_code());
   }
 
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
-        _internal_metadata_, total_size, &_cached_size_);
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
+  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
 }
 
-void Status::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:google.rpc.Status)
-  GOOGLE_DCHECK_NE(&from, this);
-  const Status* source =
-      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<Status>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.rpc.Status)
-    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.rpc.Status)
-    MergeFrom(*source);
-  }
+const ::google::protobuf::Message::ClassData Status::_class_data_ = {
+    Status::MergeImpl,
+    nullptr,  // OnDemandRegisterArenaDtor
+};
+const ::google::protobuf::Message::ClassData* Status::GetClassData() const {
+  return &_class_data_;
 }
 
-void Status::MergeFrom(const Status& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:google.rpc.Status)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
+void Status::MergeImpl(::google::protobuf::Message& to_msg, const ::google::protobuf::Message& from_msg) {
+  auto* const _this = static_cast<Status*>(&to_msg);
+  auto& from = static_cast<const Status&>(from_msg);
+  // @@protoc_insertion_point(class_specific_merge_from_start:google.rpc.Status)
+  ABSL_DCHECK_NE(&from, _this);
+  ::uint32_t cached_has_bits = 0;
   (void) cached_has_bits;
 
-  details_.MergeFrom(from.details_);
-  if (from.message().size() > 0) {
-
-    message_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.message_);
+  _this->_internal_mutable_details()->MergeFrom(
+      from._internal_details());
+  if (!from._internal_message().empty()) {
+    _this->_internal_set_message(from._internal_message());
   }
-  if (from.code() != 0) {
-    _internal_set_code(from._internal_code());
+  if (from._internal_code() != 0) {
+    _this->_internal_set_code(from._internal_code());
   }
-}
-
-void Status::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:google.rpc.Status)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
+  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
 }
 
 void Status::CopyFrom(const Status& from) {
@@ -347,32 +367,34 @@ void Status::CopyFrom(const Status& from) {
   MergeFrom(from);
 }
 
-bool Status::IsInitialized() const {
+PROTOBUF_NOINLINE bool Status::IsInitialized() const {
   return true;
 }
 
-void Status::InternalSwap(Status* other) {
+::_pbi::CachedSize* Status::AccessCachedSize() const {
+  return &_impl_._cached_size_;
+}
+void Status::InternalSwap(Status* PROTOBUF_RESTRICT other) {
   using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  details_.InternalSwap(&other->details_);
-  message_.Swap(&other->message_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-    GetArenaNoVirtual());
-  swap(code_, other->code_);
+  auto* arena = GetArena();
+  ABSL_DCHECK_EQ(arena, other->GetArena());
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  _impl_.details_.InternalSwap(&other->_impl_.details_);
+  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.message_, &other->_impl_.message_, arena);
+        swap(_impl_.code_, other->_impl_.code_);
 }
 
-::PROTOBUF_NAMESPACE_ID::Metadata Status::GetMetadata() const {
-  return GetMetadataStatic();
+::google::protobuf::Metadata Status::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_google_2frpc_2fstatus_2eproto_getter, &descriptor_table_google_2frpc_2fstatus_2eproto_once,
+      file_level_metadata_google_2frpc_2fstatus_2eproto[0]);
 }
-
-
 // @@protoc_insertion_point(namespace_scope)
 }  // namespace rpc
 }  // namespace google
-PROTOBUF_NAMESPACE_OPEN
-template<> PROTOBUF_NOINLINE ::google::rpc::Status* Arena::CreateMaybeMessage< ::google::rpc::Status >(Arena* arena) {
-  return Arena::CreateInternal< ::google::rpc::Status >(arena);
-}
-PROTOBUF_NAMESPACE_CLOSE
-
+namespace google {
+namespace protobuf {
+}  // namespace protobuf
+}  // namespace google
 // @@protoc_insertion_point(global_scope)
-#include <google/protobuf/port_undef.inc>
+#include "google/protobuf/port_undef.inc"

+ 260 - 196
Firestore/Protos/cpp/google/rpc/status.pb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,83 +16,90 @@
 
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/rpc/status.proto
+// Protobuf C++ Version: 4.25.1
 
-#ifndef GOOGLE_PROTOBUF_INCLUDED_google_2frpc_2fstatus_2eproto
-#define GOOGLE_PROTOBUF_INCLUDED_google_2frpc_2fstatus_2eproto
+#ifndef GOOGLE_PROTOBUF_INCLUDED_google_2frpc_2fstatus_2eproto_2epb_2eh
+#define GOOGLE_PROTOBUF_INCLUDED_google_2frpc_2fstatus_2eproto_2epb_2eh
 
 #include <limits>
 #include <string>
-
-#include <google/protobuf/port_def.inc>
-#if PROTOBUF_VERSION < 3011000
-#error This file was generated by a newer version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please update
-#error your headers.
-#endif
-#if 3011002 < PROTOBUF_MIN_PROTOC_VERSION
-#error This file was generated by an older version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please
-#error regenerate this file with a newer version of protoc.
-#endif
-
-#include <google/protobuf/port_undef.inc>
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/arena.h>
-#include <google/protobuf/arenastring.h>
-#include <google/protobuf/generated_message_table_driven.h>
-#include <google/protobuf/generated_message_util.h>
-#include <google/protobuf/inlined_string_field.h>
-#include <google/protobuf/metadata.h>
-#include <google/protobuf/generated_message_reflection.h>
-#include <google/protobuf/message.h>
-#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
-#include <google/protobuf/extension_set.h>  // IWYU pragma: export
-#include <google/protobuf/unknown_field_set.h>
-#include <google/protobuf/any.pb.h>
+#include <type_traits>
+#include <utility>
+
+#include "google/protobuf/port_def.inc"
+#if PROTOBUF_VERSION < 4025000
+#error "This file was generated by a newer version of protoc which is"
+#error "incompatible with your Protocol Buffer headers. Please update"
+#error "your headers."
+#endif  // PROTOBUF_VERSION
+
+#if 4025001 < PROTOBUF_MIN_PROTOC_VERSION
+#error "This file was generated by an older version of protoc which is"
+#error "incompatible with your Protocol Buffer headers. Please"
+#error "regenerate this file with a newer version of protoc."
+#endif  // PROTOBUF_MIN_PROTOC_VERSION
+#include "google/protobuf/port_undef.inc"
+#include "google/protobuf/io/coded_stream.h"
+#include "google/protobuf/arena.h"
+#include "google/protobuf/arenastring.h"
+#include "google/protobuf/generated_message_tctable_decl.h"
+#include "google/protobuf/generated_message_util.h"
+#include "google/protobuf/metadata_lite.h"
+#include "google/protobuf/generated_message_reflection.h"
+#include "google/protobuf/message.h"
+#include "google/protobuf/repeated_field.h"  // IWYU pragma: export
+#include "google/protobuf/extension_set.h"  // IWYU pragma: export
+#include "google/protobuf/unknown_field_set.h"
+#include "google/protobuf/any.pb.h"
 // @@protoc_insertion_point(includes)
-#include <google/protobuf/port_def.inc>
+
+// Must be included last.
+#include "google/protobuf/port_def.inc"
+
 #define PROTOBUF_INTERNAL_EXPORT_google_2frpc_2fstatus_2eproto
-PROTOBUF_NAMESPACE_OPEN
+
+namespace google {
+namespace protobuf {
 namespace internal {
 class AnyMetadata;
 }  // namespace internal
-PROTOBUF_NAMESPACE_CLOSE
+}  // namespace protobuf
+}  // namespace google
 
 // Internal implementation detail -- do not use these members.
 struct TableStruct_google_2frpc_2fstatus_2eproto {
-  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[1]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
-  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
-  static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
+  static const ::uint32_t offsets[];
 };
-extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_google_2frpc_2fstatus_2eproto;
+extern const ::google::protobuf::internal::DescriptorTable
+    descriptor_table_google_2frpc_2fstatus_2eproto;
 namespace google {
 namespace rpc {
 class Status;
-class StatusDefaultTypeInternal;
+struct StatusDefaultTypeInternal;
 extern StatusDefaultTypeInternal _Status_default_instance_;
 }  // namespace rpc
+namespace protobuf {
+}  // namespace protobuf
 }  // namespace google
-PROTOBUF_NAMESPACE_OPEN
-template<> ::google::rpc::Status* Arena::CreateMaybeMessage<::google::rpc::Status>(Arena*);
-PROTOBUF_NAMESPACE_CLOSE
+
 namespace google {
 namespace rpc {
 
 // ===================================================================
 
-class Status :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.rpc.Status) */ {
+
+// -------------------------------------------------------------------
+
+class Status final :
+    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.rpc.Status) */ {
  public:
-  Status();
-  virtual ~Status();
+  inline Status() : Status(nullptr) {}
+  ~Status() override;
+  template<typename = void>
+  explicit PROTOBUF_CONSTEXPR Status(::google::protobuf::internal::ConstantInitialized);
 
-  Status(const Status& from);
+  inline Status(const Status& from)
+      : Status(nullptr, from) {}
   Status(Status&& from) noexcept
     : Status() {
     *this = ::std::move(from);
@@ -103,26 +110,40 @@ class Status :
     return *this;
   }
   inline Status& operator=(Status&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
+    if (this == &from) return *this;
+    if (GetArena() == from.GetArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
     } else {
       CopyFrom(from);
     }
     return *this;
   }
 
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
+      ABSL_ATTRIBUTE_LIFETIME_BOUND {
+    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
+  }
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields()
+      ABSL_ATTRIBUTE_LIFETIME_BOUND {
+    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor() {
     return GetDescriptor();
   }
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
-    return GetMetadataStatic().descriptor;
+  static const ::google::protobuf::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
   }
-  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
-    return GetMetadataStatic().reflection;
+  static const ::google::protobuf::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const Status& default_instance() {
+    return *internal_default_instance();
   }
-  static const Status& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
   static inline const Status* internal_default_instance() {
     return reinterpret_cast<const Status*>(
                &_Status_default_instance_);
@@ -135,57 +156,66 @@ class Status :
   }
   inline void Swap(Status* other) {
     if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetArena() != nullptr &&
+        GetArena() == other->GetArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetArena() == other->GetArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::google::protobuf::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(Status* other) {
+    if (other == this) return;
+    ABSL_DCHECK(GetArena() == other->GetArena());
     InternalSwap(other);
   }
 
   // implements Message ----------------------------------------------
 
-  inline Status* New() const final {
-    return CreateMaybeMessage<Status>(nullptr);
-  }
-
-  Status* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
+  Status* New(::google::protobuf::Arena* arena = nullptr) const final {
     return CreateMaybeMessage<Status>(arena);
   }
-  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
+  using ::google::protobuf::Message::CopyFrom;
   void CopyFrom(const Status& from);
-  void MergeFrom(const Status& from);
+  using ::google::protobuf::Message::MergeFrom;
+  void MergeFrom( const Status& from) {
+    Status::MergeImpl(*this, from);
+  }
+  private:
+  static void MergeImpl(::google::protobuf::Message& to_msg, const ::google::protobuf::Message& from_msg);
+  public:
   PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
   bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
+  ::size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
+  ::uint8_t* _InternalSerialize(
+      ::uint8_t* target, ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const { return _impl_._cached_size_.Get(); }
 
   private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const final;
+  ::google::protobuf::internal::CachedSize* AccessCachedSize() const final;
+  void SharedCtor(::google::protobuf::Arena* arena);
+  void SharedDtor();
   void InternalSwap(Status* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "google.rpc.Status";
-  }
+
   private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
+  friend class ::google::protobuf::internal::AnyMetadata;
+  static ::absl::string_view FullMessageName() {
+    return "google.rpc.Status";
   }
+  protected:
+  explicit Status(::google::protobuf::Arena* arena);
+  Status(::google::protobuf::Arena* arena, const Status& from);
   public:
 
-  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
-  private:
-  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
-    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2frpc_2fstatus_2eproto);
-    return ::descriptor_table_google_2frpc_2fstatus_2eproto.file_level_metadata[kIndexInFileMessages];
-  }
+  static const ClassData _class_data_;
+  const ::google::protobuf::Message::ClassData*GetClassData() const final;
 
-  public:
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -200,193 +230,227 @@ class Status :
   int details_size() const;
   private:
   int _internal_details_size() const;
+
   public:
-  void clear_details();
-  PROTOBUF_NAMESPACE_ID::Any* mutable_details(int index);
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< PROTOBUF_NAMESPACE_ID::Any >*
+  void clear_details() ;
+  ::google::protobuf::Any* mutable_details(int index);
+  ::google::protobuf::RepeatedPtrField< ::google::protobuf::Any >*
       mutable_details();
   private:
-  const PROTOBUF_NAMESPACE_ID::Any& _internal_details(int index) const;
-  PROTOBUF_NAMESPACE_ID::Any* _internal_add_details();
+  const ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>& _internal_details() const;
+  ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>* _internal_mutable_details();
   public:
-  const PROTOBUF_NAMESPACE_ID::Any& details(int index) const;
-  PROTOBUF_NAMESPACE_ID::Any* add_details();
-  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< PROTOBUF_NAMESPACE_ID::Any >&
+  const ::google::protobuf::Any& details(int index) const;
+  ::google::protobuf::Any* add_details();
+  const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Any >&
       details() const;
-
   // string message = 2;
-  void clear_message();
+  void clear_message() ;
   const std::string& message() const;
-  void set_message(const std::string& value);
-  void set_message(std::string&& value);
-  void set_message(const char* value);
-  void set_message(const char* value, size_t size);
+  template <typename Arg_ = const std::string&, typename... Args_>
+  void set_message(Arg_&& arg, Args_... args);
   std::string* mutable_message();
-  std::string* release_message();
-  void set_allocated_message(std::string* message);
+  PROTOBUF_NODISCARD std::string* release_message();
+  void set_allocated_message(std::string* value);
+
   private:
   const std::string& _internal_message() const;
-  void _internal_set_message(const std::string& value);
+  inline PROTOBUF_ALWAYS_INLINE void _internal_set_message(
+      const std::string& value);
   std::string* _internal_mutable_message();
-  public:
 
+  public:
   // int32 code = 1;
-  void clear_code();
-  ::PROTOBUF_NAMESPACE_ID::int32 code() const;
-  void set_code(::PROTOBUF_NAMESPACE_ID::int32 value);
+  void clear_code() ;
+  ::int32_t code() const;
+  void set_code(::int32_t value);
+
   private:
-  ::PROTOBUF_NAMESPACE_ID::int32 _internal_code() const;
-  void _internal_set_code(::PROTOBUF_NAMESPACE_ID::int32 value);
-  public:
+  ::int32_t _internal_code() const;
+  void _internal_set_code(::int32_t value);
 
+  public:
   // @@protoc_insertion_point(class_scope:google.rpc.Status)
  private:
   class _Internal;
 
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
-  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< PROTOBUF_NAMESPACE_ID::Any > details_;
-  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr message_;
-  ::PROTOBUF_NAMESPACE_ID::int32 code_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  friend class ::google::protobuf::internal::TcParser;
+  static const ::google::protobuf::internal::TcParseTable<
+      2, 3, 1,
+      33, 2>
+      _table_;
+  friend class ::google::protobuf::MessageLite;
+  friend class ::google::protobuf::Arena;
+  template <typename T>
+  friend class ::google::protobuf::Arena::InternalHelper;
+  using InternalArenaConstructable_ = void;
+  using DestructorSkippable_ = void;
+  struct Impl_ {
+
+        inline explicit constexpr Impl_(
+            ::google::protobuf::internal::ConstantInitialized) noexcept;
+        inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
+                              ::google::protobuf::Arena* arena);
+        inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
+                              ::google::protobuf::Arena* arena, const Impl_& from);
+    ::google::protobuf::RepeatedPtrField< ::google::protobuf::Any > details_;
+    ::google::protobuf::internal::ArenaStringPtr message_;
+    ::int32_t code_;
+    mutable ::google::protobuf::internal::CachedSize _cached_size_;
+    PROTOBUF_TSAN_DECLARE_MEMBER
+  };
+  union { Impl_ _impl_; };
   friend struct ::TableStruct_google_2frpc_2fstatus_2eproto;
 };
+
 // ===================================================================
 
 
+
+
 // ===================================================================
 
+
 #ifdef __GNUC__
-  #pragma GCC diagnostic push
-  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
 #endif  // __GNUC__
+// -------------------------------------------------------------------
+
 // Status
 
 // int32 code = 1;
 inline void Status::clear_code() {
-  code_ = 0;
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  _impl_.code_ = 0;
 }
-inline ::PROTOBUF_NAMESPACE_ID::int32 Status::_internal_code() const {
-  return code_;
-}
-inline ::PROTOBUF_NAMESPACE_ID::int32 Status::code() const {
+inline ::int32_t Status::code() const {
   // @@protoc_insertion_point(field_get:google.rpc.Status.code)
   return _internal_code();
 }
-inline void Status::_internal_set_code(::PROTOBUF_NAMESPACE_ID::int32 value) {
-  
-  code_ = value;
-}
-inline void Status::set_code(::PROTOBUF_NAMESPACE_ID::int32 value) {
+inline void Status::set_code(::int32_t value) {
   _internal_set_code(value);
   // @@protoc_insertion_point(field_set:google.rpc.Status.code)
 }
+inline ::int32_t Status::_internal_code() const {
+  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
+  return _impl_.code_;
+}
+inline void Status::_internal_set_code(::int32_t value) {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  ;
+  _impl_.code_ = value;
+}
 
 // string message = 2;
 inline void Status::clear_message() {
-  message_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  _impl_.message_.ClearToEmpty();
 }
-inline const std::string& Status::message() const {
+inline const std::string& Status::message() const
+    ABSL_ATTRIBUTE_LIFETIME_BOUND {
   // @@protoc_insertion_point(field_get:google.rpc.Status.message)
   return _internal_message();
 }
-inline void Status::set_message(const std::string& value) {
-  _internal_set_message(value);
+template <typename Arg_, typename... Args_>
+inline PROTOBUF_ALWAYS_INLINE void Status::set_message(Arg_&& arg,
+                                                     Args_... args) {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  ;
+  _impl_.message_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
   // @@protoc_insertion_point(field_set:google.rpc.Status.message)
 }
-inline std::string* Status::mutable_message() {
+inline std::string* Status::mutable_message() ABSL_ATTRIBUTE_LIFETIME_BOUND {
+  std::string* _s = _internal_mutable_message();
   // @@protoc_insertion_point(field_mutable:google.rpc.Status.message)
-  return _internal_mutable_message();
+  return _s;
 }
 inline const std::string& Status::_internal_message() const {
-  return message_.GetNoArena();
+  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
+  return _impl_.message_.Get();
 }
 inline void Status::_internal_set_message(const std::string& value) {
-  
-  message_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value);
-}
-inline void Status::set_message(std::string&& value) {
-  
-  message_.SetNoArena(
-    &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
-  // @@protoc_insertion_point(field_set_rvalue:google.rpc.Status.message)
-}
-inline void Status::set_message(const char* value) {
-  GOOGLE_DCHECK(value != nullptr);
-  
-  message_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
-  // @@protoc_insertion_point(field_set_char:google.rpc.Status.message)
-}
-inline void Status::set_message(const char* value, size_t size) {
-  
-  message_.SetNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
-      ::std::string(reinterpret_cast<const char*>(value), size));
-  // @@protoc_insertion_point(field_set_pointer:google.rpc.Status.message)
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  ;
+  _impl_.message_.Set(value, GetArena());
 }
 inline std::string* Status::_internal_mutable_message() {
-  
-  return message_.MutableNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  ;
+  return _impl_.message_.Mutable( GetArena());
 }
 inline std::string* Status::release_message() {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
   // @@protoc_insertion_point(field_release:google.rpc.Status.message)
-  
-  return message_.ReleaseNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
+  return _impl_.message_.Release();
 }
-inline void Status::set_allocated_message(std::string* message) {
-  if (message != nullptr) {
-    
-  } else {
-    
-  }
-  message_.SetAllocatedNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), message);
+inline void Status::set_allocated_message(std::string* value) {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  _impl_.message_.SetAllocated(value, GetArena());
+  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+        if (_impl_.message_.IsDefault()) {
+          _impl_.message_.Set("", GetArena());
+        }
+  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
   // @@protoc_insertion_point(field_set_allocated:google.rpc.Status.message)
 }
 
 // repeated .google.protobuf.Any details = 3;
 inline int Status::_internal_details_size() const {
-  return details_.size();
+  return _internal_details().size();
 }
 inline int Status::details_size() const {
   return _internal_details_size();
 }
-inline PROTOBUF_NAMESPACE_ID::Any* Status::mutable_details(int index) {
+inline ::google::protobuf::Any* Status::mutable_details(int index)
+    ABSL_ATTRIBUTE_LIFETIME_BOUND {
   // @@protoc_insertion_point(field_mutable:google.rpc.Status.details)
-  return details_.Mutable(index);
+  return _internal_mutable_details()->Mutable(index);
 }
-inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< PROTOBUF_NAMESPACE_ID::Any >*
-Status::mutable_details() {
+inline ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>* Status::mutable_details()
+    ABSL_ATTRIBUTE_LIFETIME_BOUND {
   // @@protoc_insertion_point(field_mutable_list:google.rpc.Status.details)
-  return &details_;
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  return _internal_mutable_details();
 }
-inline const PROTOBUF_NAMESPACE_ID::Any& Status::_internal_details(int index) const {
-  return details_.Get(index);
-}
-inline const PROTOBUF_NAMESPACE_ID::Any& Status::details(int index) const {
+inline const ::google::protobuf::Any& Status::details(int index) const
+    ABSL_ATTRIBUTE_LIFETIME_BOUND {
   // @@protoc_insertion_point(field_get:google.rpc.Status.details)
-  return _internal_details(index);
-}
-inline PROTOBUF_NAMESPACE_ID::Any* Status::_internal_add_details() {
-  return details_.Add();
+  return _internal_details().Get(index);
 }
-inline PROTOBUF_NAMESPACE_ID::Any* Status::add_details() {
+inline ::google::protobuf::Any* Status::add_details() ABSL_ATTRIBUTE_LIFETIME_BOUND {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  ::google::protobuf::Any* _add = _internal_mutable_details()->Add();
   // @@protoc_insertion_point(field_add:google.rpc.Status.details)
-  return _internal_add_details();
+  return _add;
 }
-inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< PROTOBUF_NAMESPACE_ID::Any >&
-Status::details() const {
+inline const ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>& Status::details() const
+    ABSL_ATTRIBUTE_LIFETIME_BOUND {
   // @@protoc_insertion_point(field_list:google.rpc.Status.details)
-  return details_;
+  return _internal_details();
+}
+inline const ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>&
+Status::_internal_details() const {
+  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
+  return _impl_.details_;
+}
+inline ::google::protobuf::RepeatedPtrField<::google::protobuf::Any>*
+Status::_internal_mutable_details() {
+  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
+  return &_impl_.details_;
 }
 
 #ifdef __GNUC__
-  #pragma GCC diagnostic pop
+#pragma GCC diagnostic pop
 #endif  // __GNUC__
 
 // @@protoc_insertion_point(namespace_scope)
-
 }  // namespace rpc
 }  // namespace google
 
+
 // @@protoc_insertion_point(global_scope)
 
-#include <google/protobuf/port_undef.inc>
-#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_google_2frpc_2fstatus_2eproto
+#include "google/protobuf/port_undef.inc"
+
+#endif  // GOOGLE_PROTOBUF_INCLUDED_google_2frpc_2fstatus_2eproto_2epb_2eh

+ 259 - 208
Firestore/Protos/cpp/google/type/latlng.pb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,272 +20,318 @@
 #include "google/type/latlng.pb.h"
 
 #include <algorithm>
-
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/extension_set.h>
-#include <google/protobuf/wire_format_lite.h>
-#include <google/protobuf/descriptor.h>
-#include <google/protobuf/generated_message_reflection.h>
-#include <google/protobuf/reflection_ops.h>
-#include <google/protobuf/wire_format.h>
+#include "google/protobuf/io/coded_stream.h"
+#include "google/protobuf/extension_set.h"
+#include "google/protobuf/wire_format_lite.h"
+#include "google/protobuf/descriptor.h"
+#include "google/protobuf/generated_message_reflection.h"
+#include "google/protobuf/reflection_ops.h"
+#include "google/protobuf/wire_format.h"
+#include "google/protobuf/generated_message_tctable_impl.h"
 // @@protoc_insertion_point(includes)
-#include <google/protobuf/port_def.inc>
+
+// Must be included last.
+#include "google/protobuf/port_def.inc"
+PROTOBUF_PRAGMA_INIT_SEG
+namespace _pb = ::google::protobuf;
+namespace _pbi = ::google::protobuf::internal;
+namespace _fl = ::google::protobuf::internal::field_layout;
 namespace google {
 namespace type {
-class LatLngDefaultTypeInternal {
- public:
-  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<LatLng> _instance;
-} _LatLng_default_instance_;
-}  // namespace type
-}  // namespace google
-static void InitDefaultsscc_info_LatLng_google_2ftype_2flatlng_2eproto() {
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
 
-  {
-    void* ptr = &::google::type::_LatLng_default_instance_;
-    new (ptr) ::google::type::LatLng();
-    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
-  }
-  ::google::type::LatLng::InitAsDefaultInstance();
-}
-
-::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_LatLng_google_2ftype_2flatlng_2eproto =
-    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_LatLng_google_2ftype_2flatlng_2eproto}, {}};
-
-static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_google_2ftype_2flatlng_2eproto[1];
-static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_google_2ftype_2flatlng_2eproto = nullptr;
-static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_google_2ftype_2flatlng_2eproto = nullptr;
-
-const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_google_2ftype_2flatlng_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
-  ~0u,  // no _has_bits_
-  PROTOBUF_FIELD_OFFSET(::google::type::LatLng, _internal_metadata_),
-  ~0u,  // no _extensions_
-  ~0u,  // no _oneof_case_
-  ~0u,  // no _weak_field_map_
-  PROTOBUF_FIELD_OFFSET(::google::type::LatLng, latitude_),
-  PROTOBUF_FIELD_OFFSET(::google::type::LatLng, longitude_),
+inline constexpr LatLng::Impl_::Impl_(
+    ::_pbi::ConstantInitialized) noexcept
+      : latitude_{0},
+        longitude_{0},
+        _cached_size_{0} {}
+
+template <typename>
+PROTOBUF_CONSTEXPR LatLng::LatLng(::_pbi::ConstantInitialized)
+    : _impl_(::_pbi::ConstantInitialized()) {}
+struct LatLngDefaultTypeInternal {
+  PROTOBUF_CONSTEXPR LatLngDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
+  ~LatLngDefaultTypeInternal() {}
+  union {
+    LatLng _instance;
+  };
 };
-static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
-  { 0, -1, sizeof(::google::type::LatLng)},
+
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
+    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 LatLngDefaultTypeInternal _LatLng_default_instance_;
+}  // namespace type
+}  // namespace google
+static ::_pb::Metadata file_level_metadata_google_2ftype_2flatlng_2eproto[1];
+static constexpr const ::_pb::EnumDescriptor**
+    file_level_enum_descriptors_google_2ftype_2flatlng_2eproto = nullptr;
+static constexpr const ::_pb::ServiceDescriptor**
+    file_level_service_descriptors_google_2ftype_2flatlng_2eproto = nullptr;
+const ::uint32_t TableStruct_google_2ftype_2flatlng_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(
+    protodesc_cold) = {
+    ~0u,  // no _has_bits_
+    PROTOBUF_FIELD_OFFSET(::google::type::LatLng, _internal_metadata_),
+    ~0u,  // no _extensions_
+    ~0u,  // no _oneof_case_
+    ~0u,  // no _weak_field_map_
+    ~0u,  // no _inlined_string_donated_
+    ~0u,  // no _split_
+    ~0u,  // no sizeof(Split)
+    PROTOBUF_FIELD_OFFSET(::google::type::LatLng, _impl_.latitude_),
+    PROTOBUF_FIELD_OFFSET(::google::type::LatLng, _impl_.longitude_),
 };
 
-static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
-  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::google::type::_LatLng_default_instance_),
+static const ::_pbi::MigrationSchema
+    schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
+        {0, -1, -1, sizeof(::google::type::LatLng)},
 };
 
-const char descriptor_table_protodef_google_2ftype_2flatlng_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
-  "\n\030google/type/latlng.proto\022\013google.type\""
-  "-\n\006LatLng\022\020\n\010latitude\030\001 \001(\001\022\021\n\tlongitude"
-  "\030\002 \001(\001B`\n\017com.google.typeB\013LatLngProtoP\001"
-  "Z8google.golang.org/genproto/googleapis/"
-  "type/latlng;latlng\242\002\003GTPb\006proto3"
-  ;
-static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_google_2ftype_2flatlng_2eproto_deps[1] = {
+static const ::_pb::Message* const file_default_instances[] = {
+    &::google::type::_LatLng_default_instance_._instance,
 };
-static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_google_2ftype_2flatlng_2eproto_sccs[1] = {
-  &scc_info_LatLng_google_2ftype_2flatlng_2eproto.base,
+const char descriptor_table_protodef_google_2ftype_2flatlng_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
+    "\n\030google/type/latlng.proto\022\013google.type\""
+    "-\n\006LatLng\022\020\n\010latitude\030\001 \001(\001\022\021\n\tlongitude"
+    "\030\002 \001(\001B`\n\017com.google.typeB\013LatLngProtoP\001"
+    "Z8google.golang.org/genproto/googleapis/"
+    "type/latlng;latlng\242\002\003GTPb\006proto3"
 };
-static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_google_2ftype_2flatlng_2eproto_once;
-static bool descriptor_table_google_2ftype_2flatlng_2eproto_initialized = false;
-const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_google_2ftype_2flatlng_2eproto = {
-  &descriptor_table_google_2ftype_2flatlng_2eproto_initialized, descriptor_table_protodef_google_2ftype_2flatlng_2eproto, "google/type/latlng.proto", 192,
-  &descriptor_table_google_2ftype_2flatlng_2eproto_once, descriptor_table_google_2ftype_2flatlng_2eproto_sccs, descriptor_table_google_2ftype_2flatlng_2eproto_deps, 1, 0,
-  schemas, file_default_instances, TableStruct_google_2ftype_2flatlng_2eproto::offsets,
-  file_level_metadata_google_2ftype_2flatlng_2eproto, 1, file_level_enum_descriptors_google_2ftype_2flatlng_2eproto, file_level_service_descriptors_google_2ftype_2flatlng_2eproto,
+static ::absl::once_flag descriptor_table_google_2ftype_2flatlng_2eproto_once;
+const ::_pbi::DescriptorTable descriptor_table_google_2ftype_2flatlng_2eproto = {
+    false,
+    false,
+    192,
+    descriptor_table_protodef_google_2ftype_2flatlng_2eproto,
+    "google/type/latlng.proto",
+    &descriptor_table_google_2ftype_2flatlng_2eproto_once,
+    nullptr,
+    0,
+    1,
+    schemas,
+    file_default_instances,
+    TableStruct_google_2ftype_2flatlng_2eproto::offsets,
+    file_level_metadata_google_2ftype_2flatlng_2eproto,
+    file_level_enum_descriptors_google_2ftype_2flatlng_2eproto,
+    file_level_service_descriptors_google_2ftype_2flatlng_2eproto,
 };
 
+// This function exists to be marked as weak.
+// It can significantly speed up compilation by breaking up LLVM's SCC
+// in the .pb.cc translation units. Large translation units see a
+// reduction of more than 35% of walltime for optimized builds. Without
+// the weak attribute all the messages in the file, including all the
+// vtables and everything they use become part of the same SCC through
+// a cycle like:
+// GetMetadata -> descriptor table -> default instances ->
+//   vtables -> GetMetadata
+// By adding a weak function here we break the connection from the
+// individual vtables back into the descriptor table.
+PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_google_2ftype_2flatlng_2eproto_getter() {
+  return &descriptor_table_google_2ftype_2flatlng_2eproto;
+}
 // Force running AddDescriptors() at dynamic initialization time.
-static bool dynamic_init_dummy_google_2ftype_2flatlng_2eproto = (  ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_google_2ftype_2flatlng_2eproto), true);
+PROTOBUF_ATTRIBUTE_INIT_PRIORITY2
+static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_google_2ftype_2flatlng_2eproto(&descriptor_table_google_2ftype_2flatlng_2eproto);
 namespace google {
 namespace type {
-
 // ===================================================================
 
-void LatLng::InitAsDefaultInstance() {
-}
 class LatLng::_Internal {
  public:
 };
 
-LatLng::LatLng()
-  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
-  SharedCtor();
-  // @@protoc_insertion_point(constructor:google.type.LatLng)
+LatLng::LatLng(::google::protobuf::Arena* arena)
+    : ::google::protobuf::Message(arena) {
+  SharedCtor(arena);
+  // @@protoc_insertion_point(arena_constructor:google.type.LatLng)
 }
-LatLng::LatLng(const LatLng& from)
-  : ::PROTOBUF_NAMESPACE_ID::Message(),
-      _internal_metadata_(nullptr) {
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::memcpy(&latitude_, &from.latitude_,
-    static_cast<size_t>(reinterpret_cast<char*>(&longitude_) -
-    reinterpret_cast<char*>(&latitude_)) + sizeof(longitude_));
-  // @@protoc_insertion_point(copy_constructor:google.type.LatLng)
+LatLng::LatLng(
+    ::google::protobuf::Arena* arena, const LatLng& from)
+    : LatLng(arena) {
+  MergeFrom(from);
 }
-
-void LatLng::SharedCtor() {
-  ::memset(&latitude_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&longitude_) -
-      reinterpret_cast<char*>(&latitude_)) + sizeof(longitude_));
+inline PROTOBUF_NDEBUG_INLINE LatLng::Impl_::Impl_(
+    ::google::protobuf::internal::InternalVisibility visibility,
+    ::google::protobuf::Arena* arena)
+      : _cached_size_{0} {}
+
+inline void LatLng::SharedCtor(::_pb::Arena* arena) {
+  new (&_impl_) Impl_(internal_visibility(), arena);
+  ::memset(reinterpret_cast<char *>(&_impl_) +
+               offsetof(Impl_, latitude_),
+           0,
+           offsetof(Impl_, longitude_) -
+               offsetof(Impl_, latitude_) +
+               sizeof(Impl_::longitude_));
 }
-
 LatLng::~LatLng() {
   // @@protoc_insertion_point(destructor:google.type.LatLng)
+  _internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
   SharedDtor();
 }
-
-void LatLng::SharedDtor() {
-}
-
-void LatLng::SetCachedSize(int size) const {
-  _cached_size_.Set(size);
-}
-const LatLng& LatLng::default_instance() {
-  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_LatLng_google_2ftype_2flatlng_2eproto.base);
-  return *internal_default_instance();
+inline void LatLng::SharedDtor() {
+  ABSL_DCHECK(GetArena() == nullptr);
+  _impl_.~Impl_();
 }
 
-
-void LatLng::Clear() {
+PROTOBUF_NOINLINE void LatLng::Clear() {
 // @@protoc_insertion_point(message_clear_start:google.type.LatLng)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  ::uint32_t cached_has_bits = 0;
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
-  ::memset(&latitude_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&longitude_) -
-      reinterpret_cast<char*>(&latitude_)) + sizeof(longitude_));
-  _internal_metadata_.Clear();
+  ::memset(&_impl_.latitude_, 0, static_cast<::size_t>(
+      reinterpret_cast<char*>(&_impl_.longitude_) -
+      reinterpret_cast<char*>(&_impl_.latitude_)) + sizeof(_impl_.longitude_));
+  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
 }
 
-const char* LatLng::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
-#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
-  while (!ctx->Done(&ptr)) {
-    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
-    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
-    CHK_(ptr);
-    switch (tag >> 3) {
-      // double latitude = 1;
-      case 1:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 9)) {
-          latitude_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
-          ptr += sizeof(double);
-        } else goto handle_unusual;
-        continue;
-      // double longitude = 2;
-      case 2:
-        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 17)) {
-          longitude_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
-          ptr += sizeof(double);
-        } else goto handle_unusual;
-        continue;
-      default: {
-      handle_unusual:
-        if ((tag & 7) == 4 || tag == 0) {
-          ctx->SetLastTag(tag);
-          goto success;
-        }
-        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
-        CHK_(ptr != nullptr);
-        continue;
-      }
-    }  // switch
-  }  // while
-success:
+const char* LatLng::_InternalParse(
+    const char* ptr, ::_pbi::ParseContext* ctx) {
+  ptr = ::_pbi::TcParser::ParseLoop(this, ptr, ctx, &_table_.header);
   return ptr;
-failure:
-  ptr = nullptr;
-  goto success;
-#undef CHK_
 }
 
-::PROTOBUF_NAMESPACE_ID::uint8* LatLng::_InternalSerialize(
-    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+
+PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
+const ::_pbi::TcParseTable<1, 2, 0, 0, 2> LatLng::_table_ = {
+  {
+    0,  // no _has_bits_
+    0, // no _extensions_
+    2, 8,  // max_field_number, fast_idx_mask
+    offsetof(decltype(_table_), field_lookup_table),
+    4294967292,  // skipmap
+    offsetof(decltype(_table_), field_entries),
+    2,  // num_field_entries
+    0,  // num_aux_entries
+    offsetof(decltype(_table_), field_names),  // no aux_entries
+    &_LatLng_default_instance_._instance,
+    ::_pbi::TcParser::GenericFallback,  // fallback
+  }, {{
+    // double longitude = 2;
+    {::_pbi::TcParser::FastF64S1,
+     {17, 63, 0, PROTOBUF_FIELD_OFFSET(LatLng, _impl_.longitude_)}},
+    // double latitude = 1;
+    {::_pbi::TcParser::FastF64S1,
+     {9, 63, 0, PROTOBUF_FIELD_OFFSET(LatLng, _impl_.latitude_)}},
+  }}, {{
+    65535, 65535
+  }}, {{
+    // double latitude = 1;
+    {PROTOBUF_FIELD_OFFSET(LatLng, _impl_.latitude_), 0, 0,
+    (0 | ::_fl::kFcSingular | ::_fl::kDouble)},
+    // double longitude = 2;
+    {PROTOBUF_FIELD_OFFSET(LatLng, _impl_.longitude_), 0, 0,
+    (0 | ::_fl::kFcSingular | ::_fl::kDouble)},
+  }},
+  // no aux_entries
+  {{
+  }},
+};
+
+::uint8_t* LatLng::_InternalSerialize(
+    ::uint8_t* target,
+    ::google::protobuf::io::EpsCopyOutputStream* stream) const {
   // @@protoc_insertion_point(serialize_to_array_start:google.type.LatLng)
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
-  (void) cached_has_bits;
+  ::uint32_t cached_has_bits = 0;
+  (void)cached_has_bits;
 
   // double latitude = 1;
-  if (!(this->latitude() <= 0 && this->latitude() >= 0)) {
+  static_assert(sizeof(::uint64_t) == sizeof(double),
+                "Code assumes ::uint64_t and double are the same size.");
+  double tmp_latitude = this->_internal_latitude();
+  ::uint64_t raw_latitude;
+  memcpy(&raw_latitude, &tmp_latitude, sizeof(tmp_latitude));
+  if (raw_latitude != 0) {
     target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(1, this->_internal_latitude(), target);
+    target = ::_pbi::WireFormatLite::WriteDoubleToArray(
+        1, this->_internal_latitude(), target);
   }
 
   // double longitude = 2;
-  if (!(this->longitude() <= 0 && this->longitude() >= 0)) {
+  static_assert(sizeof(::uint64_t) == sizeof(double),
+                "Code assumes ::uint64_t and double are the same size.");
+  double tmp_longitude = this->_internal_longitude();
+  ::uint64_t raw_longitude;
+  memcpy(&raw_longitude, &tmp_longitude, sizeof(tmp_longitude));
+  if (raw_longitude != 0) {
     target = stream->EnsureSpace(target);
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(2, this->_internal_longitude(), target);
+    target = ::_pbi::WireFormatLite::WriteDoubleToArray(
+        2, this->_internal_longitude(), target);
   }
 
   if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
-        _internal_metadata_.unknown_fields(), target, stream);
+    target =
+        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
+            _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
   }
   // @@protoc_insertion_point(serialize_to_array_end:google.type.LatLng)
   return target;
 }
 
-size_t LatLng::ByteSizeLong() const {
+::size_t LatLng::ByteSizeLong() const {
 // @@protoc_insertion_point(message_byte_size_start:google.type.LatLng)
-  size_t total_size = 0;
+  ::size_t total_size = 0;
 
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
+  ::uint32_t cached_has_bits = 0;
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
   // double latitude = 1;
-  if (!(this->latitude() <= 0 && this->latitude() >= 0)) {
-    total_size += 1 + 8;
+  static_assert(sizeof(::uint64_t) == sizeof(double),
+                "Code assumes ::uint64_t and double are the same size.");
+  double tmp_latitude = this->_internal_latitude();
+  ::uint64_t raw_latitude;
+  memcpy(&raw_latitude, &tmp_latitude, sizeof(tmp_latitude));
+  if (raw_latitude != 0) {
+    total_size += 9;
   }
 
   // double longitude = 2;
-  if (!(this->longitude() <= 0 && this->longitude() >= 0)) {
-    total_size += 1 + 8;
+  static_assert(sizeof(::uint64_t) == sizeof(double),
+                "Code assumes ::uint64_t and double are the same size.");
+  double tmp_longitude = this->_internal_longitude();
+  ::uint64_t raw_longitude;
+  memcpy(&raw_longitude, &tmp_longitude, sizeof(tmp_longitude));
+  if (raw_longitude != 0) {
+    total_size += 9;
   }
 
-  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
-    return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
-        _internal_metadata_, total_size, &_cached_size_);
-  }
-  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
-  SetCachedSize(cached_size);
-  return total_size;
+  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
 }
 
-void LatLng::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_merge_from_start:google.type.LatLng)
-  GOOGLE_DCHECK_NE(&from, this);
-  const LatLng* source =
-      ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LatLng>(
-          &from);
-  if (source == nullptr) {
-  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.type.LatLng)
-    ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
-  } else {
-  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.type.LatLng)
-    MergeFrom(*source);
-  }
+const ::google::protobuf::Message::ClassData LatLng::_class_data_ = {
+    LatLng::MergeImpl,
+    nullptr,  // OnDemandRegisterArenaDtor
+};
+const ::google::protobuf::Message::ClassData* LatLng::GetClassData() const {
+  return &_class_data_;
 }
 
-void LatLng::MergeFrom(const LatLng& from) {
-// @@protoc_insertion_point(class_specific_merge_from_start:google.type.LatLng)
-  GOOGLE_DCHECK_NE(&from, this);
-  _internal_metadata_.MergeFrom(from._internal_metadata_);
-  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
+void LatLng::MergeImpl(::google::protobuf::Message& to_msg, const ::google::protobuf::Message& from_msg) {
+  auto* const _this = static_cast<LatLng*>(&to_msg);
+  auto& from = static_cast<const LatLng&>(from_msg);
+  // @@protoc_insertion_point(class_specific_merge_from_start:google.type.LatLng)
+  ABSL_DCHECK_NE(&from, _this);
+  ::uint32_t cached_has_bits = 0;
   (void) cached_has_bits;
 
-  if (!(from.latitude() <= 0 && from.latitude() >= 0)) {
-    _internal_set_latitude(from._internal_latitude());
+  static_assert(sizeof(::uint64_t) == sizeof(double),
+                "Code assumes ::uint64_t and double are the same size.");
+  double tmp_latitude = from._internal_latitude();
+  ::uint64_t raw_latitude;
+  memcpy(&raw_latitude, &tmp_latitude, sizeof(tmp_latitude));
+  if (raw_latitude != 0) {
+    _this->_internal_set_latitude(from._internal_latitude());
   }
-  if (!(from.longitude() <= 0 && from.longitude() >= 0)) {
-    _internal_set_longitude(from._internal_longitude());
+  static_assert(sizeof(::uint64_t) == sizeof(double),
+                "Code assumes ::uint64_t and double are the same size.");
+  double tmp_longitude = from._internal_longitude();
+  ::uint64_t raw_longitude;
+  memcpy(&raw_longitude, &tmp_longitude, sizeof(tmp_longitude));
+  if (raw_longitude != 0) {
+    _this->_internal_set_longitude(from._internal_longitude());
   }
-}
-
-void LatLng::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
-// @@protoc_insertion_point(generalized_copy_from_start:google.type.LatLng)
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
+  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
 }
 
 void LatLng::CopyFrom(const LatLng& from) {
@@ -295,30 +341,35 @@ void LatLng::CopyFrom(const LatLng& from) {
   MergeFrom(from);
 }
 
-bool LatLng::IsInitialized() const {
+PROTOBUF_NOINLINE bool LatLng::IsInitialized() const {
   return true;
 }
 
-void LatLng::InternalSwap(LatLng* other) {
+::_pbi::CachedSize* LatLng::AccessCachedSize() const {
+  return &_impl_._cached_size_;
+}
+void LatLng::InternalSwap(LatLng* PROTOBUF_RESTRICT other) {
   using std::swap;
-  _internal_metadata_.Swap(&other->_internal_metadata_);
-  swap(latitude_, other->latitude_);
-  swap(longitude_, other->longitude_);
+  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
+  ::google::protobuf::internal::memswap<
+      PROTOBUF_FIELD_OFFSET(LatLng, _impl_.longitude_)
+      + sizeof(LatLng::_impl_.longitude_)
+      - PROTOBUF_FIELD_OFFSET(LatLng, _impl_.latitude_)>(
+          reinterpret_cast<char*>(&_impl_.latitude_),
+          reinterpret_cast<char*>(&other->_impl_.latitude_));
 }
 
-::PROTOBUF_NAMESPACE_ID::Metadata LatLng::GetMetadata() const {
-  return GetMetadataStatic();
+::google::protobuf::Metadata LatLng::GetMetadata() const {
+  return ::_pbi::AssignDescriptors(
+      &descriptor_table_google_2ftype_2flatlng_2eproto_getter, &descriptor_table_google_2ftype_2flatlng_2eproto_once,
+      file_level_metadata_google_2ftype_2flatlng_2eproto[0]);
 }
-
-
 // @@protoc_insertion_point(namespace_scope)
 }  // namespace type
 }  // namespace google
-PROTOBUF_NAMESPACE_OPEN
-template<> PROTOBUF_NOINLINE ::google::type::LatLng* Arena::CreateMaybeMessage< ::google::type::LatLng >(Arena* arena) {
-  return Arena::CreateInternal< ::google::type::LatLng >(arena);
-}
-PROTOBUF_NAMESPACE_CLOSE
-
+namespace google {
+namespace protobuf {
+}  // namespace protobuf
+}  // namespace google
 // @@protoc_insertion_point(global_scope)
-#include <google/protobuf/port_undef.inc>
+#include "google/protobuf/port_undef.inc"

+ 189 - 123
Firestore/Protos/cpp/google/type/latlng.pb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,82 +16,89 @@
 
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: google/type/latlng.proto
+// Protobuf C++ Version: 4.25.1
 
-#ifndef GOOGLE_PROTOBUF_INCLUDED_google_2ftype_2flatlng_2eproto
-#define GOOGLE_PROTOBUF_INCLUDED_google_2ftype_2flatlng_2eproto
+#ifndef GOOGLE_PROTOBUF_INCLUDED_google_2ftype_2flatlng_2eproto_2epb_2eh
+#define GOOGLE_PROTOBUF_INCLUDED_google_2ftype_2flatlng_2eproto_2epb_2eh
 
 #include <limits>
 #include <string>
-
-#include <google/protobuf/port_def.inc>
-#if PROTOBUF_VERSION < 3011000
-#error This file was generated by a newer version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please update
-#error your headers.
-#endif
-#if 3011002 < PROTOBUF_MIN_PROTOC_VERSION
-#error This file was generated by an older version of protoc which is
-#error incompatible with your Protocol Buffer headers. Please
-#error regenerate this file with a newer version of protoc.
-#endif
-
-#include <google/protobuf/port_undef.inc>
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/arena.h>
-#include <google/protobuf/arenastring.h>
-#include <google/protobuf/generated_message_table_driven.h>
-#include <google/protobuf/generated_message_util.h>
-#include <google/protobuf/inlined_string_field.h>
-#include <google/protobuf/metadata.h>
-#include <google/protobuf/generated_message_reflection.h>
-#include <google/protobuf/message.h>
-#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
-#include <google/protobuf/extension_set.h>  // IWYU pragma: export
-#include <google/protobuf/unknown_field_set.h>
+#include <type_traits>
+#include <utility>
+
+#include "google/protobuf/port_def.inc"
+#if PROTOBUF_VERSION < 4025000
+#error "This file was generated by a newer version of protoc which is"
+#error "incompatible with your Protocol Buffer headers. Please update"
+#error "your headers."
+#endif  // PROTOBUF_VERSION
+
+#if 4025001 < PROTOBUF_MIN_PROTOC_VERSION
+#error "This file was generated by an older version of protoc which is"
+#error "incompatible with your Protocol Buffer headers. Please"
+#error "regenerate this file with a newer version of protoc."
+#endif  // PROTOBUF_MIN_PROTOC_VERSION
+#include "google/protobuf/port_undef.inc"
+#include "google/protobuf/io/coded_stream.h"
+#include "google/protobuf/arena.h"
+#include "google/protobuf/arenastring.h"
+#include "google/protobuf/generated_message_tctable_decl.h"
+#include "google/protobuf/generated_message_util.h"
+#include "google/protobuf/metadata_lite.h"
+#include "google/protobuf/generated_message_reflection.h"
+#include "google/protobuf/message.h"
+#include "google/protobuf/repeated_field.h"  // IWYU pragma: export
+#include "google/protobuf/extension_set.h"  // IWYU pragma: export
+#include "google/protobuf/unknown_field_set.h"
 // @@protoc_insertion_point(includes)
-#include <google/protobuf/port_def.inc>
+
+// Must be included last.
+#include "google/protobuf/port_def.inc"
+
 #define PROTOBUF_INTERNAL_EXPORT_google_2ftype_2flatlng_2eproto
-PROTOBUF_NAMESPACE_OPEN
+
+namespace google {
+namespace protobuf {
 namespace internal {
 class AnyMetadata;
 }  // namespace internal
-PROTOBUF_NAMESPACE_CLOSE
+}  // namespace protobuf
+}  // namespace google
 
 // Internal implementation detail -- do not use these members.
 struct TableStruct_google_2ftype_2flatlng_2eproto {
-  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[1]
-    PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
-  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
-  static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
+  static const ::uint32_t offsets[];
 };
-extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_google_2ftype_2flatlng_2eproto;
+extern const ::google::protobuf::internal::DescriptorTable
+    descriptor_table_google_2ftype_2flatlng_2eproto;
 namespace google {
 namespace type {
 class LatLng;
-class LatLngDefaultTypeInternal;
+struct LatLngDefaultTypeInternal;
 extern LatLngDefaultTypeInternal _LatLng_default_instance_;
 }  // namespace type
+namespace protobuf {
+}  // namespace protobuf
 }  // namespace google
-PROTOBUF_NAMESPACE_OPEN
-template<> ::google::type::LatLng* Arena::CreateMaybeMessage<::google::type::LatLng>(Arena*);
-PROTOBUF_NAMESPACE_CLOSE
+
 namespace google {
 namespace type {
 
 // ===================================================================
 
-class LatLng :
-    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:google.type.LatLng) */ {
+
+// -------------------------------------------------------------------
+
+class LatLng final :
+    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.type.LatLng) */ {
  public:
-  LatLng();
-  virtual ~LatLng();
+  inline LatLng() : LatLng(nullptr) {}
+  ~LatLng() override;
+  template<typename = void>
+  explicit PROTOBUF_CONSTEXPR LatLng(::google::protobuf::internal::ConstantInitialized);
 
-  LatLng(const LatLng& from);
+  inline LatLng(const LatLng& from)
+      : LatLng(nullptr, from) {}
   LatLng(LatLng&& from) noexcept
     : LatLng() {
     *this = ::std::move(from);
@@ -102,26 +109,40 @@ class LatLng :
     return *this;
   }
   inline LatLng& operator=(LatLng&& from) noexcept {
-    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
-      if (this != &from) InternalSwap(&from);
+    if (this == &from) return *this;
+    if (GetArena() == from.GetArena()
+  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
+        && GetArena() != nullptr
+  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
+    ) {
+      InternalSwap(&from);
     } else {
       CopyFrom(from);
     }
     return *this;
   }
 
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
+      ABSL_ATTRIBUTE_LIFETIME_BOUND {
+    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
+  }
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields()
+      ABSL_ATTRIBUTE_LIFETIME_BOUND {
+    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor() {
     return GetDescriptor();
   }
-  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
-    return GetMetadataStatic().descriptor;
+  static const ::google::protobuf::Descriptor* GetDescriptor() {
+    return default_instance().GetMetadata().descriptor;
   }
-  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
-    return GetMetadataStatic().reflection;
+  static const ::google::protobuf::Reflection* GetReflection() {
+    return default_instance().GetMetadata().reflection;
+  }
+  static const LatLng& default_instance() {
+    return *internal_default_instance();
   }
-  static const LatLng& default_instance();
-
-  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
   static inline const LatLng* internal_default_instance() {
     return reinterpret_cast<const LatLng*>(
                &_LatLng_default_instance_);
@@ -134,57 +155,66 @@ class LatLng :
   }
   inline void Swap(LatLng* other) {
     if (other == this) return;
+  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetArena() != nullptr &&
+        GetArena() == other->GetArena()) {
+   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
+    if (GetArena() == other->GetArena()) {
+  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
+      InternalSwap(other);
+    } else {
+      ::google::protobuf::internal::GenericSwap(this, other);
+    }
+  }
+  void UnsafeArenaSwap(LatLng* other) {
+    if (other == this) return;
+    ABSL_DCHECK(GetArena() == other->GetArena());
     InternalSwap(other);
   }
 
   // implements Message ----------------------------------------------
 
-  inline LatLng* New() const final {
-    return CreateMaybeMessage<LatLng>(nullptr);
-  }
-
-  LatLng* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
+  LatLng* New(::google::protobuf::Arena* arena = nullptr) const final {
     return CreateMaybeMessage<LatLng>(arena);
   }
-  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
-  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
+  using ::google::protobuf::Message::CopyFrom;
   void CopyFrom(const LatLng& from);
-  void MergeFrom(const LatLng& from);
+  using ::google::protobuf::Message::MergeFrom;
+  void MergeFrom( const LatLng& from) {
+    LatLng::MergeImpl(*this, from);
+  }
+  private:
+  static void MergeImpl(::google::protobuf::Message& to_msg, const ::google::protobuf::Message& from_msg);
+  public:
   PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
   bool IsInitialized() const final;
 
-  size_t ByteSizeLong() const final;
-  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
-  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
-      ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
-  int GetCachedSize() const final { return _cached_size_.Get(); }
+  ::size_t ByteSizeLong() const final;
+  const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
+  ::uint8_t* _InternalSerialize(
+      ::uint8_t* target, ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
+  int GetCachedSize() const { return _impl_._cached_size_.Get(); }
 
   private:
-  inline void SharedCtor();
-  inline void SharedDtor();
-  void SetCachedSize(int size) const final;
+  ::google::protobuf::internal::CachedSize* AccessCachedSize() const final;
+  void SharedCtor(::google::protobuf::Arena* arena);
+  void SharedDtor();
   void InternalSwap(LatLng* other);
-  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
-  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
-    return "google.type.LatLng";
-  }
+
   private:
-  inline ::PROTOBUF_NAMESPACE_ID::Arena* GetArenaNoVirtual() const {
-    return nullptr;
-  }
-  inline void* MaybeArenaPtr() const {
-    return nullptr;
+  friend class ::google::protobuf::internal::AnyMetadata;
+  static ::absl::string_view FullMessageName() {
+    return "google.type.LatLng";
   }
+  protected:
+  explicit LatLng(::google::protobuf::Arena* arena);
+  LatLng(::google::protobuf::Arena* arena, const LatLng& from);
   public:
 
-  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
-  private:
-  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
-    ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_google_2ftype_2flatlng_2eproto);
-    return ::descriptor_table_google_2ftype_2flatlng_2eproto.file_level_metadata[kIndexInFileMessages];
-  }
+  static const ClassData _class_data_;
+  const ::google::protobuf::Message::ClassData*GetClassData() const final;
 
-  public:
+  ::google::protobuf::Metadata GetMetadata() const final;
 
   // nested types ----------------------------------------------------
 
@@ -195,94 +225,130 @@ class LatLng :
     kLongitudeFieldNumber = 2,
   };
   // double latitude = 1;
-  void clear_latitude();
+  void clear_latitude() ;
   double latitude() const;
   void set_latitude(double value);
+
   private:
   double _internal_latitude() const;
   void _internal_set_latitude(double value);
-  public:
 
+  public:
   // double longitude = 2;
-  void clear_longitude();
+  void clear_longitude() ;
   double longitude() const;
   void set_longitude(double value);
+
   private:
   double _internal_longitude() const;
   void _internal_set_longitude(double value);
-  public:
 
+  public:
   // @@protoc_insertion_point(class_scope:google.type.LatLng)
  private:
   class _Internal;
 
-  ::PROTOBUF_NAMESPACE_ID::internal::InternalMetadataWithArena _internal_metadata_;
-  double latitude_;
-  double longitude_;
-  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+  friend class ::google::protobuf::internal::TcParser;
+  static const ::google::protobuf::internal::TcParseTable<
+      1, 2, 0,
+      0, 2>
+      _table_;
+  friend class ::google::protobuf::MessageLite;
+  friend class ::google::protobuf::Arena;
+  template <typename T>
+  friend class ::google::protobuf::Arena::InternalHelper;
+  using InternalArenaConstructable_ = void;
+  using DestructorSkippable_ = void;
+  struct Impl_ {
+
+        inline explicit constexpr Impl_(
+            ::google::protobuf::internal::ConstantInitialized) noexcept;
+        inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
+                              ::google::protobuf::Arena* arena);
+        inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
+                              ::google::protobuf::Arena* arena, const Impl_& from);
+    double latitude_;
+    double longitude_;
+    mutable ::google::protobuf::internal::CachedSize _cached_size_;
+    PROTOBUF_TSAN_DECLARE_MEMBER
+  };
+  union { Impl_ _impl_; };
   friend struct ::TableStruct_google_2ftype_2flatlng_2eproto;
 };
+
 // ===================================================================
 
 
+
+
 // ===================================================================
 
+
 #ifdef __GNUC__
-  #pragma GCC diagnostic push
-  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wstrict-aliasing"
 #endif  // __GNUC__
+// -------------------------------------------------------------------
+
 // LatLng
 
 // double latitude = 1;
 inline void LatLng::clear_latitude() {
-  latitude_ = 0;
-}
-inline double LatLng::_internal_latitude() const {
-  return latitude_;
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  _impl_.latitude_ = 0;
 }
 inline double LatLng::latitude() const {
   // @@protoc_insertion_point(field_get:google.type.LatLng.latitude)
   return _internal_latitude();
 }
-inline void LatLng::_internal_set_latitude(double value) {
-  
-  latitude_ = value;
-}
 inline void LatLng::set_latitude(double value) {
   _internal_set_latitude(value);
   // @@protoc_insertion_point(field_set:google.type.LatLng.latitude)
 }
+inline double LatLng::_internal_latitude() const {
+  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
+  return _impl_.latitude_;
+}
+inline void LatLng::_internal_set_latitude(double value) {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  ;
+  _impl_.latitude_ = value;
+}
 
 // double longitude = 2;
 inline void LatLng::clear_longitude() {
-  longitude_ = 0;
-}
-inline double LatLng::_internal_longitude() const {
-  return longitude_;
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  _impl_.longitude_ = 0;
 }
 inline double LatLng::longitude() const {
   // @@protoc_insertion_point(field_get:google.type.LatLng.longitude)
   return _internal_longitude();
 }
-inline void LatLng::_internal_set_longitude(double value) {
-  
-  longitude_ = value;
-}
 inline void LatLng::set_longitude(double value) {
   _internal_set_longitude(value);
   // @@protoc_insertion_point(field_set:google.type.LatLng.longitude)
 }
+inline double LatLng::_internal_longitude() const {
+  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
+  return _impl_.longitude_;
+}
+inline void LatLng::_internal_set_longitude(double value) {
+  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
+  ;
+  _impl_.longitude_ = value;
+}
 
 #ifdef __GNUC__
-  #pragma GCC diagnostic pop
+#pragma GCC diagnostic pop
 #endif  // __GNUC__
 
 // @@protoc_insertion_point(namespace_scope)
-
 }  // namespace type
 }  // namespace google
 
+
 // @@protoc_insertion_point(global_scope)
 
-#include <google/protobuf/port_undef.inc>
-#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_google_2ftype_2flatlng_2eproto
+#include "google/protobuf/port_undef.inc"
+
+#endif  // GOOGLE_PROTOBUF_INCLUDED_google_2ftype_2flatlng_2eproto_2epb_2eh

+ 1 - 1
Firestore/Protos/nanopb/firestore/bundle.nanopb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/firestore/bundle.nanopb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/firestore/local/maybe_document.nanopb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/firestore/local/maybe_document.nanopb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/firestore/local/mutation.nanopb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/firestore/local/mutation.nanopb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/firestore/local/target.nanopb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/firestore/local/target.nanopb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/api/annotations.nanopb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/api/annotations.nanopb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/api/http.nanopb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/api/http.nanopb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/api/resource.nanopb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/api/resource.nanopb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/firestore/admin/index.nanopb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/firestore/admin/index.nanopb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/firestore/v1/aggregation_result.nanopb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/firestore/v1/aggregation_result.nanopb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/firestore/v1/bloom_filter.nanopb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/firestore/v1/bloom_filter.nanopb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/firestore/v1/common.nanopb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/firestore/v1/common.nanopb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/firestore/v1/document.nanopb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/firestore/v1/document.nanopb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/firestore/v1/firestore.nanopb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/firestore/v1/firestore.nanopb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/firestore/v1/query.nanopb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/firestore/v1/query.nanopb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/firestore/v1/write.nanopb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/firestore/v1/write.nanopb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/protobuf/any.nanopb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/protobuf/any.nanopb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/protobuf/empty.nanopb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/protobuf/empty.nanopb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/protobuf/struct.nanopb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/protobuf/struct.nanopb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/protobuf/timestamp.nanopb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/protobuf/timestamp.nanopb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/protobuf/wrappers.nanopb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/protobuf/wrappers.nanopb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/rpc/status.nanopb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/rpc/status.nanopb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/type/latlng.nanopb.cc

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

+ 1 - 1
Firestore/Protos/nanopb/google/type/latlng.nanopb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright 2023 Google LLC
+ * Copyright 2024 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

File diff suppressed because it is too large
+ 3884 - 7116
Firestore/core/src/remote/grpc_root_certificates_generated.cc


+ 3 - 1
Firestore/core/src/util/string_format.cc

@@ -24,7 +24,9 @@ namespace internal {
 static const char* kMissing = "<missing>";
 static const char* kInvalid = "<invalid>";
 
-std::string StringFormatPieces(
+// Disable asan for this function because of the way it manages stack
+// (nested closure) is flaged with stack underflow by clang on Ubuntu.
+__attribute__((no_sanitize_address)) std::string StringFormatPieces(
     const char* format, std::initializer_list<absl::string_view> pieces) {
   std::string result;
 

+ 6 - 1
Firestore/core/test/unit/bundle/bundle_reader_test.cc

@@ -45,8 +45,8 @@ namespace firestore {
 namespace bundle {
 namespace {
 
+using google::protobuf::Message;
 using google::protobuf::util::MessageDifferencer;
-using google::protobuf::util::MessageToJsonString;
 using ProtoBundledDocumentMetadata = ::firestore::BundledDocumentMetadata;
 using ProtoBundleElement = ::firestore::BundleElement;
 using ProtoBundleMetadata = ::firestore::BundleMetadata;
@@ -59,6 +59,11 @@ using nanopb::ProtobufParse;
 using util::ByteStream;
 using util::ByteStreamCpp;
 
+void MessageToJsonString(const Message& message, std::string* output) {
+  auto status = google::protobuf::util::MessageToJsonString(message, output);
+  HARD_ASSERT(status.ok());
+}
+
 class BundleReaderTest : public ::testing::Test {
  public:
   BundleReaderTest()

+ 6 - 1
Firestore/core/test/unit/bundle/bundle_serializer_test.cc

@@ -28,6 +28,7 @@
 #include "Firestore/core/src/nanopb/byte_string.h"
 #include "Firestore/core/src/nanopb/message.h"
 #include "Firestore/core/src/remote/serializer.h"
+#include "Firestore/core/src/util/hard_assert.h"
 #include "Firestore/core/test/unit/nanopb/nanopb_testing.h"
 #include "Firestore/core/test/unit/testutil/status_testing.h"
 #include "Firestore/core/test/unit/testutil/testutil.h"
@@ -42,7 +43,6 @@ namespace {
 
 using google::protobuf::Message;
 using google::protobuf::util::MessageDifferencer;
-using google::protobuf::util::MessageToJsonString;
 using nlohmann::json;
 using ProtoBundledDocumentMetadata = ::firestore::BundledDocumentMetadata;
 using ProtoBundleMetadata = ::firestore::BundleMetadata;
@@ -71,6 +71,11 @@ json Parse(const std::string& s) {
   return json::parse(s, /*callback=*/nullptr, /*allow_exception=*/false);
 }
 
+void MessageToJsonString(const Message& message, std::string* output) {
+  auto status = google::protobuf::util::MessageToJsonString(message, output);
+  HARD_ASSERT(status.ok());
+}
+
 class BundleSerializerTest : public ::testing::Test {
  public:
   BundleSerializerTest()

+ 2 - 5
cmake/external/abseil-cpp.cmake

@@ -14,8 +14,7 @@
 
 include(ExternalProject)
 
-# Note: When updating to 20230802.0 or later, remove the PATCH_COMMAND below.
-set(version 20220623.0)
+set(version 20240116.1)
 
 ExternalProject_Add(
   abseil-cpp
@@ -23,7 +22,7 @@ ExternalProject_Add(
   DOWNLOAD_DIR ${FIREBASE_DOWNLOAD_DIR}
   DOWNLOAD_NAME abseil-cpp-${version}.tar.gz
   URL https://github.com/abseil/abseil-cpp/archive/${version}.tar.gz
-  URL_HASH SHA256=4208129b49006089ba1d6710845a45e31c59b0ab6bff9e5788a87f55c5abd602
+  URL_HASH SHA256=3c743204df78366ad2eaf236d6631d83f6bc928d1705dd0000b872e53b73dc6a
 
   PREFIX ${PROJECT_BINARY_DIR}
 
@@ -32,6 +31,4 @@ ExternalProject_Add(
   INSTALL_COMMAND ""
   TEST_COMMAND ""
   HTTP_HEADER "${EXTERNAL_PROJECT_HTTP_HEADER}"
-
-  PATCH_COMMAND patch -Np1 -i ${CMAKE_CURRENT_LIST_DIR}/abseil-cpp.patch.txt
 )

+ 3 - 3
cmake/external/boringssl.cmake

@@ -18,8 +18,8 @@ if(TARGET boringssl)
   return()
 endif()
 
-# Based on https://github.com/grpc/grpc/blob/v1.44.0/bazel/grpc_deps.bzl
-set(commit b9232f9e27e5668bc0414879dcdedb2a59ea75f2)
+# Based on https://github.com/grpc/grpc/blob/v1.62.0/bazel/grpc_deps.bzl
+set(commit ae72a4514c7afd150596b0a80947f3ca9b8363b5)
 
 ExternalProject_Add(
   boringssl
@@ -27,7 +27,7 @@ ExternalProject_Add(
   DOWNLOAD_DIR ${FIREBASE_DOWNLOAD_DIR}
   DOWNLOAD_NAME boringssl-${commit}.tar.gz
   URL https://github.com/google/boringssl/archive/${commit}.tar.gz
-  URL_HASH SHA256=534fa658bd845fd974b50b10f444d392dfd0d93768c4a51b61263fd37d851c40
+  URL_HASH SHA256=057f662b0e85931a84945b2e89ba201fd44b0583da827c948fe443593690fb83
 
   PREFIX ${PROJECT_BINARY_DIR}
   SOURCE_DIR ${PROJECT_BINARY_DIR}/src/boringssl

+ 2 - 2
cmake/external/grpc.cmake

@@ -18,7 +18,7 @@ if(TARGET grpc)
   return()
 endif()
 
-set(version 1.50.0)
+set(version 1.62.0)
 
 ExternalProject_Add(
   grpc
@@ -26,7 +26,7 @@ ExternalProject_Add(
   DOWNLOAD_DIR ${FIREBASE_DOWNLOAD_DIR}
   DOWNLOAD_NAME grpc-${version}.tar.gz
   URL https://github.com/grpc/grpc/archive/v${version}.tar.gz
-  URL_HASH SHA256=76900ab068da86378395a8e125b5cc43dfae671e09ff6462ddfef18676e2165a
+  URL_HASH SHA256=f40bde4ce2f31760f65dc49a2f50876f59077026494e67dccf23992548b1b04f
 
   PREFIX ${PROJECT_BINARY_DIR}
   SOURCE_DIR ${PROJECT_BINARY_DIR}/src/grpc

+ 3 - 4
cmake/external/protobuf.cmake

@@ -18,9 +18,8 @@ if(TARGET protobuf)
   return()
 endif()
 
-# Based on https://github.com/grpc/grpc/blob/v1.27.0/bazel/grpc_deps.bzl
-# v3.11.4, master@{2020-01-15}
-set(commit 29cd005ce1fe1a8fabf11e325cb13006a6646d59)
+# Based on https://github.com/grpc/grpc/blob/v1.62.0/bazel/grpc_deps.bzl
+set(commit 7f94235e552599141950d7a4a3eaf93bc87d1b22)
 
 ExternalProject_Add(
   protobuf
@@ -28,7 +27,7 @@ ExternalProject_Add(
   DOWNLOAD_DIR ${FIREBASE_DOWNLOAD_DIR}
   DOWNLOAD_NAME protobuf-${commit}.tar.gz
   URL https://github.com/protocolbuffers/protobuf/archive/${commit}.tar.gz
-  URL_HASH SHA256=51398b0b97b353c1c226d0ade0bae80c80380e691cba7c1a108918986784a1c7
+  URL_HASH SHA256=70f480fe9cb0c6829dbf6be3c388103313aacb65de667b86d981bbc9eaedb905
 
   PREFIX ${PROJECT_BINARY_DIR}
   SOURCE_DIR ${PROJECT_BINARY_DIR}/src/protobuf

Some files were not shown because too many files changed in this diff