grpc 1.40.0 → 1.46.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
 - data/Makefile +462 -267
 - data/etc/roots.pem +335 -326
 - data/include/grpc/byte_buffer.h +1 -1
 - data/include/grpc/byte_buffer_reader.h +1 -1
 - data/include/grpc/event_engine/endpoint_config.h +6 -11
 - data/include/grpc/event_engine/event_engine.h +164 -95
 - data/include/grpc/event_engine/internal/memory_allocator_impl.h +68 -0
 - data/include/grpc/event_engine/memory_allocator.h +226 -0
 - data/include/grpc/event_engine/memory_request.h +57 -0
 - data/include/grpc/event_engine/port.h +1 -3
 - data/include/grpc/fork.h +1 -1
 - data/include/grpc/grpc.h +54 -18
 - data/include/grpc/grpc_posix.h +22 -18
 - data/include/grpc/grpc_security.h +328 -193
 - data/include/grpc/grpc_security_constants.h +2 -14
 - data/include/grpc/impl/codegen/atm.h +5 -3
 - data/include/grpc/impl/codegen/atm_gcc_atomic.h +2 -0
 - data/include/grpc/impl/codegen/atm_gcc_sync.h +2 -0
 - data/include/grpc/impl/codegen/atm_windows.h +2 -0
 - data/include/grpc/impl/codegen/byte_buffer.h +2 -0
 - data/include/grpc/impl/codegen/byte_buffer_reader.h +2 -0
 - data/include/grpc/impl/codegen/compression_types.h +2 -2
 - data/include/grpc/impl/codegen/connectivity_state.h +2 -0
 - data/include/grpc/impl/codegen/fork.h +2 -0
 - data/include/grpc/impl/codegen/gpr_slice.h +2 -0
 - data/include/grpc/impl/codegen/gpr_types.h +2 -0
 - data/include/grpc/impl/codegen/grpc_types.h +28 -26
 - data/include/grpc/impl/codegen/log.h +2 -0
 - data/include/grpc/impl/codegen/port_platform.h +37 -22
 - data/include/grpc/impl/codegen/propagation_bits.h +2 -0
 - data/include/grpc/impl/codegen/slice.h +6 -1
 - data/include/grpc/impl/codegen/status.h +2 -0
 - data/include/grpc/impl/codegen/sync.h +8 -5
 - data/include/grpc/impl/codegen/sync_abseil.h +2 -0
 - data/include/grpc/impl/codegen/sync_custom.h +2 -0
 - data/include/grpc/impl/codegen/sync_generic.h +3 -0
 - data/include/grpc/impl/codegen/sync_posix.h +4 -2
 - data/include/grpc/impl/codegen/sync_windows.h +2 -0
 - data/include/grpc/slice.h +1 -12
 - data/include/grpc/status.h +1 -1
 - data/include/grpc/support/atm.h +1 -1
 - data/include/grpc/support/atm_gcc_atomic.h +1 -1
 - data/include/grpc/support/atm_gcc_sync.h +1 -1
 - data/include/grpc/support/atm_windows.h +1 -1
 - data/include/grpc/support/log.h +1 -1
 - data/include/grpc/support/port_platform.h +1 -1
 - data/include/grpc/support/sync.h +1 -1
 - data/include/grpc/support/sync_abseil.h +1 -1
 - data/include/grpc/support/sync_custom.h +1 -1
 - data/include/grpc/support/sync_generic.h +1 -1
 - data/include/grpc/support/sync_posix.h +1 -1
 - data/include/grpc/support/sync_windows.h +1 -1
 - data/include/grpc/support/time.h +2 -2
 - data/src/core/ext/filters/census/grpc_context.cc +1 -0
 - data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +309 -0
 - data/src/core/ext/filters/channel_idle/channel_idle_filter.h +122 -0
 - data/src/core/ext/filters/channel_idle/idle_filter_state.cc +96 -0
 - data/src/core/ext/filters/channel_idle/idle_filter_state.h +66 -0
 - data/src/core/ext/filters/client_channel/backend_metric.cc +24 -27
 - data/src/core/ext/filters/client_channel/backend_metric.h +4 -3
 - data/src/core/ext/filters/client_channel/backup_poller.cc +14 -9
 - data/src/core/ext/filters/client_channel/backup_poller.h +1 -0
 - data/src/core/ext/filters/client_channel/channel_connectivity.cc +75 -94
 - data/src/core/ext/filters/client_channel/client_channel.cc +532 -501
 - data/src/core/ext/filters/client_channel/client_channel.h +115 -64
 - data/src/core/ext/filters/client_channel/client_channel_channelz.cc +6 -5
 - data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
 - data/src/core/ext/filters/client_channel/client_channel_factory.cc +2 -1
 - data/src/core/ext/filters/client_channel/client_channel_factory.h +17 -19
 - data/src/core/ext/filters/client_channel/client_channel_plugin.cc +18 -24
 - data/src/core/ext/filters/client_channel/config_selector.cc +2 -1
 - data/src/core/ext/filters/client_channel/config_selector.h +5 -6
 - data/src/core/ext/filters/client_channel/connector.h +19 -19
 - data/src/core/ext/filters/client_channel/dynamic_filters.cc +6 -7
 - data/src/core/ext/filters/client_channel/dynamic_filters.h +2 -2
 - data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +2 -22
 - data/src/core/ext/filters/client_channel/global_subchannel_pool.h +3 -16
 - data/src/core/ext/filters/client_channel/health/health_check_client.cc +128 -582
 - data/src/core/ext/filters/client_channel/health/health_check_client.h +24 -159
 - data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +30 -34
 - data/src/core/ext/filters/client_channel/http_connect_handshaker.h +10 -2
 - data/src/core/ext/filters/client_channel/http_proxy.cc +88 -110
 - data/src/core/ext/filters/client_channel/http_proxy.h +17 -0
 - data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +4 -3
 - data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +6 -5
 - data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +6 -2
 - data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -18
 - data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +247 -150
 - data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +3 -6
 - data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +1 -1
 - data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +1 -1
 - data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +3 -4
 - data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +4 -4
 - data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +17 -18
 - data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +4 -4
 - data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +73 -39
 - data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +226 -181
 - data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +126 -79
 - data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +2542 -0
 - data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +68 -62
 - data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +18 -13
 - data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +106 -71
 - data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +119 -159
 - data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +1 -1
 - data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +1 -1
 - data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +162 -77
 - data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +29 -19
 - data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +331 -488
 - data/src/core/ext/filters/client_channel/lb_policy.cc +15 -14
 - data/src/core/ext/filters/client_channel/lb_policy.h +115 -106
 - data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -0
 - data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -7
 - data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +133 -0
 - data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +296 -324
 - data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +23 -12
 - data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +23 -18
 - data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +37 -55
 - data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +153 -275
 - data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +38 -25
 - data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
 - data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +96 -254
 - data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +23 -20
 - data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +2 -1
 - data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +85 -69
 - data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +201 -0
 - data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +106 -0
 - data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +40 -39
 - data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +509 -439
 - data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +11 -15
 - data/src/core/ext/filters/client_channel/resolver_result_parsing.h +13 -7
 - data/src/core/ext/filters/client_channel/retry_filter.cc +282 -238
 - data/src/core/ext/filters/client_channel/retry_service_config.cc +16 -18
 - data/src/core/ext/filters/client_channel/retry_service_config.h +18 -12
 - data/src/core/ext/filters/client_channel/retry_throttle.cc +14 -59
 - data/src/core/ext/filters/client_channel/retry_throttle.h +11 -5
 - data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +51 -37
 - data/src/core/ext/filters/client_channel/subchannel.cc +132 -197
 - data/src/core/ext/filters/client_channel/subchannel.h +36 -56
 - data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +22 -7
 - data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +11 -2
 - data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +544 -0
 - data/src/core/ext/filters/client_channel/subchannel_stream_client.h +214 -0
 - data/src/core/ext/filters/deadline/deadline_filter.cc +31 -33
 - data/src/core/ext/filters/deadline/deadline_filter.h +3 -2
 - data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +158 -401
 - data/src/core/ext/filters/fault_injection/fault_injection_filter.h +24 -1
 - data/src/core/ext/filters/fault_injection/service_config_parser.cc +17 -27
 - data/src/core/ext/filters/fault_injection/service_config_parser.h +10 -4
 - data/src/core/ext/filters/http/client/http_client_filter.cc +83 -548
 - data/src/core/ext/filters/http/client/http_client_filter.h +21 -4
 - data/src/core/ext/filters/http/client_authority_filter.cc +39 -103
 - data/src/core/ext/filters/http/client_authority_filter.h +24 -5
 - data/src/core/ext/filters/http/http_filters_plugin.cc +55 -73
 - data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +49 -140
 - data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +22 -35
 - data/src/core/ext/filters/http/server/http_server_filter.cc +64 -274
 - data/src/core/ext/filters/message_size/message_size_filter.cc +49 -58
 - data/src/core/ext/filters/message_size/message_size_filter.h +10 -3
 - data/src/core/ext/filters/rbac/rbac_filter.cc +162 -0
 - data/src/core/ext/filters/rbac/rbac_filter.h +76 -0
 - data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +606 -0
 - data/src/core/ext/filters/rbac/rbac_service_config_parser.h +75 -0
 - data/src/core/ext/filters/server_config_selector/server_config_selector.cc +61 -0
 - data/src/core/ext/filters/server_config_selector/server_config_selector.h +71 -0
 - data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +143 -0
 - data/src/core/ext/filters/{workarounds/workaround_cronet_compression_filter.h → server_config_selector/server_config_selector_filter.h} +11 -6
 - data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -1
 - data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +245 -12
 - data/src/core/ext/transport/chttp2/server/chttp2_server.cc +294 -95
 - data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +3 -1
 - data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -1
 - data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +1 -0
 - data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +368 -349
 - data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +12 -4
 - data/src/core/ext/transport/chttp2/transport/context_list.cc +2 -3
 - data/src/core/ext/transport/chttp2/transport/context_list.h +3 -5
 - data/src/core/ext/transport/chttp2/transport/flow_control.cc +63 -44
 - data/src/core/ext/transport/chttp2/transport/flow_control.h +18 -12
 - data/src/core/ext/transport/chttp2/transport/frame_data.cc +11 -12
 - data/src/core/ext/transport/chttp2/transport/frame_data.h +1 -0
 - data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +6 -4
 - data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -0
 - data/src/core/ext/transport/chttp2/transport/frame_ping.cc +10 -9
 - data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -0
 - data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +10 -8
 - data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -0
 - data/src/core/ext/transport/chttp2/transport/frame_settings.cc +40 -7
 - data/src/core/ext/transport/chttp2/transport/frame_settings.h +1 -0
 - data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +12 -7
 - data/src/core/ext/transport/chttp2/transport/frame_window_update.h +1 -0
 - data/src/core/ext/transport/chttp2/transport/hpack_constants.h +41 -0
 - data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +516 -749
 - data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +183 -71
 - data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +86 -0
 - data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +71 -0
 - data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +764 -1062
 - data/src/core/ext/transport/chttp2/transport/hpack_parser.h +75 -178
 - data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +239 -0
 - data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +115 -0
 - data/src/core/ext/transport/chttp2/transport/internal.h +22 -48
 - data/src/core/ext/transport/chttp2/transport/parsing.cc +61 -212
 - data/src/core/ext/transport/chttp2/transport/stream_lists.cc +2 -2
 - data/src/core/ext/transport/chttp2/transport/varint.cc +7 -3
 - data/src/core/ext/transport/chttp2/transport/varint.h +39 -28
 - data/src/core/ext/transport/chttp2/transport/writing.cc +125 -169
 - data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -4
 - data/src/core/ext/transport/inproc/inproc_transport.cc +132 -173
 - data/src/core/ext/transport/inproc/inproc_transport.h +1 -4
 - data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +117 -0
 - data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +482 -0
 - data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +121 -0
 - data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +553 -0
 - data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +248 -210
 - data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +1382 -685
 - data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +56 -0
 - data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +151 -0
 - data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +62 -0
 - data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +160 -0
 - data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +46 -0
 - data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +124 -0
 - data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +43 -0
 - data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +102 -0
 - data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +43 -0
 - data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +97 -0
 - data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +106 -0
 - data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +605 -0
 - data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +48 -0
 - data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +103 -0
 - data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +44 -1
 - data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +52 -1
 - data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +31 -5
 - data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +57 -18
 - data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +144 -117
 - data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +761 -386
 - data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +240 -200
 - data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1376 -667
 - data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +50 -29
 - data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +224 -95
 - data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +337 -255
 - data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +1901 -790
 - data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +21 -8
 - data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +50 -24
 - data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +61 -28
 - data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +280 -99
 - data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +299 -0
 - data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +1381 -0
 - data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +75 -54
 - data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +398 -190
 - data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +22 -8
 - data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +53 -25
 - data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +220 -171
 - data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +1224 -567
 - data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +106 -46
 - data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +561 -171
 - data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +20 -7
 - data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +46 -24
 - data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +17 -23
 - data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +49 -95
 - data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +58 -0
 - data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +151 -0
 - data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +146 -118
 - data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +853 -415
 - data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +142 -92
 - data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +797 -345
 - data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +22 -9
 - data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +65 -31
 - data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +205 -122
 - data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +1097 -393
 - data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +18 -5
 - data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +36 -17
 - data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +28 -14
 - data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +97 -49
 - data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +23 -10
 - data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +83 -34
 - data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +27 -14
 - data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +101 -49
 - data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +22 -9
 - data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +54 -26
 - data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +52 -36
 - data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +214 -109
 - data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +92 -39
 - data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +449 -131
 - data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +71 -54
 - data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +389 -188
 - data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +20 -7
 - data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +42 -21
 - data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +99 -72
 - data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +541 -259
 - data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +105 -80
 - data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +610 -307
 - data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +32 -17
 - data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +112 -49
 - data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +25 -11
 - data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +79 -40
 - data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +53 -0
 - data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +136 -0
 - data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +83 -62
 - data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +463 -235
 - data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +93 -60
 - data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +483 -214
 - data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +130 -100
 - data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +628 -282
 - data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +54 -35
 - data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +291 -142
 - data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +665 -567
 - data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +3977 -1883
 - data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +39 -20
 - data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +168 -72
 - data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +222 -0
 - data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +1052 -0
 - data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +44 -0
 - data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +88 -0
 - data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +49 -0
 - data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +103 -0
 - data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +28 -14
 - data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +91 -46
 - data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +52 -0
 - data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +134 -0
 - data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +63 -0
 - data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +250 -0
 - data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +47 -0
 - data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +94 -0
 - data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +69 -0
 - data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +213 -0
 - data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +32 -0
 - data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +42 -0
 - data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +71 -0
 - data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +218 -0
 - data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +54 -0
 - data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +146 -0
 - data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +18 -5
 - data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +42 -24
 - data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +46 -29
 - data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +219 -112
 - data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +52 -37
 - data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +282 -134
 - data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +64 -0
 - data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +183 -0
 - data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +27 -14
 - data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +94 -43
 - data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +284 -225
 - data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1673 -738
 - data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +10 -1
 - data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +7 -4
 - data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +113 -54
 - data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +621 -216
 - data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +42 -27
 - data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +176 -87
 - data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +128 -83
 - data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +673 -259
 - data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +62 -0
 - data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +160 -0
 - data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +16 -3
 - data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +29 -15
 - data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +92 -73
 - data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +516 -260
 - data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +32 -18
 - data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +121 -62
 - data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +74 -57
 - data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +379 -186
 - data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +48 -0
 - data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +112 -0
 - data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +35 -19
 - data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +149 -81
 - data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +74 -0
 - data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +214 -0
 - data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +29 -14
 - data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +116 -56
 - data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +22 -9
 - data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +58 -31
 - data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +21 -8
 - data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +56 -27
 - data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +20 -7
 - data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +46 -24
 - data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +36 -21
 - data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +137 -69
 - data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +32 -18
 - data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +137 -65
 - data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +27 -13
 - data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +99 -53
 - data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +38 -23
 - data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +170 -83
 - data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +51 -32
 - data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +273 -145
 - data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +54 -37
 - data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +268 -132
 - data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +66 -0
 - data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +201 -0
 - data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +10 -1
 - data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +4 -1
 - data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +42 -0
 - data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +139 -0
 - data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +24 -10
 - data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +76 -36
 - data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +31 -16
 - data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +118 -52
 - data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c +26 -0
 - data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +41 -0
 - data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +20 -7
 - data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +48 -19
 - data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +51 -0
 - data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +127 -0
 - data/src/core/ext/upb-generated/google/api/annotations.upb.c +23 -1
 - data/src/core/ext/upb-generated/google/api/annotations.upb.h +24 -1
 - data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +155 -126
 - data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +791 -385
 - data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +159 -127
 - data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +869 -402
 - data/src/core/ext/upb-generated/google/api/http.upb.c +44 -29
 - data/src/core/ext/upb-generated/google/api/http.upb.h +236 -115
 - data/src/core/ext/upb-generated/google/api/httpbody.upb.c +46 -0
 - data/src/core/ext/upb-generated/google/api/httpbody.upb.h +111 -0
 - data/src/core/ext/upb-generated/google/protobuf/any.upb.c +19 -6
 - data/src/core/ext/upb-generated/google/protobuf/any.upb.h +46 -22
 - data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +374 -283
 - data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +2263 -1053
 - data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +19 -6
 - data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +44 -20
 - data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +16 -3
 - data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +29 -15
 - data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +48 -32
 - data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +197 -93
 - data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +19 -6
 - data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +44 -20
 - data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +58 -37
 - data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +296 -149
 - data/src/core/ext/upb-generated/google/rpc/status.upb.c +22 -9
 - data/src/core/ext/upb-generated/google/rpc/status.upb.h +60 -30
 - data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +84 -0
 - data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +319 -0
 - data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +33 -19
 - data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +111 -48
 - data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +136 -108
 - data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +753 -365
 - data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +28 -13
 - data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +90 -41
 - data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +23 -9
 - data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +70 -35
 - data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +82 -62
 - data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +448 -232
 - data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +70 -0
 - data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +208 -0
 - data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +175 -0
 - data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +764 -0
 - data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +76 -14
 - data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +213 -57
 - data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +32 -8
 - data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +62 -18
 - data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +22 -1
 - data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +17 -1
 - data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +32 -6
 - data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +64 -20
 - data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +31 -5
 - data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +57 -18
 - data/src/core/ext/upb-generated/validate/validate.upb.c +407 -311
 - data/src/core/ext/upb-generated/validate/validate.upb.h +2904 -1200
 - data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +110 -0
 - data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +278 -0
 - data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +55 -0
 - data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +108 -0
 - data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +38 -0
 - data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +46 -0
 - data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +105 -0
 - data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +290 -0
 - data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +53 -0
 - data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +99 -0
 - data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +19 -6
 - data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +38 -19
 - data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +32 -18
 - data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +112 -55
 - data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +27 -13
 - data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +61 -30
 - data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +46 -0
 - data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +103 -0
 - data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +24 -11
 - data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +63 -30
 - data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +35 -21
 - data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +144 -70
 - data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +24 -11
 - data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +66 -30
 - data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +73 -0
 - data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +187 -0
 - data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +207 -0
 - data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +878 -0
 - data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +52 -0
 - data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +143 -0
 - data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +65 -0
 - data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +218 -0
 - data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +46 -0
 - data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +103 -0
 - data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c +84 -0
 - data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.h +55 -0
 - data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +127 -0
 - data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.h +50 -0
 - data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +16 -61
 - data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +67 -67
 - data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c +43 -0
 - data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.h +40 -0
 - data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +53 -0
 - data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.h +40 -0
 - data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c +49 -0
 - data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.h +35 -0
 - data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c +46 -0
 - data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.h +35 -0
 - data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c +46 -0
 - data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.h +35 -0
 - data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c +142 -0
 - data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.h +40 -0
 - data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c +51 -0
 - data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.h +35 -0
 - data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +10 -8
 - data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +1 -1
 - data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +10 -13
 - data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +22 -52
 - data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +46 -46
 - data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +250 -281
 - data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +55 -55
 - data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +60 -62
 - data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +10 -10
 - data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +445 -458
 - data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +80 -70
 - data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +16 -18
 - data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +25 -23
 - data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c +206 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.h +105 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +17 -32
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +22 -22
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +17 -19
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +121 -154
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +75 -70
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +140 -116
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +26 -16
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +16 -19
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +24 -43
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +4 -9
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c +53 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.h +40 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +23 -51
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +43 -43
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +179 -184
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +30 -25
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +16 -19
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +263 -252
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +53 -43
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +14 -16
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +16 -20
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +7 -7
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +16 -18
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +20 -22
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +15 -18
 - data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +20 -28
 - data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +13 -13
 - data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +98 -83
 - data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +23 -13
 - data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +20 -30
 - data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +16 -16
 - data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +16 -18
 - data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +54 -62
 - data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +19 -19
 - data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +155 -166
 - data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +22 -22
 - data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +21 -23
 - data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +17 -21
 - data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +7 -7
 - data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +69 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h +35 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +19 -35
 - data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +25 -25
 - data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +40 -47
 - data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +30 -25
 - data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +190 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +70 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +38 -38
 - data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +10 -10
 - data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +845 -913
 - data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +160 -160
 - data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +54 -48
 - data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +10 -10
 - data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +188 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +85 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +54 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.h +35 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c +57 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.h +35 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +17 -21
 - data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +7 -7
 - data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c +72 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h +35 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c +99 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h +35 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c +52 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.h +35 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c +71 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.h +40 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +57 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.h +30 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c +75 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.h +40 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +77 -0
 - data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.h +35 -0
 - data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +17 -18
 - data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +19 -29
 - data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +16 -16
 - data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +20 -26
 - data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +10 -10
 - data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +59 -0
 - data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +40 -0
 - data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +19 -20
 - data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +291 -311
 - data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +63 -58
 - data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +17 -13
 - data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +1 -1
 - data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +173 -141
 - data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +26 -16
 - data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +21 -27
 - data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +10 -10
 - data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +219 -211
 - data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +24 -19
 - data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +58 -0
 - data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +40 -0
 - data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +16 -18
 - data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +19 -33
 - data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +22 -22
 - data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +18 -22
 - data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +7 -7
 - data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +22 -32
 - data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +16 -16
 - data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c +46 -0
 - data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.h +35 -0
 - data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +15 -23
 - data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +13 -13
 - data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +52 -0
 - data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +50 -0
 - data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +24 -27
 - data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +7 -7
 - data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +17 -19
 - data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +17 -19
 - data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +17 -19
 - data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +17 -23
 - data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +10 -10
 - data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +17 -21
 - data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +7 -7
 - data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +16 -21
 - data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +7 -7
 - data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +18 -24
 - data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +10 -10
 - data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +15 -29
 - data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +22 -22
 - data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +16 -26
 - data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +16 -16
 - data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c +53 -0
 - data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h +45 -0
 - data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +12 -10
 - data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +1 -1
 - data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c +94 -0
 - data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h +35 -0
 - data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +14 -19
 - data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +7 -7
 - data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +13 -19
 - data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +10 -10
 - data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +38 -0
 - data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.h +30 -0
 - data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +13 -16
 - data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c +57 -0
 - data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.h +35 -0
 - data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +7 -7
 - data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +1 -1
 - data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +154 -0
 - data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +95 -0
 - data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +153 -0
 - data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +100 -0
 - data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +5 -14
 - data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +10 -10
 - data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c +39 -0
 - data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.h +35 -0
 - data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +5 -10
 - data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +107 -164
 - data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +82 -82
 - data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +5 -10
 - data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +5 -10
 - data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +5 -16
 - data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +13 -13
 - data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +5 -10
 - data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +5 -26
 - data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +28 -28
 - data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +6 -11
 - data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c +67 -0
 - data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.h +50 -0
 - data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +99 -0
 - data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +75 -0
 - data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +10 -18
 - data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +10 -10
 - data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +24 -33
 - data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +9 -8
 - data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +1 -1
 - data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +10 -13
 - data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +10 -14
 - data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +8 -57
 - data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +70 -70
 - data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c +63 -0
 - data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.h +45 -0
 - data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c +47 -0
 - data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.h +35 -0
 - data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c +35 -0
 - data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.h +30 -0
 - data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +64 -0
 - data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +50 -0
 - data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c +40 -0
 - data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.h +35 -0
 - data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +18 -22
 - data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +32 -38
 - data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +7 -7
 - data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +20 -26
 - data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +7 -7
 - data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c +41 -0
 - data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h +35 -0
 - data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +23 -27
 - data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +39 -45
 - data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +7 -7
 - data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +25 -29
 - data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +4 -4
 - data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +126 -0
 - data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.h +80 -0
 - data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c +40 -0
 - data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.h +40 -0
 - data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c +52 -0
 - data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.h +40 -0
 - data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +40 -0
 - data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +35 -0
 - data/src/core/ext/xds/certificate_provider_registry.cc +3 -3
 - data/src/core/ext/xds/certificate_provider_store.cc +8 -0
 - data/src/core/ext/xds/certificate_provider_store.h +10 -1
 - data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +4 -4
 - data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
 - data/src/core/ext/xds/upb_utils.h +67 -0
 - data/src/core/ext/xds/xds_api.cc +214 -3608
 - data/src/core/ext/xds/xds_api.h +62 -580
 - data/src/core/ext/xds/xds_bootstrap.cc +241 -167
 - data/src/core/ext/xds/xds_bootstrap.h +43 -15
 - data/src/core/ext/xds/xds_certificate_provider.cc +5 -3
 - data/src/core/ext/xds/xds_certificate_provider.h +10 -2
 - data/src/core/ext/xds/xds_channel_stack_modifier.cc +109 -0
 - data/src/core/ext/xds/xds_channel_stack_modifier.h +53 -0
 - data/src/core/ext/xds/xds_client.cc +872 -899
 - data/src/core/ext/xds/xds_client.h +132 -159
 - data/src/core/ext/xds/xds_client_stats.cc +31 -30
 - data/src/core/ext/xds/xds_client_stats.h +12 -11
 - data/src/core/ext/xds/xds_cluster.cc +453 -0
 - data/src/core/ext/xds/xds_cluster.h +108 -0
 - data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +142 -0
 - data/src/core/ext/xds/xds_cluster_specifier_plugin.h +79 -0
 - data/src/core/ext/xds/xds_common_types.cc +388 -0
 - data/src/core/ext/xds/xds_common_types.h +95 -0
 - data/src/core/ext/xds/xds_endpoint.cc +371 -0
 - data/src/core/ext/xds/xds_endpoint.h +135 -0
 - data/src/core/ext/xds/xds_http_fault_filter.cc +11 -10
 - data/src/core/ext/xds/xds_http_fault_filter.h +6 -5
 - data/src/core/ext/xds/xds_http_filters.cc +12 -5
 - data/src/core/ext/xds/xds_http_filters.h +4 -4
 - data/src/core/ext/xds/xds_http_rbac_filter.cc +563 -0
 - data/src/core/ext/xds/xds_http_rbac_filter.h +54 -0
 - data/src/core/ext/xds/xds_listener.cc +1039 -0
 - data/src/core/ext/xds/xds_listener.h +220 -0
 - data/src/core/{lib/transport/authority_override.h → ext/xds/xds_resource_type.cc} +11 -15
 - data/src/core/ext/xds/xds_resource_type.h +98 -0
 - data/src/core/ext/xds/xds_resource_type_impl.h +87 -0
 - data/src/core/ext/xds/xds_route_config.cc +1122 -0
 - data/src/core/ext/xds/xds_route_config.h +218 -0
 - data/src/core/ext/xds/xds_routing.cc +250 -0
 - data/src/core/ext/xds/xds_routing.h +101 -0
 - data/src/core/ext/xds/xds_server_config_fetcher.cc +1057 -289
 - data/src/core/lib/address_utils/parse_address.cc +26 -8
 - data/src/core/lib/address_utils/parse_address.h +5 -0
 - data/src/core/lib/address_utils/sockaddr_utils.cc +33 -36
 - data/src/core/lib/address_utils/sockaddr_utils.h +1 -16
 - data/src/core/lib/avl/avl.h +452 -88
 - data/src/core/lib/backoff/backoff.cc +9 -38
 - data/src/core/lib/backoff/backoff.h +11 -11
 - data/src/core/lib/channel/call_finalization.h +86 -0
 - data/src/core/lib/channel/call_tracer.h +4 -1
 - data/src/core/lib/channel/channel_args.cc +173 -16
 - data/src/core/lib/channel/channel_args.h +214 -1
 - data/src/core/lib/channel/channel_args_preconditioning.cc +42 -0
 - data/src/core/lib/channel/channel_args_preconditioning.h +61 -0
 - data/src/core/lib/channel/channel_stack.cc +15 -6
 - data/src/core/lib/channel/channel_stack.h +39 -6
 - data/src/core/lib/channel/channel_stack_builder.cc +24 -283
 - data/src/core/lib/channel/channel_stack_builder.h +118 -157
 - data/src/core/lib/channel/channel_stack_builder_impl.cc +102 -0
 - data/src/core/lib/channel/channel_stack_builder_impl.h +48 -0
 - data/src/core/lib/channel/channel_trace.cc +8 -10
 - data/src/core/lib/channel/channel_trace.h +2 -1
 - data/src/core/lib/channel/channelz.cc +44 -39
 - data/src/core/lib/channel/channelz.h +29 -29
 - data/src/core/lib/channel/channelz_registry.cc +8 -7
 - data/src/core/lib/channel/channelz_registry.h +1 -1
 - data/src/core/lib/channel/connected_channel.cc +10 -6
 - data/src/core/lib/channel/connected_channel.h +2 -2
 - data/src/core/lib/channel/context.h +11 -0
 - data/src/core/lib/channel/handshaker.cc +3 -2
 - data/src/core/lib/channel/handshaker.h +2 -3
 - data/src/core/lib/channel/handshaker_factory.h +10 -2
 - data/src/core/lib/channel/handshaker_registry.cc +15 -70
 - data/src/core/lib/channel/handshaker_registry.h +29 -12
 - data/src/core/lib/channel/promise_based_filter.cc +1002 -0
 - data/src/core/lib/channel/promise_based_filter.h +437 -0
 - data/src/core/lib/channel/status_util.h +2 -2
 - data/src/core/lib/compression/compression.cc +22 -114
 - data/src/core/lib/compression/compression_internal.cc +139 -207
 - data/src/core/lib/compression/compression_internal.h +64 -69
 - data/src/core/lib/compression/message_compress.cc +13 -13
 - data/src/core/lib/compression/message_compress.h +2 -2
 - data/src/core/lib/config/core_configuration.cc +104 -0
 - data/src/core/lib/config/core_configuration.h +196 -0
 - data/src/core/lib/debug/stats.cc +1 -1
 - data/src/core/lib/debug/stats.h +1 -0
 - data/src/core/lib/debug/stats_data.cc +17 -20
 - data/src/core/lib/debug/stats_data.h +19 -21
 - data/src/core/lib/debug/trace.cc +1 -0
 - data/src/core/lib/debug/trace.h +4 -3
 - data/src/core/lib/event_engine/{endpoint_config.cc → channel_args_endpoint_config.cc} +2 -2
 - data/src/core/lib/event_engine/{endpoint_config_internal.h → channel_args_endpoint_config.h} +3 -3
 - data/src/core/lib/{iomgr/event_engine/iomgr.h → event_engine/default_event_engine_factory.cc} +11 -8
 - data/src/core/lib/event_engine/event_engine.cc +21 -19
 - data/src/core/lib/event_engine/event_engine_factory.h +36 -0
 - data/src/core/lib/event_engine/memory_allocator.cc +66 -0
 - data/src/core/lib/event_engine/resolved_address.cc +39 -0
 - data/src/core/lib/event_engine/sockaddr.cc +3 -3
 - data/src/core/lib/gpr/alloc.cc +4 -3
 - data/src/core/lib/gpr/atm.cc +1 -1
 - data/src/core/lib/gpr/cpu_posix.cc +1 -1
 - data/src/core/lib/gpr/env_linux.cc +1 -2
 - data/src/core/lib/gpr/env_posix.cc +2 -3
 - data/src/core/lib/gpr/log.cc +3 -3
 - data/src/core/lib/gpr/log_android.cc +3 -2
 - data/src/core/lib/gpr/log_linux.cc +7 -4
 - data/src/core/lib/gpr/log_posix.cc +6 -3
 - data/src/core/lib/gpr/string.cc +2 -2
 - data/src/core/lib/gpr/string.h +2 -2
 - data/src/core/lib/gpr/sync.cc +2 -2
 - data/src/core/lib/gpr/sync_abseil.cc +7 -6
 - data/src/core/lib/gpr/sync_posix.cc +4 -3
 - data/src/core/lib/gpr/time.cc +5 -3
 - data/src/core/lib/gpr/time_windows.cc +3 -2
 - data/src/core/lib/gpr/tls.h +126 -40
 - data/src/core/lib/gpr/tmpfile_posix.cc +1 -2
 - data/src/core/lib/gpr/useful.h +97 -32
 - data/src/core/lib/gprpp/atomic_utils.h +47 -0
 - data/src/core/lib/gprpp/bitset.h +207 -0
 - data/src/core/lib/gprpp/capture.h +76 -0
 - data/src/core/lib/gprpp/chunked_vector.h +253 -0
 - data/src/core/lib/{transport/authority_override.cc → gprpp/construct_destruct.h} +16 -17
 - data/src/core/lib/gprpp/cpp_impl_of.h +49 -0
 - data/src/core/lib/gprpp/debug_location.h +2 -0
 - data/src/core/lib/gprpp/dual_ref_counted.h +25 -26
 - data/src/core/lib/gprpp/fork.cc +14 -12
 - data/src/core/lib/gprpp/fork.h +4 -4
 - data/src/core/lib/gprpp/global_config.h +1 -2
 - data/src/core/lib/gprpp/global_config_env.cc +14 -14
 - data/src/core/lib/gprpp/global_config_env.h +2 -2
 - data/src/core/lib/gprpp/global_config_generic.h +2 -2
 - data/src/core/lib/gprpp/manual_constructor.h +10 -8
 - data/src/core/lib/gprpp/match.h +73 -0
 - data/src/core/lib/gprpp/memory.h +9 -3
 - data/src/core/lib/gprpp/mpscq.cc +7 -7
 - data/src/core/lib/gprpp/mpscq.h +6 -5
 - data/src/core/lib/gprpp/orphanable.h +4 -4
 - data/src/core/lib/gprpp/overload.h +59 -0
 - data/src/core/lib/gprpp/ref_counted.h +21 -19
 - data/src/core/lib/gprpp/ref_counted_ptr.h +2 -4
 - data/src/core/lib/gprpp/single_set_ptr.h +87 -0
 - data/src/core/lib/gprpp/status_helper.cc +65 -37
 - data/src/core/lib/gprpp/status_helper.h +14 -16
 - data/src/core/lib/gprpp/sync.h +3 -1
 - data/src/core/lib/gprpp/table.h +434 -0
 - data/src/core/lib/gprpp/thd_posix.cc +5 -5
 - data/src/core/lib/gprpp/thd_windows.cc +4 -11
 - data/src/core/lib/gprpp/time.cc +198 -0
 - data/src/core/lib/gprpp/time.h +292 -0
 - data/src/core/lib/gprpp/time_util.cc +2 -2
 - data/src/core/lib/gprpp/time_util.h +2 -2
 - data/src/core/lib/http/format_request.cc +29 -25
 - data/src/core/lib/http/format_request.h +8 -6
 - data/src/core/lib/http/httpcli.cc +298 -208
 - data/src/core/lib/http/httpcli.h +183 -85
 - data/src/core/lib/http/httpcli_security_connector.cc +67 -81
 - data/src/core/lib/http/httpcli_ssl_credentials.h +37 -0
 - data/src/core/lib/http/parser.cc +82 -11
 - data/src/core/lib/http/parser.h +16 -2
 - data/src/core/lib/iomgr/buffer_list.cc +11 -10
 - data/src/core/lib/iomgr/buffer_list.h +19 -20
 - data/src/core/lib/iomgr/call_combiner.cc +45 -16
 - data/src/core/lib/iomgr/cfstream_handle.cc +1 -1
 - data/src/core/lib/iomgr/closure.h +29 -9
 - data/src/core/lib/iomgr/combiner.cc +34 -26
 - data/src/core/lib/iomgr/combiner.h +1 -0
 - data/src/core/lib/iomgr/dualstack_socket_posix.cc +1 -0
 - data/src/core/lib/iomgr/endpoint.cc +0 -4
 - data/src/core/lib/iomgr/endpoint.h +1 -4
 - data/src/core/lib/iomgr/endpoint_cfstream.cc +15 -42
 - data/src/core/lib/iomgr/endpoint_cfstream.h +4 -4
 - data/src/core/lib/iomgr/endpoint_pair.h +1 -0
 - data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +1 -2
 - data/src/core/lib/iomgr/endpoint_pair_posix.cc +11 -9
 - data/src/core/lib/iomgr/endpoint_pair_windows.cc +5 -6
 - data/src/core/lib/iomgr/error.cc +123 -59
 - data/src/core/lib/iomgr/error.h +73 -20
 - data/src/core/lib/iomgr/error_cfstream.cc +7 -2
 - data/src/core/lib/iomgr/error_internal.h +1 -0
 - data/src/core/lib/iomgr/ev_apple.cc +6 -5
 - data/src/core/lib/iomgr/ev_epoll1_linux.cc +25 -31
 - data/src/core/lib/iomgr/ev_poll_posix.cc +49 -52
 - data/src/core/lib/iomgr/ev_posix.cc +10 -12
 - data/src/core/lib/iomgr/ev_posix.h +1 -1
 - data/src/core/lib/iomgr/event_engine/closure.cc +41 -18
 - data/src/core/lib/iomgr/event_engine/closure.h +10 -1
 - data/src/core/lib/iomgr/event_engine/endpoint.cc +7 -27
 - data/src/core/lib/iomgr/event_engine/endpoint.h +1 -2
 - data/src/core/lib/iomgr/event_engine/iomgr.cc +10 -30
 - data/src/core/lib/iomgr/event_engine/pollset.cc +6 -6
 - data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +6 -0
 - data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +2 -0
 - data/src/core/lib/iomgr/event_engine/resolver.cc +70 -47
 - data/src/core/lib/iomgr/event_engine/resolver.h +56 -0
 - data/src/core/lib/iomgr/event_engine/tcp.cc +70 -37
 - data/src/core/lib/iomgr/event_engine/timer.cc +13 -8
 - data/src/core/lib/iomgr/exec_ctx.cc +28 -109
 - data/src/core/lib/iomgr/exec_ctx.h +28 -52
 - data/src/core/lib/iomgr/executor/mpmcqueue.cc +15 -16
 - data/src/core/lib/iomgr/executor/mpmcqueue.h +7 -11
 - data/src/core/lib/iomgr/executor/threadpool.cc +2 -2
 - data/src/core/lib/iomgr/executor/threadpool.h +2 -1
 - data/src/core/lib/iomgr/executor.cc +30 -39
 - data/src/core/lib/iomgr/executor.h +1 -1
 - data/src/core/lib/iomgr/fork_posix.cc +2 -1
 - data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +2 -2
 - data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +2 -2
 - data/src/core/lib/iomgr/internal_errqueue.cc +3 -2
 - data/src/core/lib/iomgr/iocp_windows.cc +10 -9
 - data/src/core/lib/iomgr/iocp_windows.h +1 -1
 - data/src/core/lib/iomgr/iomgr.cc +3 -1
 - data/src/core/lib/iomgr/iomgr.h +2 -2
 - data/src/core/lib/iomgr/iomgr_internal.cc +6 -10
 - data/src/core/lib/iomgr/iomgr_internal.h +3 -2
 - data/src/core/lib/iomgr/iomgr_posix.cc +2 -2
 - data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -2
 - data/src/core/lib/iomgr/iomgr_windows.cc +3 -4
 - data/src/core/lib/iomgr/load_file.cc +2 -2
 - data/src/core/lib/iomgr/lockfree_event.cc +18 -0
 - data/src/core/lib/iomgr/polling_entity.cc +2 -2
 - data/src/core/lib/iomgr/polling_entity.h +6 -0
 - data/src/core/lib/iomgr/pollset.cc +1 -1
 - data/src/core/lib/iomgr/pollset.h +4 -4
 - data/src/core/lib/iomgr/pollset_set_windows.cc +1 -0
 - data/src/core/lib/iomgr/pollset_windows.cc +2 -2
 - data/src/core/lib/iomgr/port.h +6 -16
 - data/src/core/lib/iomgr/python_util.h +1 -0
 - data/src/core/lib/iomgr/resolve_address.cc +7 -25
 - data/src/core/lib/iomgr/resolve_address.h +47 -48
 - data/src/core/lib/iomgr/resolve_address_impl.h +59 -0
 - data/src/core/lib/iomgr/resolve_address_posix.cc +90 -78
 - data/src/core/lib/iomgr/resolve_address_posix.h +47 -0
 - data/src/core/lib/iomgr/resolve_address_windows.cc +99 -82
 - data/src/core/lib/iomgr/resolve_address_windows.h +47 -0
 - data/src/core/lib/iomgr/resolved_address.h +39 -0
 - data/src/core/lib/iomgr/sockaddr.h +1 -1
 - data/src/core/lib/iomgr/{socket_utils_uv.cc → sockaddr_utils_posix.cc} +21 -8
 - data/src/core/lib/iomgr/socket_factory_posix.cc +5 -5
 - data/src/core/lib/iomgr/socket_factory_posix.h +1 -0
 - data/src/core/lib/iomgr/socket_mutator.cc +2 -2
 - data/src/core/lib/iomgr/socket_mutator.h +2 -2
 - data/src/core/lib/iomgr/socket_utils_common_posix.cc +4 -22
 - data/src/core/lib/iomgr/socket_utils_linux.cc +4 -4
 - data/src/core/lib/iomgr/socket_utils_posix.cc +2 -2
 - data/src/core/lib/iomgr/socket_utils_posix.h +2 -2
 - data/src/core/lib/iomgr/socket_utils_windows.cc +2 -2
 - data/src/core/lib/iomgr/tcp_client.cc +1 -1
 - data/src/core/lib/iomgr/tcp_client.h +5 -2
 - data/src/core/lib/iomgr/tcp_client_cfstream.cc +8 -24
 - data/src/core/lib/iomgr/tcp_client_posix.cc +17 -27
 - data/src/core/lib/iomgr/tcp_client_posix.h +4 -2
 - data/src/core/lib/iomgr/tcp_client_windows.cc +8 -10
 - data/src/core/lib/iomgr/tcp_posix.cc +143 -120
 - data/src/core/lib/iomgr/tcp_posix.h +9 -12
 - data/src/core/lib/iomgr/tcp_server.h +4 -3
 - data/src/core/lib/iomgr/tcp_server_posix.cc +40 -29
 - data/src/core/lib/iomgr/tcp_server_utils_posix.h +21 -17
 - data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +2 -2
 - data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +4 -4
 - data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
 - data/src/core/lib/iomgr/tcp_server_windows.cc +6 -10
 - data/src/core/lib/iomgr/tcp_windows.cc +22 -39
 - data/src/core/lib/iomgr/tcp_windows.h +1 -1
 - data/src/core/lib/iomgr/timer.cc +3 -2
 - data/src/core/lib/iomgr/timer.h +11 -7
 - data/src/core/lib/iomgr/timer_generic.cc +113 -124
 - data/src/core/lib/iomgr/timer_generic.h +1 -0
 - data/src/core/lib/iomgr/timer_heap.cc +2 -3
 - data/src/core/lib/iomgr/timer_manager.cc +15 -14
 - data/src/core/lib/iomgr/unix_sockets_posix.cc +25 -39
 - data/src/core/lib/iomgr/unix_sockets_posix.h +6 -10
 - data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +6 -15
 - data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -0
 - data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -3
 - data/src/core/lib/iomgr/wakeup_fd_posix.cc +1 -0
 - data/src/core/lib/iomgr/work_serializer.cc +120 -44
 - data/src/core/lib/iomgr/work_serializer.h +17 -5
 - data/src/core/lib/json/json_reader.cc +92 -52
 - data/src/core/lib/json/json_util.cc +71 -3
 - data/src/core/lib/json/json_util.h +67 -117
 - data/src/core/lib/json/json_writer.cc +0 -3
 - data/src/core/lib/matchers/matchers.cc +1 -1
 - data/src/core/lib/matchers/matchers.h +0 -1
 - data/src/core/lib/profiling/basic_timers.cc +8 -6
 - data/src/core/lib/profiling/stap_timers.cc +2 -2
 - data/src/core/lib/promise/activity.cc +121 -0
 - data/src/core/lib/promise/activity.h +540 -0
 - data/src/core/lib/promise/arena_promise.h +188 -0
 - data/src/core/lib/promise/call_push_pull.h +144 -0
 - data/src/core/lib/promise/context.h +86 -0
 - data/src/core/lib/promise/detail/basic_seq.h +496 -0
 - data/src/core/lib/promise/detail/promise_factory.h +189 -0
 - data/src/core/lib/promise/detail/promise_like.h +85 -0
 - data/src/core/lib/promise/detail/status.h +50 -0
 - data/src/core/lib/promise/detail/switch.h +1455 -0
 - data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +48 -0
 - data/src/core/lib/promise/intra_activity_waiter.h +49 -0
 - data/src/core/lib/promise/latch.h +104 -0
 - data/src/core/lib/promise/loop.h +134 -0
 - data/src/core/lib/promise/map.h +88 -0
 - data/src/core/lib/promise/poll.h +66 -0
 - data/src/core/lib/promise/promise.h +95 -0
 - data/src/core/lib/promise/race.h +84 -0
 - data/src/core/lib/promise/seq.h +89 -0
 - data/src/core/lib/promise/sleep.cc +74 -0
 - data/src/core/lib/promise/sleep.h +66 -0
 - data/src/core/lib/promise/try_seq.h +157 -0
 - data/src/core/{ext/filters/client_channel → lib/resolver}/resolver.cc +17 -25
 - data/src/core/{ext/filters/client_channel → lib/resolver}/resolver.h +43 -44
 - data/src/core/{ext/filters/client_channel → lib/resolver}/resolver_factory.h +32 -29
 - data/src/core/lib/resolver/resolver_registry.cc +156 -0
 - data/src/core/lib/resolver/resolver_registry.h +113 -0
 - data/src/core/{ext/filters/client_channel → lib/resolver}/server_address.cc +1 -1
 - data/src/core/{ext/filters/client_channel → lib/resolver}/server_address.h +5 -5
 - data/src/core/lib/resource_quota/api.cc +83 -0
 - data/src/core/lib/resource_quota/api.h +40 -0
 - data/src/core/lib/{gprpp → resource_quota}/arena.cc +18 -14
 - data/src/core/lib/{gprpp → resource_quota}/arena.h +37 -16
 - data/src/core/lib/resource_quota/memory_quota.cc +478 -0
 - data/src/core/lib/resource_quota/memory_quota.h +457 -0
 - data/src/core/lib/resource_quota/resource_quota.cc +33 -0
 - data/src/core/lib/resource_quota/resource_quota.h +66 -0
 - data/src/core/lib/resource_quota/thread_quota.cc +43 -0
 - data/src/core/lib/resource_quota/thread_quota.h +57 -0
 - data/src/core/lib/resource_quota/trace.cc +19 -0
 - data/src/core/{ext/filters/max_age/max_age_filter.h → lib/resource_quota/trace.h} +6 -8
 - data/src/core/lib/security/authorization/authorization_policy_provider.h +12 -4
 - data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +1 -1
 - data/src/core/lib/security/authorization/evaluate_args.cc +39 -36
 - data/src/core/lib/security/authorization/evaluate_args.h +3 -2
 - data/src/core/lib/security/authorization/grpc_authorization_engine.cc +60 -0
 - data/src/core/lib/security/authorization/grpc_authorization_engine.h +62 -0
 - data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +106 -0
 - data/src/core/lib/security/authorization/grpc_server_authz_filter.h +50 -0
 - data/src/core/lib/security/authorization/matchers.cc +227 -0
 - data/src/core/lib/security/authorization/matchers.h +211 -0
 - data/src/core/lib/security/authorization/rbac_policy.cc +442 -0
 - data/src/core/lib/security/authorization/rbac_policy.h +171 -0
 - data/src/core/lib/security/context/security_context.cc +15 -10
 - data/src/core/lib/security/context/security_context.h +9 -2
 - data/src/core/lib/security/credentials/alts/alts_credentials.cc +6 -5
 - data/src/core/lib/security/credentials/alts/alts_credentials.h +10 -0
 - data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +2 -2
 - data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -2
 - data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +2 -2
 - data/src/core/lib/security/credentials/call_creds_util.cc +87 -0
 - data/src/core/lib/security/credentials/call_creds_util.h +42 -0
 - data/src/core/lib/security/credentials/channel_creds_registry.h +97 -0
 - data/src/core/lib/security/credentials/channel_creds_registry_init.cc +70 -0
 - data/src/core/lib/security/credentials/composite/composite_credentials.cc +28 -86
 - data/src/core/lib/security/credentials/composite/composite_credentials.h +23 -10
 - data/src/core/lib/security/credentials/credentials.cc +11 -10
 - data/src/core/lib/security/credentials/credentials.h +81 -82
 - data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +61 -59
 - data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +2 -2
 - data/src/core/lib/security/credentials/external/aws_request_signer.cc +3 -3
 - data/src/core/lib/security/credentials/external/external_account_credentials.cc +112 -68
 - data/src/core/lib/security/credentials/external/external_account_credentials.h +6 -9
 - data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +0 -1
 - data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +35 -18
 - data/src/core/lib/security/credentials/external/url_external_account_credentials.h +1 -0
 - data/src/core/lib/security/credentials/fake/fake_credentials.cc +23 -27
 - data/src/core/lib/security/credentials/fake/fake_credentials.h +22 -21
 - data/src/core/lib/security/credentials/google_default/credentials_generic.cc +1 -2
 - data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +77 -20
 - data/src/core/lib/security/credentials/google_default/google_default_credentials.h +9 -3
 - data/src/core/lib/security/credentials/iam/iam_credentials.cc +23 -29
 - data/src/core/lib/security/credentials/iam/iam_credentials.h +15 -9
 - data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +25 -26
 - data/src/core/lib/security/credentials/insecure/insecure_credentials.h +57 -0
 - data/src/core/lib/security/credentials/jwt/json_token.cc +5 -7
 - data/src/core/lib/security/credentials/jwt/json_token.h +2 -1
 - data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +56 -51
 - data/src/core/lib/security/credentials/jwt/jwt_credentials.h +27 -15
 - data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +59 -54
 - data/src/core/lib/security/credentials/jwt/jwt_verifier.h +4 -4
 - data/src/core/lib/security/credentials/local/local_credentials.cc +6 -6
 - data/src/core/lib/security/credentials/local/local_credentials.h +10 -0
 - data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +160 -181
 - data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +61 -33
 - data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +98 -156
 - data/src/core/lib/security/credentials/plugin/plugin_credentials.h +56 -27
 - data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +11 -18
 - data/src/core/lib/security/credentials/ssl/ssl_credentials.h +14 -4
 - data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +3 -2
 - data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +10 -6
 - data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +13 -13
 - data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +62 -12
 - data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +209 -0
 - data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +145 -0
 - data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +33 -87
 - data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +75 -151
 - data/src/core/lib/security/credentials/tls/tls_credentials.cc +30 -16
 - data/src/core/lib/security/credentials/tls/tls_credentials.h +6 -0
 - data/src/core/lib/security/credentials/xds/xds_credentials.cc +51 -58
 - data/src/core/lib/security/credentials/xds/xds_credentials.h +37 -6
 - data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +11 -17
 - data/src/core/lib/security/security_connector/alts/alts_security_connector.h +3 -3
 - data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -24
 - data/src/core/lib/security/security_connector/fake/fake_security_connector.h +0 -2
 - data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +8 -18
 - data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +11 -16
 - data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +1 -0
 - data/src/core/lib/security/security_connector/load_system_roots_linux.cc +4 -5
 - data/src/core/lib/security/security_connector/local/local_security_connector.cc +14 -19
 - data/src/core/lib/security/security_connector/security_connector.cc +8 -15
 - data/src/core/lib/security/security_connector/security_connector.h +26 -22
 - data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +14 -20
 - data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +1 -2
 - data/src/core/lib/security/security_connector/ssl_utils.cc +41 -36
 - data/src/core/lib/security/security_connector/ssl_utils.h +14 -18
 - data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +366 -211
 - data/src/core/lib/security/security_connector/tls/tls_security_connector.h +69 -48
 - data/src/core/lib/security/transport/auth_filters.h +39 -5
 - data/src/core/lib/security/transport/client_auth_filter.cc +98 -363
 - data/src/core/lib/security/transport/secure_endpoint.cc +202 -143
 - data/src/core/lib/security/transport/secure_endpoint.h +2 -1
 - data/src/core/lib/security/transport/security_handshaker.cc +95 -54
 - data/src/core/lib/security/transport/security_handshaker.h +2 -1
 - data/src/core/lib/security/transport/server_auth_filter.cc +41 -37
 - data/src/core/lib/security/transport/tsi_error.cc +3 -5
 - data/src/core/lib/security/util/json_util.cc +6 -8
 - data/src/core/lib/service_config/service_config.h +82 -0
 - data/src/core/lib/service_config/service_config_call_data.h +72 -0
 - data/src/core/{ext/filters/client_channel/service_config.cc → lib/service_config/service_config_impl.cc} +20 -17
 - data/src/core/{ext/filters/client_channel/service_config.h → lib/service_config/service_config_impl.h} +16 -18
 - data/src/core/{ext/filters/client_channel → lib/service_config}/service_config_parser.cc +31 -27
 - data/src/core/{ext/filters/client_channel → lib/service_config}/service_config_parser.h +39 -28
 - data/src/core/lib/slice/percent_encoding.cc +84 -97
 - data/src/core/lib/slice/percent_encoding.h +23 -28
 - data/src/core/lib/slice/slice.cc +80 -200
 - data/src/core/lib/slice/slice.h +384 -0
 - data/src/core/lib/{iomgr/is_epollexclusive_available.h → slice/slice_api.cc} +15 -12
 - data/src/core/lib/slice/slice_buffer.cc +10 -7
 - data/src/core/lib/slice/slice_internal.h +15 -277
 - data/src/core/lib/slice/slice_refcount.cc +35 -0
 - data/src/core/lib/slice/slice_refcount.h +46 -0
 - data/src/core/lib/slice/slice_refcount_base.h +61 -0
 - data/src/core/lib/slice/slice_split.cc +100 -0
 - data/src/core/lib/slice/slice_split.h +40 -0
 - data/src/core/lib/slice/slice_string_helpers.cc +0 -83
 - data/src/core/lib/slice/slice_string_helpers.h +0 -11
 - data/src/core/lib/surface/api_trace.cc +2 -1
 - data/src/core/lib/surface/api_trace.h +1 -0
 - data/src/core/lib/surface/builtins.cc +49 -0
 - data/src/core/lib/surface/builtins.h +26 -0
 - data/src/core/lib/surface/byte_buffer_reader.cc +1 -1
 - data/src/core/lib/surface/call.cc +1142 -1247
 - data/src/core/lib/surface/call.h +8 -28
 - data/src/core/lib/surface/call_details.cc +2 -2
 - data/src/core/lib/surface/call_log_batch.cc +2 -2
 - data/src/core/lib/surface/channel.cc +72 -103
 - data/src/core/lib/surface/channel.h +15 -23
 - data/src/core/lib/surface/channel_init.cc +22 -76
 - data/src/core/lib/surface/channel_init.h +44 -40
 - data/src/core/lib/surface/channel_ping.cc +1 -2
 - data/src/core/lib/surface/channel_stack_type.cc +2 -1
 - data/src/core/lib/surface/completion_queue.cc +70 -78
 - data/src/core/lib/surface/completion_queue_factory.cc +2 -1
 - data/src/core/lib/surface/completion_queue_factory.h +1 -0
 - data/src/core/lib/surface/event_string.cc +1 -0
 - data/src/core/lib/surface/init.cc +81 -57
 - data/src/core/lib/surface/init.h +0 -3
 - data/src/core/lib/surface/lame_client.cc +47 -32
 - data/src/core/lib/surface/lame_client.h +1 -1
 - data/src/core/lib/surface/metadata_array.cc +2 -2
 - data/src/core/lib/surface/server.cc +71 -118
 - data/src/core/lib/surface/server.h +40 -37
 - data/src/core/lib/surface/validate_metadata.cc +49 -18
 - data/src/core/lib/surface/version.cc +2 -2
 - data/src/core/lib/transport/bdp_estimator.cc +11 -12
 - data/src/core/lib/transport/bdp_estimator.h +2 -2
 - data/src/core/lib/transport/byte_stream.cc +6 -0
 - data/src/core/lib/transport/byte_stream.h +1 -0
 - data/src/core/lib/transport/connectivity_state.cc +8 -5
 - data/src/core/lib/transport/connectivity_state.h +2 -2
 - data/src/core/lib/transport/error_utils.cc +48 -20
 - data/src/core/lib/transport/error_utils.h +3 -2
 - data/src/core/lib/transport/metadata_batch.h +1352 -171
 - data/src/core/lib/transport/parsed_metadata.cc +37 -0
 - data/src/core/lib/transport/parsed_metadata.h +401 -0
 - data/src/core/lib/transport/pid_controller.cc +4 -4
 - data/src/core/lib/transport/status_conversion.cc +2 -2
 - data/src/core/lib/transport/status_conversion.h +1 -1
 - data/src/core/lib/transport/timeout_encoding.cc +204 -67
 - data/src/core/lib/transport/timeout_encoding.h +40 -10
 - data/src/core/lib/transport/transport.cc +11 -32
 - data/src/core/lib/transport/transport.h +103 -4
 - data/src/core/lib/transport/transport_impl.h +14 -0
 - data/src/core/lib/transport/transport_op_string.cc +7 -29
 - data/src/core/lib/uri/uri_parser.cc +237 -63
 - data/src/core/lib/uri/uri_parser.h +39 -23
 - data/src/core/plugin_registry/grpc_plugin_registry.cc +69 -102
 - data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +85 -0
 - data/src/core/tsi/alts/crypt/aes_gcm.cc +6 -3
 - data/src/core/tsi/alts/crypt/gsec.h +2 -3
 - data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +13 -12
 - data/src/core/tsi/alts/frame_protector/frame_handler.cc +10 -11
 - data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +31 -27
 - data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +2 -3
 - data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +9 -1
 - data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +33 -15
 - data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +2 -2
 - data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +1 -1
 - data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -2
 - data/src/core/tsi/alts/handshaker/transport_security_common_api.h +2 -2
 - data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +2 -2
 - data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +1 -1
 - data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +2 -2
 - data/src/core/tsi/fake_transport_security.cc +15 -7
 - data/src/core/tsi/local_transport_security.cc +42 -87
 - data/src/core/tsi/local_transport_security.h +1 -4
 - data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +141 -0
 - data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +81 -0
 - data/src/core/tsi/ssl/session_cache/ssl_session.h +2 -4
 - data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +20 -53
 - data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +6 -7
 - data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +2 -2
 - data/src/core/tsi/ssl_transport_security.cc +229 -62
 - data/src/core/tsi/ssl_transport_security.h +50 -9
 - data/src/core/tsi/transport_security.cc +15 -3
 - data/src/core/tsi/transport_security.h +16 -1
 - data/src/core/tsi/transport_security_grpc.h +1 -0
 - data/src/core/tsi/transport_security_interface.h +28 -0
 - data/src/ruby/ext/grpc/extconf.rb +21 -11
 - data/src/ruby/ext/grpc/rb_byte_buffer.c +2 -1
 - data/src/ruby/ext/grpc/rb_call.c +5 -5
 - data/src/ruby/ext/grpc/rb_call_credentials.c +5 -5
 - data/src/ruby/ext/grpc/rb_channel.c +15 -10
 - data/src/ruby/ext/grpc/rb_channel_args.c +2 -2
 - data/src/ruby/ext/grpc/rb_channel_credentials.c +4 -4
 - data/src/ruby/ext/grpc/rb_channel_credentials.h +1 -0
 - data/src/ruby/ext/grpc/rb_completion_queue.c +3 -2
 - data/src/ruby/ext/grpc/rb_compression_options.c +5 -4
 - data/src/ruby/ext/grpc/rb_event_thread.c +4 -4
 - data/src/ruby/ext/grpc/rb_grpc.c +5 -4
 - data/src/ruby/ext/grpc/rb_grpc.h +1 -0
 - data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +30 -34
 - data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +45 -51
 - data/src/ruby/ext/grpc/rb_server.c +13 -9
 - data/src/ruby/ext/grpc/rb_server_credentials.c +3 -3
 - data/src/ruby/ext/grpc/rb_server_credentials.h +1 -0
 - data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +8 -5
 - data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +3 -1
 - data/src/ruby/ext/grpc/rb_xds_server_credentials.c +6 -5
 - data/src/ruby/ext/grpc/rb_xds_server_credentials.h +3 -1
 - data/src/ruby/lib/grpc/generic/active_call.rb +7 -1
 - data/src/ruby/lib/grpc/grpc.rb +1 -1
 - data/src/ruby/lib/grpc/version.rb +1 -1
 - data/src/ruby/pb/generate_proto_ruby.sh +1 -0
 - data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -0
 - data/src/ruby/pb/test/client.rb +769 -0
 - data/src/ruby/pb/test/server.rb +252 -0
 - data/src/ruby/pb/test/xds_client.rb +415 -0
 - data/src/ruby/spec/client_server_spec.rb +1 -1
 - data/third_party/abseil-cpp/absl/algorithm/container.h +101 -91
 - data/third_party/abseil-cpp/absl/base/attributes.h +64 -31
 - data/third_party/abseil-cpp/absl/base/config.h +67 -37
 - data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +1 -26
 - data/third_party/abseil-cpp/absl/base/internal/fast_type_id.h +48 -0
 - data/third_party/abseil-cpp/absl/base/internal/spinlock.h +3 -1
 - data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +2 -0
 - data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +69 -0
 - data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +4 -4
 - data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +15 -10
 - data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +16 -0
 - data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +4 -4
 - data/third_party/abseil-cpp/absl/base/options.h +1 -1
 - data/third_party/abseil-cpp/absl/container/fixed_array.h +0 -5
 - data/third_party/abseil-cpp/absl/container/inlined_vector.h +105 -97
 - data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +17 -15
 - data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +18 -102
 - data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +37 -78
 - data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +388 -423
 - data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +3 -2
 - data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -8
 - data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +251 -120
 - data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +11 -1
 - data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +12 -11
 - data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +6 -2
 - data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +12 -5
 - data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +110 -0
 - data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +234 -0
 - data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +25 -7
 - data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +8 -2
 - data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +21 -3
 - data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +2 -0
 - data/third_party/abseil-cpp/absl/debugging/symbolize.cc +2 -0
 - data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +14 -0
 - data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +72 -0
 - data/third_party/abseil-cpp/absl/functional/function_ref.h +4 -1
 - data/third_party/abseil-cpp/absl/hash/hash.h +22 -0
 - data/third_party/abseil-cpp/absl/hash/internal/hash.cc +15 -16
 - data/third_party/abseil-cpp/absl/hash/internal/hash.h +88 -37
 - data/third_party/abseil-cpp/absl/hash/internal/{wyhash.cc → low_level_hash.cc} +23 -11
 - data/third_party/abseil-cpp/absl/hash/internal/{wyhash.h → low_level_hash.h} +14 -12
 - data/third_party/abseil-cpp/absl/memory/memory.h +1 -1
 - data/third_party/abseil-cpp/absl/meta/type_traits.h +32 -2
 - data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -10
 - data/third_party/abseil-cpp/absl/numeric/int128.h +146 -73
 - data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +19 -25
 - data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +73 -70
 - data/third_party/abseil-cpp/absl/{base → profiling}/internal/exponential_biased.cc +4 -4
 - data/third_party/abseil-cpp/absl/{base → profiling}/internal/exponential_biased.h +6 -6
 - data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +230 -0
 - data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +200 -0
 - data/third_party/abseil-cpp/absl/random/beta_distribution.h +427 -0
 - data/third_party/abseil-cpp/absl/random/discrete_distribution.cc +98 -0
 - data/third_party/abseil-cpp/absl/random/discrete_distribution.h +247 -0
 - data/third_party/abseil-cpp/absl/random/distributions.h +452 -0
 - data/third_party/abseil-cpp/absl/random/exponential_distribution.h +165 -0
 - data/third_party/abseil-cpp/absl/random/gaussian_distribution.cc +104 -0
 - data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +275 -0
 - data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +92 -0
 - data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +268 -0
 - data/third_party/abseil-cpp/absl/random/internal/fastmath.h +57 -0
 - data/third_party/abseil-cpp/absl/random/internal/generate_real.h +144 -0
 - data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +245 -0
 - data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +150 -0
 - data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +308 -0
 - data/third_party/abseil-cpp/absl/random/internal/platform.h +171 -0
 - data/third_party/abseil-cpp/absl/random/internal/pool_urbg.cc +253 -0
 - data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +131 -0
 - data/third_party/abseil-cpp/absl/random/internal/randen.cc +91 -0
 - data/third_party/abseil-cpp/absl/random/internal/randen.h +102 -0
 - data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +221 -0
 - data/third_party/abseil-cpp/absl/random/internal/randen_detect.h +33 -0
 - data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +239 -0
 - data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc +526 -0
 - data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.h +50 -0
 - data/third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc +462 -0
 - data/third_party/abseil-cpp/absl/random/internal/randen_slow.cc +471 -0
 - data/third_party/abseil-cpp/absl/random/internal/randen_slow.h +40 -0
 - data/third_party/abseil-cpp/absl/random/internal/randen_traits.h +88 -0
 - data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +167 -0
 - data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +267 -0
 - data/third_party/abseil-cpp/absl/random/internal/seed_material.h +104 -0
 - data/third_party/abseil-cpp/absl/random/internal/traits.h +101 -0
 - data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +244 -0
 - data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +111 -0
 - data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +257 -0
 - data/third_party/abseil-cpp/absl/random/poisson_distribution.h +258 -0
 - data/third_party/abseil-cpp/absl/random/random.h +189 -0
 - data/third_party/abseil-cpp/absl/random/seed_gen_exception.cc +46 -0
 - data/third_party/abseil-cpp/absl/random/seed_gen_exception.h +55 -0
 - data/third_party/abseil-cpp/absl/random/seed_sequences.cc +29 -0
 - data/third_party/abseil-cpp/absl/random/seed_sequences.h +110 -0
 - data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +275 -0
 - data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +202 -0
 - data/third_party/abseil-cpp/absl/random/zipf_distribution.h +271 -0
 - data/third_party/abseil-cpp/absl/status/internal/status_internal.h +5 -5
 - data/third_party/abseil-cpp/absl/status/status.cc +9 -17
 - data/third_party/abseil-cpp/absl/status/status.h +19 -15
 - data/third_party/abseil-cpp/absl/status/statusor.cc +34 -2
 - data/third_party/abseil-cpp/absl/status/statusor.h +31 -21
 - data/third_party/abseil-cpp/absl/strings/charconv.cc +3 -3
 - data/third_party/abseil-cpp/absl/strings/charconv.h +3 -2
 - data/third_party/abseil-cpp/absl/strings/cord.cc +453 -359
 - data/third_party/abseil-cpp/absl/strings/cord.h +197 -70
 - data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +1 -1
 - data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +6 -0
 - data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +140 -63
 - data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +1128 -0
 - data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +939 -0
 - data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +185 -0
 - data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +265 -0
 - data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +68 -0
 - data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +211 -0
 - data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +129 -0
 - data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h +50 -0
 - data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +7 -7
 - data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +55 -181
 - data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +42 -24
 - data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +4 -0
 - data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc +96 -0
 - data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +85 -0
 - data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +139 -0
 - data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +131 -0
 - data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +445 -0
 - data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +298 -0
 - data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +87 -0
 - data/third_party/abseil-cpp/absl/strings/internal/cordz_update_scope.h +71 -0
 - data/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +121 -0
 - data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +48 -2
 - data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +8 -0
 - data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +3 -4
 - data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +1 -1
 - data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +6 -6
 - data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +36 -18
 - data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +62 -73
 - data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +24 -16
 - data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +35 -35
 - data/third_party/abseil-cpp/absl/strings/numbers.cc +1 -1
 - data/third_party/abseil-cpp/absl/strings/numbers.h +34 -0
 - data/third_party/abseil-cpp/absl/strings/str_cat.cc +4 -4
 - data/third_party/abseil-cpp/absl/strings/str_format.h +1 -2
 - data/third_party/abseil-cpp/absl/strings/string_view.cc +16 -21
 - data/third_party/abseil-cpp/absl/strings/string_view.h +120 -39
 - data/third_party/abseil-cpp/absl/strings/substitute.cc +2 -1
 - data/third_party/abseil-cpp/absl/strings/substitute.h +99 -74
 - data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +25 -15
 - data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +5 -3
 - data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -1
 - data/third_party/abseil-cpp/absl/synchronization/mutex.h +3 -3
 - data/third_party/abseil-cpp/absl/time/civil_time.cc +1 -3
 - data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +93 -20
 - data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +1 -1
 - data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +2 -1
 - data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +83 -21
 - data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +49 -0
 - data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +1 -1
 - data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +2 -3
 - data/third_party/abseil-cpp/absl/time/time.h +67 -36
 - data/third_party/abseil-cpp/absl/types/bad_optional_access.h +1 -1
 - data/third_party/abseil-cpp/absl/types/bad_variant_access.h +2 -2
 - data/third_party/abseil-cpp/absl/types/span.h +3 -3
 - data/third_party/address_sorting/address_sorting_posix.c +1 -0
 - data/third_party/boringssl-with-bazel/err_data.c +685 -673
 - data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +67 -54
 - data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +21 -22
 - data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +0 -2
 - data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +6 -1
 - data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +16 -23
 - data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +55 -37
 - data/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c +19 -29
 - data/third_party/boringssl-with-bazel/src/crypto/{x509 → asn1}/a_strex.c +269 -272
 - data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +106 -153
 - data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +4 -4
 - data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +1 -1
 - data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +1 -40
 - data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +1 -1
 - data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +59 -47
 - data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +1 -1
 - data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +24 -28
 - data/third_party/boringssl-with-bazel/src/crypto/{x509 → asn1}/charmap.h +0 -0
 - data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +5 -0
 - data/third_party/boringssl-with-bazel/src/crypto/asn1/{asn1_locl.h → internal.h} +86 -1
 - data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +57 -281
 - data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +291 -199
 - data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +9 -9
 - data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +10 -14
 - data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +8 -6
 - data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +2 -1
 - data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +1 -1
 - data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +24 -8
 - data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +1 -7
 - data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +1 -5
 - data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +0 -4
 - data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +1 -7
 - data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +1 -6
 - data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +3 -17
 - data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +4 -6
 - data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +3 -1
 - data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +9 -0
 - data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +8 -0
 - data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +38 -47
 - data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +45 -65
 - data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +14 -3
 - data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +6 -3
 - data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +21 -0
 - data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +2 -2
 - data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +32 -34
 - data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +26 -9
 - data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +3 -2
 - data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +5 -2
 - data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +5 -9
 - data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +12 -0
 - data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +10 -0
 - data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/des.c +10 -11
 - data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/internal.h +1 -3
 - data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +2 -0
 - data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +1 -2
 - data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +4 -7
 - data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +4 -7
 - data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +1 -1
 - data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +5 -9
 - data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +2 -2
 - data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +4 -6
 - data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +24 -9
 - data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +4 -2
 - data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +7 -7
 - data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +35 -35
 - data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +11 -10
 - data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +10 -37
 - data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +36 -2
 - data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +219 -121
 - data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +9 -2
 - data/third_party/boringssl-with-bazel/src/crypto/internal.h +62 -2
 - data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +253 -0
 - data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c +28 -23
 - data/third_party/boringssl-with-bazel/src/crypto/mem.c +32 -9
 - data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +7 -3
 - data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +0 -9
 - data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +0 -2
 - data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +0 -8
 - data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +0 -2
 - data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +0 -4
 - data/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h +16 -7
 - data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +38 -4
 - data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +151 -12
 - data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +0 -1
 - data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +1 -1
 - data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +2 -2
 - data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +1 -1
 - data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +5 -1
 - data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +59 -22
 - data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +4 -0
 - data/third_party/boringssl-with-bazel/src/crypto/rand_extra/fuchsia.c +4 -0
 - data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +4 -0
 - data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +6 -6
 - data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +15 -11
 - data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +1 -1
 - data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +2 -18
 - data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +1 -0
 - data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +2 -0
 - data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +233 -4
 - data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +246 -0
 - data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +15 -4
 - data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +10 -5
 - data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +0 -179
 - data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +4 -2
 - data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +6 -23
 - data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +2 -2
 - data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +1 -5
 - data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +1 -0
 - data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +25 -22
 - data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +11 -54
 - data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +1 -1
 - data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +1 -0
 - data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +2 -4
 - data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +1 -3
 - data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +0 -16
 - data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +9 -11
 - data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +2 -0
 - data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +23 -21
 - data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +12 -11
 - data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +232 -11
 - data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +2 -1
 - data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +2 -2
 - data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +1 -1
 - data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +2 -1
 - data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +1 -1
 - data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +5 -4
 - data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +24 -5
 - data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +18 -8
 - data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +3 -0
 - data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +1 -0
 - data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +6 -7
 - data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +4 -2
 - data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +5 -0
 - data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +23 -4
 - data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +112 -55
 - data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +2 -1
 - data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +14 -13
 - data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
 - data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +76 -31
 - data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +1504 -561
 - data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +5 -12
 - data/third_party/boringssl-with-bazel/src/include/openssl/base.h +10 -6
 - data/third_party/boringssl-with-bazel/src/include/openssl/base64.h +8 -0
 - data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +3 -1
 - data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +3 -3
 - data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +9 -0
 - data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +21 -3
 - data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +8 -5
 - data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +4 -12
 - data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +3 -0
 - data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +27 -41
 - data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +12 -27
 - data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +8 -10
 - data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +35 -55
 - data/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h +4 -0
 - data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +26 -1
 - data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +14 -12
 - data/third_party/boringssl-with-bazel/src/include/openssl/lhash.h +4 -205
 - data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +12 -3
 - data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +5 -4
 - data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +0 -20
 - data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +24 -18
 - data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +6 -1
 - data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +7 -1
 - data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +29 -28
 - data/third_party/boringssl-with-bazel/src/include/openssl/span.h +37 -15
 - data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +110 -26
 - data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +31 -32
 - data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +725 -189
 - data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +16 -695
 - data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +52 -16
 - data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +9 -16
 - data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +310 -359
 - data/third_party/boringssl-with-bazel/src/ssl/{t1_lib.cc → extensions.cc} +110 -159
 - data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +24 -13
 - data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +145 -142
 - data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +106 -99
 - data/third_party/boringssl-with-bazel/src/ssl/internal.h +90 -51
 - data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +1 -2
 - data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +2 -2
 - data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +11 -5
 - data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +6 -51
 - data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +121 -65
 - data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +6 -12
 - data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +4 -0
 - data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +28 -23
 - data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +14 -27
 - data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +210 -212
 - data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +30 -41
 - data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +48 -34
 - data/third_party/cares/cares/{ares.h → include/ares.h} +73 -1
 - data/third_party/cares/cares/{ares_dns.h → include/ares_dns.h} +9 -0
 - data/third_party/cares/cares/{ares_rules.h → include/ares_rules.h} +0 -0
 - data/third_party/cares/cares/{ares_version.h → include/ares_version.h} +3 -3
 - data/third_party/cares/cares/{ares__close_sockets.c → src/lib/ares__close_sockets.c} +2 -2
 - data/third_party/cares/cares/{ares__get_hostent.c → src/lib/ares__get_hostent.c} +1 -2
 - data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +260 -0
 - data/third_party/cares/cares/{ares__read_line.c → src/lib/ares__read_line.c} +0 -0
 - data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +264 -0
 - data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +499 -0
 - data/third_party/cares/cares/{ares__timeval.c → src/lib/ares__timeval.c} +0 -0
 - data/third_party/cares/cares/src/lib/ares_android.c +444 -0
 - data/third_party/cares/cares/src/lib/ares_android.h +27 -0
 - data/third_party/cares/cares/{ares_cancel.c → src/lib/ares_cancel.c} +0 -0
 - data/third_party/cares/cares/{ares_create_query.c → src/lib/ares_create_query.c} +8 -17
 - data/third_party/cares/cares/{ares_data.c → src/lib/ares_data.c} +18 -0
 - data/third_party/cares/cares/{ares_data.h → src/lib/ares_data.h} +2 -0
 - data/third_party/cares/cares/{ares_destroy.c → src/lib/ares_destroy.c} +0 -0
 - data/third_party/cares/cares/{ares_expand_name.c → src/lib/ares_expand_name.c} +114 -23
 - data/third_party/cares/cares/{ares_expand_string.c → src/lib/ares_expand_string.c} +2 -5
 - data/third_party/cares/cares/{ares_fds.c → src/lib/ares_fds.c} +0 -0
 - data/third_party/cares/cares/{ares_free_hostent.c → src/lib/ares_free_hostent.c} +6 -4
 - data/third_party/cares/cares/{ares_free_string.c → src/lib/ares_free_string.c} +0 -0
 - data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +59 -0
 - data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +772 -0
 - data/third_party/cares/cares/{ares_getenv.c → src/lib/ares_getenv.c} +0 -2
 - data/third_party/cares/cares/{ares_getenv.h → src/lib/ares_getenv.h} +0 -0
 - data/third_party/cares/cares/{ares_gethostbyaddr.c → src/lib/ares_gethostbyaddr.c} +2 -9
 - data/third_party/cares/cares/{ares_gethostbyname.c → src/lib/ares_gethostbyname.c} +25 -20
 - data/third_party/cares/cares/{ares_getnameinfo.c → src/lib/ares_getnameinfo.c} +4 -10
 - data/third_party/cares/cares/{ares_getsock.c → src/lib/ares_getsock.c} +0 -0
 - data/third_party/cares/cares/{ares_inet_net_pton.h → src/lib/ares_inet_net_pton.h} +0 -0
 - data/third_party/cares/cares/{ares_init.c → src/lib/ares_init.c} +79 -40
 - data/third_party/cares/cares/{ares_iphlpapi.h → src/lib/ares_iphlpapi.h} +0 -0
 - data/third_party/cares/cares/{ares_ipv6.h → src/lib/ares_ipv6.h} +7 -0
 - data/third_party/cares/cares/{ares_library_init.c → src/lib/ares_library_init.c} +7 -2
 - data/third_party/cares/cares/{ares_library_init.h → src/lib/ares_library_init.h} +1 -1
 - data/third_party/cares/cares/{ares_llist.c → src/lib/ares_llist.c} +0 -0
 - data/third_party/cares/cares/{ares_llist.h → src/lib/ares_llist.h} +0 -0
 - data/third_party/cares/cares/{ares_mkquery.c → src/lib/ares_mkquery.c} +0 -0
 - data/third_party/cares/cares/src/lib/ares_nameser.h +482 -0
 - data/third_party/cares/cares/{ares_nowarn.c → src/lib/ares_nowarn.c} +0 -0
 - data/third_party/cares/cares/{ares_nowarn.h → src/lib/ares_nowarn.h} +0 -0
 - data/third_party/cares/cares/{ares_options.c → src/lib/ares_options.c} +0 -0
 - data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +209 -0
 - data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +212 -0
 - data/third_party/cares/cares/src/lib/ares_parse_caa_reply.c +199 -0
 - data/third_party/cares/cares/{ares_parse_mx_reply.c → src/lib/ares_parse_mx_reply.c} +2 -8
 - data/third_party/cares/cares/{ares_parse_naptr_reply.c → src/lib/ares_parse_naptr_reply.c} +2 -13
 - data/third_party/cares/cares/{ares_parse_ns_reply.c → src/lib/ares_parse_ns_reply.c} +5 -11
 - data/third_party/cares/cares/{ares_parse_ptr_reply.c → src/lib/ares_parse_ptr_reply.c} +53 -46
 - data/third_party/cares/cares/src/lib/ares_parse_soa_reply.c +179 -0
 - data/third_party/cares/cares/{ares_parse_srv_reply.c → src/lib/ares_parse_srv_reply.c} +2 -13
 - data/third_party/cares/cares/{ares_parse_txt_reply.c → src/lib/ares_parse_txt_reply.c} +3 -9
 - data/third_party/cares/cares/{ares_platform.c → src/lib/ares_platform.c} +0 -0
 - data/third_party/cares/cares/{ares_platform.h → src/lib/ares_platform.h} +0 -0
 - data/third_party/cares/cares/{ares_private.h → src/lib/ares_private.h} +52 -11
 - data/third_party/cares/cares/{ares_process.c → src/lib/ares_process.c} +127 -52
 - data/third_party/cares/cares/{ares_query.c → src/lib/ares_query.c} +3 -9
 - data/third_party/cares/cares/{ares_search.c → src/lib/ares_search.c} +5 -7
 - data/third_party/cares/cares/{ares_send.c → src/lib/ares_send.c} +2 -8
 - data/third_party/cares/cares/{ares_setup.h → src/lib/ares_setup.h} +4 -1
 - data/third_party/cares/cares/{ares_strcasecmp.c → src/lib/ares_strcasecmp.c} +0 -0
 - data/third_party/cares/cares/{ares_strcasecmp.h → src/lib/ares_strcasecmp.h} +0 -0
 - data/third_party/cares/cares/{ares_strdup.c → src/lib/ares_strdup.c} +0 -0
 - data/third_party/cares/cares/{ares_strdup.h → src/lib/ares_strdup.h} +0 -0
 - data/third_party/cares/cares/{ares_strerror.c → src/lib/ares_strerror.c} +0 -0
 - data/third_party/cares/cares/{ares_strsplit.c → src/lib/ares_strsplit.c} +4 -0
 - data/third_party/cares/cares/{ares_strsplit.h → src/lib/ares_strsplit.h} +0 -0
 - data/third_party/cares/cares/{ares_timeout.c → src/lib/ares_timeout.c} +0 -0
 - data/third_party/cares/cares/{ares_version.c → src/lib/ares_version.c} +0 -0
 - data/third_party/cares/cares/{ares_writev.c → src/lib/ares_writev.c} +0 -0
 - data/third_party/cares/cares/src/lib/ares_writev.h +36 -0
 - data/third_party/cares/cares/{bitncmp.c → src/lib/bitncmp.c} +0 -0
 - data/third_party/cares/cares/{bitncmp.h → src/lib/bitncmp.h} +0 -0
 - data/third_party/cares/cares/src/lib/config-dos.h +115 -0
 - data/third_party/cares/cares/{config-win32.h → src/lib/config-win32.h} +0 -0
 - data/third_party/cares/cares/{inet_net_pton.c → src/lib/inet_net_pton.c} +2 -8
 - data/third_party/cares/cares/{inet_ntop.c → src/lib/inet_ntop.c} +2 -8
 - data/third_party/cares/cares/{setup_once.h → src/lib/setup_once.h} +0 -0
 - data/third_party/cares/cares/{windows_port.c → src/lib/windows_port.c} +0 -0
 - data/third_party/re2/re2/compile.cc +91 -109
 - data/third_party/re2/re2/dfa.cc +27 -39
 - data/third_party/re2/re2/filtered_re2.cc +18 -2
 - data/third_party/re2/re2/filtered_re2.h +10 -5
 - data/third_party/re2/re2/nfa.cc +1 -1
 - data/third_party/re2/re2/parse.cc +42 -23
 - data/third_party/re2/re2/perl_groups.cc +34 -34
 - data/third_party/re2/re2/prefilter.cc +3 -2
 - data/third_party/re2/re2/prog.cc +182 -4
 - data/third_party/re2/re2/prog.h +28 -9
 - data/third_party/re2/re2/re2.cc +87 -118
 - data/third_party/re2/re2/re2.h +156 -141
 - data/third_party/re2/re2/regexp.cc +12 -5
 - data/third_party/re2/re2/regexp.h +8 -2
 - data/third_party/re2/re2/set.cc +31 -9
 - data/third_party/re2/re2/set.h +9 -4
 - data/third_party/re2/re2/simplify.cc +11 -3
 - data/third_party/re2/re2/tostring.cc +1 -1
 - data/third_party/re2/re2/walker-inl.h +1 -1
 - data/third_party/re2/util/mutex.h +2 -2
 - data/third_party/re2/util/pcre.h +3 -3
 - data/third_party/upb/third_party/utf8_range/naive.c +92 -0
 - data/third_party/upb/third_party/utf8_range/range2-neon.c +157 -0
 - data/third_party/upb/third_party/utf8_range/range2-sse.c +170 -0
 - data/third_party/upb/third_party/utf8_range/utf8_range.h +9 -0
 - data/third_party/upb/upb/decode.c +774 -351
 - data/third_party/upb/upb/decode.h +66 -12
 - data/third_party/upb/upb/decode_fast.c +596 -581
 - data/third_party/upb/upb/decode_fast.h +40 -13
 - data/third_party/upb/upb/decode_internal.h +211 -0
 - data/third_party/upb/upb/def.c +2151 -1068
 - data/third_party/upb/upb/def.h +352 -258
 - data/third_party/upb/upb/def.hpp +160 -161
 - data/third_party/upb/upb/encode.c +291 -165
 - data/third_party/upb/upb/encode.h +38 -13
 - data/third_party/upb/upb/json_encode.c +776 -0
 - data/third_party/upb/upb/json_encode.h +62 -0
 - data/third_party/upb/upb/msg.c +274 -102
 - data/third_party/upb/upb/msg.h +83 -582
 - data/third_party/upb/upb/msg_internal.h +831 -0
 - data/third_party/upb/upb/port_def.inc +93 -24
 - data/third_party/upb/upb/port_undef.inc +39 -1
 - data/third_party/upb/upb/reflection.c +312 -240
 - data/third_party/upb/upb/reflection.h +119 -67
 - data/third_party/upb/upb/reflection.hpp +37 -0
 - data/third_party/upb/upb/table.c +406 -197
 - data/third_party/upb/upb/table_internal.h +385 -0
 - data/third_party/upb/upb/text_encode.c +141 -90
 - data/third_party/upb/upb/text_encode.h +31 -5
 - data/third_party/upb/upb/upb.c +164 -66
 - data/third_party/upb/upb/upb.h +182 -146
 - data/third_party/upb/upb/upb.hpp +50 -23
 - data/third_party/upb/upb/upb_internal.h +68 -0
 - data/third_party/xxhash/xxhash.h +607 -352
 - data/third_party/zlib/crc32.c +966 -292
 - data/third_party/zlib/crc32.h +9441 -436
 - data/third_party/zlib/deflate.c +78 -30
 - data/third_party/zlib/deflate.h +12 -15
 - data/third_party/zlib/gzguts.h +3 -2
 - data/third_party/zlib/gzlib.c +5 -3
 - data/third_party/zlib/gzread.c +5 -7
 - data/third_party/zlib/gzwrite.c +25 -13
 - data/third_party/zlib/infback.c +2 -1
 - data/third_party/zlib/inffast.c +14 -14
 - data/third_party/zlib/inflate.c +39 -8
 - data/third_party/zlib/inflate.h +3 -2
 - data/third_party/zlib/inftrees.c +3 -3
 - data/third_party/zlib/trees.c +27 -48
 - data/third_party/zlib/zlib.h +123 -100
 - data/third_party/zlib/zutil.c +2 -2
 - data/third_party/zlib/zutil.h +12 -9
 - metadata +559 -260
 - data/include/grpc/event_engine/slice_allocator.h +0 -66
 - data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +0 -44
 - data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +0 -84
 - data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +0 -179
 - data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +0 -38
 - data/src/core/ext/filters/client_channel/resolver_registry.cc +0 -197
 - data/src/core/ext/filters/client_channel/resolver_registry.h +0 -89
 - data/src/core/ext/filters/client_channel/service_config_call_data.h +0 -126
 - data/src/core/ext/filters/client_idle/client_idle_filter.cc +0 -441
 - data/src/core/ext/filters/max_age/max_age_filter.cc +0 -562
 - data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +0 -211
 - data/src/core/ext/filters/workarounds/workaround_utils.cc +0 -53
 - data/src/core/ext/filters/workarounds/workaround_utils.h +0 -39
 - data/src/core/ext/transport/chttp2/client/authority.cc +0 -42
 - data/src/core/ext/transport/chttp2/client/authority.h +0 -36
 - data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +0 -125
 - data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +0 -91
 - data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +0 -213
 - data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +0 -54
 - data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +0 -77
 - data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +0 -129
 - data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +0 -37
 - data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.cc +0 -66
 - data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h +0 -74
 - data/src/core/ext/transport/chttp2/transport/hpack_table.cc +0 -243
 - data/src/core/ext/transport/chttp2/transport/hpack_table.h +0 -148
 - data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +0 -66
 - data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +0 -58
 - data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +0 -27
 - data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +0 -56
 - data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +0 -27
 - data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +0 -56
 - data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +0 -27
 - data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +0 -56
 - data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +0 -27
 - data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +0 -56
 - data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +0 -27
 - data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +0 -56
 - data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +0 -58
 - data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +0 -124
 - data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c +0 -33
 - data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +0 -77
 - data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +0 -72
 - data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h +0 -35
 - data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +0 -73
 - data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h +0 -35
 - data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +0 -72
 - data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h +0 -35
 - data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +0 -80
 - data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h +0 -35
 - data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +0 -74
 - data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h +0 -35
 - data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c +0 -44
 - data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h +0 -35
 - data/src/core/lib/avl/avl.cc +0 -306
 - data/src/core/lib/compression/algorithm_metadata.h +0 -61
 - data/src/core/lib/compression/compression_args.cc +0 -135
 - data/src/core/lib/compression/compression_args.h +0 -56
 - data/src/core/lib/compression/stream_compression.cc +0 -80
 - data/src/core/lib/compression/stream_compression.h +0 -116
 - data/src/core/lib/compression/stream_compression_gzip.cc +0 -230
 - data/src/core/lib/compression/stream_compression_gzip.h +0 -28
 - data/src/core/lib/compression/stream_compression_identity.cc +0 -90
 - data/src/core/lib/compression/stream_compression_identity.h +0 -29
 - data/src/core/lib/gpr/tls_gcc.h +0 -52
 - data/src/core/lib/gpr/tls_msvc.h +0 -54
 - data/src/core/lib/gpr/tls_pthread.cc +0 -30
 - data/src/core/lib/gpr/tls_pthread.h +0 -56
 - data/src/core/lib/gpr/tls_stdcpp.h +0 -48
 - data/src/core/lib/gprpp/atomic.h +0 -104
 - data/src/core/lib/iomgr/endpoint_pair_uv.cc +0 -40
 - data/src/core/lib/iomgr/ev_epollex_linux.cc +0 -1661
 - data/src/core/lib/iomgr/ev_epollex_linux.h +0 -30
 - data/src/core/lib/iomgr/iomgr_custom.cc +0 -79
 - data/src/core/lib/iomgr/iomgr_custom.h +0 -49
 - data/src/core/lib/iomgr/iomgr_uv.cc +0 -43
 - data/src/core/lib/iomgr/is_epollexclusive_available.cc +0 -119
 - data/src/core/lib/iomgr/pollset_custom.cc +0 -106
 - data/src/core/lib/iomgr/pollset_custom.h +0 -37
 - data/src/core/lib/iomgr/pollset_set_custom.cc +0 -48
 - data/src/core/lib/iomgr/pollset_set_custom.h +0 -26
 - data/src/core/lib/iomgr/pollset_uv.cc +0 -95
 - data/src/core/lib/iomgr/pollset_uv.h +0 -36
 - data/src/core/lib/iomgr/resolve_address_custom.cc +0 -169
 - data/src/core/lib/iomgr/resolve_address_custom.h +0 -45
 - data/src/core/lib/iomgr/resource_quota.cc +0 -1019
 - data/src/core/lib/iomgr/resource_quota.h +0 -177
 - data/src/core/lib/iomgr/sockaddr_custom.h +0 -54
 - data/src/core/lib/iomgr/sys_epoll_wrapper.h +0 -30
 - data/src/core/lib/iomgr/tcp_client_custom.cc +0 -160
 - data/src/core/lib/iomgr/tcp_custom.cc +0 -389
 - data/src/core/lib/iomgr/tcp_custom.h +0 -85
 - data/src/core/lib/iomgr/tcp_server_custom.cc +0 -484
 - data/src/core/lib/iomgr/tcp_uv.cc +0 -421
 - data/src/core/lib/iomgr/timer_custom.cc +0 -96
 - data/src/core/lib/iomgr/timer_custom.h +0 -43
 - data/src/core/lib/iomgr/timer_uv.cc +0 -66
 - data/src/core/lib/iomgr/udp_server.cc +0 -748
 - data/src/core/lib/iomgr/udp_server.h +0 -103
 - data/src/core/lib/security/credentials/credentials_metadata.cc +0 -62
 - data/src/core/lib/slice/slice_intern.cc +0 -373
 - data/src/core/lib/slice/slice_utils.h +0 -200
 - data/src/core/lib/surface/init_secure.cc +0 -81
 - data/src/core/lib/transport/metadata.cc +0 -693
 - data/src/core/lib/transport/metadata.h +0 -446
 - data/src/core/lib/transport/metadata_batch.cc +0 -430
 - data/src/core/lib/transport/static_metadata.cc +0 -1249
 - data/src/core/lib/transport/static_metadata.h +0 -604
 - data/src/core/lib/transport/status_metadata.cc +0 -62
 - data/src/core/lib/transport/status_metadata.h +0 -48
 - data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c +0 -93
 - data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_int.h +0 -217
 - data/third_party/cares/cares/ares_getopt.c +0 -122
 - data/third_party/cares/cares/ares_getopt.h +0 -53
 - data/third_party/cares/cares/ares_parse_a_reply.c +0 -264
 - data/third_party/cares/cares/ares_parse_aaaa_reply.c +0 -264
 - data/third_party/cares/cares/ares_parse_soa_reply.c +0 -133
 - data/third_party/upb/third_party/wyhash/wyhash.h +0 -145
 - data/third_party/upb/upb/decode.int.h +0 -163
 - data/third_party/upb/upb/table.int.h +0 -475
 - data/third_party/upb/upb/upb.int.h +0 -29
 
    
        data/third_party/xxhash/xxhash.h
    CHANGED
    
    | 
         @@ -121,29 +121,80 @@ extern "C" { 
     | 
|
| 
       121 
121 
     | 
    
         | 
| 
       122 
122 
     | 
    
         
             
               /*
         
     | 
| 
       123 
123 
     | 
    
         
             
                * This part deals with the special case where a unit wants to inline xxHash,
         
     | 
| 
       124 
     | 
    
         
            -
                * but "xxhash.h" has previously been included without XXH_INLINE_ALL, 
     | 
| 
       125 
     | 
    
         
            -
                * as part of some previously included *.h header file.
         
     | 
| 
      
 124 
     | 
    
         
            +
                * but "xxhash.h" has previously been included without XXH_INLINE_ALL,
         
     | 
| 
      
 125 
     | 
    
         
            +
                * such as part of some previously included *.h header file.
         
     | 
| 
       126 
126 
     | 
    
         
             
                * Without further action, the new include would just be ignored,
         
     | 
| 
       127 
127 
     | 
    
         
             
                * and functions would effectively _not_ be inlined (silent failure).
         
     | 
| 
       128 
128 
     | 
    
         
             
                * The following macros solve this situation by prefixing all inlined names,
         
     | 
| 
       129 
129 
     | 
    
         
             
                * avoiding naming collision with previous inclusions.
         
     | 
| 
       130 
130 
     | 
    
         
             
                */
         
     | 
| 
       131 
     | 
    
         
            -
            # 
     | 
| 
       132 
     | 
    
         
            -
             
     | 
| 
       133 
     | 
    
         
            -
             
     | 
| 
       134 
     | 
    
         
            -
             
     | 
| 
       135 
     | 
    
         
            -
             
     | 
| 
       136 
     | 
    
         
            -
             
     | 
| 
       137 
     | 
    
         
            -
            #   
     | 
| 
      
 131 
     | 
    
         
            +
               /* Before that, we unconditionally #undef all symbols,
         
     | 
| 
      
 132 
     | 
    
         
            +
                * in case they were already defined with XXH_NAMESPACE.
         
     | 
| 
      
 133 
     | 
    
         
            +
                * They will then be redefined for XXH_INLINE_ALL
         
     | 
| 
      
 134 
     | 
    
         
            +
                */
         
     | 
| 
      
 135 
     | 
    
         
            +
            #  undef XXH_versionNumber
         
     | 
| 
      
 136 
     | 
    
         
            +
                /* XXH32 */
         
     | 
| 
      
 137 
     | 
    
         
            +
            #  undef XXH32
         
     | 
| 
      
 138 
     | 
    
         
            +
            #  undef XXH32_createState
         
     | 
| 
      
 139 
     | 
    
         
            +
            #  undef XXH32_freeState
         
     | 
| 
      
 140 
     | 
    
         
            +
            #  undef XXH32_reset
         
     | 
| 
      
 141 
     | 
    
         
            +
            #  undef XXH32_update
         
     | 
| 
      
 142 
     | 
    
         
            +
            #  undef XXH32_digest
         
     | 
| 
      
 143 
     | 
    
         
            +
            #  undef XXH32_copyState
         
     | 
| 
      
 144 
     | 
    
         
            +
            #  undef XXH32_canonicalFromHash
         
     | 
| 
      
 145 
     | 
    
         
            +
            #  undef XXH32_hashFromCanonical
         
     | 
| 
      
 146 
     | 
    
         
            +
                /* XXH64 */
         
     | 
| 
      
 147 
     | 
    
         
            +
            #  undef XXH64
         
     | 
| 
      
 148 
     | 
    
         
            +
            #  undef XXH64_createState
         
     | 
| 
      
 149 
     | 
    
         
            +
            #  undef XXH64_freeState
         
     | 
| 
      
 150 
     | 
    
         
            +
            #  undef XXH64_reset
         
     | 
| 
      
 151 
     | 
    
         
            +
            #  undef XXH64_update
         
     | 
| 
      
 152 
     | 
    
         
            +
            #  undef XXH64_digest
         
     | 
| 
      
 153 
     | 
    
         
            +
            #  undef XXH64_copyState
         
     | 
| 
      
 154 
     | 
    
         
            +
            #  undef XXH64_canonicalFromHash
         
     | 
| 
      
 155 
     | 
    
         
            +
            #  undef XXH64_hashFromCanonical
         
     | 
| 
      
 156 
     | 
    
         
            +
                /* XXH3_64bits */
         
     | 
| 
      
 157 
     | 
    
         
            +
            #  undef XXH3_64bits
         
     | 
| 
      
 158 
     | 
    
         
            +
            #  undef XXH3_64bits_withSecret
         
     | 
| 
      
 159 
     | 
    
         
            +
            #  undef XXH3_64bits_withSeed
         
     | 
| 
      
 160 
     | 
    
         
            +
            #  undef XXH3_64bits_withSecretandSeed
         
     | 
| 
      
 161 
     | 
    
         
            +
            #  undef XXH3_createState
         
     | 
| 
      
 162 
     | 
    
         
            +
            #  undef XXH3_freeState
         
     | 
| 
      
 163 
     | 
    
         
            +
            #  undef XXH3_copyState
         
     | 
| 
      
 164 
     | 
    
         
            +
            #  undef XXH3_64bits_reset
         
     | 
| 
      
 165 
     | 
    
         
            +
            #  undef XXH3_64bits_reset_withSeed
         
     | 
| 
      
 166 
     | 
    
         
            +
            #  undef XXH3_64bits_reset_withSecret
         
     | 
| 
      
 167 
     | 
    
         
            +
            #  undef XXH3_64bits_update
         
     | 
| 
      
 168 
     | 
    
         
            +
            #  undef XXH3_64bits_digest
         
     | 
| 
      
 169 
     | 
    
         
            +
            #  undef XXH3_generateSecret
         
     | 
| 
      
 170 
     | 
    
         
            +
                /* XXH3_128bits */
         
     | 
| 
      
 171 
     | 
    
         
            +
            #  undef XXH128
         
     | 
| 
      
 172 
     | 
    
         
            +
            #  undef XXH3_128bits
         
     | 
| 
      
 173 
     | 
    
         
            +
            #  undef XXH3_128bits_withSeed
         
     | 
| 
      
 174 
     | 
    
         
            +
            #  undef XXH3_128bits_withSecret
         
     | 
| 
      
 175 
     | 
    
         
            +
            #  undef XXH3_128bits_reset
         
     | 
| 
      
 176 
     | 
    
         
            +
            #  undef XXH3_128bits_reset_withSeed
         
     | 
| 
      
 177 
     | 
    
         
            +
            #  undef XXH3_128bits_reset_withSecret
         
     | 
| 
      
 178 
     | 
    
         
            +
            #  undef XXH3_128bits_reset_withSecretandSeed
         
     | 
| 
      
 179 
     | 
    
         
            +
            #  undef XXH3_128bits_update
         
     | 
| 
      
 180 
     | 
    
         
            +
            #  undef XXH3_128bits_digest
         
     | 
| 
      
 181 
     | 
    
         
            +
            #  undef XXH128_isEqual
         
     | 
| 
      
 182 
     | 
    
         
            +
            #  undef XXH128_cmp
         
     | 
| 
      
 183 
     | 
    
         
            +
            #  undef XXH128_canonicalFromHash
         
     | 
| 
      
 184 
     | 
    
         
            +
            #  undef XXH128_hashFromCanonical
         
     | 
| 
      
 185 
     | 
    
         
            +
                /* Finally, free the namespace itself */
         
     | 
| 
      
 186 
     | 
    
         
            +
            #  undef XXH_NAMESPACE
         
     | 
| 
      
 187 
     | 
    
         
            +
             
     | 
| 
      
 188 
     | 
    
         
            +
                /* employ the namespace for XXH_INLINE_ALL */
         
     | 
| 
       138 
189 
     | 
    
         
             
            #  define XXH_NAMESPACE XXH_INLINE_
         
     | 
| 
       139 
190 
     | 
    
         
             
               /*
         
     | 
| 
       140 
     | 
    
         
            -
                * Some identifiers (enums, type names) are not symbols, 
     | 
| 
       141 
     | 
    
         
            -
                *  
     | 
| 
      
 191 
     | 
    
         
            +
                * Some identifiers (enums, type names) are not symbols,
         
     | 
| 
      
 192 
     | 
    
         
            +
                * but they must nonetheless be renamed to avoid redeclaration.
         
     | 
| 
       142 
193 
     | 
    
         
             
                * Alternative solution: do not redeclare them.
         
     | 
| 
       143 
     | 
    
         
            -
                * However, this requires some #ifdefs, and  
     | 
| 
       144 
     | 
    
         
            -
                * Meanwhile, renaming can be achieved in a single  
     | 
| 
      
 194 
     | 
    
         
            +
                * However, this requires some #ifdefs, and has a more dispersed impact.
         
     | 
| 
      
 195 
     | 
    
         
            +
                * Meanwhile, renaming can be achieved in a single place.
         
     | 
| 
       145 
196 
     | 
    
         
             
                */
         
     | 
| 
       146 
     | 
    
         
            -
            #  define XXH_IPREF(Id)    
     | 
| 
      
 197 
     | 
    
         
            +
            #  define XXH_IPREF(Id)   XXH_NAMESPACE ## Id
         
     | 
| 
       147 
198 
     | 
    
         
             
            #  define XXH_OK XXH_IPREF(XXH_OK)
         
     | 
| 
       148 
199 
     | 
    
         
             
            #  define XXH_ERROR XXH_IPREF(XXH_ERROR)
         
     | 
| 
       149 
200 
     | 
    
         
             
            #  define XXH_errorcode XXH_IPREF(XXH_errorcode)
         
     | 
| 
         @@ -235,23 +286,28 @@ extern "C" { 
     | 
|
| 
       235 
286 
     | 
    
         
             
            #  define XXH3_64bits XXH_NAME2(XXH_NAMESPACE, XXH3_64bits)
         
     | 
| 
       236 
287 
     | 
    
         
             
            #  define XXH3_64bits_withSecret XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_withSecret)
         
     | 
| 
       237 
288 
     | 
    
         
             
            #  define XXH3_64bits_withSeed XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_withSeed)
         
     | 
| 
      
 289 
     | 
    
         
            +
            #  define XXH3_64bits_withSecretandSeed XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_withSecretandSeed)
         
     | 
| 
       238 
290 
     | 
    
         
             
            #  define XXH3_createState XXH_NAME2(XXH_NAMESPACE, XXH3_createState)
         
     | 
| 
       239 
291 
     | 
    
         
             
            #  define XXH3_freeState XXH_NAME2(XXH_NAMESPACE, XXH3_freeState)
         
     | 
| 
       240 
292 
     | 
    
         
             
            #  define XXH3_copyState XXH_NAME2(XXH_NAMESPACE, XXH3_copyState)
         
     | 
| 
       241 
293 
     | 
    
         
             
            #  define XXH3_64bits_reset XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset)
         
     | 
| 
       242 
294 
     | 
    
         
             
            #  define XXH3_64bits_reset_withSeed XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset_withSeed)
         
     | 
| 
       243 
295 
     | 
    
         
             
            #  define XXH3_64bits_reset_withSecret XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset_withSecret)
         
     | 
| 
      
 296 
     | 
    
         
            +
            #  define XXH3_64bits_reset_withSecretandSeed XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset_withSecretandSeed)
         
     | 
| 
       244 
297 
     | 
    
         
             
            #  define XXH3_64bits_update XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_update)
         
     | 
| 
       245 
298 
     | 
    
         
             
            #  define XXH3_64bits_digest XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_digest)
         
     | 
| 
       246 
299 
     | 
    
         
             
            #  define XXH3_generateSecret XXH_NAME2(XXH_NAMESPACE, XXH3_generateSecret)
         
     | 
| 
      
 300 
     | 
    
         
            +
            #  define XXH3_generateSecret_fromSeed XXH_NAME2(XXH_NAMESPACE, XXH3_generateSecret_fromSeed)
         
     | 
| 
       247 
301 
     | 
    
         
             
            /* XXH3_128bits */
         
     | 
| 
       248 
302 
     | 
    
         
             
            #  define XXH128 XXH_NAME2(XXH_NAMESPACE, XXH128)
         
     | 
| 
       249 
303 
     | 
    
         
             
            #  define XXH3_128bits XXH_NAME2(XXH_NAMESPACE, XXH3_128bits)
         
     | 
| 
       250 
304 
     | 
    
         
             
            #  define XXH3_128bits_withSeed XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_withSeed)
         
     | 
| 
       251 
305 
     | 
    
         
             
            #  define XXH3_128bits_withSecret XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_withSecret)
         
     | 
| 
      
 306 
     | 
    
         
            +
            #  define XXH3_128bits_withSecretandSeed XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_withSecretandSeed)
         
     | 
| 
       252 
307 
     | 
    
         
             
            #  define XXH3_128bits_reset XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset)
         
     | 
| 
       253 
308 
     | 
    
         
             
            #  define XXH3_128bits_reset_withSeed XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset_withSeed)
         
     | 
| 
       254 
309 
     | 
    
         
             
            #  define XXH3_128bits_reset_withSecret XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset_withSecret)
         
     | 
| 
      
 310 
     | 
    
         
            +
            #  define XXH3_128bits_reset_withSecretandSeed XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset_withSecretandSeed)
         
     | 
| 
       255 
311 
     | 
    
         
             
            #  define XXH3_128bits_update XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_update)
         
     | 
| 
       256 
312 
     | 
    
         
             
            #  define XXH3_128bits_digest XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_digest)
         
     | 
| 
       257 
313 
     | 
    
         
             
            #  define XXH128_isEqual XXH_NAME2(XXH_NAMESPACE, XXH128_isEqual)
         
     | 
| 
         @@ -272,16 +328,16 @@ extern "C" { 
     | 
|
| 
       272 
328 
     | 
    
         
             
            /*!
         
     | 
| 
       273 
329 
     | 
    
         
             
             * @brief Obtains the xxHash version.
         
     | 
| 
       274 
330 
     | 
    
         
             
             *
         
     | 
| 
       275 
     | 
    
         
            -
             * This is  
     | 
| 
       276 
     | 
    
         
            -
             *  
     | 
| 
      
 331 
     | 
    
         
            +
             * This is mostly useful when xxHash is compiled as a shared library,
         
     | 
| 
      
 332 
     | 
    
         
            +
             * since the returned value comes from the library, as opposed to header file.
         
     | 
| 
       277 
333 
     | 
    
         
             
             *
         
     | 
| 
       278 
     | 
    
         
            -
             * @return `XXH_VERSION_NUMBER`  
     | 
| 
      
 334 
     | 
    
         
            +
             * @return `XXH_VERSION_NUMBER` of the invoked library.
         
     | 
| 
       279 
335 
     | 
    
         
             
             */
         
     | 
| 
       280 
336 
     | 
    
         
             
            XXH_PUBLIC_API unsigned XXH_versionNumber (void);
         
     | 
| 
       281 
337 
     | 
    
         | 
| 
       282 
338 
     | 
    
         | 
| 
       283 
339 
     | 
    
         
             
            /* ****************************
         
     | 
| 
       284 
     | 
    
         
            -
            *   
     | 
| 
      
 340 
     | 
    
         
            +
            *  Common basic types
         
     | 
| 
       285 
341 
     | 
    
         
             
            ******************************/
         
     | 
| 
       286 
342 
     | 
    
         
             
            #include <stddef.h>   /* size_t */
         
     | 
| 
       287 
343 
     | 
    
         
             
            typedef enum { XXH_OK=0, XXH_ERROR } XXH_errorcode;
         
     | 
| 
         @@ -297,11 +353,13 @@ typedef enum { XXH_OK=0, XXH_ERROR } XXH_errorcode; 
     | 
|
| 
       297 
353 
     | 
    
         
             
             * Not necessarily defined to `uint32_t` but functionally equivalent.
         
     | 
| 
       298 
354 
     | 
    
         
             
             */
         
     | 
| 
       299 
355 
     | 
    
         
             
            typedef uint32_t XXH32_hash_t;
         
     | 
| 
      
 356 
     | 
    
         
            +
             
     | 
| 
       300 
357 
     | 
    
         
             
            #elif !defined (__VMS) \
         
     | 
| 
       301 
358 
     | 
    
         
             
              && (defined (__cplusplus) \
         
     | 
| 
       302 
359 
     | 
    
         
             
              || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) )
         
     | 
| 
       303 
360 
     | 
    
         
             
            #   include <stdint.h>
         
     | 
| 
       304 
361 
     | 
    
         
             
                typedef uint32_t XXH32_hash_t;
         
     | 
| 
      
 362 
     | 
    
         
            +
             
     | 
| 
       305 
363 
     | 
    
         
             
            #else
         
     | 
| 
       306 
364 
     | 
    
         
             
            #   include <limits.h>
         
     | 
| 
       307 
365 
     | 
    
         
             
            #   if UINT_MAX == 0xFFFFFFFFUL
         
     | 
| 
         @@ -323,10 +381,9 @@ typedef uint32_t XXH32_hash_t; 
     | 
|
| 
       323 
381 
     | 
    
         
             
             * Contains functions used in the classic 32-bit xxHash algorithm.
         
     | 
| 
       324 
382 
     | 
    
         
             
             *
         
     | 
| 
       325 
383 
     | 
    
         
             
             * @note
         
     | 
| 
       326 
     | 
    
         
            -
             *   XXH32 is  
     | 
| 
       327 
     | 
    
         
            -
             *    
     | 
| 
       328 
     | 
    
         
            -
             *   systems, and offers true 64/128 bit hash results. 
     | 
| 
       329 
     | 
    
         
            -
             *   level of dispersion, and greatly reduces the risks of collisions.
         
     | 
| 
      
 384 
     | 
    
         
            +
             *   XXH32 is useful for older platforms, with no or poor 64-bit performance.
         
     | 
| 
      
 385 
     | 
    
         
            +
             *   Note that @ref xxh3_family provides competitive speed
         
     | 
| 
      
 386 
     | 
    
         
            +
             *   for both 32-bit and 64-bit systems, and offers true 64/128 bit hash results.
         
     | 
| 
       330 
387 
     | 
    
         
             
             *
         
     | 
| 
       331 
388 
     | 
    
         
             
             * @see @ref xxh64_family, @ref xxh3_family : Other xxHash families
         
     | 
| 
       332 
389 
     | 
    
         
             
             * @see @ref xxh32_impl for implementation details
         
     | 
| 
         @@ -543,6 +600,41 @@ XXH_PUBLIC_API void XXH32_canonicalFromHash(XXH32_canonical_t* dst, XXH32_hash_t 
     | 
|
| 
       543 
600 
     | 
    
         
             
            XXH_PUBLIC_API XXH32_hash_t XXH32_hashFromCanonical(const XXH32_canonical_t* src);
         
     | 
| 
       544 
601 
     | 
    
         | 
| 
       545 
602 
     | 
    
         | 
| 
      
 603 
     | 
    
         
            +
            #ifdef __has_attribute
         
     | 
| 
      
 604 
     | 
    
         
            +
            # define XXH_HAS_ATTRIBUTE(x) __has_attribute(x)
         
     | 
| 
      
 605 
     | 
    
         
            +
            #else
         
     | 
| 
      
 606 
     | 
    
         
            +
            # define XXH_HAS_ATTRIBUTE(x) 0
         
     | 
| 
      
 607 
     | 
    
         
            +
            #endif
         
     | 
| 
      
 608 
     | 
    
         
            +
             
     | 
| 
      
 609 
     | 
    
         
            +
            /* C-language Attributes are added in C23. */
         
     | 
| 
      
 610 
     | 
    
         
            +
            #if defined(__STDC_VERSION__) && (__STDC_VERSION__ > 201710L) && defined(__has_c_attribute)
         
     | 
| 
      
 611 
     | 
    
         
            +
            # define XXH_HAS_C_ATTRIBUTE(x) __has_c_attribute(x)
         
     | 
| 
      
 612 
     | 
    
         
            +
            #else
         
     | 
| 
      
 613 
     | 
    
         
            +
            # define XXH_HAS_C_ATTRIBUTE(x) 0
         
     | 
| 
      
 614 
     | 
    
         
            +
            #endif
         
     | 
| 
      
 615 
     | 
    
         
            +
             
     | 
| 
      
 616 
     | 
    
         
            +
            #if defined(__cplusplus) && defined(__has_cpp_attribute)
         
     | 
| 
      
 617 
     | 
    
         
            +
            # define XXH_HAS_CPP_ATTRIBUTE(x) __has_cpp_attribute(x)
         
     | 
| 
      
 618 
     | 
    
         
            +
            #else
         
     | 
| 
      
 619 
     | 
    
         
            +
            # define XXH_HAS_CPP_ATTRIBUTE(x) 0
         
     | 
| 
      
 620 
     | 
    
         
            +
            #endif
         
     | 
| 
      
 621 
     | 
    
         
            +
             
     | 
| 
      
 622 
     | 
    
         
            +
            /*
         
     | 
| 
      
 623 
     | 
    
         
            +
            Define XXH_FALLTHROUGH macro for annotating switch case with the 'fallthrough' attribute
         
     | 
| 
      
 624 
     | 
    
         
            +
            introduced in CPP17 and C23.
         
     | 
| 
      
 625 
     | 
    
         
            +
            CPP17 : https://en.cppreference.com/w/cpp/language/attributes/fallthrough
         
     | 
| 
      
 626 
     | 
    
         
            +
            C23   : https://en.cppreference.com/w/c/language/attributes/fallthrough
         
     | 
| 
      
 627 
     | 
    
         
            +
            */
         
     | 
| 
      
 628 
     | 
    
         
            +
            #if XXH_HAS_C_ATTRIBUTE(x)
         
     | 
| 
      
 629 
     | 
    
         
            +
            # define XXH_FALLTHROUGH [[fallthrough]]
         
     | 
| 
      
 630 
     | 
    
         
            +
            #elif XXH_HAS_CPP_ATTRIBUTE(x)
         
     | 
| 
      
 631 
     | 
    
         
            +
            # define XXH_FALLTHROUGH [[fallthrough]]
         
     | 
| 
      
 632 
     | 
    
         
            +
            #elif XXH_HAS_ATTRIBUTE(__fallthrough__)
         
     | 
| 
      
 633 
     | 
    
         
            +
            # define XXH_FALLTHROUGH __attribute__ ((fallthrough))
         
     | 
| 
      
 634 
     | 
    
         
            +
            #else
         
     | 
| 
      
 635 
     | 
    
         
            +
            # define XXH_FALLTHROUGH
         
     | 
| 
      
 636 
     | 
    
         
            +
            #endif
         
     | 
| 
      
 637 
     | 
    
         
            +
             
     | 
| 
       546 
638 
     | 
    
         
             
            /*!
         
     | 
| 
       547 
639 
     | 
    
         
             
             * @}
         
     | 
| 
       548 
640 
     | 
    
         
             
             * @ingroup public
         
     | 
| 
         @@ -586,8 +678,8 @@ typedef uint64_t XXH64_hash_t; 
     | 
|
| 
       586 
678 
     | 
    
         
             
             *
         
     | 
| 
       587 
679 
     | 
    
         
             
             * @note
         
     | 
| 
       588 
680 
     | 
    
         
             
             *   XXH3 provides competitive speed for both 32-bit and 64-bit systems,
         
     | 
| 
       589 
     | 
    
         
            -
             *   and offers true 64/128 bit hash results. 
     | 
| 
       590 
     | 
    
         
            -
             *    
     | 
| 
      
 681 
     | 
    
         
            +
             *   and offers true 64/128 bit hash results.
         
     | 
| 
      
 682 
     | 
    
         
            +
             *   It provides better speed for systems with vector processing capabilities.
         
     | 
| 
       591 
683 
     | 
    
         
             
             */
         
     | 
| 
       592 
684 
     | 
    
         | 
| 
       593 
685 
     | 
    
         | 
| 
         @@ -713,13 +805,17 @@ XXH_PUBLIC_API XXH64_hash_t XXH3_64bits_withSeed(const void* data, size_t len, X 
     | 
|
| 
       713 
805 
     | 
    
         
             
             * It's possible to provide any blob of bytes as a "secret" to generate the hash.
         
     | 
| 
       714 
806 
     | 
    
         
             
             * This makes it more difficult for an external actor to prepare an intentional collision.
         
     | 
| 
       715 
807 
     | 
    
         
             
             * The main condition is that secretSize *must* be large enough (>= XXH3_SECRET_SIZE_MIN).
         
     | 
| 
       716 
     | 
    
         
            -
             * However, the quality of  
     | 
| 
       717 
     | 
    
         
            -
             *  
     | 
| 
      
 808 
     | 
    
         
            +
             * However, the quality of the secret impacts the dispersion of the hash algorithm.
         
     | 
| 
      
 809 
     | 
    
         
            +
             * Therefore, the secret _must_ look like a bunch of random bytes.
         
     | 
| 
       718 
810 
     | 
    
         
             
             * Avoid "trivial" or structured data such as repeated sequences or a text document.
         
     | 
| 
       719 
     | 
    
         
            -
             * Whenever  
     | 
| 
       720 
     | 
    
         
            -
             * consider  
     | 
| 
       721 
     | 
    
         
            -
             *  
     | 
| 
       722 
     | 
    
         
            -
             *  
     | 
| 
      
 811 
     | 
    
         
            +
             * Whenever in doubt about the "randomness" of the blob of bytes,
         
     | 
| 
      
 812 
     | 
    
         
            +
             * consider employing "XXH3_generateSecret()" instead (see below).
         
     | 
| 
      
 813 
     | 
    
         
            +
             * It will generate a proper high entropy secret derived from the blob of bytes.
         
     | 
| 
      
 814 
     | 
    
         
            +
             * Another advantage of using XXH3_generateSecret() is that
         
     | 
| 
      
 815 
     | 
    
         
            +
             * it guarantees that all bits within the initial blob of bytes
         
     | 
| 
      
 816 
     | 
    
         
            +
             * will impact every bit of the output.
         
     | 
| 
      
 817 
     | 
    
         
            +
             * This is not necessarily the case when using the blob of bytes directly
         
     | 
| 
      
 818 
     | 
    
         
            +
             * because, when hashing _small_ inputs, only a portion of the secret is employed.
         
     | 
| 
       723 
819 
     | 
    
         
             
             */
         
     | 
| 
       724 
820 
     | 
    
         
             
            XXH_PUBLIC_API XXH64_hash_t XXH3_64bits_withSecret(const void* data, size_t len, const void* secret, size_t secretSize);
         
     | 
| 
       725 
821 
     | 
    
         | 
| 
         @@ -879,10 +975,7 @@ XXH_PUBLIC_API XXH128_hash_t XXH128_hashFromCanonical(const XXH128_canonical_t* 
     | 
|
| 
       879 
975 
     | 
    
         
             
            struct XXH32_state_s {
         
     | 
| 
       880 
976 
     | 
    
         
             
               XXH32_hash_t total_len_32; /*!< Total length hashed, modulo 2^32 */
         
     | 
| 
       881 
977 
     | 
    
         
             
               XXH32_hash_t large_len;    /*!< Whether the hash is >= 16 (handles @ref total_len_32 overflow) */
         
     | 
| 
       882 
     | 
    
         
            -
               XXH32_hash_t  
     | 
| 
       883 
     | 
    
         
            -
               XXH32_hash_t v2;           /*!< Second accumulator lane */
         
     | 
| 
       884 
     | 
    
         
            -
               XXH32_hash_t v3;           /*!< Third accumulator lane */
         
     | 
| 
       885 
     | 
    
         
            -
               XXH32_hash_t v4;           /*!< Fourth accumulator lane */
         
     | 
| 
      
 978 
     | 
    
         
            +
               XXH32_hash_t v[4];         /*!< Accumulator lanes */
         
     | 
| 
       886 
979 
     | 
    
         
             
               XXH32_hash_t mem32[4];     /*!< Internal buffer for partial reads. Treated as unsigned char[16]. */
         
     | 
| 
       887 
980 
     | 
    
         
             
               XXH32_hash_t memsize;      /*!< Amount of data in @ref mem32 */
         
     | 
| 
       888 
981 
     | 
    
         
             
               XXH32_hash_t reserved;     /*!< Reserved field. Do not read or write to it, it may be removed. */
         
     | 
| 
         @@ -905,19 +998,19 @@ struct XXH32_state_s { 
     | 
|
| 
       905 
998 
     | 
    
         
             
             */
         
     | 
| 
       906 
999 
     | 
    
         
             
            struct XXH64_state_s {
         
     | 
| 
       907 
1000 
     | 
    
         
             
               XXH64_hash_t total_len;    /*!< Total length hashed. This is always 64-bit. */
         
     | 
| 
       908 
     | 
    
         
            -
               XXH64_hash_t  
     | 
| 
       909 
     | 
    
         
            -
               XXH64_hash_t v2;           /*!< Second accumulator lane */
         
     | 
| 
       910 
     | 
    
         
            -
               XXH64_hash_t v3;           /*!< Third accumulator lane */
         
     | 
| 
       911 
     | 
    
         
            -
               XXH64_hash_t v4;           /*!< Fourth accumulator lane */
         
     | 
| 
      
 1001 
     | 
    
         
            +
               XXH64_hash_t v[4];         /*!< Accumulator lanes */
         
     | 
| 
       912 
1002 
     | 
    
         
             
               XXH64_hash_t mem64[4];     /*!< Internal buffer for partial reads. Treated as unsigned char[32]. */
         
     | 
| 
       913 
1003 
     | 
    
         
             
               XXH32_hash_t memsize;      /*!< Amount of data in @ref mem64 */
         
     | 
| 
       914 
1004 
     | 
    
         
             
               XXH32_hash_t reserved32;   /*!< Reserved field, needed for padding anyways*/
         
     | 
| 
       915 
1005 
     | 
    
         
             
               XXH64_hash_t reserved64;   /*!< Reserved field. Do not read or write to it, it may be removed. */
         
     | 
| 
       916 
1006 
     | 
    
         
             
            };   /* typedef'd to XXH64_state_t */
         
     | 
| 
       917 
1007 
     | 
    
         | 
| 
       918 
     | 
    
         
            -
            #if defined 
     | 
| 
      
 1008 
     | 
    
         
            +
            #if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) /* >= C11 */
         
     | 
| 
       919 
1009 
     | 
    
         
             
            #  include <stdalign.h>
         
     | 
| 
       920 
1010 
     | 
    
         
             
            #  define XXH_ALIGN(n)      alignas(n)
         
     | 
| 
      
 1011 
     | 
    
         
            +
            #elif defined(__cplusplus) && (__cplusplus >= 201103L) /* >= C++11 */
         
     | 
| 
      
 1012 
     | 
    
         
            +
            /* In C++ alignas() is a keyword */
         
     | 
| 
      
 1013 
     | 
    
         
            +
            #  define XXH_ALIGN(n)      alignas(n)
         
     | 
| 
       921 
1014 
     | 
    
         
             
            #elif defined(__GNUC__)
         
     | 
| 
       922 
1015 
     | 
    
         
             
            #  define XXH_ALIGN(n)      __attribute__ ((aligned(n)))
         
     | 
| 
       923 
1016 
     | 
    
         
             
            #elif defined(_MSC_VER)
         
     | 
| 
         @@ -928,6 +1021,7 @@ struct XXH64_state_s { 
     | 
|
| 
       928 
1021 
     | 
    
         | 
| 
       929 
1022 
     | 
    
         
             
            /* Old GCC versions only accept the attribute after the type in structures. */
         
     | 
| 
       930 
1023 
     | 
    
         
             
            #if !(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L))   /* C11+ */ \
         
     | 
| 
      
 1024 
     | 
    
         
            +
                && ! (defined(__cplusplus) && (__cplusplus >= 201103L)) /* >= C++11 */ \
         
     | 
| 
       931 
1025 
     | 
    
         
             
                && defined(__GNUC__)
         
     | 
| 
       932 
1026 
     | 
    
         
             
            #   define XXH_ALIGN_MEMBER(align, type) type XXH_ALIGN(align)
         
     | 
| 
       933 
1027 
     | 
    
         
             
            #else
         
     | 
| 
         @@ -957,16 +1051,18 @@ struct XXH64_state_s { 
     | 
|
| 
       957 
1051 
     | 
    
         
             
             * @brief Structure for XXH3 streaming API.
         
     | 
| 
       958 
1052 
     | 
    
         
             
             *
         
     | 
| 
       959 
1053 
     | 
    
         
             
             * @note This is only defined when @ref XXH_STATIC_LINKING_ONLY,
         
     | 
| 
       960 
     | 
    
         
            -
             * @ref XXH_INLINE_ALL, or @ref XXH_IMPLEMENTATION is defined. 
     | 
| 
       961 
     | 
    
         
            -
             * an opaque type. 
     | 
| 
      
 1054 
     | 
    
         
            +
             * @ref XXH_INLINE_ALL, or @ref XXH_IMPLEMENTATION is defined.
         
     | 
| 
      
 1055 
     | 
    
         
            +
             * Otherwise it is an opaque type.
         
     | 
| 
      
 1056 
     | 
    
         
            +
             * Never use this definition in combination with dynamic library.
         
     | 
| 
      
 1057 
     | 
    
         
            +
             * This allows fields to safely be changed in the future.
         
     | 
| 
       962 
1058 
     | 
    
         
             
             *
         
     | 
| 
       963 
     | 
    
         
            -
             * @note **This structure has a strict alignment requirement of 64 bytes 
     | 
| 
       964 
     | 
    
         
            -
             * not allocate this with `malloc()` or `new`, 
     | 
| 
       965 
     | 
    
         
            -
             *  
     | 
| 
       966 
     | 
    
         
            -
             * allocation.
         
     | 
| 
      
 1059 
     | 
    
         
            +
             * @note ** This structure has a strict alignment requirement of 64 bytes!! **
         
     | 
| 
      
 1060 
     | 
    
         
            +
             * Do not allocate this with `malloc()` or `new`,
         
     | 
| 
      
 1061 
     | 
    
         
            +
             * it will not be sufficiently aligned.
         
     | 
| 
      
 1062 
     | 
    
         
            +
             * Use @ref XXH3_createState() and @ref XXH3_freeState(), or stack allocation.
         
     | 
| 
       967 
1063 
     | 
    
         
             
             *
         
     | 
| 
       968 
1064 
     | 
    
         
             
             * Typedef'd to @ref XXH3_state_t.
         
     | 
| 
       969 
     | 
    
         
            -
             * Do  
     | 
| 
      
 1065 
     | 
    
         
            +
             * Do never access the members of this struct directly.
         
     | 
| 
       970 
1066 
     | 
    
         
             
             *
         
     | 
| 
       971 
1067 
     | 
    
         
             
             * @see XXH3_INITSTATE() for stack initialization.
         
     | 
| 
       972 
1068 
     | 
    
         
             
             * @see XXH3_createState(), XXH3_freeState().
         
     | 
| 
         @@ -981,7 +1077,7 @@ struct XXH3_state_s { 
     | 
|
| 
       981 
1077 
     | 
    
         
             
                   /*!< The internal buffer. @see XXH32_state_s::mem32 */
         
     | 
| 
       982 
1078 
     | 
    
         
             
               XXH32_hash_t bufferedSize;
         
     | 
| 
       983 
1079 
     | 
    
         
             
                   /*!< The amount of memory in @ref buffer, @see XXH32_state_s::memsize */
         
     | 
| 
       984 
     | 
    
         
            -
               XXH32_hash_t  
     | 
| 
      
 1080 
     | 
    
         
            +
               XXH32_hash_t useSeed;
         
     | 
| 
       985 
1081 
     | 
    
         
             
                   /*!< Reserved field. Needed for padding on 64-bit. */
         
     | 
| 
       986 
1082 
     | 
    
         
             
               size_t nbStripesSoFar;
         
     | 
| 
       987 
1083 
     | 
    
         
             
                   /*!< Number or stripes processed. */
         
     | 
| 
         @@ -1017,6 +1113,12 @@ struct XXH3_state_s { 
     | 
|
| 
       1017 
1113 
     | 
    
         
             
            #define XXH3_INITSTATE(XXH3_state_ptr)   { (XXH3_state_ptr)->seed = 0; }
         
     | 
| 
       1018 
1114 
     | 
    
         | 
| 
       1019 
1115 
     | 
    
         | 
| 
      
 1116 
     | 
    
         
            +
            /* XXH128() :
         
     | 
| 
      
 1117 
     | 
    
         
            +
             * simple alias to pre-selected XXH3_128bits variant
         
     | 
| 
      
 1118 
     | 
    
         
            +
             */
         
     | 
| 
      
 1119 
     | 
    
         
            +
            XXH_PUBLIC_API XXH128_hash_t XXH128(const void* data, size_t len, XXH64_hash_t seed);
         
     | 
| 
      
 1120 
     | 
    
         
            +
             
     | 
| 
      
 1121 
     | 
    
         
            +
             
     | 
| 
       1020 
1122 
     | 
    
         
             
            /* ===   Experimental API   === */
         
     | 
| 
       1021 
1123 
     | 
    
         
             
            /* Symbols defined below must be considered tied to a specific library version. */
         
     | 
| 
       1022 
1124 
     | 
    
         | 
| 
         @@ -1029,31 +1131,89 @@ struct XXH3_state_s { 
     | 
|
| 
       1029 
1131 
     | 
    
         
             
             * as it becomes much more difficult for an external actor to guess how to impact the calculation logic.
         
     | 
| 
       1030 
1132 
     | 
    
         
             
             *
         
     | 
| 
       1031 
1133 
     | 
    
         
             
             * The function accepts as input a custom seed of any length and any content,
         
     | 
| 
       1032 
     | 
    
         
            -
             * and derives from it a high-entropy secret of length  
     | 
| 
       1033 
     | 
    
         
            -
             * into an already allocated buffer secretBuffer.
         
     | 
| 
       1034 
     | 
    
         
            -
             *  
     | 
| 
      
 1134 
     | 
    
         
            +
             * and derives from it a high-entropy secret of length @secretSize
         
     | 
| 
      
 1135 
     | 
    
         
            +
             * into an already allocated buffer @secretBuffer.
         
     | 
| 
      
 1136 
     | 
    
         
            +
             * @secretSize must be >= XXH3_SECRET_SIZE_MIN
         
     | 
| 
       1035 
1137 
     | 
    
         
             
             *
         
     | 
| 
       1036 
1138 
     | 
    
         
             
             * The generated secret can then be used with any `*_withSecret()` variant.
         
     | 
| 
       1037 
1139 
     | 
    
         
             
             * Functions `XXH3_128bits_withSecret()`, `XXH3_64bits_withSecret()`,
         
     | 
| 
       1038 
1140 
     | 
    
         
             
             * `XXH3_128bits_reset_withSecret()` and `XXH3_64bits_reset_withSecret()`
         
     | 
| 
       1039 
1141 
     | 
    
         
             
             * are part of this list. They all accept a `secret` parameter
         
     | 
| 
       1040 
     | 
    
         
            -
             * which must be  
     | 
| 
      
 1142 
     | 
    
         
            +
             * which must be large enough for implementation reasons (>= XXH3_SECRET_SIZE_MIN)
         
     | 
| 
       1041 
1143 
     | 
    
         
             
             * _and_ feature very high entropy (consist of random-looking bytes).
         
     | 
| 
       1042 
1144 
     | 
    
         
             
             * These conditions can be a high bar to meet, so
         
     | 
| 
       1043 
     | 
    
         
            -
             *  
     | 
| 
      
 1145 
     | 
    
         
            +
             * XXH3_generateSecret() can be employed to ensure proper quality.
         
     | 
| 
       1044 
1146 
     | 
    
         
             
             *
         
     | 
| 
       1045 
1147 
     | 
    
         
             
             * customSeed can be anything. It can have any size, even small ones,
         
     | 
| 
       1046 
     | 
    
         
            -
             * and its content can be anything, even  
     | 
| 
       1047 
     | 
    
         
            -
             * The resulting `secret` will nonetheless provide all  
     | 
| 
      
 1148 
     | 
    
         
            +
             * and its content can be anything, even "poor entropy" sources such as a bunch of zeroes.
         
     | 
| 
      
 1149 
     | 
    
         
            +
             * The resulting `secret` will nonetheless provide all required qualities.
         
     | 
| 
       1048 
1150 
     | 
    
         
             
             *
         
     | 
| 
       1049 
     | 
    
         
            -
             * Supplying NULL as the customSeed copies the default secret into `secretBuffer`.
         
     | 
| 
       1050 
1151 
     | 
    
         
             
             * When customSeedSize > 0, supplying NULL as customSeed is undefined behavior.
         
     | 
| 
       1051 
1152 
     | 
    
         
             
             */
         
     | 
| 
       1052 
     | 
    
         
            -
            XXH_PUBLIC_API  
     | 
| 
      
 1153 
     | 
    
         
            +
            XXH_PUBLIC_API XXH_errorcode XXH3_generateSecret(void* secretBuffer, size_t secretSize, const void* customSeed, size_t customSeedSize);
         
     | 
| 
       1053 
1154 
     | 
    
         | 
| 
       1054 
1155 
     | 
    
         | 
| 
       1055 
     | 
    
         
            -
            /* 
     | 
| 
       1056 
     | 
    
         
            -
             
     | 
| 
      
 1156 
     | 
    
         
            +
            /*
         
     | 
| 
      
 1157 
     | 
    
         
            +
             * XXH3_generateSecret_fromSeed():
         
     | 
| 
      
 1158 
     | 
    
         
            +
             *
         
     | 
| 
      
 1159 
     | 
    
         
            +
             * Generate the same secret as the _withSeed() variants.
         
     | 
| 
      
 1160 
     | 
    
         
            +
             *
         
     | 
| 
      
 1161 
     | 
    
         
            +
             * The resulting secret has a length of XXH3_SECRET_DEFAULT_SIZE (necessarily).
         
     | 
| 
      
 1162 
     | 
    
         
            +
             * @secretBuffer must be already allocated, of size at least XXH3_SECRET_DEFAULT_SIZE bytes.
         
     | 
| 
      
 1163 
     | 
    
         
            +
             *
         
     | 
| 
      
 1164 
     | 
    
         
            +
             * The generated secret can be used in combination with
         
     | 
| 
      
 1165 
     | 
    
         
            +
             *`*_withSecret()` and `_withSecretandSeed()` variants.
         
     | 
| 
      
 1166 
     | 
    
         
            +
             * This generator is notably useful in combination with `_withSecretandSeed()`,
         
     | 
| 
      
 1167 
     | 
    
         
            +
             * as a way to emulate a faster `_withSeed()` variant.
         
     | 
| 
      
 1168 
     | 
    
         
            +
             */
         
     | 
| 
      
 1169 
     | 
    
         
            +
            XXH_PUBLIC_API void XXH3_generateSecret_fromSeed(void* secretBuffer, XXH64_hash_t seed);
         
     | 
| 
      
 1170 
     | 
    
         
            +
             
     | 
| 
      
 1171 
     | 
    
         
            +
            /*
         
     | 
| 
      
 1172 
     | 
    
         
            +
             * *_withSecretandSeed() :
         
     | 
| 
      
 1173 
     | 
    
         
            +
             * These variants generate hash values using either
         
     | 
| 
      
 1174 
     | 
    
         
            +
             * @seed for "short" keys (< XXH3_MIDSIZE_MAX = 240 bytes)
         
     | 
| 
      
 1175 
     | 
    
         
            +
             * or @secret for "large" keys (>= XXH3_MIDSIZE_MAX).
         
     | 
| 
      
 1176 
     | 
    
         
            +
             *
         
     | 
| 
      
 1177 
     | 
    
         
            +
             * This generally benefits speed, compared to `_withSeed()` or `_withSecret()`.
         
     | 
| 
      
 1178 
     | 
    
         
            +
             * `_withSeed()` has to generate the secret on the fly for "large" keys.
         
     | 
| 
      
 1179 
     | 
    
         
            +
             * It's fast, but can be perceptible for "not so large" keys (< 1 KB).
         
     | 
| 
      
 1180 
     | 
    
         
            +
             * `_withSecret()` has to generate the masks on the fly for "small" keys,
         
     | 
| 
      
 1181 
     | 
    
         
            +
             * which requires more instructions than _withSeed() variants.
         
     | 
| 
      
 1182 
     | 
    
         
            +
             * Therefore, _withSecretandSeed variant combines the best of both worlds.
         
     | 
| 
      
 1183 
     | 
    
         
            +
             *
         
     | 
| 
      
 1184 
     | 
    
         
            +
             * When @secret has been generated by XXH3_generateSecret_fromSeed(),
         
     | 
| 
      
 1185 
     | 
    
         
            +
             * this variant produces *exactly* the same results as `_withSeed()` variant,
         
     | 
| 
      
 1186 
     | 
    
         
            +
             * hence offering only a pure speed benefit on "large" input,
         
     | 
| 
      
 1187 
     | 
    
         
            +
             * by skipping the need to regenerate the secret for every large input.
         
     | 
| 
      
 1188 
     | 
    
         
            +
             *
         
     | 
| 
      
 1189 
     | 
    
         
            +
             * Another usage scenario is to hash the secret to a 64-bit hash value,
         
     | 
| 
      
 1190 
     | 
    
         
            +
             * for example with XXH3_64bits(), which then becomes the seed,
         
     | 
| 
      
 1191 
     | 
    
         
            +
             * and then employ both the seed and the secret in _withSecretandSeed().
         
     | 
| 
      
 1192 
     | 
    
         
            +
             * On top of speed, an added benefit is that each bit in the secret
         
     | 
| 
      
 1193 
     | 
    
         
            +
             * has a 50% chance to swap each bit in the output,
         
     | 
| 
      
 1194 
     | 
    
         
            +
             * via its impact to the seed.
         
     | 
| 
      
 1195 
     | 
    
         
            +
             * This is not guaranteed when using the secret directly in "small data" scenarios,
         
     | 
| 
      
 1196 
     | 
    
         
            +
             * because only portions of the secret are employed for small data.
         
     | 
| 
      
 1197 
     | 
    
         
            +
             */
         
     | 
| 
      
 1198 
     | 
    
         
            +
            XXH_PUBLIC_API XXH64_hash_t
         
     | 
| 
      
 1199 
     | 
    
         
            +
            XXH3_64bits_withSecretandSeed(const void* data, size_t len,
         
     | 
| 
      
 1200 
     | 
    
         
            +
                                          const void* secret, size_t secretSize,
         
     | 
| 
      
 1201 
     | 
    
         
            +
                                          XXH64_hash_t seed);
         
     | 
| 
      
 1202 
     | 
    
         
            +
             
     | 
| 
      
 1203 
     | 
    
         
            +
            XXH_PUBLIC_API XXH128_hash_t
         
     | 
| 
      
 1204 
     | 
    
         
            +
            XXH3_128bits_withSecretandSeed(const void* data, size_t len,
         
     | 
| 
      
 1205 
     | 
    
         
            +
                                           const void* secret, size_t secretSize,
         
     | 
| 
      
 1206 
     | 
    
         
            +
                                           XXH64_hash_t seed64);
         
     | 
| 
      
 1207 
     | 
    
         
            +
             
     | 
| 
      
 1208 
     | 
    
         
            +
            XXH_PUBLIC_API XXH_errorcode
         
     | 
| 
      
 1209 
     | 
    
         
            +
            XXH3_64bits_reset_withSecretandSeed(XXH3_state_t* statePtr,
         
     | 
| 
      
 1210 
     | 
    
         
            +
                                                const void* secret, size_t secretSize,
         
     | 
| 
      
 1211 
     | 
    
         
            +
                                                XXH64_hash_t seed64);
         
     | 
| 
      
 1212 
     | 
    
         
            +
             
     | 
| 
      
 1213 
     | 
    
         
            +
            XXH_PUBLIC_API XXH_errorcode
         
     | 
| 
      
 1214 
     | 
    
         
            +
            XXH3_128bits_reset_withSecretandSeed(XXH3_state_t* statePtr,
         
     | 
| 
      
 1215 
     | 
    
         
            +
                                                 const void* secret, size_t secretSize,
         
     | 
| 
      
 1216 
     | 
    
         
            +
                                                 XXH64_hash_t seed64);
         
     | 
| 
       1057 
1217 
     | 
    
         | 
| 
       1058 
1218 
     | 
    
         | 
| 
       1059 
1219 
     | 
    
         
             
            #endif  /* XXH_NO_LONG_LONG */
         
     | 
| 
         @@ -1159,22 +1319,12 @@ XXH_PUBLIC_API XXH128_hash_t XXH128(const void* data, size_t len, XXH64_hash_t s 
     | 
|
| 
       1159 
1319 
     | 
    
         
             
             *   care, as what works on one compiler/platform/optimization level may cause
         
     | 
| 
       1160 
1320 
     | 
    
         
             
             *   another to read garbage data or even crash.
         
     | 
| 
       1161 
1321 
     | 
    
         
             
             *
         
     | 
| 
       1162 
     | 
    
         
            -
             * See  
     | 
| 
      
 1322 
     | 
    
         
            +
             * See http://fastcompression.blogspot.com/2015/08/accessing-unaligned-memory.html for details.
         
     | 
| 
       1163 
1323 
     | 
    
         
             
             *
         
     | 
| 
       1164 
1324 
     | 
    
         
             
             * Prefer these methods in priority order (0 > 3 > 1 > 2)
         
     | 
| 
       1165 
1325 
     | 
    
         
             
             */
         
     | 
| 
       1166 
1326 
     | 
    
         
             
            #  define XXH_FORCE_MEMORY_ACCESS 0
         
     | 
| 
       1167 
     | 
    
         
            -
             
     | 
| 
       1168 
     | 
    
         
            -
             * @def XXH_ACCEPT_NULL_INPUT_POINTER
         
     | 
| 
       1169 
     | 
    
         
            -
             * @brief Whether to add explicit `NULL` checks.
         
     | 
| 
       1170 
     | 
    
         
            -
             *
         
     | 
| 
       1171 
     | 
    
         
            -
             * If the input pointer is `NULL` and the length is non-zero, xxHash's default
         
     | 
| 
       1172 
     | 
    
         
            -
             * behavior is to dereference it, triggering a segfault.
         
     | 
| 
       1173 
     | 
    
         
            -
             *
         
     | 
| 
       1174 
     | 
    
         
            -
             * When this macro is enabled, xxHash actively checks the input for a null pointer.
         
     | 
| 
       1175 
     | 
    
         
            -
             * If it is, the result for null input pointers is the same as a zero-length input.
         
     | 
| 
       1176 
     | 
    
         
            -
             */
         
     | 
| 
       1177 
     | 
    
         
            -
            #  define XXH_ACCEPT_NULL_INPUT_POINTER 0
         
     | 
| 
      
 1327 
     | 
    
         
            +
             
     | 
| 
       1178 
1328 
     | 
    
         
             
            /*!
         
     | 
| 
       1179 
1329 
     | 
    
         
             
             * @def XXH_FORCE_ALIGN_CHECK
         
     | 
| 
       1180 
1330 
     | 
    
         
             
             * @brief If defined to non-zero, adds a special path for aligned inputs (XXH32()
         
     | 
| 
         @@ -1226,18 +1376,16 @@ XXH_PUBLIC_API XXH128_hash_t XXH128(const void* data, size_t len, XXH64_hash_t s 
     | 
|
| 
       1226 
1376 
     | 
    
         
             
            #  define XXH_NO_INLINE_HINTS 0
         
     | 
| 
       1227 
1377 
     | 
    
         | 
| 
       1228 
1378 
     | 
    
         
             
            /*!
         
     | 
| 
       1229 
     | 
    
         
            -
             * @def  
     | 
| 
       1230 
     | 
    
         
            -
             * @brief Whether to  
     | 
| 
       1231 
     | 
    
         
            -
             *
         
     | 
| 
       1232 
     | 
    
         
            -
             * For performance, `XXH32_finalize` and `XXH64_finalize` use an unrolled loop
         
     | 
| 
       1233 
     | 
    
         
            -
             * in the form of a switch statement.
         
     | 
| 
      
 1379 
     | 
    
         
            +
             * @def XXH32_ENDJMP
         
     | 
| 
      
 1380 
     | 
    
         
            +
             * @brief Whether to use a jump for `XXH32_finalize`.
         
     | 
| 
       1234 
1381 
     | 
    
         
             
             *
         
     | 
| 
       1235 
     | 
    
         
            -
             *  
     | 
| 
       1236 
     | 
    
         
            -
             *  
     | 
| 
      
 1382 
     | 
    
         
            +
             * For performance, `XXH32_finalize` uses multiple branches in the finalizer.
         
     | 
| 
      
 1383 
     | 
    
         
            +
             * This is generally preferable for performance,
         
     | 
| 
      
 1384 
     | 
    
         
            +
             * but depending on exact architecture, a jmp may be preferable.
         
     | 
| 
       1237 
1385 
     | 
    
         
             
             *
         
     | 
| 
       1238 
     | 
    
         
            -
             * This is  
     | 
| 
      
 1386 
     | 
    
         
            +
             * This setting is only possibly making a difference for very small inputs.
         
     | 
| 
       1239 
1387 
     | 
    
         
             
             */
         
     | 
| 
       1240 
     | 
    
         
            -
            #  define  
     | 
| 
      
 1388 
     | 
    
         
            +
            #  define XXH32_ENDJMP 0
         
     | 
| 
       1241 
1389 
     | 
    
         | 
| 
       1242 
1390 
     | 
    
         
             
            /*!
         
     | 
| 
       1243 
1391 
     | 
    
         
             
             * @internal
         
     | 
| 
         @@ -1254,18 +1402,25 @@ XXH_PUBLIC_API XXH128_hash_t XXH128(const void* data, size_t len, XXH64_hash_t s 
     | 
|
| 
       1254 
1402 
     | 
    
         
             
             */
         
     | 
| 
       1255 
1403 
     | 
    
         | 
| 
       1256 
1404 
     | 
    
         
             
            #ifndef XXH_FORCE_MEMORY_ACCESS   /* can be defined externally, on command line for example */
         
     | 
| 
       1257 
     | 
    
         
            -
               /* prefer __packed__ structures (method 1) for gcc on armv7 and  
     | 
| 
       1258 
     | 
    
         
            -
            #  if !defined(__clang__) &&  
     | 
| 
      
 1405 
     | 
    
         
            +
               /* prefer __packed__ structures (method 1) for gcc on armv7+ and mips */
         
     | 
| 
      
 1406 
     | 
    
         
            +
            #  if !defined(__clang__) && \
         
     | 
| 
      
 1407 
     | 
    
         
            +
            ( \
         
     | 
| 
       1259 
1408 
     | 
    
         
             
                (defined(__INTEL_COMPILER) && !defined(_WIN32)) || \
         
     | 
| 
       1260 
     | 
    
         
            -
                ( 
     | 
| 
      
 1409 
     | 
    
         
            +
                ( \
         
     | 
| 
      
 1410 
     | 
    
         
            +
                    defined(__GNUC__) && ( \
         
     | 
| 
      
 1411 
     | 
    
         
            +
                        (defined(__ARM_ARCH) && __ARM_ARCH >= 7) || \
         
     | 
| 
      
 1412 
     | 
    
         
            +
                        ( \
         
     | 
| 
      
 1413 
     | 
    
         
            +
                            defined(__mips__) && \
         
     | 
| 
      
 1414 
     | 
    
         
            +
                            (__mips <= 5 || __mips_isa_rev < 6) && \
         
     | 
| 
      
 1415 
     | 
    
         
            +
                            (!defined(__mips16) || defined(__mips_mips16e2)) \
         
     | 
| 
      
 1416 
     | 
    
         
            +
                        ) \
         
     | 
| 
      
 1417 
     | 
    
         
            +
                    ) \
         
     | 
| 
      
 1418 
     | 
    
         
            +
                ) \
         
     | 
| 
      
 1419 
     | 
    
         
            +
            )
         
     | 
| 
       1261 
1420 
     | 
    
         
             
            #    define XXH_FORCE_MEMORY_ACCESS 1
         
     | 
| 
       1262 
1421 
     | 
    
         
             
            #  endif
         
     | 
| 
       1263 
1422 
     | 
    
         
             
            #endif
         
     | 
| 
       1264 
1423 
     | 
    
         | 
| 
       1265 
     | 
    
         
            -
            #ifndef XXH_ACCEPT_NULL_INPUT_POINTER   /* can be defined externally */
         
     | 
| 
       1266 
     | 
    
         
            -
            #  define XXH_ACCEPT_NULL_INPUT_POINTER 0
         
     | 
| 
       1267 
     | 
    
         
            -
            #endif
         
     | 
| 
       1268 
     | 
    
         
            -
             
     | 
| 
       1269 
1424 
     | 
    
         
             
            #ifndef XXH_FORCE_ALIGN_CHECK  /* can be defined externally */
         
     | 
| 
       1270 
1425 
     | 
    
         
             
            #  if defined(__i386)  || defined(__x86_64__) || defined(__aarch64__) \
         
     | 
| 
       1271 
1426 
     | 
    
         
             
               || defined(_M_IX86) || defined(_M_X64)     || defined(_M_ARM64) /* visual */
         
     | 
| 
         @@ -1284,12 +1439,9 @@ XXH_PUBLIC_API XXH128_hash_t XXH128(const void* data, size_t len, XXH64_hash_t s 
     | 
|
| 
       1284 
1439 
     | 
    
         
             
            #  endif
         
     | 
| 
       1285 
1440 
     | 
    
         
             
            #endif
         
     | 
| 
       1286 
1441 
     | 
    
         | 
| 
       1287 
     | 
    
         
            -
            #ifndef  
     | 
| 
       1288 
     | 
    
         
            -
             
     | 
| 
       1289 
     | 
    
         
            -
            # 
     | 
| 
       1290 
     | 
    
         
            -
            #  else
         
     | 
| 
       1291 
     | 
    
         
            -
            #    define XXH_REROLL 0
         
     | 
| 
       1292 
     | 
    
         
            -
            #  endif
         
     | 
| 
      
 1442 
     | 
    
         
            +
            #ifndef XXH32_ENDJMP
         
     | 
| 
      
 1443 
     | 
    
         
            +
            /* generally preferable for performance */
         
     | 
| 
      
 1444 
     | 
    
         
            +
            #  define XXH32_ENDJMP 0
         
     | 
| 
       1293 
1445 
     | 
    
         
             
            #endif
         
     | 
| 
       1294 
1446 
     | 
    
         | 
| 
       1295 
1447 
     | 
    
         
             
            /*!
         
     | 
| 
         @@ -1341,19 +1493,19 @@ static void* XXH_memcpy(void* dest, const void* src, size_t size) 
     | 
|
| 
       1341 
1493 
     | 
    
         
             
            #endif
         
     | 
| 
       1342 
1494 
     | 
    
         | 
| 
       1343 
1495 
     | 
    
         
             
            #if XXH_NO_INLINE_HINTS  /* disable inlining hints */
         
     | 
| 
       1344 
     | 
    
         
            -
            #  if defined(__GNUC__)
         
     | 
| 
      
 1496 
     | 
    
         
            +
            #  if defined(__GNUC__) || defined(__clang__)
         
     | 
| 
       1345 
1497 
     | 
    
         
             
            #    define XXH_FORCE_INLINE static __attribute__((unused))
         
     | 
| 
       1346 
1498 
     | 
    
         
             
            #  else
         
     | 
| 
       1347 
1499 
     | 
    
         
             
            #    define XXH_FORCE_INLINE static
         
     | 
| 
       1348 
1500 
     | 
    
         
             
            #  endif
         
     | 
| 
       1349 
1501 
     | 
    
         
             
            #  define XXH_NO_INLINE static
         
     | 
| 
       1350 
1502 
     | 
    
         
             
            /* enable inlining hints */
         
     | 
| 
      
 1503 
     | 
    
         
            +
            #elif defined(__GNUC__) || defined(__clang__)
         
     | 
| 
      
 1504 
     | 
    
         
            +
            #  define XXH_FORCE_INLINE static __inline__ __attribute__((always_inline, unused))
         
     | 
| 
      
 1505 
     | 
    
         
            +
            #  define XXH_NO_INLINE static __attribute__((noinline))
         
     | 
| 
       1351 
1506 
     | 
    
         
             
            #elif defined(_MSC_VER)  /* Visual Studio */
         
     | 
| 
       1352 
1507 
     | 
    
         
             
            #  define XXH_FORCE_INLINE static __forceinline
         
     | 
| 
       1353 
1508 
     | 
    
         
             
            #  define XXH_NO_INLINE static __declspec(noinline)
         
     | 
| 
       1354 
     | 
    
         
            -
            #elif defined(__GNUC__)
         
     | 
| 
       1355 
     | 
    
         
            -
            #  define XXH_FORCE_INLINE static __inline__ __attribute__((always_inline, unused))
         
     | 
| 
       1356 
     | 
    
         
            -
            #  define XXH_NO_INLINE static __attribute__((noinline))
         
     | 
| 
       1357 
1509 
     | 
    
         
             
            #elif defined (__cplusplus) \
         
     | 
| 
       1358 
1510 
     | 
    
         
             
              || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L))   /* C99 */
         
     | 
| 
       1359 
1511 
     | 
    
         
             
            #  define XXH_FORCE_INLINE static inline
         
     | 
| 
         @@ -1392,7 +1544,17 @@ static void* XXH_memcpy(void* dest, const void* src, size_t size) 
     | 
|
| 
       1392 
1544 
     | 
    
         
             
            #endif
         
     | 
| 
       1393 
1545 
     | 
    
         | 
| 
       1394 
1546 
     | 
    
         
             
            /* note: use after variable declarations */
         
     | 
| 
       1395 
     | 
    
         
            -
            # 
     | 
| 
      
 1547 
     | 
    
         
            +
            #ifndef XXH_STATIC_ASSERT
         
     | 
| 
      
 1548 
     | 
    
         
            +
            #  if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)    /* C11 */
         
     | 
| 
      
 1549 
     | 
    
         
            +
            #    include <assert.h>
         
     | 
| 
      
 1550 
     | 
    
         
            +
            #    define XXH_STATIC_ASSERT_WITH_MESSAGE(c,m) do { static_assert((c),m); } while(0)
         
     | 
| 
      
 1551 
     | 
    
         
            +
            #  elif defined(__cplusplus) && (__cplusplus >= 201103L)            /* C++11 */
         
     | 
| 
      
 1552 
     | 
    
         
            +
            #    define XXH_STATIC_ASSERT_WITH_MESSAGE(c,m) do { static_assert((c),m); } while(0)
         
     | 
| 
      
 1553 
     | 
    
         
            +
            #  else
         
     | 
| 
      
 1554 
     | 
    
         
            +
            #    define XXH_STATIC_ASSERT_WITH_MESSAGE(c,m) do { struct xxh_sa { char x[(c) ? 1 : -1]; }; } while(0)
         
     | 
| 
      
 1555 
     | 
    
         
            +
            #  endif
         
     | 
| 
      
 1556 
     | 
    
         
            +
            #  define XXH_STATIC_ASSERT(c) XXH_STATIC_ASSERT_WITH_MESSAGE((c),#c)
         
     | 
| 
      
 1557 
     | 
    
         
            +
            #endif
         
     | 
| 
       1396 
1558 
     | 
    
         | 
| 
       1397 
1559 
     | 
    
         
             
            /*!
         
     | 
| 
       1398 
1560 
     | 
    
         
             
             * @internal
         
     | 
| 
         @@ -1410,7 +1572,7 @@ static void* XXH_memcpy(void* dest, const void* src, size_t size) 
     | 
|
| 
       1410 
1572 
     | 
    
         
             
             * We also use it to prevent unwanted constant folding for AArch64 in
         
     | 
| 
       1411 
1573 
     | 
    
         
             
             * XXH3_initCustomSecret_scalar().
         
     | 
| 
       1412 
1574 
     | 
    
         
             
             */
         
     | 
| 
       1413 
     | 
    
         
            -
            # 
     | 
| 
      
 1575 
     | 
    
         
            +
            #if defined(__GNUC__) || defined(__clang__)
         
     | 
| 
       1414 
1576 
     | 
    
         
             
            #  define XXH_COMPILER_GUARD(var) __asm__ __volatile__("" : "+r" (var))
         
     | 
| 
       1415 
1577 
     | 
    
         
             
            #else
         
     | 
| 
       1416 
1578 
     | 
    
         
             
            #  define XXH_COMPILER_GUARD(var) ((void)0)
         
     | 
| 
         @@ -1521,12 +1683,12 @@ static xxh_u32 XXH_read32(const void* ptr) 
     | 
|
| 
       1521 
1683 
     | 
    
         | 
| 
       1522 
1684 
     | 
    
         
             
            /*
         
     | 
| 
       1523 
1685 
     | 
    
         
             
             * Portable and safe solution. Generally efficient.
         
     | 
| 
       1524 
     | 
    
         
            -
             * see:  
     | 
| 
      
 1686 
     | 
    
         
            +
             * see: http://fastcompression.blogspot.com/2015/08/accessing-unaligned-memory.html
         
     | 
| 
       1525 
1687 
     | 
    
         
             
             */
         
     | 
| 
       1526 
1688 
     | 
    
         
             
            static xxh_u32 XXH_read32(const void* memPtr)
         
     | 
| 
       1527 
1689 
     | 
    
         
             
            {
         
     | 
| 
       1528 
1690 
     | 
    
         
             
                xxh_u32 val;
         
     | 
| 
       1529 
     | 
    
         
            -
                 
     | 
| 
      
 1691 
     | 
    
         
            +
                XXH_memcpy(&val, memPtr, sizeof(val));
         
     | 
| 
       1530 
1692 
     | 
    
         
             
                return val;
         
     | 
| 
       1531 
1693 
     | 
    
         
             
            }
         
     | 
| 
       1532 
1694 
     | 
    
         | 
| 
         @@ -1534,7 +1696,6 @@ static xxh_u32 XXH_read32(const void* memPtr) 
     | 
|
| 
       1534 
1696 
     | 
    
         | 
| 
       1535 
1697 
     | 
    
         | 
| 
       1536 
1698 
     | 
    
         
             
            /* ***   Endianness   *** */
         
     | 
| 
       1537 
     | 
    
         
            -
            typedef enum { XXH_bigEndian=0, XXH_littleEndian=1 } XXH_endianess;
         
     | 
| 
       1538 
1699 
     | 
    
         | 
| 
       1539 
1700 
     | 
    
         
             
            /*!
         
     | 
| 
       1540 
1701 
     | 
    
         
             
             * @ingroup tuning
         
     | 
| 
         @@ -1544,8 +1705,8 @@ typedef enum { XXH_bigEndian=0, XXH_littleEndian=1 } XXH_endianess; 
     | 
|
| 
       1544 
1705 
     | 
    
         
             
             * Defined to 1 if the target is little endian, or 0 if it is big endian.
         
     | 
| 
       1545 
1706 
     | 
    
         
             
             * It can be defined externally, for example on the compiler command line.
         
     | 
| 
       1546 
1707 
     | 
    
         
             
             *
         
     | 
| 
       1547 
     | 
    
         
            -
             * If it is not defined, 
     | 
| 
       1548 
     | 
    
         
            -
             * is used instead.
         
     | 
| 
      
 1708 
     | 
    
         
            +
             * If it is not defined,
         
     | 
| 
      
 1709 
     | 
    
         
            +
             * a runtime check (which is usually constant folded) is used instead.
         
     | 
| 
       1549 
1710 
     | 
    
         
             
             *
         
     | 
| 
       1550 
1711 
     | 
    
         
             
             * @note
         
     | 
| 
       1551 
1712 
     | 
    
         
             
             *   This is not necessarily defined to an integer constant.
         
     | 
| 
         @@ -1844,8 +2005,10 @@ XXH32_finalize(xxh_u32 h32, const xxh_u8* ptr, size_t len, XXH_alignment align) 
     | 
|
| 
       1844 
2005 
     | 
    
         
             
                h32  = XXH_rotl32(h32, 17) * XXH_PRIME32_4;     \
         
     | 
| 
       1845 
2006 
     | 
    
         
             
            } while (0)
         
     | 
| 
       1846 
2007 
     | 
    
         | 
| 
       1847 
     | 
    
         
            -
                 
     | 
| 
       1848 
     | 
    
         
            -
             
     | 
| 
      
 2008 
     | 
    
         
            +
                if (ptr==NULL) XXH_ASSERT(len == 0);
         
     | 
| 
      
 2009 
     | 
    
         
            +
             
     | 
| 
      
 2010 
     | 
    
         
            +
                /* Compact rerolled version; generally faster */
         
     | 
| 
      
 2011 
     | 
    
         
            +
                if (!XXH32_ENDJMP) {
         
     | 
| 
       1849 
2012 
     | 
    
         
             
                    len &= 15;
         
     | 
| 
       1850 
2013 
     | 
    
         
             
                    while (len >= 4) {
         
     | 
| 
       1851 
2014 
     | 
    
         
             
                        XXH_PROCESS4;
         
     | 
| 
         @@ -1859,41 +2022,41 @@ XXH32_finalize(xxh_u32 h32, const xxh_u8* ptr, size_t len, XXH_alignment align) 
     | 
|
| 
       1859 
2022 
     | 
    
         
             
                } else {
         
     | 
| 
       1860 
2023 
     | 
    
         
             
                     switch(len&15) /* or switch(bEnd - p) */ {
         
     | 
| 
       1861 
2024 
     | 
    
         
             
                       case 12:      XXH_PROCESS4;
         
     | 
| 
       1862 
     | 
    
         
            -
                                      
     | 
| 
      
 2025 
     | 
    
         
            +
                                     XXH_FALLTHROUGH;
         
     | 
| 
       1863 
2026 
     | 
    
         
             
                       case 8:       XXH_PROCESS4;
         
     | 
| 
       1864 
     | 
    
         
            -
                                      
     | 
| 
      
 2027 
     | 
    
         
            +
                                     XXH_FALLTHROUGH;
         
     | 
| 
       1865 
2028 
     | 
    
         
             
                       case 4:       XXH_PROCESS4;
         
     | 
| 
       1866 
2029 
     | 
    
         
             
                                     return XXH32_avalanche(h32);
         
     | 
| 
       1867 
2030 
     | 
    
         | 
| 
       1868 
2031 
     | 
    
         
             
                       case 13:      XXH_PROCESS4;
         
     | 
| 
       1869 
     | 
    
         
            -
                                      
     | 
| 
      
 2032 
     | 
    
         
            +
                                     XXH_FALLTHROUGH;
         
     | 
| 
       1870 
2033 
     | 
    
         
             
                       case 9:       XXH_PROCESS4;
         
     | 
| 
       1871 
     | 
    
         
            -
                                      
     | 
| 
      
 2034 
     | 
    
         
            +
                                     XXH_FALLTHROUGH;
         
     | 
| 
       1872 
2035 
     | 
    
         
             
                       case 5:       XXH_PROCESS4;
         
     | 
| 
       1873 
2036 
     | 
    
         
             
                                     XXH_PROCESS1;
         
     | 
| 
       1874 
2037 
     | 
    
         
             
                                     return XXH32_avalanche(h32);
         
     | 
| 
       1875 
2038 
     | 
    
         | 
| 
       1876 
2039 
     | 
    
         
             
                       case 14:      XXH_PROCESS4;
         
     | 
| 
       1877 
     | 
    
         
            -
                                      
     | 
| 
      
 2040 
     | 
    
         
            +
                                     XXH_FALLTHROUGH;
         
     | 
| 
       1878 
2041 
     | 
    
         
             
                       case 10:      XXH_PROCESS4;
         
     | 
| 
       1879 
     | 
    
         
            -
                                      
     | 
| 
      
 2042 
     | 
    
         
            +
                                     XXH_FALLTHROUGH;
         
     | 
| 
       1880 
2043 
     | 
    
         
             
                       case 6:       XXH_PROCESS4;
         
     | 
| 
       1881 
2044 
     | 
    
         
             
                                     XXH_PROCESS1;
         
     | 
| 
       1882 
2045 
     | 
    
         
             
                                     XXH_PROCESS1;
         
     | 
| 
       1883 
2046 
     | 
    
         
             
                                     return XXH32_avalanche(h32);
         
     | 
| 
       1884 
2047 
     | 
    
         | 
| 
       1885 
2048 
     | 
    
         
             
                       case 15:      XXH_PROCESS4;
         
     | 
| 
       1886 
     | 
    
         
            -
                                      
     | 
| 
      
 2049 
     | 
    
         
            +
                                     XXH_FALLTHROUGH;
         
     | 
| 
       1887 
2050 
     | 
    
         
             
                       case 11:      XXH_PROCESS4;
         
     | 
| 
       1888 
     | 
    
         
            -
                                      
     | 
| 
      
 2051 
     | 
    
         
            +
                                     XXH_FALLTHROUGH;
         
     | 
| 
       1889 
2052 
     | 
    
         
             
                       case 7:       XXH_PROCESS4;
         
     | 
| 
       1890 
     | 
    
         
            -
                                      
     | 
| 
      
 2053 
     | 
    
         
            +
                                     XXH_FALLTHROUGH;
         
     | 
| 
       1891 
2054 
     | 
    
         
             
                       case 3:       XXH_PROCESS1;
         
     | 
| 
       1892 
     | 
    
         
            -
                                      
     | 
| 
      
 2055 
     | 
    
         
            +
                                     XXH_FALLTHROUGH;
         
     | 
| 
       1893 
2056 
     | 
    
         
             
                       case 2:       XXH_PROCESS1;
         
     | 
| 
       1894 
     | 
    
         
            -
                                      
     | 
| 
      
 2057 
     | 
    
         
            +
                                     XXH_FALLTHROUGH;
         
     | 
| 
       1895 
2058 
     | 
    
         
             
                       case 1:       XXH_PROCESS1;
         
     | 
| 
       1896 
     | 
    
         
            -
                                      
     | 
| 
      
 2059 
     | 
    
         
            +
                                     XXH_FALLTHROUGH;
         
     | 
| 
       1897 
2060 
     | 
    
         
             
                       case 0:       return XXH32_avalanche(h32);
         
     | 
| 
       1898 
2061 
     | 
    
         
             
                    }
         
     | 
| 
       1899 
2062 
     | 
    
         
             
                    XXH_ASSERT(0);
         
     | 
| 
         @@ -1913,24 +2076,19 @@ XXH32_finalize(xxh_u32 h32, const xxh_u8* ptr, size_t len, XXH_alignment align) 
     | 
|
| 
       1913 
2076 
     | 
    
         
             
             * @internal
         
     | 
| 
       1914 
2077 
     | 
    
         
             
             * @brief The implementation for @ref XXH32().
         
     | 
| 
       1915 
2078 
     | 
    
         
             
             *
         
     | 
| 
       1916 
     | 
    
         
            -
             * @param input, len, seed Directly passed from @ref XXH32().
         
     | 
| 
      
 2079 
     | 
    
         
            +
             * @param input , len , seed Directly passed from @ref XXH32().
         
     | 
| 
       1917 
2080 
     | 
    
         
             
             * @param align Whether @p input is aligned.
         
     | 
| 
       1918 
2081 
     | 
    
         
             
             * @return The calculated hash.
         
     | 
| 
       1919 
2082 
     | 
    
         
             
             */
         
     | 
| 
       1920 
2083 
     | 
    
         
             
            XXH_FORCE_INLINE xxh_u32
         
     | 
| 
       1921 
2084 
     | 
    
         
             
            XXH32_endian_align(const xxh_u8* input, size_t len, xxh_u32 seed, XXH_alignment align)
         
     | 
| 
       1922 
2085 
     | 
    
         
             
            {
         
     | 
| 
       1923 
     | 
    
         
            -
                const xxh_u8* bEnd = input ? input + len : NULL;
         
     | 
| 
       1924 
2086 
     | 
    
         
             
                xxh_u32 h32;
         
     | 
| 
       1925 
2087 
     | 
    
         | 
| 
       1926 
     | 
    
         
            -
             
     | 
| 
       1927 
     | 
    
         
            -
                if (input==NULL) {
         
     | 
| 
       1928 
     | 
    
         
            -
                    len=0;
         
     | 
| 
       1929 
     | 
    
         
            -
                    bEnd=input=(const xxh_u8*)(size_t)16;
         
     | 
| 
       1930 
     | 
    
         
            -
                }
         
     | 
| 
       1931 
     | 
    
         
            -
            #endif
         
     | 
| 
      
 2088 
     | 
    
         
            +
                if (input==NULL) XXH_ASSERT(len == 0);
         
     | 
| 
       1932 
2089 
     | 
    
         | 
| 
       1933 
2090 
     | 
    
         
             
                if (len>=16) {
         
     | 
| 
      
 2091 
     | 
    
         
            +
                    const xxh_u8* const bEnd = input + len;
         
     | 
| 
       1934 
2092 
     | 
    
         
             
                    const xxh_u8* const limit = bEnd - 15;
         
     | 
| 
       1935 
2093 
     | 
    
         
             
                    xxh_u32 v1 = seed + XXH_PRIME32_1 + XXH_PRIME32_2;
         
     | 
| 
       1936 
2094 
     | 
    
         
             
                    xxh_u32 v2 = seed + XXH_PRIME32_2;
         
     | 
| 
         @@ -1994,7 +2152,7 @@ XXH_PUBLIC_API XXH_errorcode XXH32_freeState(XXH32_state_t* statePtr) 
     | 
|
| 
       1994 
2152 
     | 
    
         
             
            /*! @ingroup xxh32_family */
         
     | 
| 
       1995 
2153 
     | 
    
         
             
            XXH_PUBLIC_API void XXH32_copyState(XXH32_state_t* dstState, const XXH32_state_t* srcState)
         
     | 
| 
       1996 
2154 
     | 
    
         
             
            {
         
     | 
| 
       1997 
     | 
    
         
            -
                 
     | 
| 
      
 2155 
     | 
    
         
            +
                XXH_memcpy(dstState, srcState, sizeof(*dstState));
         
     | 
| 
       1998 
2156 
     | 
    
         
             
            }
         
     | 
| 
       1999 
2157 
     | 
    
         | 
| 
       2000 
2158 
     | 
    
         
             
            /*! @ingroup xxh32_family */
         
     | 
| 
         @@ -2002,12 +2160,12 @@ XXH_PUBLIC_API XXH_errorcode XXH32_reset(XXH32_state_t* statePtr, XXH32_hash_t s 
     | 
|
| 
       2002 
2160 
     | 
    
         
             
            {
         
     | 
| 
       2003 
2161 
     | 
    
         
             
                XXH32_state_t state;   /* using a local state to memcpy() in order to avoid strict-aliasing warnings */
         
     | 
| 
       2004 
2162 
     | 
    
         
             
                memset(&state, 0, sizeof(state));
         
     | 
| 
       2005 
     | 
    
         
            -
                state. 
     | 
| 
       2006 
     | 
    
         
            -
                state. 
     | 
| 
       2007 
     | 
    
         
            -
                state. 
     | 
| 
       2008 
     | 
    
         
            -
                state. 
     | 
| 
      
 2163 
     | 
    
         
            +
                state.v[0] = seed + XXH_PRIME32_1 + XXH_PRIME32_2;
         
     | 
| 
      
 2164 
     | 
    
         
            +
                state.v[1] = seed + XXH_PRIME32_2;
         
     | 
| 
      
 2165 
     | 
    
         
            +
                state.v[2] = seed + 0;
         
     | 
| 
      
 2166 
     | 
    
         
            +
                state.v[3] = seed - XXH_PRIME32_1;
         
     | 
| 
       2009 
2167 
     | 
    
         
             
                /* do not write into reserved, planned to be removed in a future version */
         
     | 
| 
       2010 
     | 
    
         
            -
                 
     | 
| 
      
 2168 
     | 
    
         
            +
                XXH_memcpy(statePtr, &state, sizeof(state) - sizeof(state.reserved));
         
     | 
| 
       2011 
2169 
     | 
    
         
             
                return XXH_OK;
         
     | 
| 
       2012 
2170 
     | 
    
         
             
            }
         
     | 
| 
       2013 
2171 
     | 
    
         | 
| 
         @@ -2016,12 +2174,10 @@ XXH_PUBLIC_API XXH_errorcode XXH32_reset(XXH32_state_t* statePtr, XXH32_hash_t s 
     | 
|
| 
       2016 
2174 
     | 
    
         
             
            XXH_PUBLIC_API XXH_errorcode
         
     | 
| 
       2017 
2175 
     | 
    
         
             
            XXH32_update(XXH32_state_t* state, const void* input, size_t len)
         
     | 
| 
       2018 
2176 
     | 
    
         
             
            {
         
     | 
| 
       2019 
     | 
    
         
            -
                if (input==NULL)
         
     | 
| 
       2020 
     | 
    
         
            -
             
     | 
| 
      
 2177 
     | 
    
         
            +
                if (input==NULL) {
         
     | 
| 
      
 2178 
     | 
    
         
            +
                    XXH_ASSERT(len == 0);
         
     | 
| 
       2021 
2179 
     | 
    
         
             
                    return XXH_OK;
         
     | 
| 
       2022 
     | 
    
         
            -
             
     | 
| 
       2023 
     | 
    
         
            -
                    return XXH_ERROR;
         
     | 
| 
       2024 
     | 
    
         
            -
            #endif
         
     | 
| 
      
 2180 
     | 
    
         
            +
                }
         
     | 
| 
       2025 
2181 
     | 
    
         | 
| 
       2026 
2182 
     | 
    
         
             
                {   const xxh_u8* p = (const xxh_u8*)input;
         
     | 
| 
       2027 
2183 
     | 
    
         
             
                    const xxh_u8* const bEnd = p + len;
         
     | 
| 
         @@ -2038,10 +2194,10 @@ XXH32_update(XXH32_state_t* state, const void* input, size_t len) 
     | 
|
| 
       2038 
2194 
     | 
    
         
             
                    if (state->memsize) {   /* some data left from previous update */
         
     | 
| 
       2039 
2195 
     | 
    
         
             
                        XXH_memcpy((xxh_u8*)(state->mem32) + state->memsize, input, 16-state->memsize);
         
     | 
| 
       2040 
2196 
     | 
    
         
             
                        {   const xxh_u32* p32 = state->mem32;
         
     | 
| 
       2041 
     | 
    
         
            -
                            state-> 
     | 
| 
       2042 
     | 
    
         
            -
                            state-> 
     | 
| 
       2043 
     | 
    
         
            -
                            state-> 
     | 
| 
       2044 
     | 
    
         
            -
                            state-> 
     | 
| 
      
 2197 
     | 
    
         
            +
                            state->v[0] = XXH32_round(state->v[0], XXH_readLE32(p32)); p32++;
         
     | 
| 
      
 2198 
     | 
    
         
            +
                            state->v[1] = XXH32_round(state->v[1], XXH_readLE32(p32)); p32++;
         
     | 
| 
      
 2199 
     | 
    
         
            +
                            state->v[2] = XXH32_round(state->v[2], XXH_readLE32(p32)); p32++;
         
     | 
| 
      
 2200 
     | 
    
         
            +
                            state->v[3] = XXH32_round(state->v[3], XXH_readLE32(p32));
         
     | 
| 
       2045 
2201 
     | 
    
         
             
                        }
         
     | 
| 
       2046 
2202 
     | 
    
         
             
                        p += 16-state->memsize;
         
     | 
| 
       2047 
2203 
     | 
    
         
             
                        state->memsize = 0;
         
     | 
| 
         @@ -2049,22 +2205,14 @@ XXH32_update(XXH32_state_t* state, const void* input, size_t len) 
     | 
|
| 
       2049 
2205 
     | 
    
         | 
| 
       2050 
2206 
     | 
    
         
             
                    if (p <= bEnd-16) {
         
     | 
| 
       2051 
2207 
     | 
    
         
             
                        const xxh_u8* const limit = bEnd - 16;
         
     | 
| 
       2052 
     | 
    
         
            -
                        xxh_u32 v1 = state->v1;
         
     | 
| 
       2053 
     | 
    
         
            -
                        xxh_u32 v2 = state->v2;
         
     | 
| 
       2054 
     | 
    
         
            -
                        xxh_u32 v3 = state->v3;
         
     | 
| 
       2055 
     | 
    
         
            -
                        xxh_u32 v4 = state->v4;
         
     | 
| 
       2056 
2208 
     | 
    
         | 
| 
       2057 
2209 
     | 
    
         
             
                        do {
         
     | 
| 
       2058 
     | 
    
         
            -
                             
     | 
| 
       2059 
     | 
    
         
            -
                             
     | 
| 
       2060 
     | 
    
         
            -
                             
     | 
| 
       2061 
     | 
    
         
            -
                             
     | 
| 
      
 2210 
     | 
    
         
            +
                            state->v[0] = XXH32_round(state->v[0], XXH_readLE32(p)); p+=4;
         
     | 
| 
      
 2211 
     | 
    
         
            +
                            state->v[1] = XXH32_round(state->v[1], XXH_readLE32(p)); p+=4;
         
     | 
| 
      
 2212 
     | 
    
         
            +
                            state->v[2] = XXH32_round(state->v[2], XXH_readLE32(p)); p+=4;
         
     | 
| 
      
 2213 
     | 
    
         
            +
                            state->v[3] = XXH32_round(state->v[3], XXH_readLE32(p)); p+=4;
         
     | 
| 
       2062 
2214 
     | 
    
         
             
                        } while (p<=limit);
         
     | 
| 
       2063 
2215 
     | 
    
         | 
| 
       2064 
     | 
    
         
            -
                        state->v1 = v1;
         
     | 
| 
       2065 
     | 
    
         
            -
                        state->v2 = v2;
         
     | 
| 
       2066 
     | 
    
         
            -
                        state->v3 = v3;
         
     | 
| 
       2067 
     | 
    
         
            -
                        state->v4 = v4;
         
     | 
| 
       2068 
2216 
     | 
    
         
             
                    }
         
     | 
| 
       2069 
2217 
     | 
    
         | 
| 
       2070 
2218 
     | 
    
         
             
                    if (p < bEnd) {
         
     | 
| 
         @@ -2083,12 +2231,12 @@ XXH_PUBLIC_API XXH32_hash_t XXH32_digest(const XXH32_state_t* state) 
     | 
|
| 
       2083 
2231 
     | 
    
         
             
                xxh_u32 h32;
         
     | 
| 
       2084 
2232 
     | 
    
         | 
| 
       2085 
2233 
     | 
    
         
             
                if (state->large_len) {
         
     | 
| 
       2086 
     | 
    
         
            -
                    h32 = XXH_rotl32(state-> 
     | 
| 
       2087 
     | 
    
         
            -
                        + XXH_rotl32(state-> 
     | 
| 
       2088 
     | 
    
         
            -
                        + XXH_rotl32(state-> 
     | 
| 
       2089 
     | 
    
         
            -
                        + XXH_rotl32(state-> 
     | 
| 
      
 2234 
     | 
    
         
            +
                    h32 = XXH_rotl32(state->v[0], 1)
         
     | 
| 
      
 2235 
     | 
    
         
            +
                        + XXH_rotl32(state->v[1], 7)
         
     | 
| 
      
 2236 
     | 
    
         
            +
                        + XXH_rotl32(state->v[2], 12)
         
     | 
| 
      
 2237 
     | 
    
         
            +
                        + XXH_rotl32(state->v[3], 18);
         
     | 
| 
       2090 
2238 
     | 
    
         
             
                } else {
         
     | 
| 
       2091 
     | 
    
         
            -
                    h32 = state-> 
     | 
| 
      
 2239 
     | 
    
         
            +
                    h32 = state->v[2] /* == seed */ + XXH_PRIME32_5;
         
     | 
| 
       2092 
2240 
     | 
    
         
             
                }
         
     | 
| 
       2093 
2241 
     | 
    
         | 
| 
       2094 
2242 
     | 
    
         
             
                h32 += state->total_len_32;
         
     | 
| 
         @@ -2117,7 +2265,7 @@ XXH_PUBLIC_API void XXH32_canonicalFromHash(XXH32_canonical_t* dst, XXH32_hash_t 
     | 
|
| 
       2117 
2265 
     | 
    
         
             
            {
         
     | 
| 
       2118 
2266 
     | 
    
         
             
                XXH_STATIC_ASSERT(sizeof(XXH32_canonical_t) == sizeof(XXH32_hash_t));
         
     | 
| 
       2119 
2267 
     | 
    
         
             
                if (XXH_CPU_LITTLE_ENDIAN) hash = XXH_swap32(hash);
         
     | 
| 
       2120 
     | 
    
         
            -
                 
     | 
| 
      
 2268 
     | 
    
         
            +
                XXH_memcpy(dst, &hash, sizeof(*dst));
         
     | 
| 
       2121 
2269 
     | 
    
         
             
            }
         
     | 
| 
       2122 
2270 
     | 
    
         
             
            /*! @ingroup xxh32_family */
         
     | 
| 
       2123 
2271 
     | 
    
         
             
            XXH_PUBLIC_API XXH32_hash_t XXH32_hashFromCanonical(const XXH32_canonical_t* src)
         
     | 
| 
         @@ -2178,12 +2326,12 @@ static xxh_u64 XXH_read64(const void* ptr) 
     | 
|
| 
       2178 
2326 
     | 
    
         | 
| 
       2179 
2327 
     | 
    
         
             
            /*
         
     | 
| 
       2180 
2328 
     | 
    
         
             
             * Portable and safe solution. Generally efficient.
         
     | 
| 
       2181 
     | 
    
         
            -
             * see:  
     | 
| 
      
 2329 
     | 
    
         
            +
             * see: http://fastcompression.blogspot.com/2015/08/accessing-unaligned-memory.html
         
     | 
| 
       2182 
2330 
     | 
    
         
             
             */
         
     | 
| 
       2183 
2331 
     | 
    
         
             
            static xxh_u64 XXH_read64(const void* memPtr)
         
     | 
| 
       2184 
2332 
     | 
    
         
             
            {
         
     | 
| 
       2185 
2333 
     | 
    
         
             
                xxh_u64 val;
         
     | 
| 
       2186 
     | 
    
         
            -
                 
     | 
| 
      
 2334 
     | 
    
         
            +
                XXH_memcpy(&val, memPtr, sizeof(val));
         
     | 
| 
       2187 
2335 
     | 
    
         
             
                return val;
         
     | 
| 
       2188 
2336 
     | 
    
         
             
            }
         
     | 
| 
       2189 
2337 
     | 
    
         | 
| 
         @@ -2313,6 +2461,7 @@ static xxh_u64 XXH64_avalanche(xxh_u64 h64) 
     | 
|
| 
       2313 
2461 
     | 
    
         
             
            static xxh_u64
         
     | 
| 
       2314 
2462 
     | 
    
         
             
            XXH64_finalize(xxh_u64 h64, const xxh_u8* ptr, size_t len, XXH_alignment align)
         
     | 
| 
       2315 
2463 
     | 
    
         
             
            {
         
     | 
| 
      
 2464 
     | 
    
         
            +
                if (ptr==NULL) XXH_ASSERT(len == 0);
         
     | 
| 
       2316 
2465 
     | 
    
         
             
                len &= 31;
         
     | 
| 
       2317 
2466 
     | 
    
         
             
                while (len >= 8) {
         
     | 
| 
       2318 
2467 
     | 
    
         
             
                    xxh_u64 const k1 = XXH64_round(0, XXH_get64bits(ptr));
         
     | 
| 
         @@ -2348,18 +2497,12 @@ XXH64_finalize(xxh_u64 h64, const xxh_u8* ptr, size_t len, XXH_alignment align) 
     | 
|
| 
       2348 
2497 
     | 
    
         
             
            XXH_FORCE_INLINE xxh_u64
         
     | 
| 
       2349 
2498 
     | 
    
         
             
            XXH64_endian_align(const xxh_u8* input, size_t len, xxh_u64 seed, XXH_alignment align)
         
     | 
| 
       2350 
2499 
     | 
    
         
             
            {
         
     | 
| 
       2351 
     | 
    
         
            -
                const xxh_u8* bEnd = input ? input + len : NULL;
         
     | 
| 
       2352 
2500 
     | 
    
         
             
                xxh_u64 h64;
         
     | 
| 
       2353 
     | 
    
         
            -
             
     | 
| 
       2354 
     | 
    
         
            -
            #if defined(XXH_ACCEPT_NULL_INPUT_POINTER) && (XXH_ACCEPT_NULL_INPUT_POINTER>=1)
         
     | 
| 
       2355 
     | 
    
         
            -
                if (input==NULL) {
         
     | 
| 
       2356 
     | 
    
         
            -
                    len=0;
         
     | 
| 
       2357 
     | 
    
         
            -
                    bEnd=input=(const xxh_u8*)(size_t)32;
         
     | 
| 
       2358 
     | 
    
         
            -
                }
         
     | 
| 
       2359 
     | 
    
         
            -
            #endif
         
     | 
| 
      
 2501 
     | 
    
         
            +
                if (input==NULL) XXH_ASSERT(len == 0);
         
     | 
| 
       2360 
2502 
     | 
    
         | 
| 
       2361 
2503 
     | 
    
         
             
                if (len>=32) {
         
     | 
| 
       2362 
     | 
    
         
            -
                    const xxh_u8* const  
     | 
| 
      
 2504 
     | 
    
         
            +
                    const xxh_u8* const bEnd = input + len;
         
     | 
| 
      
 2505 
     | 
    
         
            +
                    const xxh_u8* const limit = bEnd - 31;
         
     | 
| 
       2363 
2506 
     | 
    
         
             
                    xxh_u64 v1 = seed + XXH_PRIME64_1 + XXH_PRIME64_2;
         
     | 
| 
       2364 
2507 
     | 
    
         
             
                    xxh_u64 v2 = seed + XXH_PRIME64_2;
         
     | 
| 
       2365 
2508 
     | 
    
         
             
                    xxh_u64 v3 = seed + 0;
         
     | 
| 
         @@ -2370,7 +2513,7 @@ XXH64_endian_align(const xxh_u8* input, size_t len, xxh_u64 seed, XXH_alignment 
     | 
|
| 
       2370 
2513 
     | 
    
         
             
                        v2 = XXH64_round(v2, XXH_get64bits(input)); input+=8;
         
     | 
| 
       2371 
2514 
     | 
    
         
             
                        v3 = XXH64_round(v3, XXH_get64bits(input)); input+=8;
         
     | 
| 
       2372 
2515 
     | 
    
         
             
                        v4 = XXH64_round(v4, XXH_get64bits(input)); input+=8;
         
     | 
| 
       2373 
     | 
    
         
            -
                    } while (input 
     | 
| 
      
 2516 
     | 
    
         
            +
                    } while (input<limit);
         
     | 
| 
       2374 
2517 
     | 
    
         | 
| 
       2375 
2518 
     | 
    
         
             
                    h64 = XXH_rotl64(v1, 1) + XXH_rotl64(v2, 7) + XXH_rotl64(v3, 12) + XXH_rotl64(v4, 18);
         
     | 
| 
       2376 
2519 
     | 
    
         
             
                    h64 = XXH64_mergeRound(h64, v1);
         
     | 
| 
         @@ -2425,7 +2568,7 @@ XXH_PUBLIC_API XXH_errorcode XXH64_freeState(XXH64_state_t* statePtr) 
     | 
|
| 
       2425 
2568 
     | 
    
         
             
            /*! @ingroup xxh64_family */
         
     | 
| 
       2426 
2569 
     | 
    
         
             
            XXH_PUBLIC_API void XXH64_copyState(XXH64_state_t* dstState, const XXH64_state_t* srcState)
         
     | 
| 
       2427 
2570 
     | 
    
         
             
            {
         
     | 
| 
       2428 
     | 
    
         
            -
                 
     | 
| 
      
 2571 
     | 
    
         
            +
                XXH_memcpy(dstState, srcState, sizeof(*dstState));
         
     | 
| 
       2429 
2572 
     | 
    
         
             
            }
         
     | 
| 
       2430 
2573 
     | 
    
         | 
| 
       2431 
2574 
     | 
    
         
             
            /*! @ingroup xxh64_family */
         
     | 
| 
         @@ -2433,12 +2576,12 @@ XXH_PUBLIC_API XXH_errorcode XXH64_reset(XXH64_state_t* statePtr, XXH64_hash_t s 
     | 
|
| 
       2433 
2576 
     | 
    
         
             
            {
         
     | 
| 
       2434 
2577 
     | 
    
         
             
                XXH64_state_t state;   /* use a local state to memcpy() in order to avoid strict-aliasing warnings */
         
     | 
| 
       2435 
2578 
     | 
    
         
             
                memset(&state, 0, sizeof(state));
         
     | 
| 
       2436 
     | 
    
         
            -
                state. 
     | 
| 
       2437 
     | 
    
         
            -
                state. 
     | 
| 
       2438 
     | 
    
         
            -
                state. 
     | 
| 
       2439 
     | 
    
         
            -
                state. 
     | 
| 
      
 2579 
     | 
    
         
            +
                state.v[0] = seed + XXH_PRIME64_1 + XXH_PRIME64_2;
         
     | 
| 
      
 2580 
     | 
    
         
            +
                state.v[1] = seed + XXH_PRIME64_2;
         
     | 
| 
      
 2581 
     | 
    
         
            +
                state.v[2] = seed + 0;
         
     | 
| 
      
 2582 
     | 
    
         
            +
                state.v[3] = seed - XXH_PRIME64_1;
         
     | 
| 
       2440 
2583 
     | 
    
         
             
                 /* do not write into reserved64, might be removed in a future version */
         
     | 
| 
       2441 
     | 
    
         
            -
                 
     | 
| 
      
 2584 
     | 
    
         
            +
                XXH_memcpy(statePtr, &state, sizeof(state) - sizeof(state.reserved64));
         
     | 
| 
       2442 
2585 
     | 
    
         
             
                return XXH_OK;
         
     | 
| 
       2443 
2586 
     | 
    
         
             
            }
         
     | 
| 
       2444 
2587 
     | 
    
         | 
| 
         @@ -2446,12 +2589,10 @@ XXH_PUBLIC_API XXH_errorcode XXH64_reset(XXH64_state_t* statePtr, XXH64_hash_t s 
     | 
|
| 
       2446 
2589 
     | 
    
         
             
            XXH_PUBLIC_API XXH_errorcode
         
     | 
| 
       2447 
2590 
     | 
    
         
             
            XXH64_update (XXH64_state_t* state, const void* input, size_t len)
         
     | 
| 
       2448 
2591 
     | 
    
         
             
            {
         
     | 
| 
       2449 
     | 
    
         
            -
                if (input==NULL)
         
     | 
| 
       2450 
     | 
    
         
            -
             
     | 
| 
      
 2592 
     | 
    
         
            +
                if (input==NULL) {
         
     | 
| 
      
 2593 
     | 
    
         
            +
                    XXH_ASSERT(len == 0);
         
     | 
| 
       2451 
2594 
     | 
    
         
             
                    return XXH_OK;
         
     | 
| 
       2452 
     | 
    
         
            -
             
     | 
| 
       2453 
     | 
    
         
            -
                    return XXH_ERROR;
         
     | 
| 
       2454 
     | 
    
         
            -
            #endif
         
     | 
| 
      
 2595 
     | 
    
         
            +
                }
         
     | 
| 
       2455 
2596 
     | 
    
         | 
| 
       2456 
2597 
     | 
    
         
             
                {   const xxh_u8* p = (const xxh_u8*)input;
         
     | 
| 
       2457 
2598 
     | 
    
         
             
                    const xxh_u8* const bEnd = p + len;
         
     | 
| 
         @@ -2466,32 +2607,24 @@ XXH64_update (XXH64_state_t* state, const void* input, size_t len) 
     | 
|
| 
       2466 
2607 
     | 
    
         | 
| 
       2467 
2608 
     | 
    
         
             
                    if (state->memsize) {   /* tmp buffer is full */
         
     | 
| 
       2468 
2609 
     | 
    
         
             
                        XXH_memcpy(((xxh_u8*)state->mem64) + state->memsize, input, 32-state->memsize);
         
     | 
| 
       2469 
     | 
    
         
            -
                        state-> 
     | 
| 
       2470 
     | 
    
         
            -
                        state-> 
     | 
| 
       2471 
     | 
    
         
            -
                        state-> 
     | 
| 
       2472 
     | 
    
         
            -
                        state-> 
     | 
| 
      
 2610 
     | 
    
         
            +
                        state->v[0] = XXH64_round(state->v[0], XXH_readLE64(state->mem64+0));
         
     | 
| 
      
 2611 
     | 
    
         
            +
                        state->v[1] = XXH64_round(state->v[1], XXH_readLE64(state->mem64+1));
         
     | 
| 
      
 2612 
     | 
    
         
            +
                        state->v[2] = XXH64_round(state->v[2], XXH_readLE64(state->mem64+2));
         
     | 
| 
      
 2613 
     | 
    
         
            +
                        state->v[3] = XXH64_round(state->v[3], XXH_readLE64(state->mem64+3));
         
     | 
| 
       2473 
2614 
     | 
    
         
             
                        p += 32 - state->memsize;
         
     | 
| 
       2474 
2615 
     | 
    
         
             
                        state->memsize = 0;
         
     | 
| 
       2475 
2616 
     | 
    
         
             
                    }
         
     | 
| 
       2476 
2617 
     | 
    
         | 
| 
       2477 
2618 
     | 
    
         
             
                    if (p+32 <= bEnd) {
         
     | 
| 
       2478 
2619 
     | 
    
         
             
                        const xxh_u8* const limit = bEnd - 32;
         
     | 
| 
       2479 
     | 
    
         
            -
                        xxh_u64 v1 = state->v1;
         
     | 
| 
       2480 
     | 
    
         
            -
                        xxh_u64 v2 = state->v2;
         
     | 
| 
       2481 
     | 
    
         
            -
                        xxh_u64 v3 = state->v3;
         
     | 
| 
       2482 
     | 
    
         
            -
                        xxh_u64 v4 = state->v4;
         
     | 
| 
       2483 
2620 
     | 
    
         | 
| 
       2484 
2621 
     | 
    
         
             
                        do {
         
     | 
| 
       2485 
     | 
    
         
            -
                             
     | 
| 
       2486 
     | 
    
         
            -
                             
     | 
| 
       2487 
     | 
    
         
            -
                             
     | 
| 
       2488 
     | 
    
         
            -
                             
     | 
| 
      
 2622 
     | 
    
         
            +
                            state->v[0] = XXH64_round(state->v[0], XXH_readLE64(p)); p+=8;
         
     | 
| 
      
 2623 
     | 
    
         
            +
                            state->v[1] = XXH64_round(state->v[1], XXH_readLE64(p)); p+=8;
         
     | 
| 
      
 2624 
     | 
    
         
            +
                            state->v[2] = XXH64_round(state->v[2], XXH_readLE64(p)); p+=8;
         
     | 
| 
      
 2625 
     | 
    
         
            +
                            state->v[3] = XXH64_round(state->v[3], XXH_readLE64(p)); p+=8;
         
     | 
| 
       2489 
2626 
     | 
    
         
             
                        } while (p<=limit);
         
     | 
| 
       2490 
2627 
     | 
    
         | 
| 
       2491 
     | 
    
         
            -
                        state->v1 = v1;
         
     | 
| 
       2492 
     | 
    
         
            -
                        state->v2 = v2;
         
     | 
| 
       2493 
     | 
    
         
            -
                        state->v3 = v3;
         
     | 
| 
       2494 
     | 
    
         
            -
                        state->v4 = v4;
         
     | 
| 
       2495 
2628 
     | 
    
         
             
                    }
         
     | 
| 
       2496 
2629 
     | 
    
         | 
| 
       2497 
2630 
     | 
    
         
             
                    if (p < bEnd) {
         
     | 
| 
         @@ -2510,18 +2643,13 @@ XXH_PUBLIC_API XXH64_hash_t XXH64_digest(const XXH64_state_t* state) 
     | 
|
| 
       2510 
2643 
     | 
    
         
             
                xxh_u64 h64;
         
     | 
| 
       2511 
2644 
     | 
    
         | 
| 
       2512 
2645 
     | 
    
         
             
                if (state->total_len >= 32) {
         
     | 
| 
       2513 
     | 
    
         
            -
                     
     | 
| 
       2514 
     | 
    
         
            -
                     
     | 
| 
       2515 
     | 
    
         
            -
                     
     | 
| 
       2516 
     | 
    
         
            -
                     
     | 
| 
       2517 
     | 
    
         
            -
             
     | 
| 
       2518 
     | 
    
         
            -
                    h64 = XXH_rotl64(v1, 1) + XXH_rotl64(v2, 7) + XXH_rotl64(v3, 12) + XXH_rotl64(v4, 18);
         
     | 
| 
       2519 
     | 
    
         
            -
                    h64 = XXH64_mergeRound(h64, v1);
         
     | 
| 
       2520 
     | 
    
         
            -
                    h64 = XXH64_mergeRound(h64, v2);
         
     | 
| 
       2521 
     | 
    
         
            -
                    h64 = XXH64_mergeRound(h64, v3);
         
     | 
| 
       2522 
     | 
    
         
            -
                    h64 = XXH64_mergeRound(h64, v4);
         
     | 
| 
      
 2646 
     | 
    
         
            +
                    h64 = XXH_rotl64(state->v[0], 1) + XXH_rotl64(state->v[1], 7) + XXH_rotl64(state->v[2], 12) + XXH_rotl64(state->v[3], 18);
         
     | 
| 
      
 2647 
     | 
    
         
            +
                    h64 = XXH64_mergeRound(h64, state->v[0]);
         
     | 
| 
      
 2648 
     | 
    
         
            +
                    h64 = XXH64_mergeRound(h64, state->v[1]);
         
     | 
| 
      
 2649 
     | 
    
         
            +
                    h64 = XXH64_mergeRound(h64, state->v[2]);
         
     | 
| 
      
 2650 
     | 
    
         
            +
                    h64 = XXH64_mergeRound(h64, state->v[3]);
         
     | 
| 
       2523 
2651 
     | 
    
         
             
                } else {
         
     | 
| 
       2524 
     | 
    
         
            -
                    h64  = state-> 
     | 
| 
      
 2652 
     | 
    
         
            +
                    h64  = state->v[2] /*seed*/ + XXH_PRIME64_5;
         
     | 
| 
       2525 
2653 
     | 
    
         
             
                }
         
     | 
| 
       2526 
2654 
     | 
    
         | 
| 
       2527 
2655 
     | 
    
         
             
                h64 += (xxh_u64) state->total_len;
         
     | 
| 
         @@ -2537,7 +2665,7 @@ XXH_PUBLIC_API void XXH64_canonicalFromHash(XXH64_canonical_t* dst, XXH64_hash_t 
     | 
|
| 
       2537 
2665 
     | 
    
         
             
            {
         
     | 
| 
       2538 
2666 
     | 
    
         
             
                XXH_STATIC_ASSERT(sizeof(XXH64_canonical_t) == sizeof(XXH64_hash_t));
         
     | 
| 
       2539 
2667 
     | 
    
         
             
                if (XXH_CPU_LITTLE_ENDIAN) hash = XXH_swap64(hash);
         
     | 
| 
       2540 
     | 
    
         
            -
                 
     | 
| 
      
 2668 
     | 
    
         
            +
                XXH_memcpy(dst, &hash, sizeof(*dst));
         
     | 
| 
       2541 
2669 
     | 
    
         
             
            }
         
     | 
| 
       2542 
2670 
     | 
    
         | 
| 
       2543 
2671 
     | 
    
         
             
            /*! @ingroup xxh64_family */
         
     | 
| 
         @@ -2734,10 +2862,13 @@ enum XXH_VECTOR_TYPE /* fake enum */ { 
     | 
|
| 
       2734 
2862 
     | 
    
         
             
            #    define XXH_VECTOR XXH_AVX2
         
     | 
| 
       2735 
2863 
     | 
    
         
             
            #  elif defined(__SSE2__) || defined(_M_AMD64) || defined(_M_X64) || (defined(_M_IX86_FP) && (_M_IX86_FP == 2))
         
     | 
| 
       2736 
2864 
     | 
    
         
             
            #    define XXH_VECTOR XXH_SSE2
         
     | 
| 
       2737 
     | 
    
         
            -
            #  elif  
     | 
| 
       2738 
     | 
    
         
            -
             
     | 
| 
       2739 
     | 
    
         
            -
             
     | 
| 
       2740 
     | 
    
         
            -
             
     | 
| 
      
 2865 
     | 
    
         
            +
            #  elif ( \
         
     | 
| 
      
 2866 
     | 
    
         
            +
                    defined(__ARM_NEON__) || defined(__ARM_NEON) /* gcc */ \
         
     | 
| 
      
 2867 
     | 
    
         
            +
                 || defined(_M_ARM64) || defined(_M_ARM_ARMV7VE) /* msvc */ \
         
     | 
| 
      
 2868 
     | 
    
         
            +
               ) && ( \
         
     | 
| 
      
 2869 
     | 
    
         
            +
                    defined(_WIN32) || defined(__LITTLE_ENDIAN__) /* little endian only */ \
         
     | 
| 
      
 2870 
     | 
    
         
            +
                || (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) \
         
     | 
| 
      
 2871 
     | 
    
         
            +
               )
         
     | 
| 
       2741 
2872 
     | 
    
         
             
            #    define XXH_VECTOR XXH_NEON
         
     | 
| 
       2742 
2873 
     | 
    
         
             
            #  elif (defined(__PPC64__) && defined(__POWER8_VECTOR__)) \
         
     | 
| 
       2743 
2874 
     | 
    
         
             
                 || (defined(__s390x__) && defined(__VEC__)) \
         
     | 
| 
         @@ -2889,7 +3020,7 @@ enum XXH_VECTOR_TYPE /* fake enum */ { 
     | 
|
| 
       2889 
3020 
     | 
    
         
             
             */
         
     | 
| 
       2890 
3021 
     | 
    
         
             
            # if !defined(XXH_NO_VZIP_HACK) /* define to disable */ \
         
     | 
| 
       2891 
3022 
     | 
    
         
             
               && defined(__GNUC__) \
         
     | 
| 
       2892 
     | 
    
         
            -
               && !defined(__aarch64__) && !defined(__arm64__)
         
     | 
| 
      
 3023 
     | 
    
         
            +
               && !defined(__aarch64__) && !defined(__arm64__) && !defined(_M_ARM64)
         
     | 
| 
       2893 
3024 
     | 
    
         
             
            #  define XXH_SPLIT_IN_PLACE(in, outLo, outHi)                                              \
         
     | 
| 
       2894 
3025 
     | 
    
         
             
                do {                                                                                    \
         
     | 
| 
       2895 
3026 
     | 
    
         
             
                  /* Undocumented GCC/Clang operand modifier: %e0 = lower D half, %f0 = upper D half */ \
         
     | 
| 
         @@ -2972,7 +3103,7 @@ XXH_FORCE_INLINE xxh_u64x2 XXH_vec_revb(xxh_u64x2 val) 
     | 
|
| 
       2972 
3103 
     | 
    
         
             
            XXH_FORCE_INLINE xxh_u64x2 XXH_vec_loadu(const void *ptr)
         
     | 
| 
       2973 
3104 
     | 
    
         
             
            {
         
     | 
| 
       2974 
3105 
     | 
    
         
             
                xxh_u64x2 ret;
         
     | 
| 
       2975 
     | 
    
         
            -
                 
     | 
| 
      
 3106 
     | 
    
         
            +
                XXH_memcpy(&ret, ptr, sizeof(xxh_u64x2));
         
     | 
| 
       2976 
3107 
     | 
    
         
             
            # if XXH_VSX_BE
         
     | 
| 
       2977 
3108 
     | 
    
         
             
                ret = XXH_vec_revb(ret);
         
     | 
| 
       2978 
3109 
     | 
    
         
             
            # endif
         
     | 
| 
         @@ -3101,7 +3232,7 @@ XXH_mult32to64(xxh_u64 x, xxh_u64 y) 
     | 
|
| 
       3101 
3232 
     | 
    
         
             
             * Uses `__uint128_t` and `_umul128` if available, otherwise uses a scalar
         
     | 
| 
       3102 
3233 
     | 
    
         
             
             * version.
         
     | 
| 
       3103 
3234 
     | 
    
         
             
             *
         
     | 
| 
       3104 
     | 
    
         
            -
             * @param lhs, rhs The 64-bit integers to be multiplied
         
     | 
| 
      
 3235 
     | 
    
         
            +
             * @param lhs , rhs The 64-bit integers to be multiplied
         
     | 
| 
       3105 
3236 
     | 
    
         
             
             * @return The 128-bit result represented in an @ref XXH128_hash_t.
         
     | 
| 
       3106 
3237 
     | 
    
         
             
             */
         
     | 
| 
       3107 
3238 
     | 
    
         
             
            static XXH128_hash_t
         
     | 
| 
         @@ -3151,6 +3282,21 @@ XXH_mult64to128(xxh_u64 lhs, xxh_u64 rhs) 
     | 
|
| 
       3151 
3282 
     | 
    
         
             
                r128.high64 = product_high;
         
     | 
| 
       3152 
3283 
     | 
    
         
             
                return r128;
         
     | 
| 
       3153 
3284 
     | 
    
         | 
| 
      
 3285 
     | 
    
         
            +
                /*
         
     | 
| 
      
 3286 
     | 
    
         
            +
                 * MSVC for ARM64's __umulh method.
         
     | 
| 
      
 3287 
     | 
    
         
            +
                 *
         
     | 
| 
      
 3288 
     | 
    
         
            +
                 * This compiles to the same MUL + UMULH as GCC/Clang's __uint128_t method.
         
     | 
| 
      
 3289 
     | 
    
         
            +
                 */
         
     | 
| 
      
 3290 
     | 
    
         
            +
            #elif defined(_M_ARM64)
         
     | 
| 
      
 3291 
     | 
    
         
            +
             
     | 
| 
      
 3292 
     | 
    
         
            +
            #ifndef _MSC_VER
         
     | 
| 
      
 3293 
     | 
    
         
            +
            #   pragma intrinsic(__umulh)
         
     | 
| 
      
 3294 
     | 
    
         
            +
            #endif
         
     | 
| 
      
 3295 
     | 
    
         
            +
                XXH128_hash_t r128;
         
     | 
| 
      
 3296 
     | 
    
         
            +
                r128.low64  = lhs * rhs;
         
     | 
| 
      
 3297 
     | 
    
         
            +
                r128.high64 = __umulh(lhs, rhs);
         
     | 
| 
      
 3298 
     | 
    
         
            +
                return r128;
         
     | 
| 
      
 3299 
     | 
    
         
            +
             
     | 
| 
       3154 
3300 
     | 
    
         
             
            #else
         
     | 
| 
       3155 
3301 
     | 
    
         
             
                /*
         
     | 
| 
       3156 
3302 
     | 
    
         
             
                 * Portable scalar method. Optimized for 32-bit and 64-bit ALUs.
         
     | 
| 
         @@ -3219,7 +3365,7 @@ XXH_mult64to128(xxh_u64 lhs, xxh_u64 rhs) 
     | 
|
| 
       3219 
3365 
     | 
    
         
             
             * The reason for the separate function is to prevent passing too many structs
         
     | 
| 
       3220 
3366 
     | 
    
         
             
             * around by value. This will hopefully inline the multiply, but we don't force it.
         
     | 
| 
       3221 
3367 
     | 
    
         
             
             *
         
     | 
| 
       3222 
     | 
    
         
            -
             * @param lhs, rhs The 64-bit integers to multiply
         
     | 
| 
      
 3368 
     | 
    
         
            +
             * @param lhs , rhs The 64-bit integers to multiply
         
     | 
| 
       3223 
3369 
     | 
    
         
             
             * @return The low 64 bits of the product XOR'd by the high 64 bits.
         
     | 
| 
       3224 
3370 
     | 
    
         
             
             * @see XXH_mult64to128()
         
     | 
| 
       3225 
3371 
     | 
    
         
             
             */
         
     | 
| 
         @@ -3521,7 +3667,7 @@ XXH3_len_129to240_64b(const xxh_u8* XXH_RESTRICT input, size_t len, 
     | 
|
| 
       3521 
3667 
     | 
    
         
             
            XXH_FORCE_INLINE void XXH_writeLE64(void* dst, xxh_u64 v64)
         
     | 
| 
       3522 
3668 
     | 
    
         
             
            {
         
     | 
| 
       3523 
3669 
     | 
    
         
             
                if (!XXH_CPU_LITTLE_ENDIAN) v64 = XXH_swap64(v64);
         
     | 
| 
       3524 
     | 
    
         
            -
                 
     | 
| 
      
 3670 
     | 
    
         
            +
                XXH_memcpy(dst, &v64, sizeof(v64));
         
     | 
| 
       3525 
3671 
     | 
    
         
             
            }
         
     | 
| 
       3526 
3672 
     | 
    
         | 
| 
       3527 
3673 
     | 
    
         
             
            /* Several intrinsic functions below are supposed to accept __int64 as argument,
         
     | 
| 
         @@ -3573,7 +3719,7 @@ XXH3_accumulate_512_avx512(void* XXH_RESTRICT acc, 
     | 
|
| 
       3573 
3719 
     | 
    
         
             
                                 const void* XXH_RESTRICT input,
         
     | 
| 
       3574 
3720 
     | 
    
         
             
                                 const void* XXH_RESTRICT secret)
         
     | 
| 
       3575 
3721 
     | 
    
         
             
            {
         
     | 
| 
       3576 
     | 
    
         
            -
                 
     | 
| 
      
 3722 
     | 
    
         
            +
                __m512i* const xacc = (__m512i *) acc;
         
     | 
| 
       3577 
3723 
     | 
    
         
             
                XXH_ASSERT((((size_t)acc) & 63) == 0);
         
     | 
| 
       3578 
3724 
     | 
    
         
             
                XXH_STATIC_ASSERT(XXH_STRIPE_LEN == sizeof(__m512i));
         
     | 
| 
       3579 
3725 
     | 
    
         | 
| 
         @@ -3622,7 +3768,7 @@ XXH3_scrambleAcc_avx512(void* XXH_RESTRICT acc, const void* XXH_RESTRICT secret) 
     | 
|
| 
       3622 
3768 
     | 
    
         
             
            {
         
     | 
| 
       3623 
3769 
     | 
    
         
             
                XXH_ASSERT((((size_t)acc) & 63) == 0);
         
     | 
| 
       3624 
3770 
     | 
    
         
             
                XXH_STATIC_ASSERT(XXH_STRIPE_LEN == sizeof(__m512i));
         
     | 
| 
       3625 
     | 
    
         
            -
                {    
     | 
| 
      
 3771 
     | 
    
         
            +
                {   __m512i* const xacc = (__m512i*) acc;
         
     | 
| 
       3626 
3772 
     | 
    
         
             
                    const __m512i prime32 = _mm512_set1_epi32((int)XXH_PRIME32_1);
         
     | 
| 
       3627 
3773 
     | 
    
         | 
| 
       3628 
3774 
     | 
    
         
             
                    /* xacc[0] ^= (xacc[0] >> 47) */
         
     | 
| 
         @@ -3649,17 +3795,19 @@ XXH3_initCustomSecret_avx512(void* XXH_RESTRICT customSecret, xxh_u64 seed64) 
     | 
|
| 
       3649 
3795 
     | 
    
         
             
                XXH_ASSERT(((size_t)customSecret & 63) == 0);
         
     | 
| 
       3650 
3796 
     | 
    
         
             
                (void)(&XXH_writeLE64);
         
     | 
| 
       3651 
3797 
     | 
    
         
             
                {   int const nbRounds = XXH_SECRET_DEFAULT_SIZE / sizeof(__m512i);
         
     | 
| 
       3652 
     | 
    
         
            -
                    __m512i const seed = _mm512_mask_set1_epi64(_mm512_set1_epi64((xxh_i64)seed64), 0xAA,  
     | 
| 
      
 3798 
     | 
    
         
            +
                    __m512i const seed = _mm512_mask_set1_epi64(_mm512_set1_epi64((xxh_i64)seed64), 0xAA, (xxh_i64)(0U - seed64));
         
     | 
| 
       3653 
3799 
     | 
    
         | 
| 
       3654 
     | 
    
         
            -
                     
     | 
| 
       3655 
     | 
    
         
            -
             
     | 
| 
      
 3800 
     | 
    
         
            +
                    const __m512i* const src  = (const __m512i*) ((const void*) XXH3_kSecret);
         
     | 
| 
      
 3801 
     | 
    
         
            +
                          __m512i* const dest = (      __m512i*) customSecret;
         
     | 
| 
       3656 
3802 
     | 
    
         
             
                    int i;
         
     | 
| 
      
 3803 
     | 
    
         
            +
                    XXH_ASSERT(((size_t)src & 63) == 0); /* control alignment */
         
     | 
| 
      
 3804 
     | 
    
         
            +
                    XXH_ASSERT(((size_t)dest & 63) == 0);
         
     | 
| 
       3657 
3805 
     | 
    
         
             
                    for (i=0; i < nbRounds; ++i) {
         
     | 
| 
       3658 
3806 
     | 
    
         
             
                        /* GCC has a bug, _mm512_stream_load_si512 accepts 'void*', not 'void const*',
         
     | 
| 
       3659 
     | 
    
         
            -
                         * this will warn "discards  
     | 
| 
      
 3807 
     | 
    
         
            +
                         * this will warn "discards 'const' qualifier". */
         
     | 
| 
       3660 
3808 
     | 
    
         
             
                        union {
         
     | 
| 
       3661 
     | 
    
         
            -
                             
     | 
| 
       3662 
     | 
    
         
            -
                             
     | 
| 
      
 3809 
     | 
    
         
            +
                            const __m512i* cp;
         
     | 
| 
      
 3810 
     | 
    
         
            +
                            void* p;
         
     | 
| 
       3663 
3811 
     | 
    
         
             
                        } remote_const_void;
         
     | 
| 
       3664 
3812 
     | 
    
         
             
                        remote_const_void.cp = src + i;
         
     | 
| 
       3665 
3813 
     | 
    
         
             
                        dest[i] = _mm512_add_epi64(_mm512_stream_load_si512(remote_const_void.p), seed);
         
     | 
| 
         @@ -3681,7 +3829,7 @@ XXH3_accumulate_512_avx2( void* XXH_RESTRICT acc, 
     | 
|
| 
       3681 
3829 
     | 
    
         
             
                                const void* XXH_RESTRICT secret)
         
     | 
| 
       3682 
3830 
     | 
    
         
             
            {
         
     | 
| 
       3683 
3831 
     | 
    
         
             
                XXH_ASSERT((((size_t)acc) & 31) == 0);
         
     | 
| 
       3684 
     | 
    
         
            -
                {    
     | 
| 
      
 3832 
     | 
    
         
            +
                {   __m256i* const xacc    =       (__m256i *) acc;
         
     | 
| 
       3685 
3833 
     | 
    
         
             
                    /* Unaligned. This is mainly for pointer arithmetic, and because
         
     | 
| 
       3686 
3834 
     | 
    
         
             
                     * _mm256_loadu_si256 requires  a const __m256i * pointer for some reason. */
         
     | 
| 
       3687 
3835 
     | 
    
         
             
                    const         __m256i* const xinput  = (const __m256i *) input;
         
     | 
| 
         @@ -3713,7 +3861,7 @@ XXH_FORCE_INLINE XXH_TARGET_AVX2 void 
     | 
|
| 
       3713 
3861 
     | 
    
         
             
            XXH3_scrambleAcc_avx2(void* XXH_RESTRICT acc, const void* XXH_RESTRICT secret)
         
     | 
| 
       3714 
3862 
     | 
    
         
             
            {
         
     | 
| 
       3715 
3863 
     | 
    
         
             
                XXH_ASSERT((((size_t)acc) & 31) == 0);
         
     | 
| 
       3716 
     | 
    
         
            -
                {    
     | 
| 
      
 3864 
     | 
    
         
            +
                {   __m256i* const xacc = (__m256i*) acc;
         
     | 
| 
       3717 
3865 
     | 
    
         
             
                    /* Unaligned. This is mainly for pointer arithmetic, and because
         
     | 
| 
       3718 
3866 
     | 
    
         
             
                     * _mm256_loadu_si256 requires a const __m256i * pointer for some reason. */
         
     | 
| 
       3719 
3867 
     | 
    
         
             
                    const         __m256i* const xsecret = (const __m256i *) secret;
         
     | 
| 
         @@ -3745,10 +3893,10 @@ XXH_FORCE_INLINE XXH_TARGET_AVX2 void XXH3_initCustomSecret_avx2(void* XXH_RESTR 
     | 
|
| 
       3745 
3893 
     | 
    
         
             
                XXH_STATIC_ASSERT(XXH_SEC_ALIGN <= 64);
         
     | 
| 
       3746 
3894 
     | 
    
         
             
                (void)(&XXH_writeLE64);
         
     | 
| 
       3747 
3895 
     | 
    
         
             
                XXH_PREFETCH(customSecret);
         
     | 
| 
       3748 
     | 
    
         
            -
                {   __m256i const seed = _mm256_set_epi64x( 
     | 
| 
      
 3896 
     | 
    
         
            +
                {   __m256i const seed = _mm256_set_epi64x((xxh_i64)(0U - seed64), (xxh_i64)seed64, (xxh_i64)(0U - seed64), (xxh_i64)seed64);
         
     | 
| 
       3749 
3897 
     | 
    
         | 
| 
       3750 
     | 
    
         
            -
                     
     | 
| 
       3751 
     | 
    
         
            -
             
     | 
| 
      
 3898 
     | 
    
         
            +
                    const __m256i* const src  = (const __m256i*) ((const void*) XXH3_kSecret);
         
     | 
| 
      
 3899 
     | 
    
         
            +
                          __m256i*       dest = (      __m256i*) customSecret;
         
     | 
| 
       3752 
3900 
     | 
    
         | 
| 
       3753 
3901 
     | 
    
         
             
            #       if defined(__GNUC__) || defined(__clang__)
         
     | 
| 
       3754 
3902 
     | 
    
         
             
                    /*
         
     | 
| 
         @@ -3758,6 +3906,8 @@ XXH_FORCE_INLINE XXH_TARGET_AVX2 void XXH3_initCustomSecret_avx2(void* XXH_RESTR 
     | 
|
| 
       3758 
3906 
     | 
    
         
             
                     */
         
     | 
| 
       3759 
3907 
     | 
    
         
             
                    XXH_COMPILER_GUARD(dest);
         
     | 
| 
       3760 
3908 
     | 
    
         
             
            #       endif
         
     | 
| 
      
 3909 
     | 
    
         
            +
                    XXH_ASSERT(((size_t)src & 31) == 0); /* control alignment */
         
     | 
| 
      
 3910 
     | 
    
         
            +
                    XXH_ASSERT(((size_t)dest & 31) == 0);
         
     | 
| 
       3761 
3911 
     | 
    
         | 
| 
       3762 
3912 
     | 
    
         
             
                    /* GCC -O2 need unroll loop manually */
         
     | 
| 
       3763 
3913 
     | 
    
         
             
                    dest[0] = _mm256_add_epi64(_mm256_stream_load_si256(src+0), seed);
         
     | 
| 
         @@ -3785,7 +3935,7 @@ XXH3_accumulate_512_sse2( void* XXH_RESTRICT acc, 
     | 
|
| 
       3785 
3935 
     | 
    
         
             
            {
         
     | 
| 
       3786 
3936 
     | 
    
         
             
                /* SSE2 is just a half-scale version of the AVX2 version. */
         
     | 
| 
       3787 
3937 
     | 
    
         
             
                XXH_ASSERT((((size_t)acc) & 15) == 0);
         
     | 
| 
       3788 
     | 
    
         
            -
                {    
     | 
| 
      
 3938 
     | 
    
         
            +
                {   __m128i* const xacc    =       (__m128i *) acc;
         
     | 
| 
       3789 
3939 
     | 
    
         
             
                    /* Unaligned. This is mainly for pointer arithmetic, and because
         
     | 
| 
       3790 
3940 
     | 
    
         
             
                     * _mm_loadu_si128 requires a const __m128i * pointer for some reason. */
         
     | 
| 
       3791 
3941 
     | 
    
         
             
                    const         __m128i* const xinput  = (const __m128i *) input;
         
     | 
| 
         @@ -3817,7 +3967,7 @@ XXH_FORCE_INLINE XXH_TARGET_SSE2 void 
     | 
|
| 
       3817 
3967 
     | 
    
         
             
            XXH3_scrambleAcc_sse2(void* XXH_RESTRICT acc, const void* XXH_RESTRICT secret)
         
     | 
| 
       3818 
3968 
     | 
    
         
             
            {
         
     | 
| 
       3819 
3969 
     | 
    
         
             
                XXH_ASSERT((((size_t)acc) & 15) == 0);
         
     | 
| 
       3820 
     | 
    
         
            -
                {    
     | 
| 
      
 3970 
     | 
    
         
            +
                {   __m128i* const xacc = (__m128i*) acc;
         
     | 
| 
       3821 
3971 
     | 
    
         
             
                    /* Unaligned. This is mainly for pointer arithmetic, and because
         
     | 
| 
       3822 
3972 
     | 
    
         
             
                     * _mm_loadu_si128 requires a const __m128i * pointer for some reason. */
         
     | 
| 
       3823 
3973 
     | 
    
         
             
                    const         __m128i* const xsecret = (const __m128i *) secret;
         
     | 
| 
         @@ -3849,27 +3999,29 @@ XXH_FORCE_INLINE XXH_TARGET_SSE2 void XXH3_initCustomSecret_sse2(void* XXH_RESTR 
     | 
|
| 
       3849 
3999 
     | 
    
         
             
                {   int const nbRounds = XXH_SECRET_DEFAULT_SIZE / sizeof(__m128i);
         
     | 
| 
       3850 
4000 
     | 
    
         | 
| 
       3851 
4001 
     | 
    
         
             
            #       if defined(_MSC_VER) && defined(_M_IX86) && _MSC_VER < 1900
         
     | 
| 
       3852 
     | 
    
         
            -
                     
     | 
| 
       3853 
     | 
    
         
            -
                    XXH_ALIGN(16) const xxh_i64 seed64x2[2] = { (xxh_i64)seed64,  
     | 
| 
      
 4002 
     | 
    
         
            +
                    /* MSVC 32bit mode does not support _mm_set_epi64x before 2015 */
         
     | 
| 
      
 4003 
     | 
    
         
            +
                    XXH_ALIGN(16) const xxh_i64 seed64x2[2] = { (xxh_i64)seed64, (xxh_i64)(0U - seed64) };
         
     | 
| 
       3854 
4004 
     | 
    
         
             
                    __m128i const seed = _mm_load_si128((__m128i const*)seed64x2);
         
     | 
| 
       3855 
4005 
     | 
    
         
             
            #       else
         
     | 
| 
       3856 
     | 
    
         
            -
                    __m128i const seed = _mm_set_epi64x( 
     | 
| 
      
 4006 
     | 
    
         
            +
                    __m128i const seed = _mm_set_epi64x((xxh_i64)(0U - seed64), (xxh_i64)seed64);
         
     | 
| 
       3857 
4007 
     | 
    
         
             
            #       endif
         
     | 
| 
       3858 
4008 
     | 
    
         
             
                    int i;
         
     | 
| 
       3859 
4009 
     | 
    
         | 
| 
       3860 
     | 
    
         
            -
                     
     | 
| 
       3861 
     | 
    
         
            -
                     
     | 
| 
      
 4010 
     | 
    
         
            +
                    const void* const src16 = XXH3_kSecret;
         
     | 
| 
      
 4011 
     | 
    
         
            +
                    __m128i* dst16 = (__m128i*) customSecret;
         
     | 
| 
       3862 
4012 
     | 
    
         
             
            #       if defined(__GNUC__) || defined(__clang__)
         
     | 
| 
       3863 
4013 
     | 
    
         
             
                    /*
         
     | 
| 
       3864 
4014 
     | 
    
         
             
                     * On GCC & Clang, marking 'dest' as modified will cause the compiler:
         
     | 
| 
       3865 
4015 
     | 
    
         
             
                     *   - do not extract the secret from sse registers in the internal loop
         
     | 
| 
       3866 
4016 
     | 
    
         
             
                     *   - use less common registers, and avoid pushing these reg into stack
         
     | 
| 
       3867 
4017 
     | 
    
         
             
                     */
         
     | 
| 
       3868 
     | 
    
         
            -
                    XXH_COMPILER_GUARD( 
     | 
| 
      
 4018 
     | 
    
         
            +
                    XXH_COMPILER_GUARD(dst16);
         
     | 
| 
       3869 
4019 
     | 
    
         
             
            #       endif
         
     | 
| 
      
 4020 
     | 
    
         
            +
                    XXH_ASSERT(((size_t)src16 & 15) == 0); /* control alignment */
         
     | 
| 
      
 4021 
     | 
    
         
            +
                    XXH_ASSERT(((size_t)dst16 & 15) == 0);
         
     | 
| 
       3870 
4022 
     | 
    
         | 
| 
       3871 
4023 
     | 
    
         
             
                    for (i=0; i < nbRounds; ++i) {
         
     | 
| 
       3872 
     | 
    
         
            -
                         
     | 
| 
      
 4024 
     | 
    
         
            +
                        dst16[i] = _mm_add_epi64(_mm_load_si128((const __m128i *)src16+i), seed);
         
     | 
| 
       3873 
4025 
     | 
    
         
             
                }   }
         
     | 
| 
       3874 
4026 
     | 
    
         
             
            }
         
     | 
| 
       3875 
4027 
     | 
    
         | 
| 
         @@ -3884,7 +4036,7 @@ XXH3_accumulate_512_neon( void* XXH_RESTRICT acc, 
     | 
|
| 
       3884 
4036 
     | 
    
         
             
            {
         
     | 
| 
       3885 
4037 
     | 
    
         
             
                XXH_ASSERT((((size_t)acc) & 15) == 0);
         
     | 
| 
       3886 
4038 
     | 
    
         
             
                {
         
     | 
| 
       3887 
     | 
    
         
            -
                     
     | 
| 
      
 4039 
     | 
    
         
            +
                    uint64x2_t* const xacc = (uint64x2_t *) acc;
         
     | 
| 
       3888 
4040 
     | 
    
         
             
                    /* We don't use a uint32x4_t pointer because it causes bus errors on ARMv7. */
         
     | 
| 
       3889 
4041 
     | 
    
         
             
                    uint8_t const* const xinput = (const uint8_t *) input;
         
     | 
| 
       3890 
4042 
     | 
    
         
             
                    uint8_t const* const xsecret  = (const uint8_t *) secret;
         
     | 
| 
         @@ -3931,8 +4083,8 @@ XXH3_scrambleAcc_neon(void* XXH_RESTRICT acc, const void* XXH_RESTRICT secret) 
     | 
|
| 
       3931 
4083 
     | 
    
         
             
                        uint64x2_t data_vec = veorq_u64   (acc_vec, shifted);
         
     | 
| 
       3932 
4084 
     | 
    
         | 
| 
       3933 
4085 
     | 
    
         
             
                        /* xacc[i] ^= xsecret[i]; */
         
     | 
| 
       3934 
     | 
    
         
            -
                        uint8x16_t key_vec  = vld1q_u8(xsecret + (i * 16));
         
     | 
| 
       3935 
     | 
    
         
            -
                        uint64x2_t data_key = veorq_u64(data_vec, vreinterpretq_u64_u8(key_vec));
         
     | 
| 
      
 4086 
     | 
    
         
            +
                        uint8x16_t key_vec  = vld1q_u8    (xsecret + (i * 16));
         
     | 
| 
      
 4087 
     | 
    
         
            +
                        uint64x2_t data_key = veorq_u64   (data_vec, vreinterpretq_u64_u8(key_vec));
         
     | 
| 
       3936 
4088 
     | 
    
         | 
| 
       3937 
4089 
     | 
    
         
             
                        /* xacc[i] *= XXH_PRIME32_1 */
         
     | 
| 
       3938 
4090 
     | 
    
         
             
                        uint32x2_t data_key_lo, data_key_hi;
         
     | 
| 
         @@ -3976,7 +4128,8 @@ XXH3_accumulate_512_vsx(  void* XXH_RESTRICT acc, 
     | 
|
| 
       3976 
4128 
     | 
    
         
             
                                const void* XXH_RESTRICT input,
         
     | 
| 
       3977 
4129 
     | 
    
         
             
                                const void* XXH_RESTRICT secret)
         
     | 
| 
       3978 
4130 
     | 
    
         
             
            {
         
     | 
| 
       3979 
     | 
    
         
            -
             
     | 
| 
      
 4131 
     | 
    
         
            +
                /* presumed aligned */
         
     | 
| 
      
 4132 
     | 
    
         
            +
                unsigned long long* const xacc = (unsigned long long*) acc;
         
     | 
| 
       3980 
4133 
     | 
    
         
             
                xxh_u64x2 const* const xinput   = (xxh_u64x2 const*) input;   /* no alignment restriction */
         
     | 
| 
       3981 
4134 
     | 
    
         
             
                xxh_u64x2 const* const xsecret  = (xxh_u64x2 const*) secret;    /* no alignment restriction */
         
     | 
| 
       3982 
4135 
     | 
    
         
             
                xxh_u64x2 const v32 = { 32, 32 };
         
     | 
| 
         @@ -3991,14 +4144,18 @@ XXH3_accumulate_512_vsx(  void* XXH_RESTRICT acc, 
     | 
|
| 
       3991 
4144 
     | 
    
         
             
                    xxh_u32x4 const shuffled = (xxh_u32x4)vec_rl(data_key, v32);
         
     | 
| 
       3992 
4145 
     | 
    
         
             
                    /* product = ((xxh_u64x2)data_key & 0xFFFFFFFF) * ((xxh_u64x2)shuffled & 0xFFFFFFFF); */
         
     | 
| 
       3993 
4146 
     | 
    
         
             
                    xxh_u64x2 const product  = XXH_vec_mulo((xxh_u32x4)data_key, shuffled);
         
     | 
| 
       3994 
     | 
    
         
            -
                    xacc[i]  
     | 
| 
      
 4147 
     | 
    
         
            +
                    /* acc_vec = xacc[i]; */
         
     | 
| 
      
 4148 
     | 
    
         
            +
                    xxh_u64x2 acc_vec        = vec_xl(0, xacc + 2 * i);
         
     | 
| 
      
 4149 
     | 
    
         
            +
                    acc_vec += product;
         
     | 
| 
       3995 
4150 
     | 
    
         | 
| 
       3996 
4151 
     | 
    
         
             
                    /* swap high and low halves */
         
     | 
| 
       3997 
4152 
     | 
    
         
             
            #ifdef __s390x__
         
     | 
| 
       3998 
     | 
    
         
            -
                     
     | 
| 
      
 4153 
     | 
    
         
            +
                    acc_vec += vec_permi(data_vec, data_vec, 2);
         
     | 
| 
       3999 
4154 
     | 
    
         
             
            #else
         
     | 
| 
       4000 
     | 
    
         
            -
                     
     | 
| 
      
 4155 
     | 
    
         
            +
                    acc_vec += vec_xxpermdi(data_vec, data_vec, 2);
         
     | 
| 
       4001 
4156 
     | 
    
         
             
            #endif
         
     | 
| 
      
 4157 
     | 
    
         
            +
                    /* xacc[i] = acc_vec; */
         
     | 
| 
      
 4158 
     | 
    
         
            +
                    vec_xst(acc_vec, 0, xacc + 2 * i);
         
     | 
| 
       4002 
4159 
     | 
    
         
             
                }
         
     | 
| 
       4003 
4160 
     | 
    
         
             
            }
         
     | 
| 
       4004 
4161 
     | 
    
         | 
| 
         @@ -4041,7 +4198,7 @@ XXH3_accumulate_512_scalar(void* XXH_RESTRICT acc, 
     | 
|
| 
       4041 
4198 
     | 
    
         
             
                                 const void* XXH_RESTRICT input,
         
     | 
| 
       4042 
4199 
     | 
    
         
             
                                 const void* XXH_RESTRICT secret)
         
     | 
| 
       4043 
4200 
     | 
    
         
             
            {
         
     | 
| 
       4044 
     | 
    
         
            -
                 
     | 
| 
      
 4201 
     | 
    
         
            +
                xxh_u64* const xacc = (xxh_u64*) acc; /* presumed aligned */
         
     | 
| 
       4045 
4202 
     | 
    
         
             
                const xxh_u8* const xinput  = (const xxh_u8*) input;  /* no alignment restriction */
         
     | 
| 
       4046 
4203 
     | 
    
         
             
                const xxh_u8* const xsecret = (const xxh_u8*) secret;   /* no alignment restriction */
         
     | 
| 
       4047 
4204 
     | 
    
         
             
                size_t i;
         
     | 
| 
         @@ -4057,7 +4214,7 @@ XXH3_accumulate_512_scalar(void* XXH_RESTRICT acc, 
     | 
|
| 
       4057 
4214 
     | 
    
         
             
            XXH_FORCE_INLINE void
         
     | 
| 
       4058 
4215 
     | 
    
         
             
            XXH3_scrambleAcc_scalar(void* XXH_RESTRICT acc, const void* XXH_RESTRICT secret)
         
     | 
| 
       4059 
4216 
     | 
    
         
             
            {
         
     | 
| 
       4060 
     | 
    
         
            -
                 
     | 
| 
      
 4217 
     | 
    
         
            +
                xxh_u64* const xacc = (xxh_u64*) acc;   /* presumed aligned */
         
     | 
| 
       4061 
4218 
     | 
    
         
             
                const xxh_u8* const xsecret = (const xxh_u8*) secret;   /* no alignment restriction */
         
     | 
| 
       4062 
4219 
     | 
    
         
             
                size_t i;
         
     | 
| 
       4063 
4220 
     | 
    
         
             
                XXH_ASSERT((((size_t)acc) & (XXH_ACC_ALIGN-1)) == 0);
         
     | 
| 
         @@ -4305,9 +4462,11 @@ XXH3_hashLong_64b_internal(const void* XXH_RESTRICT input, size_t len, 
     | 
|
| 
       4305 
4462 
     | 
    
         
             
            }
         
     | 
| 
       4306 
4463 
     | 
    
         | 
| 
       4307 
4464 
     | 
    
         
             
            /*
         
     | 
| 
       4308 
     | 
    
         
            -
             * It's important for performance  
     | 
| 
      
 4465 
     | 
    
         
            +
             * It's important for performance to transmit secret's size (when it's static)
         
     | 
| 
      
 4466 
     | 
    
         
            +
             * so that the compiler can properly optimize the vectorized loop.
         
     | 
| 
      
 4467 
     | 
    
         
            +
             * This makes a big performance difference for "medium" keys (<1 KB) when using AVX instruction set.
         
     | 
| 
       4309 
4468 
     | 
    
         
             
             */
         
     | 
| 
       4310 
     | 
    
         
            -
             
     | 
| 
      
 4469 
     | 
    
         
            +
            XXH_FORCE_INLINE XXH64_hash_t
         
     | 
| 
       4311 
4470 
     | 
    
         
             
            XXH3_hashLong_64b_withSecret(const void* XXH_RESTRICT input, size_t len,
         
     | 
| 
       4312 
4471 
     | 
    
         
             
                                         XXH64_hash_t seed64, const xxh_u8* XXH_RESTRICT secret, size_t secretLen)
         
     | 
| 
       4313 
4472 
     | 
    
         
             
            {
         
     | 
| 
         @@ -4316,11 +4475,10 @@ XXH3_hashLong_64b_withSecret(const void* XXH_RESTRICT input, size_t len, 
     | 
|
| 
       4316 
4475 
     | 
    
         
             
            }
         
     | 
| 
       4317 
4476 
     | 
    
         | 
| 
       4318 
4477 
     | 
    
         
             
            /*
         
     | 
| 
       4319 
     | 
    
         
            -
             * It's  
     | 
| 
       4320 
     | 
    
         
            -
             *  
     | 
| 
       4321 
     | 
    
         
            -
             *  
     | 
| 
       4322 
     | 
    
         
            -
             *  
     | 
| 
       4323 
     | 
    
         
            -
             * and uses this opportunity to streamline the generated code for better performance.
         
     | 
| 
      
 4478 
     | 
    
         
            +
             * It's preferable for performance that XXH3_hashLong is not inlined,
         
     | 
| 
      
 4479 
     | 
    
         
            +
             * as it results in a smaller function for small data, easier to the instruction cache.
         
     | 
| 
      
 4480 
     | 
    
         
            +
             * Note that inside this no_inline function, we do inline the internal loop,
         
     | 
| 
      
 4481 
     | 
    
         
            +
             * and provide a statically defined secret size to allow optimization of vector loop.
         
     | 
| 
       4324 
4482 
     | 
    
         
             
             */
         
     | 
| 
       4325 
4483 
     | 
    
         
             
            XXH_NO_INLINE XXH64_hash_t
         
     | 
| 
       4326 
4484 
     | 
    
         
             
            XXH3_hashLong_64b_default(const void* XXH_RESTRICT input, size_t len,
         
     | 
| 
         @@ -4420,6 +4578,14 @@ XXH3_64bits_withSeed(const void* input, size_t len, XXH64_hash_t seed) 
     | 
|
| 
       4420 
4578 
     | 
    
         
             
                return XXH3_64bits_internal(input, len, seed, XXH3_kSecret, sizeof(XXH3_kSecret), XXH3_hashLong_64b_withSeed);
         
     | 
| 
       4421 
4579 
     | 
    
         
             
            }
         
     | 
| 
       4422 
4580 
     | 
    
         | 
| 
      
 4581 
     | 
    
         
            +
            XXH_PUBLIC_API XXH64_hash_t
         
     | 
| 
      
 4582 
     | 
    
         
            +
            XXH3_64bits_withSecretandSeed(const void* input, size_t len, const void* secret, size_t secretSize, XXH64_hash_t seed)
         
     | 
| 
      
 4583 
     | 
    
         
            +
            {
         
     | 
| 
      
 4584 
     | 
    
         
            +
                if (len <= XXH3_MIDSIZE_MAX)
         
     | 
| 
      
 4585 
     | 
    
         
            +
                    return XXH3_64bits_internal(input, len, seed, XXH3_kSecret, sizeof(XXH3_kSecret), NULL);
         
     | 
| 
      
 4586 
     | 
    
         
            +
                return XXH3_hashLong_64b_withSecret(input, len, seed, (const xxh_u8*)secret, secretSize);
         
     | 
| 
      
 4587 
     | 
    
         
            +
            }
         
     | 
| 
      
 4588 
     | 
    
         
            +
             
     | 
| 
       4423 
4589 
     | 
    
         | 
| 
       4424 
4590 
     | 
    
         
             
            /* ===   XXH3 streaming   === */
         
     | 
| 
       4425 
4591 
     | 
    
         | 
| 
         @@ -4508,13 +4674,13 @@ XXH_PUBLIC_API XXH_errorcode XXH3_freeState(XXH3_state_t* statePtr) 
     | 
|
| 
       4508 
4674 
     | 
    
         
             
            XXH_PUBLIC_API void
         
     | 
| 
       4509 
4675 
     | 
    
         
             
            XXH3_copyState(XXH3_state_t* dst_state, const XXH3_state_t* src_state)
         
     | 
| 
       4510 
4676 
     | 
    
         
             
            {
         
     | 
| 
       4511 
     | 
    
         
            -
                 
     | 
| 
      
 4677 
     | 
    
         
            +
                XXH_memcpy(dst_state, src_state, sizeof(*dst_state));
         
     | 
| 
       4512 
4678 
     | 
    
         
             
            }
         
     | 
| 
       4513 
4679 
     | 
    
         | 
| 
       4514 
4680 
     | 
    
         
             
            static void
         
     | 
| 
       4515 
4681 
     | 
    
         
             
            XXH3_reset_internal(XXH3_state_t* statePtr,
         
     | 
| 
       4516 
     | 
    
         
            -
             
     | 
| 
       4517 
     | 
    
         
            -
             
     | 
| 
      
 4682 
     | 
    
         
            +
                                XXH64_hash_t seed,
         
     | 
| 
      
 4683 
     | 
    
         
            +
                                const void* secret, size_t secretSize)
         
     | 
| 
       4518 
4684 
     | 
    
         
             
            {
         
     | 
| 
       4519 
4685 
     | 
    
         
             
                size_t const initStart = offsetof(XXH3_state_t, bufferedSize);
         
     | 
| 
       4520 
4686 
     | 
    
         
             
                size_t const initLength = offsetof(XXH3_state_t, nbStripesPerBlock) - initStart;
         
     | 
| 
         @@ -4531,6 +4697,7 @@ XXH3_reset_internal(XXH3_state_t* statePtr, 
     | 
|
| 
       4531 
4697 
     | 
    
         
             
                statePtr->acc[6] = XXH_PRIME64_5;
         
     | 
| 
       4532 
4698 
     | 
    
         
             
                statePtr->acc[7] = XXH_PRIME32_1;
         
     | 
| 
       4533 
4699 
     | 
    
         
             
                statePtr->seed = seed;
         
     | 
| 
      
 4700 
     | 
    
         
            +
                statePtr->useSeed = (seed != 0);
         
     | 
| 
       4534 
4701 
     | 
    
         
             
                statePtr->extSecret = (const unsigned char*)secret;
         
     | 
| 
       4535 
4702 
     | 
    
         
             
                XXH_ASSERT(secretSize >= XXH3_SECRET_SIZE_MIN);
         
     | 
| 
       4536 
4703 
     | 
    
         
             
                statePtr->secretLimit = secretSize - XXH_STRIPE_LEN;
         
     | 
| 
         @@ -4563,11 +4730,24 @@ XXH3_64bits_reset_withSeed(XXH3_state_t* statePtr, XXH64_hash_t seed) 
     | 
|
| 
       4563 
4730 
     | 
    
         
             
            {
         
     | 
| 
       4564 
4731 
     | 
    
         
             
                if (statePtr == NULL) return XXH_ERROR;
         
     | 
| 
       4565 
4732 
     | 
    
         
             
                if (seed==0) return XXH3_64bits_reset(statePtr);
         
     | 
| 
       4566 
     | 
    
         
            -
                if (seed != statePtr->seed)  
     | 
| 
      
 4733 
     | 
    
         
            +
                if ((seed != statePtr->seed) || (statePtr->extSecret != NULL))
         
     | 
| 
      
 4734 
     | 
    
         
            +
                    XXH3_initCustomSecret(statePtr->customSecret, seed);
         
     | 
| 
       4567 
4735 
     | 
    
         
             
                XXH3_reset_internal(statePtr, seed, NULL, XXH_SECRET_DEFAULT_SIZE);
         
     | 
| 
       4568 
4736 
     | 
    
         
             
                return XXH_OK;
         
     | 
| 
       4569 
4737 
     | 
    
         
             
            }
         
     | 
| 
       4570 
4738 
     | 
    
         | 
| 
      
 4739 
     | 
    
         
            +
            /*! @ingroup xxh3_family */
         
     | 
| 
      
 4740 
     | 
    
         
            +
            XXH_PUBLIC_API XXH_errorcode
         
     | 
| 
      
 4741 
     | 
    
         
            +
            XXH3_64bits_reset_withSecretandSeed(XXH3_state_t* statePtr, const void* secret, size_t secretSize, XXH64_hash_t seed64)
         
     | 
| 
      
 4742 
     | 
    
         
            +
            {
         
     | 
| 
      
 4743 
     | 
    
         
            +
                if (statePtr == NULL) return XXH_ERROR;
         
     | 
| 
      
 4744 
     | 
    
         
            +
                if (secret == NULL) return XXH_ERROR;
         
     | 
| 
      
 4745 
     | 
    
         
            +
                if (secretSize < XXH3_SECRET_SIZE_MIN) return XXH_ERROR;
         
     | 
| 
      
 4746 
     | 
    
         
            +
                XXH3_reset_internal(statePtr, seed64, secret, secretSize);
         
     | 
| 
      
 4747 
     | 
    
         
            +
                statePtr->useSeed = 1; /* always, even if seed64==0 */
         
     | 
| 
      
 4748 
     | 
    
         
            +
                return XXH_OK;
         
     | 
| 
      
 4749 
     | 
    
         
            +
            }
         
     | 
| 
      
 4750 
     | 
    
         
            +
             
     | 
| 
       4571 
4751 
     | 
    
         
             
            /* Note : when XXH3_consumeStripes() is invoked,
         
     | 
| 
       4572 
4752 
     | 
    
         
             
             * there must be a guarantee that at least one more byte must be consumed from input
         
     | 
| 
       4573 
4753 
     | 
    
         
             
             * so that the function can blindly consume all stripes using the "normal" secret segment */
         
     | 
| 
         @@ -4595,35 +4775,48 @@ XXH3_consumeStripes(xxh_u64* XXH_RESTRICT acc, 
     | 
|
| 
       4595 
4775 
     | 
    
         
             
                }
         
     | 
| 
       4596 
4776 
     | 
    
         
             
            }
         
     | 
| 
       4597 
4777 
     | 
    
         | 
| 
      
 4778 
     | 
    
         
            +
            #ifndef XXH3_STREAM_USE_STACK
         
     | 
| 
      
 4779 
     | 
    
         
            +
            # ifndef __clang__ /* clang doesn't need additional stack space */
         
     | 
| 
      
 4780 
     | 
    
         
            +
            #   define XXH3_STREAM_USE_STACK 1
         
     | 
| 
      
 4781 
     | 
    
         
            +
            # endif
         
     | 
| 
      
 4782 
     | 
    
         
            +
            #endif
         
     | 
| 
       4598 
4783 
     | 
    
         
             
            /*
         
     | 
| 
       4599 
4784 
     | 
    
         
             
             * Both XXH3_64bits_update and XXH3_128bits_update use this routine.
         
     | 
| 
       4600 
4785 
     | 
    
         
             
             */
         
     | 
| 
       4601 
4786 
     | 
    
         
             
            XXH_FORCE_INLINE XXH_errorcode
         
     | 
| 
       4602 
     | 
    
         
            -
            XXH3_update(XXH3_state_t* state,
         
     | 
| 
       4603 
     | 
    
         
            -
                        const xxh_u8* input, size_t len,
         
     | 
| 
      
 4787 
     | 
    
         
            +
            XXH3_update(XXH3_state_t* XXH_RESTRICT const state,
         
     | 
| 
      
 4788 
     | 
    
         
            +
                        const xxh_u8* XXH_RESTRICT input, size_t len,
         
     | 
| 
       4604 
4789 
     | 
    
         
             
                        XXH3_f_accumulate_512 f_acc512,
         
     | 
| 
       4605 
4790 
     | 
    
         
             
                        XXH3_f_scrambleAcc f_scramble)
         
     | 
| 
       4606 
4791 
     | 
    
         
             
            {
         
     | 
| 
       4607 
     | 
    
         
            -
                if (input==NULL)
         
     | 
| 
       4608 
     | 
    
         
            -
             
     | 
| 
      
 4792 
     | 
    
         
            +
                if (input==NULL) {
         
     | 
| 
      
 4793 
     | 
    
         
            +
                    XXH_ASSERT(len == 0);
         
     | 
| 
       4609 
4794 
     | 
    
         
             
                    return XXH_OK;
         
     | 
| 
       4610 
     | 
    
         
            -
             
     | 
| 
       4611 
     | 
    
         
            -
                    return XXH_ERROR;
         
     | 
| 
       4612 
     | 
    
         
            -
            #endif
         
     | 
| 
      
 4795 
     | 
    
         
            +
                }
         
     | 
| 
       4613 
4796 
     | 
    
         | 
| 
      
 4797 
     | 
    
         
            +
                XXH_ASSERT(state != NULL);
         
     | 
| 
       4614 
4798 
     | 
    
         
             
                {   const xxh_u8* const bEnd = input + len;
         
     | 
| 
       4615 
4799 
     | 
    
         
             
                    const unsigned char* const secret = (state->extSecret == NULL) ? state->customSecret : state->extSecret;
         
     | 
| 
       4616 
     | 
    
         
            -
             
     | 
| 
      
 4800 
     | 
    
         
            +
            #if defined(XXH3_STREAM_USE_STACK) && XXH3_STREAM_USE_STACK >= 1
         
     | 
| 
      
 4801 
     | 
    
         
            +
                    /* For some reason, gcc and MSVC seem to suffer greatly
         
     | 
| 
      
 4802 
     | 
    
         
            +
                     * when operating accumulators directly into state.
         
     | 
| 
      
 4803 
     | 
    
         
            +
                     * Operating into stack space seems to enable proper optimization.
         
     | 
| 
      
 4804 
     | 
    
         
            +
                     * clang, on the other hand, doesn't seem to need this trick */
         
     | 
| 
      
 4805 
     | 
    
         
            +
                    XXH_ALIGN(XXH_ACC_ALIGN) xxh_u64 acc[8]; memcpy(acc, state->acc, sizeof(acc));
         
     | 
| 
      
 4806 
     | 
    
         
            +
            #else
         
     | 
| 
      
 4807 
     | 
    
         
            +
                    xxh_u64* XXH_RESTRICT const acc = state->acc;
         
     | 
| 
      
 4808 
     | 
    
         
            +
            #endif
         
     | 
| 
       4617 
4809 
     | 
    
         
             
                    state->totalLen += len;
         
     | 
| 
       4618 
4810 
     | 
    
         
             
                    XXH_ASSERT(state->bufferedSize <= XXH3_INTERNALBUFFER_SIZE);
         
     | 
| 
       4619 
4811 
     | 
    
         | 
| 
       4620 
     | 
    
         
            -
                     
     | 
| 
      
 4812 
     | 
    
         
            +
                    /* small input : just fill in tmp buffer */
         
     | 
| 
      
 4813 
     | 
    
         
            +
                    if (state->bufferedSize + len <= XXH3_INTERNALBUFFER_SIZE) {
         
     | 
| 
       4621 
4814 
     | 
    
         
             
                        XXH_memcpy(state->buffer + state->bufferedSize, input, len);
         
     | 
| 
       4622 
4815 
     | 
    
         
             
                        state->bufferedSize += (XXH32_hash_t)len;
         
     | 
| 
       4623 
4816 
     | 
    
         
             
                        return XXH_OK;
         
     | 
| 
       4624 
4817 
     | 
    
         
             
                    }
         
     | 
| 
       4625 
     | 
    
         
            -
                    /* total input is now > XXH3_INTERNALBUFFER_SIZE */
         
     | 
| 
       4626 
4818 
     | 
    
         | 
| 
      
 4819 
     | 
    
         
            +
                    /* total input is now > XXH3_INTERNALBUFFER_SIZE */
         
     | 
| 
       4627 
4820 
     | 
    
         
             
                    #define XXH3_INTERNALBUFFER_STRIPES (XXH3_INTERNALBUFFER_SIZE / XXH_STRIPE_LEN)
         
     | 
| 
       4628 
4821 
     | 
    
         
             
                    XXH_STATIC_ASSERT(XXH3_INTERNALBUFFER_SIZE % XXH_STRIPE_LEN == 0);   /* clean multiple */
         
     | 
| 
       4629 
4822 
     | 
    
         | 
| 
         @@ -4635,7 +4828,7 @@ XXH3_update(XXH3_state_t* state, 
     | 
|
| 
       4635 
4828 
     | 
    
         
             
                        size_t const loadSize = XXH3_INTERNALBUFFER_SIZE - state->bufferedSize;
         
     | 
| 
       4636 
4829 
     | 
    
         
             
                        XXH_memcpy(state->buffer + state->bufferedSize, input, loadSize);
         
     | 
| 
       4637 
4830 
     | 
    
         
             
                        input += loadSize;
         
     | 
| 
       4638 
     | 
    
         
            -
                        XXH3_consumeStripes( 
     | 
| 
      
 4831 
     | 
    
         
            +
                        XXH3_consumeStripes(acc,
         
     | 
| 
       4639 
4832 
     | 
    
         
             
                                           &state->nbStripesSoFar, state->nbStripesPerBlock,
         
     | 
| 
       4640 
4833 
     | 
    
         
             
                                            state->buffer, XXH3_INTERNALBUFFER_STRIPES,
         
     | 
| 
       4641 
4834 
     | 
    
         
             
                                            secret, state->secretLimit,
         
     | 
| 
         @@ -4644,25 +4837,62 @@ XXH3_update(XXH3_state_t* state, 
     | 
|
| 
       4644 
4837 
     | 
    
         
             
                    }
         
     | 
| 
       4645 
4838 
     | 
    
         
             
                    XXH_ASSERT(input < bEnd);
         
     | 
| 
       4646 
4839 
     | 
    
         | 
| 
       4647 
     | 
    
         
            -
                    /*  
     | 
| 
       4648 
     | 
    
         
            -
                    if (input 
     | 
| 
       4649 
     | 
    
         
            -
                         
     | 
| 
       4650 
     | 
    
         
            -
                         
     | 
| 
       4651 
     | 
    
         
            -
             
     | 
| 
       4652 
     | 
    
         
            -
             
     | 
| 
       4653 
     | 
    
         
            -
             
     | 
| 
       4654 
     | 
    
         
            -
             
     | 
| 
       4655 
     | 
    
         
            -
             
     | 
| 
       4656 
     | 
    
         
            -
                             
     | 
| 
       4657 
     | 
    
         
            -
             
     | 
| 
       4658 
     | 
    
         
            -
             
     | 
| 
       4659 
     | 
    
         
            -
                         
     | 
| 
      
 4840 
     | 
    
         
            +
                    /* large input to consume : ingest per full block */
         
     | 
| 
      
 4841 
     | 
    
         
            +
                    if ((size_t)(bEnd - input) > state->nbStripesPerBlock * XXH_STRIPE_LEN) {
         
     | 
| 
      
 4842 
     | 
    
         
            +
                        size_t nbStripes = (size_t)(bEnd - 1 - input) / XXH_STRIPE_LEN;
         
     | 
| 
      
 4843 
     | 
    
         
            +
                        XXH_ASSERT(state->nbStripesPerBlock >= state->nbStripesSoFar);
         
     | 
| 
      
 4844 
     | 
    
         
            +
                        /* join to current block's end */
         
     | 
| 
      
 4845 
     | 
    
         
            +
                        {   size_t const nbStripesToEnd = state->nbStripesPerBlock - state->nbStripesSoFar;
         
     | 
| 
      
 4846 
     | 
    
         
            +
                            XXH_ASSERT(nbStripes <= nbStripes);
         
     | 
| 
      
 4847 
     | 
    
         
            +
                            XXH3_accumulate(acc, input, secret + state->nbStripesSoFar * XXH_SECRET_CONSUME_RATE, nbStripesToEnd, f_acc512);
         
     | 
| 
      
 4848 
     | 
    
         
            +
                            f_scramble(acc, secret + state->secretLimit);
         
     | 
| 
      
 4849 
     | 
    
         
            +
                            state->nbStripesSoFar = 0;
         
     | 
| 
      
 4850 
     | 
    
         
            +
                            input += nbStripesToEnd * XXH_STRIPE_LEN;
         
     | 
| 
      
 4851 
     | 
    
         
            +
                            nbStripes -= nbStripesToEnd;
         
     | 
| 
      
 4852 
     | 
    
         
            +
                        }
         
     | 
| 
      
 4853 
     | 
    
         
            +
                        /* consume per entire blocks */
         
     | 
| 
      
 4854 
     | 
    
         
            +
                        while(nbStripes >= state->nbStripesPerBlock) {
         
     | 
| 
      
 4855 
     | 
    
         
            +
                            XXH3_accumulate(acc, input, secret, state->nbStripesPerBlock, f_acc512);
         
     | 
| 
      
 4856 
     | 
    
         
            +
                            f_scramble(acc, secret + state->secretLimit);
         
     | 
| 
      
 4857 
     | 
    
         
            +
                            input += state->nbStripesPerBlock * XXH_STRIPE_LEN;
         
     | 
| 
      
 4858 
     | 
    
         
            +
                            nbStripes -= state->nbStripesPerBlock;
         
     | 
| 
      
 4859 
     | 
    
         
            +
                        }
         
     | 
| 
      
 4860 
     | 
    
         
            +
                        /* consume last partial block */
         
     | 
| 
      
 4861 
     | 
    
         
            +
                        XXH3_accumulate(acc, input, secret, nbStripes, f_acc512);
         
     | 
| 
      
 4862 
     | 
    
         
            +
                        input += nbStripes * XXH_STRIPE_LEN;
         
     | 
| 
      
 4863 
     | 
    
         
            +
                        XXH_ASSERT(input < bEnd);  /* at least some bytes left */
         
     | 
| 
      
 4864 
     | 
    
         
            +
                        state->nbStripesSoFar = nbStripes;
         
     | 
| 
      
 4865 
     | 
    
         
            +
                        /* buffer predecessor of last partial stripe */
         
     | 
| 
      
 4866 
     | 
    
         
            +
                        XXH_memcpy(state->buffer + sizeof(state->buffer) - XXH_STRIPE_LEN, input - XXH_STRIPE_LEN, XXH_STRIPE_LEN);
         
     | 
| 
      
 4867 
     | 
    
         
            +
                        XXH_ASSERT(bEnd - input <= XXH_STRIPE_LEN);
         
     | 
| 
      
 4868 
     | 
    
         
            +
                    } else {
         
     | 
| 
      
 4869 
     | 
    
         
            +
                        /* content to consume <= block size */
         
     | 
| 
      
 4870 
     | 
    
         
            +
                        /* Consume input by a multiple of internal buffer size */
         
     | 
| 
      
 4871 
     | 
    
         
            +
                        if (bEnd - input > XXH3_INTERNALBUFFER_SIZE) {
         
     | 
| 
      
 4872 
     | 
    
         
            +
                            const xxh_u8* const limit = bEnd - XXH3_INTERNALBUFFER_SIZE;
         
     | 
| 
      
 4873 
     | 
    
         
            +
                            do {
         
     | 
| 
      
 4874 
     | 
    
         
            +
                                XXH3_consumeStripes(acc,
         
     | 
| 
      
 4875 
     | 
    
         
            +
                                                   &state->nbStripesSoFar, state->nbStripesPerBlock,
         
     | 
| 
      
 4876 
     | 
    
         
            +
                                                    input, XXH3_INTERNALBUFFER_STRIPES,
         
     | 
| 
      
 4877 
     | 
    
         
            +
                                                    secret, state->secretLimit,
         
     | 
| 
      
 4878 
     | 
    
         
            +
                                                    f_acc512, f_scramble);
         
     | 
| 
      
 4879 
     | 
    
         
            +
                                input += XXH3_INTERNALBUFFER_SIZE;
         
     | 
| 
      
 4880 
     | 
    
         
            +
                            } while (input<limit);
         
     | 
| 
      
 4881 
     | 
    
         
            +
                            /* buffer predecessor of last partial stripe */
         
     | 
| 
      
 4882 
     | 
    
         
            +
                            XXH_memcpy(state->buffer + sizeof(state->buffer) - XXH_STRIPE_LEN, input - XXH_STRIPE_LEN, XXH_STRIPE_LEN);
         
     | 
| 
      
 4883 
     | 
    
         
            +
                        }
         
     | 
| 
       4660 
4884 
     | 
    
         
             
                    }
         
     | 
| 
       4661 
     | 
    
         
            -
                    XXH_ASSERT(input < bEnd);
         
     | 
| 
       4662 
4885 
     | 
    
         | 
| 
       4663 
4886 
     | 
    
         
             
                    /* Some remaining input (always) : buffer it */
         
     | 
| 
      
 4887 
     | 
    
         
            +
                    XXH_ASSERT(input < bEnd);
         
     | 
| 
      
 4888 
     | 
    
         
            +
                    XXH_ASSERT(bEnd - input <= XXH3_INTERNALBUFFER_SIZE);
         
     | 
| 
      
 4889 
     | 
    
         
            +
                    XXH_ASSERT(state->bufferedSize == 0);
         
     | 
| 
       4664 
4890 
     | 
    
         
             
                    XXH_memcpy(state->buffer, input, (size_t)(bEnd-input));
         
     | 
| 
       4665 
4891 
     | 
    
         
             
                    state->bufferedSize = (XXH32_hash_t)(bEnd-input);
         
     | 
| 
      
 4892 
     | 
    
         
            +
            #if defined(XXH3_STREAM_USE_STACK) && XXH3_STREAM_USE_STACK >= 1
         
     | 
| 
      
 4893 
     | 
    
         
            +
                    /* save stack accumulators into state */
         
     | 
| 
      
 4894 
     | 
    
         
            +
                    memcpy(state->acc, acc, sizeof(acc));
         
     | 
| 
      
 4895 
     | 
    
         
            +
            #endif
         
     | 
| 
       4666 
4896 
     | 
    
         
             
                }
         
     | 
| 
       4667 
4897 
     | 
    
         | 
| 
       4668 
4898 
     | 
    
         
             
                return XXH_OK;
         
     | 
| 
         @@ -4686,7 +4916,7 @@ XXH3_digest_long (XXH64_hash_t* acc, 
     | 
|
| 
       4686 
4916 
     | 
    
         
             
                 * Digest on a local copy. This way, the state remains unaltered, and it can
         
     | 
| 
       4687 
4917 
     | 
    
         
             
                 * continue ingesting more input afterwards.
         
     | 
| 
       4688 
4918 
     | 
    
         
             
                 */
         
     | 
| 
       4689 
     | 
    
         
            -
                 
     | 
| 
      
 4919 
     | 
    
         
            +
                XXH_memcpy(acc, state->acc, sizeof(state->acc));
         
     | 
| 
       4690 
4920 
     | 
    
         
             
                if (state->bufferedSize >= XXH_STRIPE_LEN) {
         
     | 
| 
       4691 
4921 
     | 
    
         
             
                    size_t const nbStripes = (state->bufferedSize - 1) / XXH_STRIPE_LEN;
         
     | 
| 
       4692 
4922 
     | 
    
         
             
                    size_t nbStripesSoFar = state->nbStripesSoFar;
         
     | 
| 
         @@ -4703,8 +4933,8 @@ XXH3_digest_long (XXH64_hash_t* acc, 
     | 
|
| 
       4703 
4933 
     | 
    
         
             
                    xxh_u8 lastStripe[XXH_STRIPE_LEN];
         
     | 
| 
       4704 
4934 
     | 
    
         
             
                    size_t const catchupSize = XXH_STRIPE_LEN - state->bufferedSize;
         
     | 
| 
       4705 
4935 
     | 
    
         
             
                    XXH_ASSERT(state->bufferedSize > 0);  /* there is always some input buffered */
         
     | 
| 
       4706 
     | 
    
         
            -
                     
     | 
| 
       4707 
     | 
    
         
            -
                     
     | 
| 
      
 4936 
     | 
    
         
            +
                    XXH_memcpy(lastStripe, state->buffer + sizeof(state->buffer) - catchupSize, catchupSize);
         
     | 
| 
      
 4937 
     | 
    
         
            +
                    XXH_memcpy(lastStripe + catchupSize, state->buffer, state->bufferedSize);
         
     | 
| 
       4708 
4938 
     | 
    
         
             
                    XXH3_accumulate_512(acc,
         
     | 
| 
       4709 
4939 
     | 
    
         
             
                                        lastStripe,
         
     | 
| 
       4710 
4940 
     | 
    
         
             
                                        secret + state->secretLimit - XXH_SECRET_LASTACC_START);
         
     | 
| 
         @@ -4723,58 +4953,13 @@ XXH_PUBLIC_API XXH64_hash_t XXH3_64bits_digest (const XXH3_state_t* state) 
     | 
|
| 
       4723 
4953 
     | 
    
         
             
                                          (xxh_u64)state->totalLen * XXH_PRIME64_1);
         
     | 
| 
       4724 
4954 
     | 
    
         
             
                }
         
     | 
| 
       4725 
4955 
     | 
    
         
             
                /* totalLen <= XXH3_MIDSIZE_MAX: digesting a short input */
         
     | 
| 
       4726 
     | 
    
         
            -
                if (state-> 
     | 
| 
      
 4956 
     | 
    
         
            +
                if (state->useSeed)
         
     | 
| 
       4727 
4957 
     | 
    
         
             
                    return XXH3_64bits_withSeed(state->buffer, (size_t)state->totalLen, state->seed);
         
     | 
| 
       4728 
4958 
     | 
    
         
             
                return XXH3_64bits_withSecret(state->buffer, (size_t)(state->totalLen),
         
     | 
| 
       4729 
4959 
     | 
    
         
             
                                              secret, state->secretLimit + XXH_STRIPE_LEN);
         
     | 
| 
       4730 
4960 
     | 
    
         
             
            }
         
     | 
| 
       4731 
4961 
     | 
    
         | 
| 
       4732 
4962 
     | 
    
         | 
| 
       4733 
     | 
    
         
            -
            #define XXH_MIN(x, y) (((x) > (y)) ? (y) : (x))
         
     | 
| 
       4734 
     | 
    
         
            -
             
     | 
| 
       4735 
     | 
    
         
            -
            /*! @ingroup xxh3_family */
         
     | 
| 
       4736 
     | 
    
         
            -
            XXH_PUBLIC_API void
         
     | 
| 
       4737 
     | 
    
         
            -
            XXH3_generateSecret(void* secretBuffer, const void* customSeed, size_t customSeedSize)
         
     | 
| 
       4738 
     | 
    
         
            -
            {
         
     | 
| 
       4739 
     | 
    
         
            -
                XXH_ASSERT(secretBuffer != NULL);
         
     | 
| 
       4740 
     | 
    
         
            -
                if (customSeedSize == 0) {
         
     | 
| 
       4741 
     | 
    
         
            -
                    memcpy(secretBuffer, XXH3_kSecret, XXH_SECRET_DEFAULT_SIZE);
         
     | 
| 
       4742 
     | 
    
         
            -
                    return;
         
     | 
| 
       4743 
     | 
    
         
            -
                }
         
     | 
| 
       4744 
     | 
    
         
            -
                XXH_ASSERT(customSeed != NULL);
         
     | 
| 
       4745 
     | 
    
         
            -
             
     | 
| 
       4746 
     | 
    
         
            -
                {   size_t const segmentSize = sizeof(XXH128_hash_t);
         
     | 
| 
       4747 
     | 
    
         
            -
                    size_t const nbSegments = XXH_SECRET_DEFAULT_SIZE / segmentSize;
         
     | 
| 
       4748 
     | 
    
         
            -
                    XXH128_canonical_t scrambler;
         
     | 
| 
       4749 
     | 
    
         
            -
                    XXH64_hash_t seeds[12];
         
     | 
| 
       4750 
     | 
    
         
            -
                    size_t segnb;
         
     | 
| 
       4751 
     | 
    
         
            -
                    XXH_ASSERT(nbSegments == 12);
         
     | 
| 
       4752 
     | 
    
         
            -
                    XXH_ASSERT(segmentSize * nbSegments == XXH_SECRET_DEFAULT_SIZE); /* exact multiple */
         
     | 
| 
       4753 
     | 
    
         
            -
                    XXH128_canonicalFromHash(&scrambler, XXH128(customSeed, customSeedSize, 0));
         
     | 
| 
       4754 
     | 
    
         
            -
             
     | 
| 
       4755 
     | 
    
         
            -
                    /*
         
     | 
| 
       4756 
     | 
    
         
            -
                    * Copy customSeed to seeds[], truncating or repeating as necessary.
         
     | 
| 
       4757 
     | 
    
         
            -
                    */
         
     | 
| 
       4758 
     | 
    
         
            -
                    {   size_t toFill = XXH_MIN(customSeedSize, sizeof(seeds));
         
     | 
| 
       4759 
     | 
    
         
            -
                        size_t filled = toFill;
         
     | 
| 
       4760 
     | 
    
         
            -
                        memcpy(seeds, customSeed, toFill);
         
     | 
| 
       4761 
     | 
    
         
            -
                        while (filled < sizeof(seeds)) {
         
     | 
| 
       4762 
     | 
    
         
            -
                            toFill = XXH_MIN(filled, sizeof(seeds) - filled);
         
     | 
| 
       4763 
     | 
    
         
            -
                            memcpy((char*)seeds + filled, seeds, toFill);
         
     | 
| 
       4764 
     | 
    
         
            -
                            filled += toFill;
         
     | 
| 
       4765 
     | 
    
         
            -
                    }   }
         
     | 
| 
       4766 
     | 
    
         
            -
             
     | 
| 
       4767 
     | 
    
         
            -
                    /* generate secret */
         
     | 
| 
       4768 
     | 
    
         
            -
                    memcpy(secretBuffer, &scrambler, sizeof(scrambler));
         
     | 
| 
       4769 
     | 
    
         
            -
                    for (segnb=1; segnb < nbSegments; segnb++) {
         
     | 
| 
       4770 
     | 
    
         
            -
                        size_t const segmentStart = segnb * segmentSize;
         
     | 
| 
       4771 
     | 
    
         
            -
                        XXH128_canonical_t segment;
         
     | 
| 
       4772 
     | 
    
         
            -
                        XXH128_canonicalFromHash(&segment,
         
     | 
| 
       4773 
     | 
    
         
            -
                            XXH128(&scrambler, sizeof(scrambler), XXH_readLE64(seeds + segnb) + segnb) );
         
     | 
| 
       4774 
     | 
    
         
            -
                        memcpy((char*)secretBuffer + segmentStart, &segment, sizeof(segment));
         
     | 
| 
       4775 
     | 
    
         
            -
                }   }
         
     | 
| 
       4776 
     | 
    
         
            -
            }
         
     | 
| 
       4777 
     | 
    
         
            -
             
     | 
| 
       4778 
4963 
     | 
    
         | 
| 
       4779 
4964 
     | 
    
         
             
            /* ==========================================
         
     | 
| 
       4780 
4965 
     | 
    
         
             
             * XXH3 128 bits (a.k.a XXH128)
         
     | 
| 
         @@ -5076,9 +5261,10 @@ XXH3_hashLong_128b_default(const void* XXH_RESTRICT input, size_t len, 
     | 
|
| 
       5076 
5261 
     | 
    
         
             
            }
         
     | 
| 
       5077 
5262 
     | 
    
         | 
| 
       5078 
5263 
     | 
    
         
             
            /*
         
     | 
| 
       5079 
     | 
    
         
            -
             * It's important for performance  
     | 
| 
      
 5264 
     | 
    
         
            +
             * It's important for performance to pass @secretLen (when it's static)
         
     | 
| 
      
 5265 
     | 
    
         
            +
             * to the compiler, so that it can properly optimize the vectorized loop.
         
     | 
| 
       5080 
5266 
     | 
    
         
             
             */
         
     | 
| 
       5081 
     | 
    
         
            -
             
     | 
| 
      
 5267 
     | 
    
         
            +
            XXH_FORCE_INLINE XXH128_hash_t
         
     | 
| 
       5082 
5268 
     | 
    
         
             
            XXH3_hashLong_128b_withSecret(const void* XXH_RESTRICT input, size_t len,
         
     | 
| 
       5083 
5269 
     | 
    
         
             
                                          XXH64_hash_t seed64,
         
     | 
| 
       5084 
5270 
     | 
    
         
             
                                          const void* XXH_RESTRICT secret, size_t secretLen)
         
     | 
| 
         @@ -5171,6 +5357,15 @@ XXH3_128bits_withSeed(const void* input, size_t len, XXH64_hash_t seed) 
     | 
|
| 
       5171 
5357 
     | 
    
         
             
                                             XXH3_hashLong_128b_withSeed);
         
     | 
| 
       5172 
5358 
     | 
    
         
             
            }
         
     | 
| 
       5173 
5359 
     | 
    
         | 
| 
      
 5360 
     | 
    
         
            +
            /*! @ingroup xxh3_family */
         
     | 
| 
      
 5361 
     | 
    
         
            +
            XXH_PUBLIC_API XXH128_hash_t
         
     | 
| 
      
 5362 
     | 
    
         
            +
            XXH3_128bits_withSecretandSeed(const void* input, size_t len, const void* secret, size_t secretSize, XXH64_hash_t seed)
         
     | 
| 
      
 5363 
     | 
    
         
            +
            {
         
     | 
| 
      
 5364 
     | 
    
         
            +
                if (len <= XXH3_MIDSIZE_MAX)
         
     | 
| 
      
 5365 
     | 
    
         
            +
                    return XXH3_128bits_internal(input, len, seed, XXH3_kSecret, sizeof(XXH3_kSecret), NULL);
         
     | 
| 
      
 5366 
     | 
    
         
            +
                return XXH3_hashLong_128b_withSecret(input, len, seed, secret, secretSize);
         
     | 
| 
      
 5367 
     | 
    
         
            +
            }
         
     | 
| 
      
 5368 
     | 
    
         
            +
             
     | 
| 
       5174 
5369 
     | 
    
         
             
            /*! @ingroup xxh3_family */
         
     | 
| 
       5175 
5370 
     | 
    
         
             
            XXH_PUBLIC_API XXH128_hash_t
         
     | 
| 
       5176 
5371 
     | 
    
         
             
            XXH128(const void* input, size_t len, XXH64_hash_t seed)
         
     | 
| 
         @@ -5182,7 +5377,7 @@ XXH128(const void* input, size_t len, XXH64_hash_t seed) 
     | 
|
| 
       5182 
5377 
     | 
    
         
             
            /* ===   XXH3 128-bit streaming   === */
         
     | 
| 
       5183 
5378 
     | 
    
         | 
| 
       5184 
5379 
     | 
    
         
             
            /*
         
     | 
| 
       5185 
     | 
    
         
            -
             * All  
     | 
| 
      
 5380 
     | 
    
         
            +
             * All initialization and update functions are identical to 64-bit streaming variant.
         
     | 
| 
       5186 
5381 
     | 
    
         
             
             * The only difference is the finalization routine.
         
     | 
| 
       5187 
5382 
     | 
    
         
             
             */
         
     | 
| 
       5188 
5383 
     | 
    
         | 
| 
         @@ -5190,31 +5385,28 @@ XXH128(const void* input, size_t len, XXH64_hash_t seed) 
     | 
|
| 
       5190 
5385 
     | 
    
         
             
            XXH_PUBLIC_API XXH_errorcode
         
     | 
| 
       5191 
5386 
     | 
    
         
             
            XXH3_128bits_reset(XXH3_state_t* statePtr)
         
     | 
| 
       5192 
5387 
     | 
    
         
             
            {
         
     | 
| 
       5193 
     | 
    
         
            -
                 
     | 
| 
       5194 
     | 
    
         
            -
                XXH3_reset_internal(statePtr, 0, XXH3_kSecret, XXH_SECRET_DEFAULT_SIZE);
         
     | 
| 
       5195 
     | 
    
         
            -
                return XXH_OK;
         
     | 
| 
      
 5388 
     | 
    
         
            +
                return XXH3_64bits_reset(statePtr);
         
     | 
| 
       5196 
5389 
     | 
    
         
             
            }
         
     | 
| 
       5197 
5390 
     | 
    
         | 
| 
       5198 
5391 
     | 
    
         
             
            /*! @ingroup xxh3_family */
         
     | 
| 
       5199 
5392 
     | 
    
         
             
            XXH_PUBLIC_API XXH_errorcode
         
     | 
| 
       5200 
5393 
     | 
    
         
             
            XXH3_128bits_reset_withSecret(XXH3_state_t* statePtr, const void* secret, size_t secretSize)
         
     | 
| 
       5201 
5394 
     | 
    
         
             
            {
         
     | 
| 
       5202 
     | 
    
         
            -
                 
     | 
| 
       5203 
     | 
    
         
            -
                XXH3_reset_internal(statePtr, 0, secret, secretSize);
         
     | 
| 
       5204 
     | 
    
         
            -
                if (secret == NULL) return XXH_ERROR;
         
     | 
| 
       5205 
     | 
    
         
            -
                if (secretSize < XXH3_SECRET_SIZE_MIN) return XXH_ERROR;
         
     | 
| 
       5206 
     | 
    
         
            -
                return XXH_OK;
         
     | 
| 
      
 5395 
     | 
    
         
            +
                return XXH3_64bits_reset_withSecret(statePtr, secret, secretSize);
         
     | 
| 
       5207 
5396 
     | 
    
         
             
            }
         
     | 
| 
       5208 
5397 
     | 
    
         | 
| 
       5209 
5398 
     | 
    
         
             
            /*! @ingroup xxh3_family */
         
     | 
| 
       5210 
5399 
     | 
    
         
             
            XXH_PUBLIC_API XXH_errorcode
         
     | 
| 
       5211 
5400 
     | 
    
         
             
            XXH3_128bits_reset_withSeed(XXH3_state_t* statePtr, XXH64_hash_t seed)
         
     | 
| 
       5212 
5401 
     | 
    
         
             
            {
         
     | 
| 
       5213 
     | 
    
         
            -
                 
     | 
| 
       5214 
     | 
    
         
            -
             
     | 
| 
       5215 
     | 
    
         
            -
             
     | 
| 
       5216 
     | 
    
         
            -
             
     | 
| 
       5217 
     | 
    
         
            -
             
     | 
| 
      
 5402 
     | 
    
         
            +
                return XXH3_64bits_reset_withSeed(statePtr, seed);
         
     | 
| 
      
 5403 
     | 
    
         
            +
            }
         
     | 
| 
      
 5404 
     | 
    
         
            +
             
     | 
| 
      
 5405 
     | 
    
         
            +
            /*! @ingroup xxh3_family */
         
     | 
| 
      
 5406 
     | 
    
         
            +
            XXH_PUBLIC_API XXH_errorcode
         
     | 
| 
      
 5407 
     | 
    
         
            +
            XXH3_128bits_reset_withSecretandSeed(XXH3_state_t* statePtr, const void* secret, size_t secretSize, XXH64_hash_t seed)
         
     | 
| 
      
 5408 
     | 
    
         
            +
            {
         
     | 
| 
      
 5409 
     | 
    
         
            +
                return XXH3_64bits_reset_withSecretandSeed(statePtr, secret, secretSize, seed);
         
     | 
| 
       5218 
5410 
     | 
    
         
             
            }
         
     | 
| 
       5219 
5411 
     | 
    
         | 
| 
       5220 
5412 
     | 
    
         
             
            /*! @ingroup xxh3_family */
         
     | 
| 
         @@ -5289,8 +5481,8 @@ XXH128_canonicalFromHash(XXH128_canonical_t* dst, XXH128_hash_t hash) 
     | 
|
| 
       5289 
5481 
     | 
    
         
             
                    hash.high64 = XXH_swap64(hash.high64);
         
     | 
| 
       5290 
5482 
     | 
    
         
             
                    hash.low64  = XXH_swap64(hash.low64);
         
     | 
| 
       5291 
5483 
     | 
    
         
             
                }
         
     | 
| 
       5292 
     | 
    
         
            -
                 
     | 
| 
       5293 
     | 
    
         
            -
                 
     | 
| 
      
 5484 
     | 
    
         
            +
                XXH_memcpy(dst, &hash.high64, sizeof(hash.high64));
         
     | 
| 
      
 5485 
     | 
    
         
            +
                XXH_memcpy((char*)dst + sizeof(hash.high64), &hash.low64, sizeof(hash.low64));
         
     | 
| 
       5294 
5486 
     | 
    
         
             
            }
         
     | 
| 
       5295 
5487 
     | 
    
         | 
| 
       5296 
5488 
     | 
    
         
             
            /*! @ingroup xxh3_family */
         
     | 
| 
         @@ -5303,6 +5495,69 @@ XXH128_hashFromCanonical(const XXH128_canonical_t* src) 
     | 
|
| 
       5303 
5495 
     | 
    
         
             
                return h;
         
     | 
| 
       5304 
5496 
     | 
    
         
             
            }
         
     | 
| 
       5305 
5497 
     | 
    
         | 
| 
      
 5498 
     | 
    
         
            +
             
     | 
| 
      
 5499 
     | 
    
         
            +
             
     | 
| 
      
 5500 
     | 
    
         
            +
            /* ==========================================
         
     | 
| 
      
 5501 
     | 
    
         
            +
             * Secret generators
         
     | 
| 
      
 5502 
     | 
    
         
            +
             * ==========================================
         
     | 
| 
      
 5503 
     | 
    
         
            +
             */
         
     | 
| 
      
 5504 
     | 
    
         
            +
            #define XXH_MIN(x, y) (((x) > (y)) ? (y) : (x))
         
     | 
| 
      
 5505 
     | 
    
         
            +
             
     | 
| 
      
 5506 
     | 
    
         
            +
            static void XXH3_combine16(void* dst, XXH128_hash_t h128)
         
     | 
| 
      
 5507 
     | 
    
         
            +
            {
         
     | 
| 
      
 5508 
     | 
    
         
            +
                XXH_writeLE64( dst, XXH_readLE64(dst) ^ h128.low64 );
         
     | 
| 
      
 5509 
     | 
    
         
            +
                XXH_writeLE64( (char*)dst+8, XXH_readLE64((char*)dst+8) ^ h128.high64 );
         
     | 
| 
      
 5510 
     | 
    
         
            +
            }
         
     | 
| 
      
 5511 
     | 
    
         
            +
             
     | 
| 
      
 5512 
     | 
    
         
            +
            /*! @ingroup xxh3_family */
         
     | 
| 
      
 5513 
     | 
    
         
            +
            XXH_PUBLIC_API XXH_errorcode
         
     | 
| 
      
 5514 
     | 
    
         
            +
            XXH3_generateSecret(void* secretBuffer, size_t secretSize, const void* customSeed, size_t customSeedSize)
         
     | 
| 
      
 5515 
     | 
    
         
            +
            {
         
     | 
| 
      
 5516 
     | 
    
         
            +
                XXH_ASSERT(secretBuffer != NULL);
         
     | 
| 
      
 5517 
     | 
    
         
            +
                if (secretBuffer == NULL) return XXH_ERROR;
         
     | 
| 
      
 5518 
     | 
    
         
            +
                XXH_ASSERT(secretSize >= XXH3_SECRET_SIZE_MIN);
         
     | 
| 
      
 5519 
     | 
    
         
            +
                if (secretSize < XXH3_SECRET_SIZE_MIN) return XXH_ERROR;
         
     | 
| 
      
 5520 
     | 
    
         
            +
                if (customSeedSize == 0) {
         
     | 
| 
      
 5521 
     | 
    
         
            +
                    customSeed = XXH3_kSecret;
         
     | 
| 
      
 5522 
     | 
    
         
            +
                    customSeedSize = XXH_SECRET_DEFAULT_SIZE;
         
     | 
| 
      
 5523 
     | 
    
         
            +
                }
         
     | 
| 
      
 5524 
     | 
    
         
            +
                XXH_ASSERT(customSeed != NULL);
         
     | 
| 
      
 5525 
     | 
    
         
            +
                if (customSeed == NULL) return XXH_ERROR;
         
     | 
| 
      
 5526 
     | 
    
         
            +
             
     | 
| 
      
 5527 
     | 
    
         
            +
                /* Fill secretBuffer with a copy of customSeed - repeat as needed */
         
     | 
| 
      
 5528 
     | 
    
         
            +
                {   size_t pos = 0;
         
     | 
| 
      
 5529 
     | 
    
         
            +
                    while (pos < secretSize) {
         
     | 
| 
      
 5530 
     | 
    
         
            +
                        size_t const toCopy = XXH_MIN((secretSize - pos), customSeedSize);
         
     | 
| 
      
 5531 
     | 
    
         
            +
                        memcpy((char*)secretBuffer + pos, customSeed, toCopy);
         
     | 
| 
      
 5532 
     | 
    
         
            +
                        pos += toCopy;
         
     | 
| 
      
 5533 
     | 
    
         
            +
                }   }
         
     | 
| 
      
 5534 
     | 
    
         
            +
             
     | 
| 
      
 5535 
     | 
    
         
            +
                {   size_t const nbSeg16 = secretSize / 16;
         
     | 
| 
      
 5536 
     | 
    
         
            +
                    size_t n;
         
     | 
| 
      
 5537 
     | 
    
         
            +
                    XXH128_canonical_t scrambler;
         
     | 
| 
      
 5538 
     | 
    
         
            +
                    XXH128_canonicalFromHash(&scrambler, XXH128(customSeed, customSeedSize, 0));
         
     | 
| 
      
 5539 
     | 
    
         
            +
                    for (n=0; n<nbSeg16; n++) {
         
     | 
| 
      
 5540 
     | 
    
         
            +
                        XXH128_hash_t const h128 = XXH128(&scrambler, sizeof(scrambler), n);
         
     | 
| 
      
 5541 
     | 
    
         
            +
                        XXH3_combine16((char*)secretBuffer + n*16, h128);
         
     | 
| 
      
 5542 
     | 
    
         
            +
                    }
         
     | 
| 
      
 5543 
     | 
    
         
            +
                    /* last segment */
         
     | 
| 
      
 5544 
     | 
    
         
            +
                    XXH3_combine16((char*)secretBuffer + secretSize - 16, XXH128_hashFromCanonical(&scrambler));
         
     | 
| 
      
 5545 
     | 
    
         
            +
                }
         
     | 
| 
      
 5546 
     | 
    
         
            +
                return XXH_OK;
         
     | 
| 
      
 5547 
     | 
    
         
            +
            }
         
     | 
| 
      
 5548 
     | 
    
         
            +
             
     | 
| 
      
 5549 
     | 
    
         
            +
            /*! @ingroup xxh3_family */
         
     | 
| 
      
 5550 
     | 
    
         
            +
            XXH_PUBLIC_API void
         
     | 
| 
      
 5551 
     | 
    
         
            +
            XXH3_generateSecret_fromSeed(void* secretBuffer, XXH64_hash_t seed)
         
     | 
| 
      
 5552 
     | 
    
         
            +
            {
         
     | 
| 
      
 5553 
     | 
    
         
            +
                XXH_ALIGN(XXH_SEC_ALIGN) xxh_u8 secret[XXH_SECRET_DEFAULT_SIZE];
         
     | 
| 
      
 5554 
     | 
    
         
            +
                XXH3_initCustomSecret(secret, seed);
         
     | 
| 
      
 5555 
     | 
    
         
            +
                XXH_ASSERT(secretBuffer != NULL);
         
     | 
| 
      
 5556 
     | 
    
         
            +
                memcpy(secretBuffer, secret, XXH_SECRET_DEFAULT_SIZE);
         
     | 
| 
      
 5557 
     | 
    
         
            +
            }
         
     | 
| 
      
 5558 
     | 
    
         
            +
             
     | 
| 
      
 5559 
     | 
    
         
            +
             
     | 
| 
      
 5560 
     | 
    
         
            +
             
     | 
| 
       5306 
5561 
     | 
    
         
             
            /* Pop our optimization override from above */
         
     | 
| 
       5307 
5562 
     | 
    
         
             
            #if XXH_VECTOR == XXH_AVX2 /* AVX2 */ \
         
     | 
| 
       5308 
5563 
     | 
    
         
             
              && defined(__GNUC__) && !defined(__clang__) /* GCC, not Clang */ \
         
     |