grpc 1.73.0 → 1.74.0

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.
Files changed (499) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +38 -17
  3. data/include/grpc/create_channel_from_endpoint.h +54 -0
  4. data/include/grpc/credentials.h +11 -5
  5. data/include/grpc/event_engine/event_engine.h +74 -17
  6. data/include/grpc/grpc_posix.h +20 -1
  7. data/include/grpc/impl/channel_arg_names.h +2 -4
  8. data/include/grpc/module.modulemap +1 -0
  9. data/include/grpc/support/json.h +24 -0
  10. data/src/core/call/interception_chain.h +7 -11
  11. data/src/core/channelz/channel_trace.cc +213 -115
  12. data/src/core/channelz/channel_trace.h +380 -86
  13. data/src/core/channelz/channelz.cc +270 -181
  14. data/src/core/channelz/channelz.h +168 -55
  15. data/src/core/channelz/channelz_registry.cc +2 -1
  16. data/src/core/channelz/channelz_registry.h +24 -0
  17. data/src/core/channelz/property_list.cc +357 -0
  18. data/src/core/channelz/property_list.h +202 -0
  19. data/src/core/channelz/ztrace_collector.h +3 -2
  20. data/src/core/client_channel/backup_poller.cc +17 -2
  21. data/src/core/client_channel/client_channel.cc +17 -28
  22. data/src/core/client_channel/client_channel_filter.cc +19 -29
  23. data/src/core/client_channel/config_selector.h +8 -2
  24. data/src/core/client_channel/dynamic_filters.cc +5 -6
  25. data/src/core/client_channel/dynamic_filters.h +1 -1
  26. data/src/core/client_channel/global_subchannel_pool.cc +4 -1
  27. data/src/core/client_channel/retry_filter.cc +21 -27
  28. data/src/core/client_channel/retry_filter.h +10 -7
  29. data/src/core/client_channel/retry_filter_legacy_call_data.cc +5 -5
  30. data/src/core/client_channel/retry_filter_legacy_call_data.h +1 -1
  31. data/src/core/client_channel/retry_interceptor.cc +30 -44
  32. data/src/core/client_channel/retry_interceptor.h +18 -17
  33. data/src/core/client_channel/retry_throttle.cc +46 -61
  34. data/src/core/client_channel/retry_throttle.h +17 -39
  35. data/src/core/client_channel/subchannel.cc +43 -19
  36. data/src/core/client_channel/subchannel.h +8 -0
  37. data/src/core/config/config_vars.cc +2 -0
  38. data/src/core/config/core_configuration.cc +1 -0
  39. data/src/core/config/core_configuration.h +11 -0
  40. data/src/core/credentials/call/call_creds_registry.h +125 -0
  41. data/src/core/credentials/call/call_creds_registry_init.cc +91 -0
  42. data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +6 -48
  43. data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.cc +86 -0
  44. data/src/core/credentials/call/jwt_token_file/jwt_token_file_call_credentials.h +74 -0
  45. data/src/core/credentials/call/jwt_util.cc +70 -0
  46. data/src/core/credentials/call/jwt_util.h +32 -0
  47. data/src/core/credentials/transport/channel_creds_registry_init.cc +1 -1
  48. data/src/core/credentials/transport/google_default/google_default_credentials.cc +72 -4
  49. data/src/core/credentials/transport/ssl/ssl_credentials.cc +0 -1
  50. data/src/core/credentials/transport/tls/load_system_roots_supported.cc +1 -0
  51. data/src/core/credentials/transport/xds/xds_credentials.cc +0 -3
  52. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +8 -8
  53. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +16 -16
  54. data/src/core/ext/filters/http/client_authority_filter.cc +2 -4
  55. data/src/core/ext/filters/http/message_compress/compression_filter.h +25 -22
  56. data/src/core/ext/filters/http/server/http_server_filter.h +12 -11
  57. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +120 -35
  58. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +6 -5
  59. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +162 -115
  60. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +0 -3
  61. data/src/core/ext/transport/chttp2/transport/decode_huff.cc +1239 -3514
  62. data/src/core/ext/transport/chttp2/transport/decode_huff.h +1008 -1486
  63. data/src/core/ext/transport/chttp2/transport/flow_control.h +22 -17
  64. data/src/core/ext/transport/chttp2/transport/frame.cc +10 -0
  65. data/src/core/ext/transport/chttp2/transport/frame.h +2 -2
  66. data/src/core/ext/transport/chttp2/transport/frame_data.cc +1 -1
  67. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +7 -8
  68. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -5
  69. data/src/core/ext/transport/chttp2/transport/header_assembler.h +299 -0
  70. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +1 -1
  71. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +11 -5
  72. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +12 -1
  73. data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +1017 -0
  74. data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +593 -0
  75. data/src/core/ext/transport/chttp2/transport/http2_settings.h +19 -22
  76. data/{third_party/abseil-cpp/absl/strings/cord_buffer.cc → src/core/ext/transport/chttp2/transport/http2_stats_collector.cc} +14 -14
  77. data/src/core/ext/transport/chttp2/transport/http2_stats_collector.h +33 -0
  78. data/src/core/ext/transport/chttp2/transport/http2_status.h +6 -1
  79. data/src/core/ext/transport/chttp2/transport/http2_transport.cc +43 -0
  80. data/src/core/ext/transport/chttp2/transport/http2_transport.h +65 -0
  81. data/src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h +0 -29
  82. data/src/core/ext/transport/chttp2/transport/internal.h +18 -8
  83. data/src/core/ext/transport/chttp2/transport/keepalive.cc +105 -0
  84. data/src/core/ext/transport/chttp2/transport/keepalive.h +138 -0
  85. data/src/core/ext/transport/chttp2/transport/message_assembler.h +185 -0
  86. data/src/core/ext/transport/chttp2/transport/parsing.cc +2 -4
  87. data/src/core/ext/transport/chttp2/transport/ping_callbacks.h +19 -0
  88. data/src/core/ext/transport/chttp2/transport/ping_promise.cc +151 -0
  89. data/src/core/ext/transport/chttp2/transport/ping_promise.h +180 -0
  90. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +5 -9
  91. data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +11 -0
  92. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +39 -1
  93. data/src/core/ext/transport/chttp2/transport/transport_common.cc +19 -0
  94. data/src/core/ext/transport/chttp2/transport/transport_common.h +27 -0
  95. data/src/core/ext/transport/chttp2/transport/writing.cc +37 -11
  96. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb.h +571 -0
  97. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c +120 -0
  98. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.h +36 -0
  99. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb.h +1272 -0
  100. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c +312 -0
  101. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.h +50 -0
  102. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb.h +984 -0
  103. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c +226 -0
  104. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.h +44 -0
  105. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.c +175 -0
  106. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.h +82 -0
  107. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.c +135 -0
  108. data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/property_list.upbdefs.h +67 -0
  109. data/src/core/filter/auth/auth_filters.h +0 -25
  110. data/src/core/filter/auth/client_auth_filter.cc +0 -118
  111. data/src/core/filter/filter_args.h +9 -23
  112. data/src/core/handshaker/handshaker.cc +23 -14
  113. data/src/core/handshaker/handshaker.h +3 -0
  114. data/src/core/handshaker/http_connect/http_connect_handshaker.cc +3 -1
  115. data/src/core/handshaker/security/legacy_secure_endpoint.cc +6 -5
  116. data/src/core/handshaker/security/secure_endpoint.cc +70 -25
  117. data/src/core/handshaker/security/security_handshaker.cc +4 -1
  118. data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +7 -1
  119. data/src/core/lib/channel/channel_args.cc +15 -0
  120. data/src/core/lib/channel/channel_args.h +3 -0
  121. data/src/core/lib/channel/channel_stack.cc +22 -23
  122. data/src/core/lib/channel/channel_stack.h +9 -7
  123. data/src/core/lib/channel/channel_stack_builder_impl.cc +1 -1
  124. data/src/core/lib/channel/channel_stack_builder_impl.h +2 -7
  125. data/src/core/lib/channel/promise_based_filter.h +5 -5
  126. data/src/core/lib/debug/trace_impl.h +0 -1
  127. data/src/core/lib/event_engine/ares_resolver.cc +165 -46
  128. data/src/core/lib/event_engine/ares_resolver.h +48 -2
  129. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +3 -1
  130. data/src/core/lib/event_engine/cf_engine/cf_engine.h +1 -4
  131. data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +2 -6
  132. data/src/core/lib/event_engine/endpoint_channel_arg_wrapper.cc +40 -0
  133. data/src/core/lib/event_engine/endpoint_channel_arg_wrapper.h +60 -0
  134. data/src/core/lib/event_engine/event_engine.cc +7 -0
  135. data/src/core/lib/event_engine/extensions/channelz.h +10 -6
  136. data/src/core/lib/event_engine/grpc_polled_fd.h +5 -0
  137. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +130 -162
  138. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +11 -15
  139. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +75 -117
  140. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +7 -9
  141. data/src/core/lib/event_engine/posix_engine/event_poller.h +18 -15
  142. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +0 -18
  143. data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.cc +124 -0
  144. data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.h +243 -0
  145. data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +29 -19
  146. data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +6 -2
  147. data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +6 -1
  148. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +145 -92
  149. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +9 -19
  150. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +333 -116
  151. data/src/core/lib/event_engine/posix_engine/posix_engine.h +61 -18
  152. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +45 -37
  153. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +6 -4
  154. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +32 -142
  155. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +6 -5
  156. data/src/core/lib/event_engine/posix_engine/posix_interface.h +211 -0
  157. data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +1083 -0
  158. data/src/core/lib/event_engine/posix_engine/posix_interface_windows.cc +281 -0
  159. data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.cc +154 -0
  160. data/src/core/lib/event_engine/posix_engine/posix_write_event_sink.h +174 -0
  161. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +3 -719
  162. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +10 -170
  163. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +33 -22
  164. data/src/core/lib/event_engine/posix_engine/timer_manager.h +13 -11
  165. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +117 -151
  166. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +26 -94
  167. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +26 -25
  168. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +6 -2
  169. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +36 -62
  170. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +6 -2
  171. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +7 -6
  172. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +12 -6
  173. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +3 -1
  174. data/src/core/lib/event_engine/shim.cc +9 -0
  175. data/src/core/lib/event_engine/shim.h +3 -0
  176. data/src/core/lib/event_engine/thread_pool/thread_pool.h +7 -3
  177. data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +0 -17
  178. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +4 -2
  179. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +3 -2
  180. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +4 -0
  181. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.h +4 -0
  182. data/src/core/lib/event_engine/windows/windows_endpoint.h +2 -6
  183. data/src/core/lib/event_engine/windows/windows_engine.cc +0 -1
  184. data/src/core/lib/event_engine/windows/windows_engine.h +1 -3
  185. data/src/core/lib/event_engine/windows/windows_listener.cc +14 -2
  186. data/src/core/lib/experiments/experiments.cc +45 -93
  187. data/src/core/lib/experiments/experiments.h +21 -51
  188. data/src/core/lib/iomgr/endpoint.cc +4 -3
  189. data/src/core/lib/iomgr/endpoint.h +7 -4
  190. data/src/core/lib/iomgr/endpoint_cfstream.cc +3 -2
  191. data/src/core/lib/iomgr/ev_epoll1_linux.cc +7 -2
  192. data/src/core/lib/iomgr/ev_poll_posix.cc +7 -2
  193. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +4 -6
  194. data/src/core/lib/iomgr/tcp_posix.cc +12 -6
  195. data/src/core/lib/iomgr/tcp_windows.cc +3 -2
  196. data/src/core/lib/promise/activity.h +1 -0
  197. data/src/core/lib/promise/arena_promise.h +23 -7
  198. data/src/core/lib/promise/detail/promise_factory.h +10 -0
  199. data/src/core/lib/promise/detail/promise_like.h +118 -11
  200. data/src/core/lib/promise/detail/promise_variant.h +50 -0
  201. data/src/core/lib/promise/detail/seq_state.h +687 -548
  202. data/src/core/lib/promise/if.h +20 -0
  203. data/src/core/lib/promise/inter_activity_latch.h +147 -0
  204. data/src/core/lib/promise/inter_activity_mutex.h +547 -0
  205. data/src/core/lib/promise/loop.h +65 -3
  206. data/src/core/lib/promise/map.h +24 -0
  207. data/src/core/lib/promise/match_promise.h +103 -0
  208. data/src/core/lib/promise/mpsc.cc +425 -0
  209. data/src/core/lib/promise/mpsc.h +490 -0
  210. data/src/core/lib/promise/party.cc +50 -1
  211. data/src/core/lib/promise/party.h +66 -1
  212. data/src/core/lib/promise/race.h +31 -0
  213. data/src/core/lib/promise/seq.h +4 -1
  214. data/src/core/lib/promise/status_flag.h +7 -0
  215. data/src/core/lib/promise/try_seq.h +4 -1
  216. data/src/core/lib/promise/wait_set.cc +28 -0
  217. data/src/core/lib/promise/wait_set.h +86 -0
  218. data/src/core/lib/resource_quota/arena.h +19 -0
  219. data/src/core/lib/slice/slice.h +5 -0
  220. data/src/core/lib/surface/channel_create.cc +88 -13
  221. data/src/core/lib/surface/channel_create.h +4 -0
  222. data/src/core/lib/surface/channel_init.cc +164 -47
  223. data/src/core/lib/surface/channel_init.h +64 -1
  224. data/src/core/lib/surface/filter_stack_call.cc +18 -9
  225. data/src/core/lib/surface/init.cc +6 -15
  226. data/src/core/lib/surface/legacy_channel.cc +3 -5
  227. data/src/core/lib/surface/legacy_channel.h +3 -1
  228. data/src/core/lib/surface/version.cc +2 -2
  229. data/src/core/lib/transport/promise_endpoint.cc +110 -0
  230. data/src/core/lib/transport/promise_endpoint.h +307 -0
  231. data/src/core/load_balancing/child_policy_handler.cc +2 -4
  232. data/src/core/load_balancing/delegating_helper.h +2 -3
  233. data/src/core/load_balancing/health_check_client.cc +1 -5
  234. data/src/core/load_balancing/lb_policy.h +1 -3
  235. data/src/core/load_balancing/oob_backend_metric.cc +1 -5
  236. data/src/core/load_balancing/pick_first/pick_first.cc +3 -0
  237. data/src/core/load_balancing/xds/cds.cc +10 -1
  238. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +2 -0
  239. data/src/core/resolver/xds/xds_config.cc +6 -3
  240. data/src/core/resolver/xds/xds_config.h +9 -4
  241. data/src/core/resolver/xds/xds_dependency_manager.cc +21 -6
  242. data/src/core/resolver/xds/xds_dependency_manager.h +2 -1
  243. data/src/core/resolver/xds/xds_resolver.cc +31 -11
  244. data/src/core/server/server.cc +83 -12
  245. data/src/core/server/server.h +21 -2
  246. data/src/core/server/xds_server_config_fetcher.cc +63 -25
  247. data/src/core/service_config/service_config.h +1 -1
  248. data/src/core/service_config/service_config_impl.h +1 -1
  249. data/src/core/telemetry/context_list_entry.cc +38 -0
  250. data/src/core/telemetry/context_list_entry.h +42 -12
  251. data/src/core/telemetry/stats_data.cc +233 -207
  252. data/src/core/telemetry/stats_data.h +250 -153
  253. data/src/core/telemetry/tcp_tracer.h +1 -1
  254. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +11 -3
  255. data/src/core/tsi/fake_transport_security.cc +17 -0
  256. data/src/core/tsi/ssl_transport_security.cc +2 -0
  257. data/src/core/tsi/transport_security_grpc.cc +8 -0
  258. data/src/core/tsi/transport_security_grpc.h +15 -0
  259. data/src/core/util/backoff.cc +1 -5
  260. data/src/core/util/backoff.h +1 -0
  261. data/src/core/util/down_cast.h +1 -1
  262. data/src/core/util/function_signature.h +15 -1
  263. data/src/core/util/http_client/httpcli.cc +12 -5
  264. data/src/core/util/http_client/httpcli.h +4 -1
  265. data/src/core/util/latent_see.h +8 -5
  266. data/src/core/util/log.cc +4 -0
  267. data/src/core/util/memory_usage.h +268 -0
  268. data/src/core/util/per_cpu.cc +2 -0
  269. data/src/core/util/per_cpu.h +7 -0
  270. data/src/core/util/shared_bit_gen.h +20 -0
  271. data/src/core/util/single_set_ptr.h +2 -2
  272. data/src/core/util/upb_utils.h +42 -0
  273. data/src/core/util/uri.cc +3 -2
  274. data/src/core/util/useful.h +53 -2
  275. data/src/core/util/wait_for_single_owner.cc +31 -0
  276. data/src/core/util/wait_for_single_owner.h +24 -0
  277. data/src/core/xds/grpc/xds_bootstrap_grpc.cc +2 -0
  278. data/src/core/xds/grpc/xds_bootstrap_grpc.h +5 -0
  279. data/src/core/xds/grpc/xds_client_grpc.cc +6 -2
  280. data/src/core/xds/grpc/xds_common_types_parser.cc +138 -50
  281. data/src/core/xds/grpc/xds_common_types_parser.h +12 -0
  282. data/src/core/xds/grpc/xds_http_filter.h +7 -0
  283. data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +22 -0
  284. data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +3 -0
  285. data/src/core/xds/grpc/xds_route_config_parser.cc +15 -38
  286. data/src/core/xds/grpc/xds_server_grpc.cc +63 -13
  287. data/src/core/xds/grpc/xds_server_grpc.h +10 -2
  288. data/src/core/xds/grpc/xds_server_grpc_interface.h +4 -0
  289. data/src/core/xds/grpc/xds_transport_grpc.cc +18 -0
  290. data/src/core/xds/xds_client/xds_bootstrap.h +2 -0
  291. data/src/core/xds/xds_client/xds_client.cc +26 -5
  292. data/src/ruby/ext/grpc/extconf.rb +2 -0
  293. data/src/ruby/ext/grpc/rb_call.c +1 -8
  294. data/src/ruby/ext/grpc/rb_channel.c +72 -568
  295. data/src/ruby/ext/grpc/rb_channel.h +0 -3
  296. data/src/ruby/ext/grpc/rb_completion_queue.c +26 -14
  297. data/src/ruby/ext/grpc/rb_completion_queue.h +1 -7
  298. data/src/ruby/ext/grpc/rb_grpc.c +9 -5
  299. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
  300. data/src/ruby/ext/grpc/rb_loader.c +0 -4
  301. data/src/ruby/ext/grpc/rb_server.c +31 -50
  302. data/src/ruby/lib/grpc/generic/client_stub.rb +4 -4
  303. data/src/ruby/lib/grpc/version.rb +1 -1
  304. data/src/ruby/spec/core_spec.rb +22 -0
  305. data/src/ruby/spec/generic/active_call_spec.rb +1 -1
  306. data/third_party/abseil-cpp/absl/algorithm/container.h +2 -19
  307. data/third_party/abseil-cpp/absl/base/attributes.h +76 -7
  308. data/third_party/abseil-cpp/absl/base/call_once.h +11 -12
  309. data/third_party/abseil-cpp/absl/base/config.h +20 -129
  310. data/third_party/abseil-cpp/absl/base/{internal/fast_type_id.h → fast_type_id.h} +11 -16
  311. data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +0 -5
  312. data/third_party/abseil-cpp/absl/base/internal/cycleclock_config.h +7 -7
  313. data/third_party/abseil-cpp/absl/base/internal/endian.h +34 -38
  314. data/third_party/abseil-cpp/absl/base/internal/iterator_traits.h +71 -0
  315. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +6 -5
  316. data/third_party/abseil-cpp/absl/base/internal/{nullability_impl.h → nullability_deprecated.h} +45 -8
  317. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +0 -9
  318. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +3 -13
  319. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +6 -6
  320. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +8 -3
  321. data/third_party/abseil-cpp/absl/base/no_destructor.h +11 -32
  322. data/third_party/abseil-cpp/absl/base/nullability.h +84 -72
  323. data/third_party/abseil-cpp/absl/base/options.h +3 -80
  324. data/third_party/abseil-cpp/absl/base/policy_checks.h +7 -7
  325. data/third_party/abseil-cpp/absl/cleanup/cleanup.h +1 -3
  326. data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -4
  327. data/third_party/abseil-cpp/absl/container/btree_map.h +4 -2
  328. data/third_party/abseil-cpp/absl/container/btree_set.h +4 -2
  329. data/third_party/abseil-cpp/absl/container/fixed_array.h +7 -14
  330. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +5 -0
  331. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +6 -1
  332. data/third_party/abseil-cpp/absl/container/inlined_vector.h +8 -5
  333. data/third_party/abseil-cpp/absl/container/internal/btree.h +132 -29
  334. data/third_party/abseil-cpp/absl/container/internal/btree_container.h +175 -71
  335. data/third_party/abseil-cpp/absl/container/internal/common.h +43 -0
  336. data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -2
  337. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +9 -10
  338. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +1 -8
  339. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +0 -4
  340. data/third_party/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +527 -0
  341. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +20 -4
  342. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +31 -12
  343. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +2 -7
  344. data/third_party/abseil-cpp/absl/container/internal/layout.h +26 -42
  345. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +199 -68
  346. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +1354 -183
  347. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +881 -1424
  348. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +80 -0
  349. data/third_party/abseil-cpp/absl/crc/crc32c.cc +0 -4
  350. data/third_party/abseil-cpp/absl/crc/crc32c.h +7 -5
  351. data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +0 -22
  352. data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +45 -74
  353. data/third_party/abseil-cpp/absl/debugging/internal/addresses.h +57 -0
  354. data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +1 -1
  355. data/third_party/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +5 -5
  356. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +8 -35
  357. data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.cc +16 -16
  358. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +40 -37
  359. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +16 -7
  360. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +14 -5
  361. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +10 -4
  362. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +27 -16
  363. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +13 -4
  364. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +4 -3
  365. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +15 -28
  366. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +19 -9
  367. data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +144 -27
  368. data/third_party/abseil-cpp/absl/debugging/stacktrace.h +73 -5
  369. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +19 -9
  370. data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +3 -2
  371. data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +25 -6
  372. data/third_party/abseil-cpp/absl/flags/commandlineflag.h +2 -2
  373. data/third_party/abseil-cpp/absl/flags/flag.h +4 -3
  374. data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +2 -2
  375. data/third_party/abseil-cpp/absl/flags/internal/flag.cc +2 -1
  376. data/third_party/abseil-cpp/absl/flags/internal/flag.h +7 -6
  377. data/third_party/abseil-cpp/absl/flags/internal/registry.h +4 -3
  378. data/third_party/abseil-cpp/absl/flags/reflection.cc +2 -3
  379. data/third_party/abseil-cpp/absl/functional/any_invocable.h +8 -10
  380. data/third_party/abseil-cpp/absl/functional/function_ref.h +2 -9
  381. data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +110 -226
  382. data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +10 -12
  383. data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +2 -5
  384. data/third_party/abseil-cpp/absl/hash/hash.h +18 -0
  385. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +1 -5
  386. data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -61
  387. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +25 -68
  388. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +2 -6
  389. data/third_party/abseil-cpp/absl/hash/internal/weakly_mixed_integer.h +38 -0
  390. data/third_party/abseil-cpp/absl/log/check.h +2 -1
  391. data/third_party/abseil-cpp/absl/log/globals.h +4 -5
  392. data/third_party/abseil-cpp/absl/log/internal/append_truncated.h +28 -0
  393. data/third_party/abseil-cpp/absl/log/internal/check_op.cc +22 -22
  394. data/third_party/abseil-cpp/absl/log/internal/check_op.h +65 -62
  395. data/third_party/abseil-cpp/absl/log/internal/conditions.cc +5 -3
  396. data/third_party/abseil-cpp/absl/log/internal/conditions.h +7 -2
  397. data/third_party/abseil-cpp/absl/log/internal/log_message.cc +85 -43
  398. data/third_party/abseil-cpp/absl/log/internal/log_message.h +84 -59
  399. data/third_party/abseil-cpp/absl/log/internal/nullstream.h +1 -0
  400. data/third_party/abseil-cpp/absl/log/internal/proto.cc +3 -2
  401. data/third_party/abseil-cpp/absl/log/internal/proto.h +3 -3
  402. data/third_party/abseil-cpp/absl/log/internal/strip.h +4 -12
  403. data/third_party/abseil-cpp/absl/log/internal/vlog_config.h +8 -6
  404. data/third_party/abseil-cpp/absl/log/internal/voidify.h +10 -4
  405. data/third_party/abseil-cpp/absl/log/log.h +48 -35
  406. data/third_party/abseil-cpp/absl/log/log_sink_registry.h +2 -2
  407. data/third_party/abseil-cpp/absl/meta/type_traits.h +46 -175
  408. data/third_party/abseil-cpp/absl/numeric/bits.h +68 -2
  409. data/third_party/abseil-cpp/absl/numeric/int128.cc +0 -52
  410. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +7 -3
  411. data/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc +1 -1
  412. data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +10 -11
  413. data/third_party/abseil-cpp/absl/random/distributions.h +6 -8
  414. data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +1 -1
  415. data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +5 -6
  416. data/third_party/abseil-cpp/absl/random/internal/{pool_urbg.cc → entropy_pool.cc} +22 -90
  417. data/third_party/abseil-cpp/absl/random/internal/entropy_pool.h +35 -0
  418. data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +5 -6
  419. data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +1 -1
  420. data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +20 -12
  421. data/third_party/abseil-cpp/absl/random/internal/seed_material.h +5 -5
  422. data/third_party/abseil-cpp/absl/random/random.h +88 -53
  423. data/third_party/abseil-cpp/absl/random/seed_sequences.cc +6 -2
  424. data/third_party/abseil-cpp/absl/status/internal/status_internal.cc +3 -4
  425. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +3 -4
  426. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -3
  427. data/third_party/abseil-cpp/absl/status/status.cc +4 -8
  428. data/third_party/abseil-cpp/absl/status/status.h +8 -8
  429. data/third_party/abseil-cpp/absl/status/status_payload_printer.h +2 -2
  430. data/third_party/abseil-cpp/absl/status/statusor.cc +2 -2
  431. data/third_party/abseil-cpp/absl/status/statusor.h +6 -6
  432. data/third_party/abseil-cpp/absl/strings/ascii.cc +9 -9
  433. data/third_party/abseil-cpp/absl/strings/ascii.h +18 -18
  434. data/third_party/abseil-cpp/absl/strings/charconv.cc +21 -22
  435. data/third_party/abseil-cpp/absl/strings/charconv.h +5 -5
  436. data/third_party/abseil-cpp/absl/strings/cord.cc +54 -58
  437. data/third_party/abseil-cpp/absl/strings/cord.h +94 -83
  438. data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +11 -11
  439. data/third_party/abseil-cpp/absl/strings/cord_analysis.h +3 -3
  440. data/third_party/abseil-cpp/absl/strings/escaping.cc +130 -149
  441. data/third_party/abseil-cpp/absl/strings/escaping.h +9 -10
  442. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
  443. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +6 -8
  444. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +0 -4
  445. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +0 -4
  446. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +7 -63
  447. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -11
  448. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +0 -22
  449. data/third_party/abseil-cpp/absl/strings/internal/str_format/output.cc +5 -3
  450. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +4 -2
  451. data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +3 -3
  452. data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +0 -5
  453. data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +96 -1
  454. data/third_party/abseil-cpp/absl/strings/internal/utf8.h +15 -1
  455. data/third_party/abseil-cpp/absl/strings/numbers.cc +53 -32
  456. data/third_party/abseil-cpp/absl/strings/numbers.h +87 -58
  457. data/third_party/abseil-cpp/absl/strings/str_cat.cc +6 -7
  458. data/third_party/abseil-cpp/absl/strings/str_cat.h +32 -32
  459. data/third_party/abseil-cpp/absl/strings/str_format.h +18 -18
  460. data/third_party/abseil-cpp/absl/strings/str_replace.cc +3 -3
  461. data/third_party/abseil-cpp/absl/strings/str_replace.h +6 -6
  462. data/third_party/abseil-cpp/absl/strings/string_view.cc +4 -9
  463. data/third_party/abseil-cpp/absl/strings/string_view.h +27 -32
  464. data/third_party/abseil-cpp/absl/strings/strip.h +4 -4
  465. data/third_party/abseil-cpp/absl/strings/substitute.cc +5 -4
  466. data/third_party/abseil-cpp/absl/strings/substitute.h +66 -64
  467. data/third_party/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +0 -4
  468. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +0 -5
  469. data/third_party/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +0 -4
  470. data/third_party/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +0 -4
  471. data/third_party/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +0 -4
  472. data/third_party/abseil-cpp/absl/synchronization/internal/waiter_base.cc +0 -4
  473. data/third_party/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +0 -4
  474. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +1 -1
  475. data/third_party/abseil-cpp/absl/synchronization/mutex.h +97 -69
  476. data/third_party/abseil-cpp/absl/synchronization/notification.h +1 -1
  477. data/third_party/abseil-cpp/absl/time/civil_time.cc +1 -0
  478. data/third_party/abseil-cpp/absl/time/duration.cc +12 -7
  479. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +1 -1
  480. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +90 -111
  481. data/third_party/abseil-cpp/absl/time/time.h +20 -15
  482. data/third_party/abseil-cpp/absl/types/optional.h +7 -747
  483. data/third_party/abseil-cpp/absl/types/span.h +13 -11
  484. data/third_party/abseil-cpp/absl/types/variant.h +5 -784
  485. data/third_party/abseil-cpp/absl/utility/utility.h +10 -185
  486. metadata +72 -20
  487. data/src/core/lib/event_engine/forkable.cc +0 -105
  488. data/src/core/lib/event_engine/forkable.h +0 -67
  489. data/src/core/lib/iomgr/python_util.h +0 -46
  490. data/third_party/abseil-cpp/absl/base/internal/inline_variable.h +0 -108
  491. data/third_party/abseil-cpp/absl/base/internal/invoke.h +0 -241
  492. data/third_party/abseil-cpp/absl/log/log_entry.cc +0 -41
  493. data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +0 -131
  494. data/third_party/abseil-cpp/absl/types/bad_optional_access.cc +0 -66
  495. data/third_party/abseil-cpp/absl/types/bad_optional_access.h +0 -78
  496. data/third_party/abseil-cpp/absl/types/bad_variant_access.cc +0 -82
  497. data/third_party/abseil-cpp/absl/types/bad_variant_access.h +0 -82
  498. data/third_party/abseil-cpp/absl/types/internal/optional.h +0 -352
  499. data/third_party/abseil-cpp/absl/types/internal/variant.h +0 -1622
@@ -1,4 +1,4 @@
1
- // Copyright 2022 gRPC authors.
1
+ // Copyright 2023 gRPC authors.
2
2
  //
3
3
  // Licensed under the Apache License, Version 2.0 (the "License");
4
4
  // you may not use this file except in compliance with the License.
@@ -24,193 +24,300 @@
24
24
  namespace grpc_core {
25
25
  class HuffDecoderCommon {
26
26
  protected:
27
- static inline uint64_t GetOp2(size_t i) { return table2_0_ops_[i]; }
28
- static inline uint64_t GetEmit2(size_t, size_t emit) {
27
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp2(size_t i) {
28
+ return table2_0_ops_[i];
29
+ }
30
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit2(
31
+ size_t, size_t emit) {
29
32
  return table2_0_emit_[emit];
30
33
  }
31
- static inline uint64_t GetOp3(size_t i) { return table3_0_ops_[i]; }
32
- static inline uint64_t GetEmit3(size_t, size_t emit) {
34
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp3(size_t i) {
35
+ return table3_0_ops_[i];
36
+ }
37
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit3(
38
+ size_t, size_t emit) {
33
39
  return table3_0_emit_[emit];
34
40
  }
35
- static inline uint64_t GetOp4(size_t i) {
41
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp4(size_t i) {
36
42
  return table4_ops_[i >> 6][i & 0x3f];
37
43
  }
38
- static inline uint64_t GetEmit4(size_t i, size_t emit) {
44
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit4(
45
+ size_t i, size_t emit) {
39
46
  return table4_emit_[i >> 6][emit];
40
47
  }
41
- static inline uint64_t GetOp5(size_t i) {
48
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp5(size_t i) {
42
49
  return table5_ops_[i >> 7][i & 0x7f];
43
50
  }
44
- static inline uint64_t GetEmit5(size_t i, size_t emit) {
51
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit5(
52
+ size_t i, size_t emit) {
45
53
  return table5_emit_[i >> 7][emit];
46
54
  }
47
- static inline uint64_t GetOp6(size_t i) {
55
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp6(size_t i) {
48
56
  return table6_ops_[i >> 5][i & 0x1f];
49
57
  }
50
- static inline uint64_t GetEmit6(size_t i, size_t emit) {
58
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit6(
59
+ size_t i, size_t emit) {
51
60
  return table6_emit_[i >> 5][emit];
52
61
  }
53
- static inline uint64_t GetOp7(size_t i) {
62
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp7(size_t i) {
54
63
  return table7_ops_[i >> 6][i & 0x3f];
55
64
  }
56
- static inline uint64_t GetEmit7(size_t i, size_t emit) {
65
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit7(
66
+ size_t i, size_t emit) {
57
67
  return table7_emit_[i >> 6][emit];
58
68
  }
59
- static inline uint64_t GetOp8(size_t i) {
69
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp8(size_t i) {
60
70
  return table8_inner_[i >> 6][table8_outer_[i >> 6][i & 0x3f]];
61
71
  }
62
- static inline uint64_t GetEmit8(size_t i, size_t emit) {
72
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit8(
73
+ size_t i, size_t emit) {
63
74
  return table8_emit_[i >> 6][emit];
64
75
  }
65
- static inline uint64_t GetOp9(size_t i) {
76
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp9(size_t i) {
66
77
  return table9_ops_[i >> 5][i & 0x1f];
67
78
  }
68
- static inline uint64_t GetEmit9(size_t i, size_t emit) {
79
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit9(
80
+ size_t i, size_t emit) {
69
81
  return table9_emit_[i >> 5][emit];
70
82
  }
71
- static inline uint64_t GetOp10(size_t i) {
83
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp10(
84
+ size_t i) {
72
85
  return table10_inner_[i >> 6][table10_outer_[i >> 6][i & 0x3f]];
73
86
  }
74
- static inline uint64_t GetEmit10(size_t i, size_t emit) {
87
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit10(
88
+ size_t i, size_t emit) {
75
89
  return table10_emit_[i >> 6][emit];
76
90
  }
77
- static inline uint64_t GetOp11(size_t i) {
78
- return table11_inner_[i >> 6][table11_outer_[i >> 6][i & 0x3f]];
79
- }
80
- static inline uint64_t GetEmit11(size_t i, size_t emit) {
81
- return table11_emit_[i >> 6][emit];
82
- }
83
- static inline uint64_t GetOp1(size_t i) {
91
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp1(size_t i) {
84
92
  return table1_inner_[i >> 6][table1_outer_[i >> 6][i & 0x3f]];
85
93
  }
86
- static inline uint64_t GetEmit1(size_t i, size_t emit) {
94
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit1(
95
+ size_t i, size_t emit) {
87
96
  return table1_emit_[i >> 6][emit];
88
97
  }
89
- static inline uint64_t GetOp13(size_t i) {
90
- return table13_0_inner_[(i < 3 ? (i) : (((i - 3) / 12) + 3))];
91
- }
92
- static inline uint64_t GetEmit13(size_t, size_t emit) {
93
- return (emit < 1 ? (((void)emit, 92)) : ((emit - 1) ? 208 : 195));
94
- }
95
- static inline uint64_t GetOp14(size_t i) { return table14_0_ops_[i]; }
96
- static inline uint64_t GetEmit14(size_t, size_t emit) {
97
- return table14_0_emit_[emit];
98
- }
99
- static inline uint64_t GetOp15(size_t i) { return table15_0_ops_[i]; }
100
- static inline uint64_t GetEmit15(size_t, size_t emit) {
101
- return table15_0_emit_[emit];
102
- }
103
- static inline uint64_t GetOp12(size_t i) {
104
- return table12_0_inner_[table12_0_outer_[i]];
105
- }
106
- static inline uint64_t GetEmit12(size_t, size_t emit) {
107
- return table12_0_emit_[emit];
108
- }
109
- static inline uint64_t GetOp16(size_t i) { return i ? 3 : 1; }
110
- static inline uint64_t GetEmit16(size_t, size_t emit) {
111
- return emit ? 135 : 1;
112
- }
113
- static inline uint64_t GetOp17(size_t i) { return i ? 3 : 1; }
114
- static inline uint64_t GetEmit17(size_t, size_t emit) { return emit + 137; }
115
- static inline uint64_t GetOp18(size_t i) { return i ? 3 : 1; }
116
- static inline uint64_t GetEmit18(size_t, size_t emit) { return emit + 139; }
117
- static inline uint64_t GetOp19(size_t i) { return i ? 3 : 1; }
118
- static inline uint64_t GetEmit19(size_t, size_t emit) {
119
- return emit ? 143 : 141;
120
- }
121
- static inline uint64_t GetOp20(size_t i) { return i ? 3 : 1; }
122
- static inline uint64_t GetEmit20(size_t, size_t emit) {
123
- return emit ? 149 : 147;
124
- }
125
- static inline uint64_t GetOp21(size_t i) { return i ? 3 : 1; }
126
- static inline uint64_t GetEmit21(size_t, size_t emit) { return emit + 150; }
127
- static inline uint64_t GetOp22(size_t i) { return i ? 3 : 1; }
128
- static inline uint64_t GetEmit22(size_t, size_t emit) {
129
- return emit ? 155 : 152;
130
- }
131
- static inline uint64_t GetOp23(size_t i) { return i ? 3 : 1; }
132
- static inline uint64_t GetEmit23(size_t, size_t emit) { return emit + 157; }
133
- static inline uint64_t GetOp24(size_t i) { return i ? 3 : 1; }
134
- static inline uint64_t GetEmit24(size_t, size_t emit) { return emit + 165; }
135
- static inline uint64_t GetOp25(size_t i) { return i ? 3 : 1; }
136
- static inline uint64_t GetEmit25(size_t, size_t emit) {
137
- return emit ? 174 : 168;
138
- }
139
- static inline uint64_t GetOp26(size_t i) { return i ? 3 : 1; }
140
- static inline uint64_t GetEmit26(size_t, size_t emit) {
141
- return emit ? 180 : 175;
142
- }
143
- static inline uint64_t GetOp27(size_t i) { return i ? 3 : 1; }
144
- static inline uint64_t GetEmit27(size_t, size_t emit) { return emit + 182; }
145
- static inline uint64_t GetOp28(size_t i) { return i ? 3 : 1; }
146
- static inline uint64_t GetEmit28(size_t, size_t emit) {
147
- return emit ? 191 : 188;
148
- }
149
- static inline uint64_t GetOp29(size_t i) { return i ? 3 : 1; }
150
- static inline uint64_t GetEmit29(size_t, size_t emit) {
151
- return emit ? 231 : 197;
152
- }
153
- static inline uint64_t GetOp30(size_t i) {
98
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp11(
99
+ size_t i) {
100
+ return i ? 3 : 1;
101
+ }
102
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit11(
103
+ size_t, size_t emit) {
104
+ return emit ? 96 : 60;
105
+ }
106
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp13(
107
+ size_t i) {
108
+ return i;
109
+ }
110
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit13(
111
+ size_t, size_t emit) {
112
+ return ((void)emit, 123);
113
+ }
114
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp14(
115
+ size_t i) {
116
+ return (i < 2 ? (i) : ((i - 2) ? 2 : 0));
117
+ }
118
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit14(
119
+ size_t, size_t emit) {
120
+ return ((void)emit, 123);
121
+ }
122
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp15(
123
+ size_t i) {
124
+ return table15_0_outer_[i];
125
+ }
126
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit15(
127
+ size_t, size_t emit) {
128
+ return ((void)emit, 123);
129
+ }
130
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp16(
131
+ size_t i) {
132
+ return table16_0_outer_[i];
133
+ }
134
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit16(
135
+ size_t, size_t emit) {
136
+ return ((void)emit, 123);
137
+ }
138
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp12(
139
+ size_t i) {
140
+ return table12_0_inner_[(i < 15 ? (((void)i, 0)) : ((i - 15)))];
141
+ }
142
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit12(
143
+ size_t, size_t emit) {
144
+ return (emit < 2 ? (emit ? 92 : 123) : ((emit - 2) ? 208 : 195));
145
+ }
146
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp17(
147
+ size_t i) {
148
+ return i ? 3 : 1;
149
+ }
150
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit17(
151
+ size_t, size_t emit) {
152
+ return emit ? 130 : 128;
153
+ }
154
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp18(
155
+ size_t i) {
156
+ return i ? 3 : 1;
157
+ }
158
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit18(
159
+ size_t, size_t emit) {
160
+ return emit ? 162 : 131;
161
+ }
162
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp19(
163
+ size_t i) {
164
+ return i ? 3 : 1;
165
+ }
166
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit19(
167
+ size_t, size_t emit) {
168
+ return emit ? 194 : 184;
169
+ }
170
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp20(
171
+ size_t i) {
172
+ return i ? 3 : 1;
173
+ }
174
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit20(
175
+ size_t, size_t emit) {
176
+ return emit ? 226 : 224;
177
+ }
178
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp21(
179
+ size_t i) {
154
180
  return (i < 2 ? (i ? 6 : 2) : ((i - 2) ? 14 : 10));
155
181
  }
156
- static inline uint64_t GetEmit30(size_t, size_t emit) {
157
- return (emit < 2 ? (emit + 144) : ((emit - 2) ? 159 : 148));
182
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit21(
183
+ size_t, size_t emit) {
184
+ return (emit < 2 ? (emit ? 161 : 153) : ((emit - 2) ? 172 : 167));
158
185
  }
159
- static inline uint64_t GetOp31(size_t i) {
186
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp22(
187
+ size_t i) {
160
188
  return (i < 2 ? (i ? 6 : 2) : ((i - 2) ? 14 : 10));
161
189
  }
162
- static inline uint64_t GetEmit31(size_t, size_t emit) {
163
- return (emit < 2 ? (emit ? 206 : 171) : ((emit - 2) ? 225 : 215));
190
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit22(
191
+ size_t, size_t emit) {
192
+ return (emit < 2 ? (emit + 176) : ((emit - 2) ? 209 : 179));
164
193
  }
165
- static inline uint64_t GetOp33(size_t i) { return table33_0_inner_[i]; }
166
- static inline uint64_t GetEmit33(size_t, size_t emit) {
167
- return table33_0_emit_[emit];
194
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp23(
195
+ size_t i) {
196
+ return (i < 2 ? (i ? 6 : 2) : ((i - 2) ? 14 : 10));
197
+ }
198
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit23(
199
+ size_t, size_t emit) {
200
+ return (emit < 2 ? (emit + 216) : ((emit - 2) ? 229 : 227));
201
+ }
202
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp24(
203
+ size_t i) {
204
+ return table24_0_inner_[i];
205
+ }
206
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit24(
207
+ size_t, size_t emit) {
208
+ return table24_0_emit_[emit];
209
+ }
210
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp25(
211
+ size_t i) {
212
+ return table24_0_inner_[i];
213
+ }
214
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit25(
215
+ size_t, size_t emit) {
216
+ return table25_0_emit_[emit];
217
+ }
218
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp26(
219
+ size_t i) {
220
+ return table26_0_inner_[i];
168
221
  }
169
- static inline uint64_t GetOp32(size_t i) { return table32_0_ops_[i]; }
170
- static inline uint64_t GetEmit32(size_t, size_t emit) {
222
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit26(
223
+ size_t, size_t emit) {
224
+ return table26_0_emit_[emit];
225
+ }
226
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp28(
227
+ size_t i) {
228
+ return (i < 1 ? (((void)i, 0)) : (((void)(i - 1), 1)));
229
+ }
230
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit28(
231
+ size_t, size_t emit) {
232
+ return ((void)emit, 230);
233
+ }
234
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp27(
235
+ size_t i) {
236
+ return table27_0_inner_[(i < 1 ? (((void)i, 0)) : ((i - 1)))];
237
+ }
238
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit27(
239
+ size_t, size_t emit) {
240
+ return table27_0_emit_[emit];
241
+ }
242
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp30(
243
+ size_t i) {
244
+ return table30_0_inner_[(i < 4 ? (i) : (((void)(i - 4), 4)))];
245
+ }
246
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit30(
247
+ size_t, size_t emit) {
248
+ return (emit < 2 ? (emit ? 228 : 198) : ((emit - 2) + 232));
249
+ }
250
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp29(
251
+ size_t i) {
252
+ return table29_0_inner_[(i < 7 ? (i / 2 + 0) : ((i - 7) + 3))];
253
+ }
254
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit29(
255
+ size_t, size_t emit) {
256
+ return table29_0_emit_[emit];
257
+ }
258
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp32(
259
+ size_t i) {
260
+ return table32_0_inner_[(i < 5 ? (i) : ((i - 5) / 10 + 5))];
261
+ }
262
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit32(
263
+ size_t, size_t emit) {
171
264
  return table32_0_emit_[emit];
172
265
  }
173
- static inline uint64_t GetOp35(size_t i) { return i; }
174
- static inline uint64_t GetEmit35(size_t, size_t emit) {
175
- return ((void)emit, 239);
266
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp33(
267
+ size_t i) {
268
+ return table33_0_ops_[i];
269
+ }
270
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit33(
271
+ size_t, size_t emit) {
272
+ return table33_0_emit_[emit];
273
+ }
274
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp34(
275
+ size_t i) {
276
+ return table34_0_ops_[i];
176
277
  }
177
- static inline uint64_t GetOp34(size_t i) {
178
- return ((i < 1 ? (((void)i, 0)) : ((i - 1))) < 1
179
- ? (((void)(i < 1 ? (((void)i, 0)) : ((i - 1))), 1))
180
- : (((i < 1 ? (((void)i, 0)) : ((i - 1))) - 1) ? 10 : 6));
278
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit34(
279
+ size_t, size_t emit) {
280
+ return table34_0_emit_[emit];
181
281
  }
182
- static inline uint64_t GetEmit34(size_t, size_t emit) {
183
- return (emit < 1 ? (((void)emit, 239)) : ((emit - 1) ? 142 : 9));
282
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp35(
283
+ size_t i) {
284
+ return table35_0_ops_[i];
184
285
  }
185
- static inline uint64_t GetOp37(size_t i) {
186
- return ((i < 2 ? (i) : (((void)(i - 2), 2))) < 1
187
- ? (((void)(i < 2 ? (i) : (((void)(i - 2), 2))), 0))
188
- : (((i < 2 ? (i) : (((void)(i - 2), 2))) - 1) ? 1 : 2));
286
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit35(
287
+ size_t, size_t emit) {
288
+ return table35_0_emit_[emit];
189
289
  }
190
- static inline uint64_t GetEmit37(size_t, size_t emit) { return emit + 236; }
191
- static inline uint64_t GetOp36(size_t i) {
192
- return table36_0_inner_[(i < 3 ? ((i / 2) + 0) : ((i - 3) + 1))];
290
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp36(
291
+ size_t i) {
292
+ return table36_0_ops_[i];
193
293
  }
194
- static inline uint64_t GetEmit36(size_t, size_t emit) {
294
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit36(
295
+ size_t, size_t emit) {
195
296
  return table36_0_emit_[emit];
196
297
  }
197
- static inline uint64_t GetOp39(size_t i) { return table39_0_ops_[i]; }
198
- static inline uint64_t GetEmit39(size_t, size_t emit) {
199
- return table39_0_emit_[emit];
298
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp37(
299
+ size_t i) {
300
+ return table37_ops_[i >> 6][i & 0x3f];
301
+ }
302
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit37(
303
+ size_t i, size_t emit) {
304
+ return table37_emit_[i >> 6][emit];
200
305
  }
201
- static inline uint64_t GetOp40(size_t i) { return table40_0_ops_[i]; }
202
- static inline uint64_t GetEmit40(size_t, size_t emit) {
203
- return table40_0_emit_[emit];
306
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp38(
307
+ size_t i) {
308
+ return table38_ops_[i >> 6][i & 0x3f];
204
309
  }
205
- static inline uint64_t GetOp41(size_t i) { return table41_0_ops_[i]; }
206
- static inline uint64_t GetEmit41(size_t, size_t emit) {
207
- return table40_0_emit_[emit];
310
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit38(
311
+ size_t i, size_t emit) {
312
+ return table38_emit_[i >> 6][emit];
208
313
  }
209
- static inline uint64_t GetOp38(size_t i) {
210
- return table38_ops_[i >> 5][i & 0x1f];
314
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetOp31(
315
+ size_t i) {
316
+ return table31_ops_[i >> 6][i & 0x3f];
211
317
  }
212
- static inline uint64_t GetEmit38(size_t i, size_t emit) {
213
- return table38_emit_[i >> 5][emit];
318
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION static inline uint64_t GetEmit31(
319
+ size_t i, size_t emit) {
320
+ return table31_emit_[i >> 6][emit];
214
321
  }
215
322
 
216
323
  private:
@@ -617,980 +724,452 @@ class HuffDecoderCommon {
617
724
  static const uint8_t* const table10_emit_[128];
618
725
  static const uint16_t* const table10_inner_[128];
619
726
  static const uint8_t* const table10_outer_[128];
620
- static const uint8_t table11_0_emit_[7];
621
- static const uint16_t table11_0_inner_[5];
622
- static const uint8_t table11_1_emit_[8];
623
- static const uint16_t table11_1_inner_[5];
624
- static const uint8_t table11_2_emit_[12];
625
- static const uint16_t table11_2_inner_[7];
626
- static const uint8_t table11_2_outer_[64];
627
- static const uint8_t table11_3_emit_[16];
628
- static const uint8_t table11_4_emit_[16];
629
- static const uint8_t table11_5_emit_[20];
630
- static const uint16_t table11_5_inner_[11];
631
- static const uint8_t table11_5_outer_[64];
632
- static const uint8_t table11_6_emit_[32];
633
- static const uint16_t table11_6_inner_[17];
634
- static const uint8_t table11_6_outer_[64];
635
- static const uint8_t table11_7_emit_[36];
636
- static const uint16_t table11_7_inner_[20];
637
- static const uint8_t table11_7_outer_[64];
638
- static const uint8_t table11_8_emit_[7];
639
- static const uint16_t table11_8_inner_[5];
640
- static const uint8_t table11_9_emit_[8];
641
- static const uint8_t table11_10_emit_[12];
642
- static const uint8_t table11_11_emit_[16];
643
- static const uint8_t table11_12_emit_[16];
644
- static const uint8_t table11_13_emit_[20];
645
- static const uint8_t table11_14_emit_[32];
646
- static const uint8_t table11_15_emit_[36];
647
- static const uint8_t table11_16_emit_[7];
648
- static const uint16_t table11_16_inner_[5];
649
- static const uint8_t table11_17_emit_[8];
650
- static const uint8_t table11_18_emit_[12];
651
- static const uint8_t table11_19_emit_[16];
652
- static const uint8_t table11_20_emit_[16];
653
- static const uint8_t table11_21_emit_[20];
654
- static const uint8_t table11_22_emit_[32];
655
- static const uint8_t table11_23_emit_[36];
656
- static const uint8_t table11_24_emit_[8];
657
- static const uint8_t table11_25_emit_[8];
658
- static const uint8_t table11_26_emit_[12];
659
- static const uint8_t table11_27_emit_[16];
660
- static const uint8_t table11_28_emit_[16];
661
- static const uint8_t table11_29_emit_[20];
662
- static const uint8_t table11_30_emit_[32];
663
- static const uint8_t table11_31_emit_[36];
664
- static const uint8_t table11_32_emit_[8];
665
- static const uint8_t table11_33_emit_[7];
666
- static const uint8_t table11_34_emit_[12];
667
- static const uint8_t table11_35_emit_[16];
668
- static const uint8_t table11_36_emit_[16];
669
- static const uint8_t table11_37_emit_[20];
670
- static const uint8_t table11_38_emit_[32];
671
- static const uint8_t table11_39_emit_[36];
672
- static const uint8_t table11_40_emit_[8];
673
- static const uint8_t table11_41_emit_[7];
674
- static const uint8_t table11_42_emit_[12];
675
- static const uint8_t table11_43_emit_[16];
676
- static const uint8_t table11_44_emit_[16];
677
- static const uint8_t table11_45_emit_[20];
678
- static const uint8_t table11_46_emit_[32];
679
- static const uint8_t table11_47_emit_[36];
680
- static const uint8_t table11_48_emit_[8];
681
- static const uint8_t table11_49_emit_[7];
682
- static const uint8_t table11_50_emit_[12];
683
- static const uint8_t table11_51_emit_[16];
684
- static const uint8_t table11_52_emit_[16];
685
- static const uint8_t table11_53_emit_[20];
686
- static const uint8_t table11_54_emit_[32];
687
- static const uint8_t table11_55_emit_[36];
688
- static const uint8_t table11_56_emit_[8];
689
- static const uint8_t table11_57_emit_[8];
690
- static const uint8_t table11_58_emit_[12];
691
- static const uint8_t table11_59_emit_[16];
692
- static const uint8_t table11_60_emit_[16];
693
- static const uint8_t table11_61_emit_[20];
694
- static const uint8_t table11_62_emit_[32];
695
- static const uint8_t table11_63_emit_[36];
696
- static const uint8_t table11_64_emit_[8];
697
- static const uint8_t table11_65_emit_[8];
698
- static const uint8_t table11_66_emit_[11];
699
- static const uint16_t table11_66_inner_[7];
700
- static const uint8_t table11_67_emit_[16];
701
- static const uint8_t table11_68_emit_[16];
702
- static const uint8_t table11_69_emit_[20];
703
- static const uint8_t table11_70_emit_[32];
704
- static const uint8_t table11_71_emit_[36];
705
- static const uint8_t table11_72_emit_[8];
706
- static const uint8_t table11_73_emit_[8];
707
- static const uint8_t table11_74_emit_[11];
708
- static const uint16_t table11_74_inner_[7];
709
- static const uint8_t table11_75_emit_[16];
710
- static const uint8_t table11_76_emit_[16];
711
- static const uint8_t table11_77_emit_[20];
712
- static const uint8_t table11_78_emit_[32];
713
- static const uint8_t table11_79_emit_[36];
714
- static const uint8_t table11_80_emit_[16];
715
- static const uint8_t table11_81_emit_[27];
716
- static const uint16_t table11_81_inner_[15];
717
- static const uint8_t table11_82_emit_[36];
718
- static const uint8_t table11_83_emit_[68];
719
- static const uint8_t table11_84_emit_[16];
720
- static const uint8_t table11_85_emit_[27];
721
- static const uint16_t table11_85_inner_[15];
722
- static const uint8_t table11_86_emit_[36];
723
- static const uint8_t table11_87_emit_[68];
724
- static const uint8_t table11_88_emit_[16];
725
- static const uint8_t table11_89_emit_[27];
726
- static const uint16_t table11_89_inner_[15];
727
- static const uint8_t table11_90_emit_[36];
728
- static const uint8_t table11_91_emit_[68];
729
- static const uint8_t table11_92_emit_[16];
730
- static const uint8_t table11_93_emit_[27];
731
- static const uint16_t table11_93_inner_[15];
732
- static const uint8_t table11_94_emit_[36];
733
- static const uint8_t table11_95_emit_[68];
734
- static const uint8_t table11_96_emit_[16];
735
- static const uint8_t table11_97_emit_[27];
736
- static const uint16_t table11_97_inner_[15];
737
- static const uint8_t table11_98_emit_[36];
738
- static const uint8_t table11_99_emit_[68];
739
- static const uint8_t table11_100_emit_[16];
740
- static const uint8_t table11_101_emit_[27];
741
- static const uint16_t table11_101_inner_[15];
742
- static const uint8_t table11_102_emit_[36];
743
- static const uint8_t table11_103_emit_[68];
744
- static const uint8_t table11_104_emit_[16];
745
- static const uint8_t table11_105_emit_[27];
746
- static const uint16_t table11_105_inner_[15];
747
- static const uint8_t table11_106_emit_[36];
748
- static const uint8_t table11_107_emit_[68];
749
- static const uint8_t table11_108_emit_[16];
750
- static const uint8_t table11_109_emit_[27];
751
- static const uint16_t table11_109_inner_[15];
752
- static const uint8_t table11_110_emit_[36];
753
- static const uint8_t table11_111_emit_[68];
754
- static const uint8_t table11_112_emit_[16];
755
- static const uint8_t table11_113_emit_[27];
756
- static const uint16_t table11_113_inner_[15];
757
- static const uint8_t table11_114_emit_[36];
758
- static const uint8_t table11_115_emit_[68];
759
- static const uint8_t table11_116_emit_[16];
760
- static const uint8_t table11_117_emit_[27];
761
- static const uint16_t table11_117_inner_[15];
762
- static const uint8_t table11_118_emit_[36];
763
- static const uint8_t table11_119_emit_[68];
764
- static const uint8_t table11_120_emit_[16];
765
- static const uint8_t table11_121_emit_[27];
766
- static const uint16_t table11_121_inner_[15];
767
- static const uint8_t table11_122_emit_[36];
768
- static const uint8_t table11_123_emit_[68];
769
- static const uint8_t table11_124_emit_[16];
770
- static const uint8_t table11_125_emit_[28];
771
- static const uint8_t table11_126_emit_[36];
772
- static const uint8_t table11_127_emit_[68];
773
- static const uint8_t table11_128_emit_[16];
774
- static const uint8_t table11_129_emit_[28];
775
- static const uint8_t table11_130_emit_[35];
776
- static const uint16_t table11_130_inner_[19];
777
- static const uint8_t table11_131_emit_[68];
778
- static const uint8_t table11_132_emit_[16];
779
- static const uint8_t table11_133_emit_[28];
780
- static const uint8_t table11_134_emit_[35];
781
- static const uint16_t table11_134_inner_[19];
782
- static const uint8_t table11_135_emit_[68];
783
- static const uint8_t table11_136_emit_[16];
784
- static const uint8_t table11_137_emit_[28];
785
- static const uint8_t table11_138_emit_[35];
786
- static const uint16_t table11_138_inner_[19];
787
- static const uint8_t table11_139_emit_[68];
788
- static const uint8_t table11_140_emit_[16];
789
- static const uint8_t table11_141_emit_[28];
790
- static const uint8_t table11_142_emit_[35];
791
- static const uint16_t table11_142_inner_[19];
792
- static const uint8_t table11_143_emit_[68];
793
- static const uint8_t table11_144_emit_[16];
794
- static const uint8_t table11_145_emit_[28];
795
- static const uint8_t table11_146_emit_[35];
796
- static const uint16_t table11_146_inner_[19];
797
- static const uint8_t table11_147_emit_[68];
798
- static const uint8_t table11_148_emit_[16];
799
- static const uint8_t table11_149_emit_[28];
800
- static const uint8_t table11_150_emit_[35];
801
- static const uint16_t table11_150_inner_[19];
802
- static const uint8_t table11_151_emit_[68];
803
- static const uint8_t table11_152_emit_[16];
804
- static const uint8_t table11_153_emit_[28];
805
- static const uint8_t table11_154_emit_[35];
806
- static const uint16_t table11_154_inner_[19];
807
- static const uint8_t table11_155_emit_[68];
808
- static const uint8_t table11_156_emit_[16];
809
- static const uint8_t table11_157_emit_[28];
810
- static const uint8_t table11_158_emit_[35];
811
- static const uint16_t table11_158_inner_[19];
812
- static const uint8_t table11_159_emit_[68];
813
- static const uint8_t table11_160_emit_[16];
814
- static const uint8_t table11_161_emit_[28];
815
- static const uint8_t table11_162_emit_[35];
816
- static const uint16_t table11_162_inner_[19];
817
- static const uint8_t table11_163_emit_[68];
818
- static const uint8_t table11_164_emit_[16];
819
- static const uint8_t table11_165_emit_[28];
820
- static const uint8_t table11_166_emit_[35];
821
- static const uint16_t table11_166_inner_[19];
822
- static const uint8_t table11_167_emit_[68];
823
- static const uint8_t table11_168_emit_[16];
824
- static const uint8_t table11_169_emit_[28];
825
- static const uint8_t table11_170_emit_[35];
826
- static const uint16_t table11_170_inner_[19];
827
- static const uint8_t table11_171_emit_[68];
828
- static const uint8_t table11_172_emit_[16];
829
- static const uint8_t table11_173_emit_[28];
830
- static const uint8_t table11_174_emit_[35];
831
- static const uint16_t table11_174_inner_[19];
832
- static const uint8_t table11_175_emit_[68];
833
- static const uint8_t table11_176_emit_[16];
834
- static const uint8_t table11_177_emit_[28];
835
- static const uint8_t table11_178_emit_[35];
836
- static const uint16_t table11_178_inner_[19];
837
- static const uint8_t table11_179_emit_[68];
838
- static const uint8_t table11_180_emit_[16];
839
- static const uint8_t table11_181_emit_[28];
840
- static const uint8_t table11_182_emit_[35];
841
- static const uint16_t table11_182_inner_[19];
842
- static const uint8_t table11_183_emit_[68];
843
- static const uint8_t table11_184_emit_[44];
844
- static const uint8_t table11_185_emit_[91];
845
- static const uint16_t table11_185_inner_[48];
846
- static const uint8_t table11_186_emit_[44];
847
- static const uint8_t table11_187_emit_[91];
848
- static const uint16_t table11_187_inner_[48];
849
- static const uint8_t table11_188_emit_[44];
850
- static const uint8_t table11_189_emit_[91];
851
- static const uint16_t table11_189_inner_[48];
852
- static const uint8_t table11_190_emit_[44];
853
- static const uint8_t table11_191_emit_[91];
854
- static const uint16_t table11_191_inner_[48];
855
- static const uint8_t table11_192_emit_[44];
856
- static const uint8_t table11_193_emit_[91];
857
- static const uint16_t table11_193_inner_[48];
858
- static const uint8_t table11_194_emit_[44];
859
- static const uint8_t table11_195_emit_[91];
860
- static const uint16_t table11_195_inner_[48];
861
- static const uint8_t table11_196_emit_[44];
862
- static const uint8_t table11_197_emit_[91];
863
- static const uint16_t table11_197_inner_[48];
864
- static const uint8_t table11_198_emit_[44];
865
- static const uint8_t table11_199_emit_[91];
866
- static const uint16_t table11_199_inner_[48];
867
- static const uint8_t table11_200_emit_[44];
868
- static const uint8_t table11_201_emit_[91];
869
- static const uint16_t table11_201_inner_[48];
870
- static const uint8_t table11_202_emit_[44];
871
- static const uint8_t table11_203_emit_[91];
872
- static const uint16_t table11_203_inner_[48];
873
- static const uint8_t table11_204_emit_[44];
874
- static const uint8_t table11_205_emit_[91];
875
- static const uint16_t table11_205_inner_[48];
876
- static const uint8_t table11_206_emit_[44];
877
- static const uint8_t table11_207_emit_[91];
878
- static const uint16_t table11_207_inner_[48];
879
- static const uint8_t table11_208_emit_[44];
880
- static const uint8_t table11_209_emit_[91];
881
- static const uint16_t table11_209_inner_[48];
882
- static const uint8_t table11_210_emit_[44];
883
- static const uint8_t table11_211_emit_[91];
884
- static const uint16_t table11_211_inner_[48];
885
- static const uint8_t table11_212_emit_[44];
886
- static const uint8_t table11_213_emit_[91];
887
- static const uint16_t table11_213_inner_[48];
888
- static const uint8_t table11_214_emit_[44];
889
- static const uint8_t table11_215_emit_[91];
890
- static const uint16_t table11_215_inner_[48];
891
- static const uint8_t table11_216_emit_[44];
892
- static const uint8_t table11_217_emit_[91];
893
- static const uint16_t table11_217_inner_[48];
894
- static const uint8_t table11_218_emit_[44];
895
- static const uint8_t table11_219_emit_[91];
896
- static const uint16_t table11_219_inner_[48];
897
- static const uint8_t table11_220_emit_[44];
898
- static const uint8_t table11_221_emit_[91];
899
- static const uint16_t table11_221_inner_[48];
900
- static const uint8_t table11_222_emit_[44];
901
- static const uint8_t table11_223_emit_[91];
902
- static const uint16_t table11_223_inner_[48];
903
- static const uint8_t table11_224_emit_[44];
904
- static const uint8_t table11_225_emit_[91];
905
- static const uint16_t table11_225_inner_[48];
906
- static const uint8_t table11_226_emit_[44];
907
- static const uint8_t table11_227_emit_[91];
908
- static const uint16_t table11_227_inner_[48];
909
- static const uint8_t table11_228_emit_[44];
910
- static const uint8_t table11_229_emit_[91];
911
- static const uint16_t table11_229_inner_[48];
912
- static const uint8_t table11_230_emit_[44];
913
- static const uint8_t table11_231_emit_[91];
914
- static const uint16_t table11_231_inner_[48];
915
- static const uint8_t table11_232_emit_[44];
916
- static const uint8_t table11_233_emit_[91];
917
- static const uint16_t table11_233_inner_[48];
918
- static const uint8_t table11_234_emit_[44];
919
- static const uint8_t table11_235_emit_[91];
920
- static const uint16_t table11_235_inner_[48];
921
- static const uint8_t table11_236_emit_[44];
922
- static const uint8_t table11_237_emit_[91];
923
- static const uint16_t table11_237_inner_[48];
924
- static const uint8_t table11_238_emit_[44];
925
- static const uint8_t table11_239_emit_[91];
926
- static const uint16_t table11_239_inner_[48];
927
- static const uint8_t table11_240_emit_[44];
928
- static const uint8_t table11_241_emit_[91];
929
- static const uint16_t table11_241_inner_[48];
930
- static const uint8_t table11_242_emit_[44];
931
- static const uint8_t table11_243_emit_[91];
932
- static const uint16_t table11_243_inner_[48];
933
- static const uint8_t table11_244_emit_[44];
934
- static const uint8_t table11_245_emit_[91];
935
- static const uint16_t table11_245_inner_[48];
936
- static const uint8_t table11_246_emit_[44];
937
- static const uint8_t table11_247_emit_[92];
938
- static const uint8_t table11_248_emit_[72];
939
- static const uint8_t table11_249_emit_[72];
940
- static const uint8_t table11_250_emit_[72];
941
- static const uint8_t table11_251_emit_[72];
942
- static const uint8_t table11_252_emit_[72];
943
- static const uint8_t table11_253_emit_[72];
944
- static const uint8_t table11_254_emit_[4];
945
- static const uint8_t table11_255_emit_[14];
946
- static const uint8_t table11_255_outer_[64];
947
- static const uint8_t* const table11_emit_[256];
948
- static const uint16_t* const table11_inner_[256];
949
- static const uint8_t* const table11_outer_[256];
950
- static const uint8_t table1_0_emit_[55];
951
- static const uint16_t table1_0_inner_[22];
727
+ static const uint8_t table1_0_emit_[7];
728
+ static const uint16_t table1_0_inner_[4];
952
729
  static const uint8_t table1_0_outer_[64];
953
- static const uint8_t table1_1_emit_[58];
954
- static const uint16_t table1_1_inner_[22];
955
- static const uint8_t table1_2_emit_[58];
956
- static const uint8_t table1_3_emit_[58];
957
- static const uint8_t table1_4_emit_[58];
958
- static const uint8_t table1_5_emit_[8];
959
- static const uint16_t table1_5_inner_[4];
730
+ static const uint8_t table1_1_emit_[8];
731
+ static const uint16_t table1_1_inner_[4];
732
+ static const uint8_t table1_2_emit_[12];
733
+ static const uint16_t table1_2_inner_[6];
734
+ static const uint8_t table1_2_outer_[64];
735
+ static const uint8_t table1_3_emit_[16];
736
+ static const uint16_t table1_3_inner_[8];
737
+ static const uint8_t table1_3_outer_[64];
738
+ static const uint8_t table1_4_emit_[16];
739
+ static const uint8_t table1_5_emit_[20];
740
+ static const uint16_t table1_5_inner_[10];
960
741
  static const uint8_t table1_5_outer_[64];
961
- static const uint8_t table1_6_emit_[8];
962
- static const uint8_t table1_7_emit_[8];
963
- static const uint8_t table1_8_emit_[8];
742
+ static const uint8_t table1_6_emit_[32];
743
+ static const uint16_t table1_6_inner_[16];
744
+ static const uint8_t table1_6_outer_[64];
745
+ static const uint8_t table1_7_emit_[36];
746
+ static const uint16_t table1_7_inner_[19];
747
+ static const uint8_t table1_7_outer_[64];
748
+ static const uint8_t table1_8_emit_[7];
749
+ static const uint16_t table1_8_inner_[4];
964
750
  static const uint8_t table1_9_emit_[8];
965
- static const uint8_t table1_10_emit_[8];
966
- static const uint8_t table1_11_emit_[12];
967
- static const uint16_t table1_11_inner_[6];
968
- static const uint8_t table1_11_outer_[64];
751
+ static const uint8_t table1_10_emit_[12];
752
+ static const uint8_t table1_11_emit_[16];
969
753
  static const uint8_t table1_12_emit_[16];
970
- static const uint16_t table1_12_inner_[8];
971
- static const uint8_t table1_12_outer_[64];
972
- static const uint8_t table1_13_emit_[16];
973
- static const uint8_t table1_14_emit_[16];
974
- static const uint8_t table1_15_emit_[30];
975
- static const uint16_t table1_15_inner_[16];
976
- static const uint8_t table1_15_outer_[64];
977
- static const uint8_t table1_16_emit_[57];
978
- static const uint16_t table1_16_inner_[22];
979
- static const uint8_t table1_17_emit_[58];
980
- static const uint16_t table1_17_inner_[22];
981
- static const uint8_t table1_18_emit_[58];
982
- static const uint8_t table1_19_emit_[58];
983
- static const uint8_t table1_20_emit_[58];
984
- static const uint8_t table1_21_emit_[8];
985
- static const uint8_t table1_22_emit_[8];
986
- static const uint8_t table1_23_emit_[8];
754
+ static const uint8_t table1_13_emit_[20];
755
+ static const uint8_t table1_14_emit_[32];
756
+ static const uint8_t table1_15_emit_[36];
757
+ static const uint8_t table1_16_emit_[7];
758
+ static const uint16_t table1_16_inner_[4];
759
+ static const uint8_t table1_17_emit_[8];
760
+ static const uint8_t table1_18_emit_[12];
761
+ static const uint8_t table1_19_emit_[16];
762
+ static const uint8_t table1_20_emit_[16];
763
+ static const uint8_t table1_21_emit_[20];
764
+ static const uint8_t table1_22_emit_[32];
765
+ static const uint8_t table1_23_emit_[36];
987
766
  static const uint8_t table1_24_emit_[8];
988
767
  static const uint8_t table1_25_emit_[8];
989
- static const uint8_t table1_26_emit_[8];
990
- static const uint8_t table1_27_emit_[12];
768
+ static const uint8_t table1_26_emit_[12];
769
+ static const uint8_t table1_27_emit_[16];
991
770
  static const uint8_t table1_28_emit_[16];
992
- static const uint8_t table1_29_emit_[16];
993
- static const uint8_t table1_30_emit_[16];
994
- static const uint8_t table1_31_emit_[30];
995
- static const uint8_t table1_32_emit_[58];
996
- static const uint16_t table1_32_inner_[22];
997
- static const uint8_t table1_33_emit_[55];
998
- static const uint16_t table1_33_inner_[22];
999
- static const uint8_t table1_34_emit_[58];
1000
- static const uint8_t table1_35_emit_[58];
1001
- static const uint8_t table1_36_emit_[58];
1002
- static const uint8_t table1_37_emit_[8];
1003
- static const uint8_t table1_38_emit_[8];
1004
- static const uint8_t table1_39_emit_[8];
771
+ static const uint8_t table1_29_emit_[20];
772
+ static const uint8_t table1_30_emit_[32];
773
+ static const uint8_t table1_31_emit_[36];
774
+ static const uint8_t table1_32_emit_[8];
775
+ static const uint8_t table1_33_emit_[7];
776
+ static const uint8_t table1_34_emit_[12];
777
+ static const uint8_t table1_35_emit_[16];
778
+ static const uint8_t table1_36_emit_[16];
779
+ static const uint8_t table1_37_emit_[20];
780
+ static const uint8_t table1_38_emit_[32];
781
+ static const uint8_t table1_39_emit_[36];
1005
782
  static const uint8_t table1_40_emit_[8];
1006
- static const uint8_t table1_41_emit_[8];
1007
- static const uint8_t table1_42_emit_[8];
1008
- static const uint8_t table1_43_emit_[12];
783
+ static const uint8_t table1_41_emit_[7];
784
+ static const uint8_t table1_42_emit_[12];
785
+ static const uint8_t table1_43_emit_[16];
1009
786
  static const uint8_t table1_44_emit_[16];
1010
- static const uint8_t table1_45_emit_[16];
1011
- static const uint8_t table1_46_emit_[16];
1012
- static const uint8_t table1_47_emit_[30];
1013
- static const uint8_t table1_48_emit_[58];
1014
- static const uint16_t table1_48_inner_[22];
1015
- static const uint8_t table1_49_emit_[57];
1016
- static const uint16_t table1_49_inner_[22];
1017
- static const uint8_t table1_50_emit_[58];
1018
- static const uint8_t table1_51_emit_[58];
1019
- static const uint8_t table1_52_emit_[58];
1020
- static const uint8_t table1_53_emit_[8];
1021
- static const uint8_t table1_54_emit_[8];
1022
- static const uint8_t table1_55_emit_[8];
787
+ static const uint8_t table1_45_emit_[20];
788
+ static const uint8_t table1_46_emit_[32];
789
+ static const uint8_t table1_47_emit_[36];
790
+ static const uint8_t table1_48_emit_[8];
791
+ static const uint8_t table1_49_emit_[7];
792
+ static const uint8_t table1_50_emit_[12];
793
+ static const uint8_t table1_51_emit_[16];
794
+ static const uint8_t table1_52_emit_[16];
795
+ static const uint8_t table1_53_emit_[20];
796
+ static const uint8_t table1_54_emit_[32];
797
+ static const uint8_t table1_55_emit_[36];
1023
798
  static const uint8_t table1_56_emit_[8];
1024
799
  static const uint8_t table1_57_emit_[8];
1025
- static const uint8_t table1_58_emit_[8];
1026
- static const uint8_t table1_59_emit_[12];
800
+ static const uint8_t table1_58_emit_[12];
801
+ static const uint8_t table1_59_emit_[16];
1027
802
  static const uint8_t table1_60_emit_[16];
1028
- static const uint8_t table1_61_emit_[16];
1029
- static const uint8_t table1_62_emit_[16];
1030
- static const uint8_t table1_63_emit_[30];
1031
- static const uint8_t table1_64_emit_[58];
1032
- static const uint16_t table1_64_inner_[22];
1033
- static const uint8_t table1_65_emit_[58];
1034
- static const uint8_t table1_66_emit_[55];
1035
- static const uint16_t table1_66_inner_[22];
1036
- static const uint8_t table1_67_emit_[58];
1037
- static const uint8_t table1_68_emit_[58];
1038
- static const uint8_t table1_69_emit_[8];
1039
- static const uint8_t table1_70_emit_[8];
1040
- static const uint8_t table1_71_emit_[8];
803
+ static const uint8_t table1_61_emit_[20];
804
+ static const uint8_t table1_62_emit_[32];
805
+ static const uint8_t table1_63_emit_[36];
806
+ static const uint8_t table1_64_emit_[8];
807
+ static const uint8_t table1_65_emit_[8];
808
+ static const uint8_t table1_66_emit_[11];
809
+ static const uint16_t table1_66_inner_[6];
810
+ static const uint8_t table1_67_emit_[16];
811
+ static const uint8_t table1_68_emit_[16];
812
+ static const uint8_t table1_69_emit_[20];
813
+ static const uint8_t table1_70_emit_[32];
814
+ static const uint8_t table1_71_emit_[36];
1041
815
  static const uint8_t table1_72_emit_[8];
1042
816
  static const uint8_t table1_73_emit_[8];
1043
- static const uint8_t table1_74_emit_[8];
1044
- static const uint8_t table1_75_emit_[12];
817
+ static const uint8_t table1_74_emit_[11];
818
+ static const uint16_t table1_74_inner_[6];
819
+ static const uint8_t table1_75_emit_[16];
1045
820
  static const uint8_t table1_76_emit_[16];
1046
- static const uint8_t table1_77_emit_[16];
1047
- static const uint8_t table1_78_emit_[16];
1048
- static const uint8_t table1_79_emit_[30];
1049
- static const uint8_t table1_80_emit_[58];
1050
- static const uint16_t table1_80_inner_[22];
1051
- static const uint8_t table1_81_emit_[58];
1052
- static const uint8_t table1_82_emit_[57];
1053
- static const uint16_t table1_82_inner_[22];
1054
- static const uint8_t table1_83_emit_[58];
1055
- static const uint8_t table1_84_emit_[58];
1056
- static const uint8_t table1_85_emit_[8];
1057
- static const uint8_t table1_86_emit_[8];
1058
- static const uint8_t table1_87_emit_[8];
1059
- static const uint8_t table1_88_emit_[8];
1060
- static const uint8_t table1_89_emit_[8];
1061
- static const uint8_t table1_90_emit_[8];
1062
- static const uint8_t table1_91_emit_[12];
821
+ static const uint8_t table1_77_emit_[20];
822
+ static const uint8_t table1_78_emit_[32];
823
+ static const uint8_t table1_79_emit_[36];
824
+ static const uint8_t table1_80_emit_[16];
825
+ static const uint8_t table1_81_emit_[27];
826
+ static const uint16_t table1_81_inner_[14];
827
+ static const uint8_t table1_81_outer_[64];
828
+ static const uint8_t table1_82_emit_[36];
829
+ static const uint16_t table1_82_inner_[18];
830
+ static const uint8_t table1_82_outer_[64];
831
+ static const uint8_t table1_83_emit_[68];
832
+ static const uint16_t table1_83_inner_[35];
833
+ static const uint8_t table1_83_outer_[64];
834
+ static const uint8_t table1_84_emit_[16];
835
+ static const uint8_t table1_85_emit_[27];
836
+ static const uint16_t table1_85_inner_[14];
837
+ static const uint8_t table1_86_emit_[36];
838
+ static const uint8_t table1_87_emit_[68];
839
+ static const uint8_t table1_88_emit_[16];
840
+ static const uint8_t table1_89_emit_[27];
841
+ static const uint16_t table1_89_inner_[14];
842
+ static const uint8_t table1_90_emit_[36];
843
+ static const uint8_t table1_91_emit_[68];
1063
844
  static const uint8_t table1_92_emit_[16];
1064
- static const uint8_t table1_93_emit_[16];
1065
- static const uint8_t table1_94_emit_[16];
1066
- static const uint8_t table1_95_emit_[30];
1067
- static const uint8_t table1_96_emit_[58];
1068
- static const uint16_t table1_96_inner_[22];
1069
- static const uint8_t table1_97_emit_[58];
1070
- static const uint8_t table1_98_emit_[58];
1071
- static const uint8_t table1_99_emit_[55];
1072
- static const uint16_t table1_99_inner_[22];
1073
- static const uint8_t table1_100_emit_[58];
1074
- static const uint8_t table1_101_emit_[8];
1075
- static const uint8_t table1_102_emit_[8];
1076
- static const uint8_t table1_103_emit_[8];
1077
- static const uint8_t table1_104_emit_[8];
1078
- static const uint8_t table1_105_emit_[8];
1079
- static const uint8_t table1_106_emit_[8];
1080
- static const uint8_t table1_107_emit_[12];
845
+ static const uint8_t table1_93_emit_[27];
846
+ static const uint16_t table1_93_inner_[14];
847
+ static const uint8_t table1_94_emit_[36];
848
+ static const uint8_t table1_95_emit_[68];
849
+ static const uint8_t table1_96_emit_[16];
850
+ static const uint8_t table1_97_emit_[27];
851
+ static const uint16_t table1_97_inner_[14];
852
+ static const uint8_t table1_98_emit_[36];
853
+ static const uint8_t table1_99_emit_[68];
854
+ static const uint8_t table1_100_emit_[16];
855
+ static const uint8_t table1_101_emit_[27];
856
+ static const uint16_t table1_101_inner_[14];
857
+ static const uint8_t table1_102_emit_[36];
858
+ static const uint8_t table1_103_emit_[68];
859
+ static const uint8_t table1_104_emit_[16];
860
+ static const uint8_t table1_105_emit_[27];
861
+ static const uint16_t table1_105_inner_[14];
862
+ static const uint8_t table1_106_emit_[36];
863
+ static const uint8_t table1_107_emit_[68];
1081
864
  static const uint8_t table1_108_emit_[16];
1082
- static const uint8_t table1_109_emit_[16];
1083
- static const uint8_t table1_110_emit_[16];
1084
- static const uint8_t table1_111_emit_[30];
1085
- static const uint8_t table1_112_emit_[58];
1086
- static const uint16_t table1_112_inner_[22];
1087
- static const uint8_t table1_113_emit_[58];
1088
- static const uint8_t table1_114_emit_[58];
1089
- static const uint8_t table1_115_emit_[57];
1090
- static const uint16_t table1_115_inner_[22];
1091
- static const uint8_t table1_116_emit_[58];
1092
- static const uint8_t table1_117_emit_[8];
1093
- static const uint8_t table1_118_emit_[8];
1094
- static const uint8_t table1_119_emit_[8];
1095
- static const uint8_t table1_120_emit_[8];
1096
- static const uint8_t table1_121_emit_[8];
1097
- static const uint8_t table1_122_emit_[8];
1098
- static const uint8_t table1_123_emit_[12];
865
+ static const uint8_t table1_109_emit_[27];
866
+ static const uint16_t table1_109_inner_[14];
867
+ static const uint8_t table1_110_emit_[36];
868
+ static const uint8_t table1_111_emit_[68];
869
+ static const uint8_t table1_112_emit_[16];
870
+ static const uint8_t table1_113_emit_[27];
871
+ static const uint16_t table1_113_inner_[14];
872
+ static const uint8_t table1_114_emit_[36];
873
+ static const uint8_t table1_115_emit_[68];
874
+ static const uint8_t table1_116_emit_[16];
875
+ static const uint8_t table1_117_emit_[27];
876
+ static const uint16_t table1_117_inner_[14];
877
+ static const uint8_t table1_118_emit_[36];
878
+ static const uint8_t table1_119_emit_[68];
879
+ static const uint8_t table1_120_emit_[16];
880
+ static const uint8_t table1_121_emit_[27];
881
+ static const uint16_t table1_121_inner_[14];
882
+ static const uint8_t table1_122_emit_[36];
883
+ static const uint8_t table1_123_emit_[68];
1099
884
  static const uint8_t table1_124_emit_[16];
1100
- static const uint8_t table1_125_emit_[16];
1101
- static const uint8_t table1_126_emit_[16];
1102
- static const uint8_t table1_127_emit_[30];
1103
- static const uint8_t table1_128_emit_[58];
1104
- static const uint16_t table1_128_inner_[22];
1105
- static const uint8_t table1_129_emit_[58];
1106
- static const uint8_t table1_130_emit_[58];
1107
- static const uint8_t table1_131_emit_[58];
1108
- static const uint8_t table1_132_emit_[55];
1109
- static const uint16_t table1_132_inner_[22];
1110
- static const uint8_t table1_133_emit_[8];
1111
- static const uint8_t table1_134_emit_[8];
1112
- static const uint8_t table1_135_emit_[8];
1113
- static const uint8_t table1_136_emit_[8];
1114
- static const uint8_t table1_137_emit_[8];
1115
- static const uint8_t table1_138_emit_[8];
1116
- static const uint8_t table1_139_emit_[12];
885
+ static const uint8_t table1_125_emit_[28];
886
+ static const uint16_t table1_125_inner_[14];
887
+ static const uint8_t table1_126_emit_[36];
888
+ static const uint8_t table1_127_emit_[68];
889
+ static const uint8_t table1_128_emit_[16];
890
+ static const uint8_t table1_129_emit_[28];
891
+ static const uint8_t table1_130_emit_[35];
892
+ static const uint16_t table1_130_inner_[18];
893
+ static const uint8_t table1_131_emit_[68];
894
+ static const uint8_t table1_132_emit_[16];
895
+ static const uint8_t table1_133_emit_[28];
896
+ static const uint8_t table1_134_emit_[35];
897
+ static const uint16_t table1_134_inner_[18];
898
+ static const uint8_t table1_135_emit_[68];
899
+ static const uint8_t table1_136_emit_[16];
900
+ static const uint8_t table1_137_emit_[28];
901
+ static const uint8_t table1_138_emit_[35];
902
+ static const uint16_t table1_138_inner_[18];
903
+ static const uint8_t table1_139_emit_[68];
1117
904
  static const uint8_t table1_140_emit_[16];
1118
- static const uint8_t table1_141_emit_[16];
1119
- static const uint8_t table1_142_emit_[16];
1120
- static const uint8_t table1_143_emit_[30];
1121
- static const uint8_t table1_144_emit_[59];
1122
- static const uint16_t table1_144_inner_[22];
1123
- static const uint8_t table1_145_emit_[59];
1124
- static const uint8_t table1_146_emit_[59];
1125
- static const uint8_t table1_147_emit_[59];
1126
- static const uint8_t table1_148_emit_[59];
1127
- static const uint8_t table1_149_emit_[8];
1128
- static const uint8_t table1_150_emit_[8];
1129
- static const uint8_t table1_151_emit_[8];
1130
- static const uint8_t table1_152_emit_[8];
1131
- static const uint8_t table1_153_emit_[8];
1132
- static const uint8_t table1_154_emit_[8];
1133
- static const uint8_t table1_155_emit_[12];
905
+ static const uint8_t table1_141_emit_[28];
906
+ static const uint8_t table1_142_emit_[35];
907
+ static const uint16_t table1_142_inner_[18];
908
+ static const uint8_t table1_143_emit_[68];
909
+ static const uint8_t table1_144_emit_[16];
910
+ static const uint8_t table1_145_emit_[28];
911
+ static const uint8_t table1_146_emit_[35];
912
+ static const uint16_t table1_146_inner_[18];
913
+ static const uint8_t table1_147_emit_[68];
914
+ static const uint8_t table1_148_emit_[16];
915
+ static const uint8_t table1_149_emit_[28];
916
+ static const uint8_t table1_150_emit_[35];
917
+ static const uint16_t table1_150_inner_[18];
918
+ static const uint8_t table1_151_emit_[68];
919
+ static const uint8_t table1_152_emit_[16];
920
+ static const uint8_t table1_153_emit_[28];
921
+ static const uint8_t table1_154_emit_[35];
922
+ static const uint16_t table1_154_inner_[18];
923
+ static const uint8_t table1_155_emit_[68];
1134
924
  static const uint8_t table1_156_emit_[16];
1135
- static const uint8_t table1_157_emit_[16];
1136
- static const uint8_t table1_158_emit_[16];
1137
- static const uint8_t table1_159_emit_[30];
1138
- static const uint8_t table1_160_emit_[8];
1139
- static const uint8_t table1_161_emit_[8];
1140
- static const uint8_t table1_162_emit_[11];
1141
- static const uint16_t table1_162_inner_[6];
1142
- static const uint8_t table1_163_emit_[16];
925
+ static const uint8_t table1_157_emit_[28];
926
+ static const uint8_t table1_158_emit_[35];
927
+ static const uint16_t table1_158_inner_[18];
928
+ static const uint8_t table1_159_emit_[68];
929
+ static const uint8_t table1_160_emit_[16];
930
+ static const uint8_t table1_161_emit_[28];
931
+ static const uint8_t table1_162_emit_[35];
932
+ static const uint16_t table1_162_inner_[18];
933
+ static const uint8_t table1_163_emit_[68];
1143
934
  static const uint8_t table1_164_emit_[16];
1144
- static const uint8_t table1_165_emit_[20];
1145
- static const uint16_t table1_165_inner_[10];
1146
- static const uint8_t table1_165_outer_[64];
1147
- static const uint8_t table1_166_emit_[32];
1148
- static const uint16_t table1_166_inner_[16];
1149
- static const uint8_t table1_166_outer_[64];
1150
- static const uint8_t table1_167_emit_[36];
1151
- static const uint16_t table1_167_inner_[19];
1152
- static const uint8_t table1_167_outer_[64];
1153
- static const uint8_t table1_168_emit_[8];
1154
- static const uint8_t table1_169_emit_[8];
1155
- static const uint8_t table1_170_emit_[11];
1156
- static const uint16_t table1_170_inner_[6];
1157
- static const uint8_t table1_171_emit_[16];
935
+ static const uint8_t table1_165_emit_[28];
936
+ static const uint8_t table1_166_emit_[35];
937
+ static const uint16_t table1_166_inner_[18];
938
+ static const uint8_t table1_167_emit_[68];
939
+ static const uint8_t table1_168_emit_[16];
940
+ static const uint8_t table1_169_emit_[28];
941
+ static const uint8_t table1_170_emit_[35];
942
+ static const uint16_t table1_170_inner_[18];
943
+ static const uint8_t table1_171_emit_[68];
1158
944
  static const uint8_t table1_172_emit_[16];
1159
- static const uint8_t table1_173_emit_[20];
1160
- static const uint8_t table1_174_emit_[32];
1161
- static const uint8_t table1_175_emit_[36];
1162
- static const uint8_t table1_176_emit_[8];
1163
- static const uint8_t table1_177_emit_[8];
1164
- static const uint8_t table1_178_emit_[11];
1165
- static const uint16_t table1_178_inner_[6];
1166
- static const uint8_t table1_179_emit_[16];
945
+ static const uint8_t table1_173_emit_[28];
946
+ static const uint8_t table1_174_emit_[35];
947
+ static const uint16_t table1_174_inner_[18];
948
+ static const uint8_t table1_175_emit_[68];
949
+ static const uint8_t table1_176_emit_[16];
950
+ static const uint8_t table1_177_emit_[28];
951
+ static const uint8_t table1_178_emit_[35];
952
+ static const uint16_t table1_178_inner_[18];
953
+ static const uint8_t table1_179_emit_[68];
1167
954
  static const uint8_t table1_180_emit_[16];
1168
- static const uint8_t table1_181_emit_[20];
1169
- static const uint8_t table1_182_emit_[32];
1170
- static const uint8_t table1_183_emit_[36];
1171
- static const uint8_t table1_184_emit_[8];
1172
- static const uint8_t table1_185_emit_[8];
1173
- static const uint8_t table1_186_emit_[12];
1174
- static const uint8_t table1_187_emit_[16];
1175
- static const uint8_t table1_188_emit_[16];
1176
- static const uint8_t table1_189_emit_[20];
1177
- static const uint8_t table1_190_emit_[32];
1178
- static const uint8_t table1_191_emit_[36];
1179
- static const uint8_t table1_192_emit_[8];
1180
- static const uint8_t table1_193_emit_[8];
1181
- static const uint8_t table1_194_emit_[12];
1182
- static const uint8_t table1_195_emit_[15];
1183
- static const uint16_t table1_195_inner_[8];
1184
- static const uint8_t table1_196_emit_[16];
1185
- static const uint8_t table1_197_emit_[20];
1186
- static const uint8_t table1_198_emit_[32];
1187
- static const uint8_t table1_199_emit_[36];
1188
- static const uint8_t table1_200_emit_[8];
1189
- static const uint8_t table1_201_emit_[8];
1190
- static const uint8_t table1_202_emit_[12];
1191
- static const uint8_t table1_203_emit_[15];
1192
- static const uint16_t table1_203_inner_[8];
1193
- static const uint8_t table1_204_emit_[16];
1194
- static const uint8_t table1_205_emit_[20];
1195
- static const uint8_t table1_206_emit_[32];
1196
- static const uint8_t table1_207_emit_[36];
1197
- static const uint8_t table1_208_emit_[8];
1198
- static const uint8_t table1_209_emit_[8];
1199
- static const uint8_t table1_210_emit_[12];
1200
- static const uint8_t table1_211_emit_[15];
1201
- static const uint16_t table1_211_inner_[8];
1202
- static const uint8_t table1_212_emit_[16];
1203
- static const uint8_t table1_213_emit_[20];
1204
- static const uint8_t table1_214_emit_[32];
1205
- static const uint8_t table1_215_emit_[36];
1206
- static const uint8_t table1_216_emit_[8];
1207
- static const uint8_t table1_217_emit_[8];
1208
- static const uint8_t table1_218_emit_[12];
1209
- static const uint8_t table1_219_emit_[15];
1210
- static const uint16_t table1_219_inner_[8];
1211
- static const uint8_t table1_220_emit_[16];
1212
- static const uint8_t table1_221_emit_[20];
1213
- static const uint8_t table1_222_emit_[32];
1214
- static const uint8_t table1_223_emit_[36];
1215
- static const uint8_t table1_224_emit_[8];
1216
- static const uint8_t table1_225_emit_[8];
1217
- static const uint8_t table1_226_emit_[12];
1218
- static const uint8_t table1_227_emit_[15];
1219
- static const uint16_t table1_227_inner_[8];
1220
- static const uint8_t table1_228_emit_[16];
1221
- static const uint8_t table1_229_emit_[20];
1222
- static const uint8_t table1_230_emit_[32];
1223
- static const uint8_t table1_231_emit_[36];
1224
- static const uint8_t table1_232_emit_[8];
1225
- static const uint8_t table1_233_emit_[8];
1226
- static const uint8_t table1_234_emit_[12];
1227
- static const uint8_t table1_235_emit_[15];
1228
- static const uint16_t table1_235_inner_[8];
1229
- static const uint8_t table1_236_emit_[16];
1230
- static const uint8_t table1_237_emit_[20];
1231
- static const uint8_t table1_238_emit_[32];
1232
- static const uint8_t table1_239_emit_[36];
1233
- static const uint8_t table1_240_emit_[8];
1234
- static const uint8_t table1_241_emit_[8];
1235
- static const uint8_t table1_242_emit_[12];
1236
- static const uint8_t table1_243_emit_[15];
1237
- static const uint16_t table1_243_inner_[8];
1238
- static const uint8_t table1_244_emit_[16];
1239
- static const uint8_t table1_245_emit_[20];
1240
- static const uint8_t table1_246_emit_[32];
1241
- static const uint8_t table1_247_emit_[36];
1242
- static const uint8_t table1_248_emit_[8];
1243
- static const uint8_t table1_249_emit_[8];
1244
- static const uint8_t table1_250_emit_[12];
1245
- static const uint8_t table1_251_emit_[16];
1246
- static const uint8_t table1_252_emit_[16];
1247
- static const uint8_t table1_253_emit_[20];
1248
- static const uint8_t table1_254_emit_[32];
1249
- static const uint8_t table1_255_emit_[36];
1250
- static const uint8_t table1_256_emit_[8];
1251
- static const uint8_t table1_257_emit_[8];
1252
- static const uint8_t table1_258_emit_[12];
1253
- static const uint8_t table1_259_emit_[16];
1254
- static const uint8_t table1_260_emit_[15];
1255
- static const uint8_t table1_261_emit_[20];
1256
- static const uint8_t table1_262_emit_[32];
1257
- static const uint8_t table1_263_emit_[36];
1258
- static const uint8_t table1_264_emit_[8];
1259
- static const uint8_t table1_265_emit_[8];
1260
- static const uint8_t table1_266_emit_[12];
1261
- static const uint8_t table1_267_emit_[16];
1262
- static const uint8_t table1_268_emit_[15];
1263
- static const uint8_t table1_269_emit_[20];
1264
- static const uint8_t table1_270_emit_[32];
1265
- static const uint8_t table1_271_emit_[36];
1266
- static const uint8_t table1_272_emit_[8];
1267
- static const uint8_t table1_273_emit_[8];
1268
- static const uint8_t table1_274_emit_[12];
1269
- static const uint8_t table1_275_emit_[16];
1270
- static const uint8_t table1_276_emit_[15];
1271
- static const uint8_t table1_277_emit_[20];
1272
- static const uint8_t table1_278_emit_[32];
1273
- static const uint8_t table1_279_emit_[36];
1274
- static const uint8_t table1_280_emit_[8];
1275
- static const uint8_t table1_281_emit_[8];
1276
- static const uint8_t table1_282_emit_[12];
1277
- static const uint8_t table1_283_emit_[16];
1278
- static const uint8_t table1_284_emit_[15];
1279
- static const uint8_t table1_285_emit_[20];
1280
- static const uint8_t table1_286_emit_[32];
1281
- static const uint8_t table1_287_emit_[36];
1282
- static const uint8_t table1_288_emit_[8];
1283
- static const uint8_t table1_289_emit_[8];
1284
- static const uint8_t table1_290_emit_[12];
1285
- static const uint8_t table1_291_emit_[16];
1286
- static const uint8_t table1_292_emit_[15];
1287
- static const uint8_t table1_293_emit_[20];
1288
- static const uint8_t table1_294_emit_[32];
1289
- static const uint8_t table1_295_emit_[36];
1290
- static const uint8_t table1_296_emit_[8];
1291
- static const uint8_t table1_297_emit_[8];
1292
- static const uint8_t table1_298_emit_[12];
1293
- static const uint8_t table1_299_emit_[16];
1294
- static const uint8_t table1_300_emit_[15];
1295
- static const uint8_t table1_301_emit_[20];
1296
- static const uint8_t table1_302_emit_[32];
1297
- static const uint8_t table1_303_emit_[36];
1298
- static const uint8_t table1_304_emit_[8];
1299
- static const uint8_t table1_305_emit_[8];
1300
- static const uint8_t table1_306_emit_[12];
1301
- static const uint8_t table1_307_emit_[16];
1302
- static const uint8_t table1_308_emit_[15];
1303
- static const uint8_t table1_309_emit_[20];
1304
- static const uint8_t table1_310_emit_[32];
1305
- static const uint8_t table1_311_emit_[36];
1306
- static const uint8_t table1_312_emit_[8];
1307
- static const uint8_t table1_313_emit_[8];
1308
- static const uint8_t table1_314_emit_[12];
1309
- static const uint8_t table1_315_emit_[16];
1310
- static const uint8_t table1_316_emit_[16];
1311
- static const uint8_t table1_317_emit_[20];
1312
- static const uint8_t table1_318_emit_[32];
1313
- static const uint8_t table1_319_emit_[36];
1314
- static const uint8_t table1_320_emit_[8];
1315
- static const uint8_t table1_321_emit_[8];
1316
- static const uint8_t table1_322_emit_[12];
1317
- static const uint8_t table1_323_emit_[16];
1318
- static const uint8_t table1_324_emit_[16];
1319
- static const uint8_t table1_325_emit_[19];
1320
- static const uint16_t table1_325_inner_[10];
1321
- static const uint8_t table1_326_emit_[32];
1322
- static const uint8_t table1_327_emit_[36];
1323
- static const uint8_t table1_328_emit_[8];
1324
- static const uint8_t table1_329_emit_[8];
1325
- static const uint8_t table1_330_emit_[12];
1326
- static const uint8_t table1_331_emit_[16];
1327
- static const uint8_t table1_332_emit_[16];
1328
- static const uint8_t table1_333_emit_[19];
1329
- static const uint16_t table1_333_inner_[10];
1330
- static const uint8_t table1_334_emit_[32];
1331
- static const uint8_t table1_335_emit_[36];
1332
- static const uint8_t table1_336_emit_[8];
1333
- static const uint8_t table1_337_emit_[8];
1334
- static const uint8_t table1_338_emit_[12];
1335
- static const uint8_t table1_339_emit_[16];
1336
- static const uint8_t table1_340_emit_[16];
1337
- static const uint8_t table1_341_emit_[19];
1338
- static const uint16_t table1_341_inner_[10];
1339
- static const uint8_t table1_342_emit_[32];
1340
- static const uint8_t table1_343_emit_[36];
1341
- static const uint8_t table1_344_emit_[8];
1342
- static const uint8_t table1_345_emit_[8];
1343
- static const uint8_t table1_346_emit_[12];
1344
- static const uint8_t table1_347_emit_[16];
1345
- static const uint8_t table1_348_emit_[16];
1346
- static const uint8_t table1_349_emit_[19];
1347
- static const uint16_t table1_349_inner_[10];
1348
- static const uint8_t table1_350_emit_[32];
1349
- static const uint8_t table1_351_emit_[36];
1350
- static const uint8_t table1_352_emit_[8];
1351
- static const uint8_t table1_353_emit_[8];
1352
- static const uint8_t table1_354_emit_[12];
1353
- static const uint8_t table1_355_emit_[16];
1354
- static const uint8_t table1_356_emit_[16];
1355
- static const uint8_t table1_357_emit_[19];
1356
- static const uint16_t table1_357_inner_[10];
1357
- static const uint8_t table1_358_emit_[32];
1358
- static const uint8_t table1_359_emit_[36];
1359
- static const uint8_t table1_360_emit_[8];
1360
- static const uint8_t table1_361_emit_[8];
1361
- static const uint8_t table1_362_emit_[12];
1362
- static const uint8_t table1_363_emit_[16];
1363
- static const uint8_t table1_364_emit_[16];
1364
- static const uint8_t table1_365_emit_[19];
1365
- static const uint16_t table1_365_inner_[10];
1366
- static const uint8_t table1_366_emit_[32];
1367
- static const uint8_t table1_367_emit_[36];
1368
- static const uint8_t table1_368_emit_[16];
1369
- static const uint8_t table1_369_emit_[28];
1370
- static const uint16_t table1_369_inner_[14];
1371
- static const uint8_t table1_369_outer_[64];
1372
- static const uint8_t table1_370_emit_[35];
1373
- static const uint16_t table1_370_inner_[18];
1374
- static const uint8_t table1_370_outer_[64];
1375
- static const uint8_t table1_371_emit_[68];
1376
- static const uint16_t table1_371_inner_[35];
1377
- static const uint8_t table1_371_outer_[64];
1378
- static const uint8_t table1_372_emit_[16];
1379
- static const uint8_t table1_373_emit_[28];
1380
- static const uint8_t table1_374_emit_[35];
1381
- static const uint16_t table1_374_inner_[18];
1382
- static const uint8_t table1_375_emit_[68];
1383
- static const uint8_t table1_376_emit_[16];
1384
- static const uint8_t table1_377_emit_[28];
1385
- static const uint8_t table1_378_emit_[35];
1386
- static const uint16_t table1_378_inner_[18];
1387
- static const uint8_t table1_379_emit_[68];
1388
- static const uint8_t table1_380_emit_[16];
1389
- static const uint8_t table1_381_emit_[28];
1390
- static const uint8_t table1_382_emit_[36];
1391
- static const uint16_t table1_382_inner_[18];
1392
- static const uint8_t table1_383_emit_[68];
1393
- static const uint8_t table1_384_emit_[16];
1394
- static const uint8_t table1_385_emit_[28];
1395
- static const uint8_t table1_386_emit_[36];
1396
- static const uint8_t table1_387_emit_[67];
1397
- static const uint16_t table1_387_inner_[35];
1398
- static const uint8_t table1_388_emit_[16];
1399
- static const uint8_t table1_389_emit_[28];
1400
- static const uint8_t table1_390_emit_[36];
1401
- static const uint8_t table1_391_emit_[67];
1402
- static const uint16_t table1_391_inner_[35];
1403
- static const uint8_t table1_392_emit_[16];
1404
- static const uint8_t table1_393_emit_[28];
1405
- static const uint8_t table1_394_emit_[36];
1406
- static const uint8_t table1_395_emit_[67];
1407
- static const uint16_t table1_395_inner_[35];
1408
- static const uint8_t table1_396_emit_[16];
1409
- static const uint8_t table1_397_emit_[28];
1410
- static const uint8_t table1_398_emit_[36];
1411
- static const uint8_t table1_399_emit_[67];
1412
- static const uint16_t table1_399_inner_[35];
1413
- static const uint8_t table1_400_emit_[16];
1414
- static const uint8_t table1_401_emit_[28];
1415
- static const uint8_t table1_402_emit_[36];
1416
- static const uint8_t table1_403_emit_[67];
1417
- static const uint16_t table1_403_inner_[35];
1418
- static const uint8_t table1_404_emit_[16];
1419
- static const uint8_t table1_405_emit_[28];
1420
- static const uint8_t table1_406_emit_[36];
1421
- static const uint8_t table1_407_emit_[67];
1422
- static const uint16_t table1_407_inner_[35];
1423
- static const uint8_t table1_408_emit_[16];
1424
- static const uint8_t table1_409_emit_[28];
1425
- static const uint8_t table1_410_emit_[36];
1426
- static const uint8_t table1_411_emit_[67];
1427
- static const uint16_t table1_411_inner_[35];
1428
- static const uint8_t table1_412_emit_[16];
1429
- static const uint8_t table1_413_emit_[28];
1430
- static const uint8_t table1_414_emit_[36];
1431
- static const uint8_t table1_415_emit_[67];
1432
- static const uint16_t table1_415_inner_[35];
1433
- static const uint8_t table1_416_emit_[16];
1434
- static const uint8_t table1_417_emit_[28];
1435
- static const uint8_t table1_418_emit_[36];
1436
- static const uint8_t table1_419_emit_[67];
1437
- static const uint16_t table1_419_inner_[35];
1438
- static const uint8_t table1_420_emit_[16];
1439
- static const uint8_t table1_421_emit_[28];
1440
- static const uint8_t table1_422_emit_[36];
1441
- static const uint8_t table1_423_emit_[67];
1442
- static const uint16_t table1_423_inner_[35];
1443
- static const uint8_t table1_424_emit_[16];
1444
- static const uint8_t table1_425_emit_[28];
1445
- static const uint8_t table1_426_emit_[36];
1446
- static const uint8_t table1_427_emit_[67];
1447
- static const uint16_t table1_427_inner_[35];
1448
- static const uint8_t table1_428_emit_[16];
1449
- static const uint8_t table1_429_emit_[28];
1450
- static const uint8_t table1_430_emit_[36];
1451
- static const uint8_t table1_431_emit_[67];
1452
- static const uint16_t table1_431_inner_[35];
1453
- static const uint8_t table1_432_emit_[16];
1454
- static const uint8_t table1_433_emit_[28];
1455
- static const uint8_t table1_434_emit_[36];
1456
- static const uint8_t table1_435_emit_[67];
1457
- static const uint16_t table1_435_inner_[35];
1458
- static const uint8_t table1_436_emit_[16];
1459
- static const uint8_t table1_437_emit_[28];
1460
- static const uint8_t table1_438_emit_[36];
1461
- static const uint8_t table1_439_emit_[67];
1462
- static const uint16_t table1_439_inner_[35];
1463
- static const uint8_t table1_440_emit_[16];
1464
- static const uint8_t table1_441_emit_[28];
1465
- static const uint8_t table1_442_emit_[36];
1466
- static const uint8_t table1_443_emit_[67];
1467
- static const uint16_t table1_443_inner_[35];
1468
- static const uint8_t table1_444_emit_[16];
1469
- static const uint8_t table1_445_emit_[28];
1470
- static const uint8_t table1_446_emit_[36];
1471
- static const uint8_t table1_447_emit_[67];
1472
- static const uint16_t table1_447_inner_[35];
1473
- static const uint8_t table1_448_emit_[16];
1474
- static const uint8_t table1_449_emit_[28];
1475
- static const uint8_t table1_450_emit_[36];
1476
- static const uint8_t table1_451_emit_[67];
1477
- static const uint16_t table1_451_inner_[35];
1478
- static const uint8_t table1_452_emit_[16];
1479
- static const uint8_t table1_453_emit_[28];
1480
- static const uint8_t table1_454_emit_[36];
1481
- static const uint8_t table1_455_emit_[67];
1482
- static const uint16_t table1_455_inner_[35];
1483
- static const uint8_t table1_456_emit_[16];
1484
- static const uint8_t table1_457_emit_[28];
1485
- static const uint8_t table1_458_emit_[36];
1486
- static const uint8_t table1_459_emit_[67];
1487
- static const uint16_t table1_459_inner_[35];
1488
- static const uint8_t table1_460_emit_[16];
1489
- static const uint8_t table1_461_emit_[28];
1490
- static const uint8_t table1_462_emit_[36];
1491
- static const uint8_t table1_463_emit_[67];
1492
- static const uint16_t table1_463_inner_[35];
1493
- static const uint8_t table1_464_emit_[16];
1494
- static const uint8_t table1_465_emit_[28];
1495
- static const uint8_t table1_466_emit_[36];
1496
- static const uint8_t table1_467_emit_[67];
1497
- static const uint16_t table1_467_inner_[35];
1498
- static const uint8_t table1_468_emit_[16];
1499
- static const uint8_t table1_469_emit_[28];
1500
- static const uint8_t table1_470_emit_[36];
1501
- static const uint8_t table1_471_emit_[67];
1502
- static const uint16_t table1_471_inner_[35];
1503
- static const uint8_t table1_472_emit_[16];
1504
- static const uint8_t table1_473_emit_[28];
1505
- static const uint8_t table1_474_emit_[36];
1506
- static const uint8_t table1_475_emit_[67];
1507
- static const uint16_t table1_475_inner_[35];
1508
- static const uint8_t table1_476_emit_[16];
1509
- static const uint8_t table1_477_emit_[28];
1510
- static const uint8_t table1_478_emit_[36];
1511
- static const uint8_t table1_479_emit_[67];
1512
- static const uint16_t table1_479_inner_[35];
1513
- static const uint8_t table1_480_emit_[16];
1514
- static const uint8_t table1_481_emit_[28];
1515
- static const uint8_t table1_482_emit_[36];
1516
- static const uint8_t table1_483_emit_[67];
1517
- static const uint16_t table1_483_inner_[35];
1518
- static const uint8_t table1_484_emit_[16];
1519
- static const uint8_t table1_485_emit_[28];
1520
- static const uint8_t table1_486_emit_[36];
1521
- static const uint8_t table1_487_emit_[67];
1522
- static const uint16_t table1_487_inner_[35];
1523
- static const uint8_t table1_488_emit_[16];
1524
- static const uint8_t table1_489_emit_[28];
1525
- static const uint8_t table1_490_emit_[36];
1526
- static const uint8_t table1_491_emit_[67];
1527
- static const uint16_t table1_491_inner_[35];
1528
- static const uint8_t table1_492_emit_[16];
1529
- static const uint8_t table1_493_emit_[28];
1530
- static const uint8_t table1_494_emit_[36];
1531
- static const uint8_t table1_495_emit_[67];
1532
- static const uint16_t table1_495_inner_[35];
1533
- static const uint8_t table1_496_emit_[44];
1534
- static const uint16_t table1_496_inner_[22];
1535
- static const uint8_t table1_496_outer_[64];
1536
- static const uint8_t table1_497_emit_[92];
1537
- static const uint16_t table1_497_inner_[47];
1538
- static const uint8_t table1_497_outer_[64];
1539
- static const uint8_t table1_498_emit_[44];
1540
- static const uint8_t table1_499_emit_[92];
1541
- static const uint8_t table1_500_emit_[44];
1542
- static const uint8_t table1_501_emit_[92];
1543
- static const uint8_t table1_502_emit_[44];
1544
- static const uint8_t table1_503_emit_[92];
1545
- static const uint8_t table1_504_emit_[44];
1546
- static const uint8_t table1_505_emit_[92];
1547
- static const uint8_t table1_506_emit_[44];
1548
- static const uint8_t table1_507_emit_[92];
1549
- static const uint8_t table1_508_emit_[40];
1550
- static const uint16_t table1_508_inner_[22];
1551
- static const uint8_t table1_509_emit_[40];
1552
- static const uint8_t table1_510_emit_[22];
1553
- static const uint16_t table1_510_inner_[13];
1554
- static const uint8_t table1_510_outer_[64];
1555
- static const uint8_t table1_511_emit_[14];
1556
- static const uint16_t table1_511_inner_[15];
1557
- static const uint8_t table1_511_outer_[64];
1558
- static const uint8_t* const table1_emit_[512];
1559
- static const uint16_t* const table1_inner_[512];
1560
- static const uint8_t* const table1_outer_[512];
1561
- static const uint8_t table13_0_inner_[5];
1562
- static const uint8_t table14_0_emit_[11];
1563
- static const uint8_t table14_0_ops_[32];
1564
- static const uint8_t table15_0_emit_[24];
1565
- static const uint8_t table15_0_ops_[64];
1566
- static const uint8_t table12_0_emit_[50];
1567
- static const uint16_t table12_0_inner_[70];
1568
- static const uint8_t table12_0_outer_[128];
1569
- static const uint8_t table33_0_emit_[15];
1570
- static const uint8_t table33_0_inner_[16];
1571
- static const uint8_t table32_0_emit_[17];
1572
- static const uint8_t table32_0_ops_[32];
1573
- static const uint8_t table36_0_emit_[6];
1574
- static const uint8_t table36_0_inner_[6];
1575
- static const uint8_t table39_0_emit_[17];
1576
- static const uint8_t table39_0_ops_[32];
1577
- static const uint8_t table40_0_emit_[46];
1578
- static const uint8_t table40_0_ops_[64];
1579
- static const uint8_t table41_0_ops_[128];
1580
- static const uint8_t table38_0_emit_[4];
1581
- static const uint16_t table38_0_ops_[32];
1582
- static const uint8_t table38_1_emit_[4];
1583
- static const uint8_t table38_2_emit_[4];
1584
- static const uint8_t table38_3_emit_[4];
1585
- static const uint8_t table38_4_emit_[7];
1586
- static const uint16_t table38_4_ops_[32];
1587
- static const uint8_t table38_5_emit_[8];
1588
- static const uint16_t table38_5_ops_[32];
1589
- static const uint8_t table38_6_emit_[8];
1590
- static const uint8_t table38_7_emit_[10];
1591
- static const uint16_t table38_7_ops_[32];
1592
- static const uint8_t* const table38_emit_[8];
1593
- static const uint16_t* const table38_ops_[8];
955
+ static const uint8_t table1_181_emit_[28];
956
+ static const uint8_t table1_182_emit_[35];
957
+ static const uint16_t table1_182_inner_[18];
958
+ static const uint8_t table1_183_emit_[68];
959
+ static const uint8_t table1_184_emit_[44];
960
+ static const uint16_t table1_184_inner_[22];
961
+ static const uint8_t table1_184_outer_[64];
962
+ static const uint8_t table1_185_emit_[91];
963
+ static const uint16_t table1_185_inner_[47];
964
+ static const uint8_t table1_185_outer_[64];
965
+ static const uint8_t table1_186_emit_[44];
966
+ static const uint8_t table1_187_emit_[91];
967
+ static const uint16_t table1_187_inner_[47];
968
+ static const uint8_t table1_188_emit_[44];
969
+ static const uint8_t table1_189_emit_[91];
970
+ static const uint16_t table1_189_inner_[47];
971
+ static const uint8_t table1_190_emit_[44];
972
+ static const uint8_t table1_191_emit_[91];
973
+ static const uint16_t table1_191_inner_[47];
974
+ static const uint8_t table1_192_emit_[44];
975
+ static const uint8_t table1_193_emit_[91];
976
+ static const uint16_t table1_193_inner_[47];
977
+ static const uint8_t table1_194_emit_[44];
978
+ static const uint8_t table1_195_emit_[91];
979
+ static const uint16_t table1_195_inner_[47];
980
+ static const uint8_t table1_196_emit_[44];
981
+ static const uint8_t table1_197_emit_[91];
982
+ static const uint16_t table1_197_inner_[47];
983
+ static const uint8_t table1_198_emit_[44];
984
+ static const uint8_t table1_199_emit_[91];
985
+ static const uint16_t table1_199_inner_[47];
986
+ static const uint8_t table1_200_emit_[44];
987
+ static const uint8_t table1_201_emit_[91];
988
+ static const uint16_t table1_201_inner_[47];
989
+ static const uint8_t table1_202_emit_[44];
990
+ static const uint8_t table1_203_emit_[91];
991
+ static const uint16_t table1_203_inner_[47];
992
+ static const uint8_t table1_204_emit_[44];
993
+ static const uint8_t table1_205_emit_[91];
994
+ static const uint16_t table1_205_inner_[47];
995
+ static const uint8_t table1_206_emit_[44];
996
+ static const uint8_t table1_207_emit_[91];
997
+ static const uint16_t table1_207_inner_[47];
998
+ static const uint8_t table1_208_emit_[44];
999
+ static const uint8_t table1_209_emit_[91];
1000
+ static const uint16_t table1_209_inner_[47];
1001
+ static const uint8_t table1_210_emit_[44];
1002
+ static const uint8_t table1_211_emit_[91];
1003
+ static const uint16_t table1_211_inner_[47];
1004
+ static const uint8_t table1_212_emit_[44];
1005
+ static const uint8_t table1_213_emit_[91];
1006
+ static const uint16_t table1_213_inner_[47];
1007
+ static const uint8_t table1_214_emit_[44];
1008
+ static const uint8_t table1_215_emit_[91];
1009
+ static const uint16_t table1_215_inner_[47];
1010
+ static const uint8_t table1_216_emit_[44];
1011
+ static const uint8_t table1_217_emit_[91];
1012
+ static const uint16_t table1_217_inner_[47];
1013
+ static const uint8_t table1_218_emit_[44];
1014
+ static const uint8_t table1_219_emit_[91];
1015
+ static const uint16_t table1_219_inner_[47];
1016
+ static const uint8_t table1_220_emit_[44];
1017
+ static const uint8_t table1_221_emit_[91];
1018
+ static const uint16_t table1_221_inner_[47];
1019
+ static const uint8_t table1_222_emit_[44];
1020
+ static const uint8_t table1_223_emit_[91];
1021
+ static const uint16_t table1_223_inner_[47];
1022
+ static const uint8_t table1_224_emit_[44];
1023
+ static const uint8_t table1_225_emit_[91];
1024
+ static const uint16_t table1_225_inner_[47];
1025
+ static const uint8_t table1_226_emit_[44];
1026
+ static const uint8_t table1_227_emit_[91];
1027
+ static const uint16_t table1_227_inner_[47];
1028
+ static const uint8_t table1_228_emit_[44];
1029
+ static const uint8_t table1_229_emit_[91];
1030
+ static const uint16_t table1_229_inner_[47];
1031
+ static const uint8_t table1_230_emit_[44];
1032
+ static const uint8_t table1_231_emit_[91];
1033
+ static const uint16_t table1_231_inner_[47];
1034
+ static const uint8_t table1_232_emit_[44];
1035
+ static const uint8_t table1_233_emit_[91];
1036
+ static const uint16_t table1_233_inner_[47];
1037
+ static const uint8_t table1_234_emit_[44];
1038
+ static const uint8_t table1_235_emit_[91];
1039
+ static const uint16_t table1_235_inner_[47];
1040
+ static const uint8_t table1_236_emit_[44];
1041
+ static const uint8_t table1_237_emit_[91];
1042
+ static const uint16_t table1_237_inner_[47];
1043
+ static const uint8_t table1_238_emit_[44];
1044
+ static const uint8_t table1_239_emit_[91];
1045
+ static const uint16_t table1_239_inner_[47];
1046
+ static const uint8_t table1_240_emit_[44];
1047
+ static const uint8_t table1_241_emit_[91];
1048
+ static const uint16_t table1_241_inner_[47];
1049
+ static const uint8_t table1_242_emit_[44];
1050
+ static const uint8_t table1_243_emit_[91];
1051
+ static const uint16_t table1_243_inner_[47];
1052
+ static const uint8_t table1_244_emit_[44];
1053
+ static const uint8_t table1_245_emit_[91];
1054
+ static const uint16_t table1_245_inner_[47];
1055
+ static const uint8_t table1_246_emit_[44];
1056
+ static const uint8_t table1_247_emit_[92];
1057
+ static const uint16_t table1_247_inner_[47];
1058
+ static const uint8_t table1_248_emit_[72];
1059
+ static const uint16_t table1_248_inner_[37];
1060
+ static const uint8_t table1_248_outer_[64];
1061
+ static const uint8_t table1_249_emit_[72];
1062
+ static const uint8_t table1_250_emit_[72];
1063
+ static const uint8_t table1_251_emit_[72];
1064
+ static const uint8_t table1_252_emit_[72];
1065
+ static const uint8_t table1_253_emit_[72];
1066
+ static const uint8_t table1_254_emit_[4];
1067
+ static const uint16_t table1_254_inner_[4];
1068
+ static const uint8_t table1_255_emit_[14];
1069
+ static const uint16_t table1_255_inner_[16];
1070
+ static const uint8_t table1_255_outer_[64];
1071
+ static const uint8_t* const table1_emit_[256];
1072
+ static const uint16_t* const table1_inner_[256];
1073
+ static const uint8_t* const table1_outer_[256];
1074
+ static const uint8_t table15_0_outer_[8];
1075
+ static const uint8_t table16_0_outer_[16];
1076
+ static const uint16_t table12_0_inner_[17];
1077
+ static const uint8_t table24_0_emit_[8];
1078
+ static const uint8_t table24_0_inner_[8];
1079
+ static const uint8_t table25_0_emit_[8];
1080
+ static const uint8_t table26_0_emit_[16];
1081
+ static const uint8_t table26_0_inner_[16];
1082
+ static const uint8_t table27_0_emit_[7];
1083
+ static const uint8_t table27_0_inner_[7];
1084
+ static const uint8_t table30_0_inner_[5];
1085
+ static const uint8_t table29_0_emit_[12];
1086
+ static const uint8_t table29_0_inner_[12];
1087
+ static const uint8_t table32_0_emit_[5];
1088
+ static const uint8_t table32_0_inner_[7];
1089
+ static const uint8_t table33_0_emit_[17];
1090
+ static const uint8_t table33_0_ops_[32];
1091
+ static const uint8_t table34_0_emit_[21];
1092
+ static const uint8_t table34_0_ops_[64];
1093
+ static const uint8_t table35_0_emit_[36];
1094
+ static const uint8_t table35_0_ops_[128];
1095
+ static const uint8_t table36_0_emit_[55];
1096
+ static const uint8_t table36_0_ops_[256];
1097
+ static const uint8_t table37_0_emit_[40];
1098
+ static const uint8_t table37_0_ops_[64];
1099
+ static const uint8_t table37_1_emit_[40];
1100
+ static const uint8_t table37_2_emit_[22];
1101
+ static const uint8_t table37_2_ops_[64];
1102
+ static const uint8_t table37_3_emit_[4];
1103
+ static const uint8_t table37_4_emit_[4];
1104
+ static const uint8_t table37_5_emit_[6];
1105
+ static const uint8_t table37_6_emit_[17];
1106
+ static const uint8_t table37_6_ops_[64];
1107
+ static const uint8_t table37_7_emit_[46];
1108
+ static const uint8_t table37_7_ops_[64];
1109
+ static const uint8_t* const table37_emit_[8];
1110
+ static const uint8_t* const table37_ops_[8];
1111
+ static const uint8_t table38_0_emit_[72];
1112
+ static const uint16_t table38_0_ops_[64];
1113
+ static const uint8_t table38_1_emit_[72];
1114
+ static const uint8_t table38_2_emit_[72];
1115
+ static const uint8_t table38_3_emit_[72];
1116
+ static const uint8_t table38_4_emit_[72];
1117
+ static const uint8_t table38_5_emit_[40];
1118
+ static const uint16_t table38_5_ops_[64];
1119
+ static const uint8_t table38_6_emit_[40];
1120
+ static const uint8_t table38_7_emit_[40];
1121
+ static const uint8_t table38_8_emit_[40];
1122
+ static const uint8_t table38_9_emit_[40];
1123
+ static const uint8_t table38_10_emit_[40];
1124
+ static const uint8_t table38_11_emit_[4];
1125
+ static const uint16_t table38_11_ops_[64];
1126
+ static const uint8_t table38_12_emit_[8];
1127
+ static const uint16_t table38_12_ops_[64];
1128
+ static const uint8_t table38_13_emit_[9];
1129
+ static const uint16_t table38_13_ops_[64];
1130
+ static const uint8_t table38_14_emit_[16];
1131
+ static const uint16_t table38_14_ops_[64];
1132
+ static const uint8_t table38_15_emit_[30];
1133
+ static const uint16_t table38_15_ops_[64];
1134
+ static const uint8_t* const table38_emit_[16];
1135
+ static const uint16_t* const table38_ops_[16];
1136
+ static const uint8_t table31_0_emit_[1];
1137
+ static const uint16_t table31_0_ops_[64];
1138
+ static const uint8_t table31_2_emit_[1];
1139
+ static const uint8_t table31_4_emit_[1];
1140
+ static const uint8_t table31_6_emit_[1];
1141
+ static const uint8_t table31_8_emit_[1];
1142
+ static const uint8_t table31_10_emit_[1];
1143
+ static const uint16_t table31_10_ops_[64];
1144
+ static const uint8_t table31_11_emit_[1];
1145
+ static const uint8_t table31_12_emit_[1];
1146
+ static const uint8_t table31_13_emit_[1];
1147
+ static const uint8_t table31_14_emit_[1];
1148
+ static const uint8_t table31_15_emit_[1];
1149
+ static const uint8_t table31_16_emit_[1];
1150
+ static const uint8_t table31_17_emit_[1];
1151
+ static const uint8_t table31_18_emit_[1];
1152
+ static const uint8_t table31_19_emit_[1];
1153
+ static const uint8_t table31_20_emit_[1];
1154
+ static const uint8_t table31_21_emit_[1];
1155
+ static const uint8_t table31_22_emit_[2];
1156
+ static const uint16_t table31_22_ops_[64];
1157
+ static const uint8_t table31_23_emit_[2];
1158
+ static const uint8_t table31_24_emit_[4];
1159
+ static const uint16_t table31_24_ops_[64];
1160
+ static const uint8_t table31_25_emit_[4];
1161
+ static const uint8_t table31_26_emit_[4];
1162
+ static const uint8_t table31_27_emit_[5];
1163
+ static const uint16_t table31_27_ops_[64];
1164
+ static const uint8_t table31_28_emit_[8];
1165
+ static const uint16_t table31_28_ops_[64];
1166
+ static const uint8_t table31_29_emit_[8];
1167
+ static const uint8_t table31_30_emit_[15];
1168
+ static const uint16_t table31_30_ops_[64];
1169
+ static const uint8_t table31_31_emit_[18];
1170
+ static const uint16_t table31_31_ops_[64];
1171
+ static const uint8_t* const table31_emit_[32];
1172
+ static const uint16_t* const table31_ops_[32];
1594
1173
  };
1595
1174
  template <typename F>
1596
1175
  class HuffDecoder : public HuffDecoderCommon {
@@ -1599,11 +1178,11 @@ class HuffDecoder : public HuffDecoderCommon {
1599
1178
  : sink_(sink), begin_(begin), end_(end) {}
1600
1179
  bool Run() {
1601
1180
  while (!done_) {
1602
- if (!RefillTo15()) {
1181
+ if (!RefillTo14()) {
1603
1182
  Done0();
1604
1183
  break;
1605
1184
  }
1606
- const auto index = (buffer_ >> (buffer_len_ - 15)) & 0x7fff;
1185
+ const auto index = (buffer_ >> (buffer_len_ - 14)) & 0x3fff;
1607
1186
  const auto op = GetOp1(index);
1608
1187
  const int consumed = op & 15;
1609
1188
  buffer_len_ -= consumed;
@@ -1612,20 +1191,18 @@ class HuffDecoder : public HuffDecoderCommon {
1612
1191
  case 0: {
1613
1192
  sink_(GetEmit1(index, emit_ofs + 0));
1614
1193
  sink_(GetEmit1(index, emit_ofs + 1));
1615
- sink_(GetEmit1(index, emit_ofs + 2));
1616
1194
  break;
1617
1195
  }
1618
1196
  case 1: {
1619
1197
  sink_(GetEmit1(index, emit_ofs + 0));
1620
- sink_(GetEmit1(index, emit_ofs + 1));
1621
1198
  break;
1622
1199
  }
1623
1200
  case 2: {
1624
- sink_(GetEmit1(index, emit_ofs + 0));
1201
+ DecodeStep0();
1625
1202
  break;
1626
1203
  }
1627
1204
  case 3: {
1628
- DecodeStep0();
1205
+ DecodeStep1();
1629
1206
  break;
1630
1207
  }
1631
1208
  }
@@ -1634,7 +1211,7 @@ class HuffDecoder : public HuffDecoderCommon {
1634
1211
  }
1635
1212
 
1636
1213
  private:
1637
- bool RefillTo15() {
1214
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION bool RefillTo14() {
1638
1215
  switch (buffer_len_) {
1639
1216
  case 0: {
1640
1217
  return Read2to8Bytes();
@@ -1643,10 +1220,10 @@ class HuffDecoder : public HuffDecoderCommon {
1643
1220
  case 2:
1644
1221
  case 3:
1645
1222
  case 4:
1646
- case 5:
1647
- case 6: {
1223
+ case 5: {
1648
1224
  return Read2to7Bytes();
1649
1225
  }
1226
+ case 6:
1650
1227
  case 7:
1651
1228
  case 8: {
1652
1229
  return Read1to7Bytes();
@@ -1655,14 +1232,13 @@ class HuffDecoder : public HuffDecoderCommon {
1655
1232
  case 10:
1656
1233
  case 11:
1657
1234
  case 12:
1658
- case 13:
1659
- case 14: {
1235
+ case 13: {
1660
1236
  return Read1to6Bytes();
1661
1237
  }
1662
1238
  }
1663
1239
  return true;
1664
1240
  }
1665
- bool Read2to8Bytes() {
1241
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION bool Read2to8Bytes() {
1666
1242
  switch (end_ - begin_) {
1667
1243
  case 0:
1668
1244
  case 1: {
@@ -1698,20 +1274,20 @@ class HuffDecoder : public HuffDecoderCommon {
1698
1274
  }
1699
1275
  }
1700
1276
  }
1701
- void Fill2() {
1277
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void Fill2() {
1702
1278
  buffer_ = (buffer_ << 16) | (static_cast<uint64_t>(begin_[0]) << 8) |
1703
1279
  (static_cast<uint64_t>(begin_[1]) << 0);
1704
1280
  begin_ += 2;
1705
1281
  buffer_len_ += 16;
1706
1282
  }
1707
- void Fill3() {
1283
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void Fill3() {
1708
1284
  buffer_ = (buffer_ << 24) | (static_cast<uint64_t>(begin_[0]) << 16) |
1709
1285
  (static_cast<uint64_t>(begin_[1]) << 8) |
1710
1286
  (static_cast<uint64_t>(begin_[2]) << 0);
1711
1287
  begin_ += 3;
1712
1288
  buffer_len_ += 24;
1713
1289
  }
1714
- void Fill4() {
1290
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void Fill4() {
1715
1291
  buffer_ = (buffer_ << 32) | (static_cast<uint64_t>(begin_[0]) << 24) |
1716
1292
  (static_cast<uint64_t>(begin_[1]) << 16) |
1717
1293
  (static_cast<uint64_t>(begin_[2]) << 8) |
@@ -1719,7 +1295,7 @@ class HuffDecoder : public HuffDecoderCommon {
1719
1295
  begin_ += 4;
1720
1296
  buffer_len_ += 32;
1721
1297
  }
1722
- void Fill5() {
1298
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void Fill5() {
1723
1299
  buffer_ = (buffer_ << 40) | (static_cast<uint64_t>(begin_[0]) << 32) |
1724
1300
  (static_cast<uint64_t>(begin_[1]) << 24) |
1725
1301
  (static_cast<uint64_t>(begin_[2]) << 16) |
@@ -1728,7 +1304,7 @@ class HuffDecoder : public HuffDecoderCommon {
1728
1304
  begin_ += 5;
1729
1305
  buffer_len_ += 40;
1730
1306
  }
1731
- void Fill6() {
1307
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void Fill6() {
1732
1308
  buffer_ = (buffer_ << 48) | (static_cast<uint64_t>(begin_[0]) << 40) |
1733
1309
  (static_cast<uint64_t>(begin_[1]) << 32) |
1734
1310
  (static_cast<uint64_t>(begin_[2]) << 24) |
@@ -1738,7 +1314,7 @@ class HuffDecoder : public HuffDecoderCommon {
1738
1314
  begin_ += 6;
1739
1315
  buffer_len_ += 48;
1740
1316
  }
1741
- void Fill7() {
1317
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void Fill7() {
1742
1318
  buffer_ = (buffer_ << 56) | (static_cast<uint64_t>(begin_[0]) << 48) |
1743
1319
  (static_cast<uint64_t>(begin_[1]) << 40) |
1744
1320
  (static_cast<uint64_t>(begin_[2]) << 32) |
@@ -1749,7 +1325,7 @@ class HuffDecoder : public HuffDecoderCommon {
1749
1325
  begin_ += 7;
1750
1326
  buffer_len_ += 56;
1751
1327
  }
1752
- void Fill8() {
1328
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void Fill8() {
1753
1329
  buffer_ = 0 | (static_cast<uint64_t>(begin_[0]) << 56) |
1754
1330
  (static_cast<uint64_t>(begin_[1]) << 48) |
1755
1331
  (static_cast<uint64_t>(begin_[2]) << 40) |
@@ -1761,7 +1337,7 @@ class HuffDecoder : public HuffDecoderCommon {
1761
1337
  begin_ += 8;
1762
1338
  buffer_len_ += 64;
1763
1339
  }
1764
- bool Read2to7Bytes() {
1340
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION bool Read2to7Bytes() {
1765
1341
  switch (end_ - begin_) {
1766
1342
  case 0:
1767
1343
  case 1: {
@@ -1793,7 +1369,7 @@ class HuffDecoder : public HuffDecoderCommon {
1793
1369
  }
1794
1370
  }
1795
1371
  }
1796
- bool Read1to7Bytes() {
1372
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION bool Read1to7Bytes() {
1797
1373
  switch (end_ - begin_) {
1798
1374
  case 0: {
1799
1375
  return false;
@@ -1828,12 +1404,12 @@ class HuffDecoder : public HuffDecoderCommon {
1828
1404
  }
1829
1405
  }
1830
1406
  }
1831
- void Fill1() {
1407
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void Fill1() {
1832
1408
  buffer_ = (buffer_ << 8) | (static_cast<uint64_t>(begin_[0]) << 0);
1833
1409
  begin_ += 1;
1834
1410
  buffer_len_ += 8;
1835
1411
  }
1836
- bool Read1to6Bytes() {
1412
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION bool Read1to6Bytes() {
1837
1413
  switch (end_ - begin_) {
1838
1414
  case 0: {
1839
1415
  return false;
@@ -1864,7 +1440,7 @@ class HuffDecoder : public HuffDecoderCommon {
1864
1440
  }
1865
1441
  }
1866
1442
  }
1867
- void Done0() {
1443
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void Done0() {
1868
1444
  done_ = true;
1869
1445
  switch (end_ - begin_) {
1870
1446
  case 1: {
@@ -2035,76 +1611,119 @@ class HuffDecoder : public HuffDecoderCommon {
2035
1611
  }
2036
1612
  return;
2037
1613
  }
2038
- case 14: {
2039
- const auto index = buffer_ & 16383;
2040
- const auto op = GetOp11(index);
2041
- switch (op & 3) {
2042
- case 0: {
2043
- ok_ = false;
2044
- break;
2045
- }
2046
- case 1: {
2047
- sink_(GetEmit11(index, (op >> 2) + 0));
2048
- sink_(GetEmit11(index, (op >> 2) + 1));
2049
- break;
2050
- }
2051
- case 2: {
2052
- sink_(GetEmit11(index, (op >> 2) + 0));
2053
- break;
2054
- }
2055
- }
2056
- return;
2057
- }
2058
1614
  case 0: {
2059
1615
  return;
2060
1616
  }
2061
1617
  }
2062
1618
  }
2063
- void DecodeStep0() {
2064
- if (!RefillTo7()) {
1619
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void DecodeStep0() {
1620
+ if (!RefillTo1()) {
2065
1621
  Done1();
2066
1622
  return;
2067
1623
  }
2068
- const auto index = (buffer_ >> (buffer_len_ - 7)) & 0x7f;
1624
+ const auto index = (buffer_ >> (buffer_len_ - 1)) & 0x1;
1625
+ const auto op = GetOp11(index);
1626
+ const int consumed = op & 1;
1627
+ buffer_len_ -= consumed;
1628
+ const auto emit_ofs = op >> 1;
1629
+ sink_(GetEmit11(index, emit_ofs + 0));
1630
+ }
1631
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION bool RefillTo1() {
1632
+ switch (buffer_len_) {
1633
+ case 0: {
1634
+ return Read1to8Bytes();
1635
+ }
1636
+ }
1637
+ return true;
1638
+ }
1639
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION bool Read1to8Bytes() {
1640
+ switch (end_ - begin_) {
1641
+ case 0: {
1642
+ return false;
1643
+ }
1644
+ case 1: {
1645
+ Fill1();
1646
+ return true;
1647
+ }
1648
+ case 2: {
1649
+ Fill2();
1650
+ return true;
1651
+ }
1652
+ case 3: {
1653
+ Fill3();
1654
+ return true;
1655
+ }
1656
+ case 4: {
1657
+ Fill4();
1658
+ return true;
1659
+ }
1660
+ case 5: {
1661
+ Fill5();
1662
+ return true;
1663
+ }
1664
+ case 6: {
1665
+ Fill6();
1666
+ return true;
1667
+ }
1668
+ case 7: {
1669
+ Fill7();
1670
+ return true;
1671
+ }
1672
+ default: {
1673
+ Fill8();
1674
+ return true;
1675
+ }
1676
+ }
1677
+ }
1678
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void Done1() {
1679
+ done_ = true;
1680
+ ok_ = false;
1681
+ }
1682
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void DecodeStep1() {
1683
+ if (!RefillTo5()) {
1684
+ Done2();
1685
+ return;
1686
+ }
1687
+ const auto index = (buffer_ >> (buffer_len_ - 5)) & 0x1f;
2069
1688
  const auto op = GetOp12(index);
2070
1689
  const int consumed = op & 7;
2071
1690
  buffer_len_ -= consumed;
2072
- const auto emit_ofs = op >> 8;
2073
- switch ((op >> 3) & 31) {
1691
+ const auto emit_ofs = op >> 7;
1692
+ switch ((op >> 3) & 15) {
2074
1693
  case 0: {
2075
1694
  sink_(GetEmit12(index, emit_ofs + 0));
2076
1695
  break;
2077
1696
  }
2078
1697
  case 1: {
2079
- DecodeStep1();
1698
+ DecodeStep2();
2080
1699
  break;
2081
1700
  }
2082
1701
  case 2: {
2083
- DecodeStep2();
1702
+ DecodeStep3();
2084
1703
  break;
2085
1704
  }
2086
1705
  case 3: {
2087
- DecodeStep3();
1706
+ DecodeStep4();
2088
1707
  break;
2089
1708
  }
2090
1709
  case 4: {
2091
- DecodeStep4();
1710
+ DecodeStep5();
2092
1711
  break;
2093
1712
  }
2094
1713
  case 5: {
2095
- DecodeStep5();
1714
+ DecodeStep6();
2096
1715
  break;
2097
1716
  }
2098
1717
  case 6: {
2099
- DecodeStep6();
1718
+ DecodeStep7();
2100
1719
  break;
2101
1720
  }
2102
1721
  case 7: {
2103
- DecodeStep7();
1722
+ DecodeStep8();
2104
1723
  break;
2105
1724
  }
2106
1725
  case 8: {
2107
- DecodeStep8();
1726
+ DecodeStep12();
2108
1727
  break;
2109
1728
  }
2110
1729
  case 9: {
@@ -2116,48 +1735,20 @@ class HuffDecoder : public HuffDecoderCommon {
2116
1735
  break;
2117
1736
  }
2118
1737
  case 11: {
2119
- DecodeStep11();
1738
+ DecodeStep13();
2120
1739
  break;
2121
1740
  }
2122
1741
  case 12: {
2123
- DecodeStep12();
1742
+ DecodeStep11();
2124
1743
  break;
2125
1744
  }
2126
1745
  case 13: {
2127
- DecodeStep13();
2128
- break;
2129
- }
2130
- case 14: {
2131
1746
  DecodeStep14();
2132
1747
  break;
2133
1748
  }
2134
- case 15: {
2135
- DecodeStep18();
2136
- break;
2137
- }
2138
- case 16: {
2139
- DecodeStep15();
2140
- break;
2141
- }
2142
- case 17: {
2143
- DecodeStep16();
2144
- break;
2145
- }
2146
- case 18: {
2147
- DecodeStep19();
2148
- break;
2149
- }
2150
- case 19: {
2151
- DecodeStep17();
2152
- break;
2153
- }
2154
- case 20: {
2155
- DecodeStep20();
2156
- break;
2157
- }
2158
1749
  }
2159
1750
  }
2160
- bool RefillTo7() {
1751
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION bool RefillTo5() {
2161
1752
  switch (buffer_len_) {
2162
1753
  case 0: {
2163
1754
  return Read1to8Bytes();
@@ -2165,102 +1756,66 @@ class HuffDecoder : public HuffDecoderCommon {
2165
1756
  case 1:
2166
1757
  case 2:
2167
1758
  case 3:
2168
- case 4:
2169
- case 5:
2170
- case 6: {
1759
+ case 4: {
2171
1760
  return Read1to7Bytes();
2172
1761
  }
2173
1762
  }
2174
1763
  return true;
2175
1764
  }
2176
- bool Read1to8Bytes() {
2177
- switch (end_ - begin_) {
2178
- case 0: {
2179
- return false;
2180
- }
2181
- case 1: {
2182
- Fill1();
2183
- return true;
2184
- }
2185
- case 2: {
2186
- Fill2();
2187
- return true;
2188
- }
2189
- case 3: {
2190
- Fill3();
2191
- return true;
2192
- }
2193
- case 4: {
2194
- Fill4();
2195
- return true;
2196
- }
2197
- case 5: {
2198
- Fill5();
2199
- return true;
2200
- }
2201
- case 6: {
2202
- Fill6();
2203
- return true;
2204
- }
2205
- case 7: {
2206
- Fill7();
2207
- return true;
2208
- }
2209
- default: {
2210
- Fill8();
2211
- return true;
2212
- }
2213
- }
2214
- }
2215
- void Done1() {
1765
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void Done2() {
2216
1766
  done_ = true;
2217
1767
  switch (buffer_len_) {
2218
- case 1:
2219
- case 2:
2220
- case 3: {
2221
- ok_ = (buffer_ & ((1 << buffer_len_) - 1)) == (1 << buffer_len_) - 1;
1768
+ case 1: {
1769
+ const auto index = buffer_ & 1;
1770
+ const auto op = GetOp13(index);
1771
+ switch (op & 1) {
1772
+ case 0: {
1773
+ sink_(GetEmit13(index, (op >> 1) + 0));
1774
+ break;
1775
+ }
1776
+ }
2222
1777
  return;
2223
1778
  }
2224
- case 4: {
2225
- const auto index = buffer_ & 15;
2226
- const auto op = GetOp13(index);
1779
+ case 2: {
1780
+ const auto index = buffer_ & 3;
1781
+ const auto op = GetOp14(index);
2227
1782
  switch (op & 3) {
2228
1783
  case 0: {
2229
- sink_(GetEmit13(index, (op >> 2) + 0));
1784
+ ok_ = false;
2230
1785
  break;
2231
1786
  }
2232
1787
  case 1: {
2233
- ok_ = false;
1788
+ sink_(GetEmit14(index, (op >> 2) + 0));
2234
1789
  break;
2235
1790
  }
2236
1791
  }
2237
1792
  return;
2238
1793
  }
2239
- case 5: {
2240
- const auto index = buffer_ & 31;
2241
- const auto op = GetOp14(index);
1794
+ case 3: {
1795
+ const auto index = buffer_ & 7;
1796
+ const auto op = GetOp15(index);
2242
1797
  switch (op & 3) {
2243
1798
  case 0: {
2244
1799
  ok_ = false;
2245
1800
  break;
2246
1801
  }
2247
1802
  case 1: {
2248
- sink_(GetEmit14(index, (op >> 2) + 0));
1803
+ sink_(GetEmit15(index, (op >> 2) + 0));
2249
1804
  break;
2250
1805
  }
2251
1806
  }
2252
1807
  return;
2253
1808
  }
2254
- case 6: {
2255
- const auto index = buffer_ & 63;
2256
- const auto op = GetOp15(index);
1809
+ case 4: {
1810
+ const auto index = buffer_ & 15;
1811
+ const auto op = GetOp16(index);
2257
1812
  switch (op & 3) {
2258
1813
  case 0: {
2259
1814
  ok_ = false;
2260
1815
  break;
2261
1816
  }
2262
1817
  case 1: {
2263
- sink_(GetEmit15(index, (op >> 2) + 0));
1818
+ sink_(GetEmit16(index, (op >> 2) + 0));
2264
1819
  break;
2265
1820
  }
2266
1821
  }
@@ -2271,63 +1826,39 @@ class HuffDecoder : public HuffDecoderCommon {
2271
1826
  }
2272
1827
  }
2273
1828
  }
2274
- void DecodeStep1() {
1829
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void DecodeStep2() {
2275
1830
  if (!RefillTo1()) {
2276
- Done2();
1831
+ Done3();
2277
1832
  return;
2278
1833
  }
2279
1834
  const auto index = (buffer_ >> (buffer_len_ - 1)) & 0x1;
2280
- const auto op = GetOp16(index);
1835
+ const auto op = GetOp17(index);
2281
1836
  const int consumed = op & 1;
2282
1837
  buffer_len_ -= consumed;
2283
1838
  const auto emit_ofs = op >> 1;
2284
- sink_(GetEmit16(index, emit_ofs + 0));
2285
- }
2286
- bool RefillTo1() {
2287
- switch (buffer_len_) {
2288
- case 0: {
2289
- return Read1to8Bytes();
2290
- }
2291
- }
2292
- return true;
1839
+ sink_(GetEmit17(index, emit_ofs + 0));
2293
1840
  }
2294
- void Done2() {
1841
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void Done3() {
2295
1842
  done_ = true;
2296
1843
  ok_ = false;
2297
1844
  }
2298
- void DecodeStep2() {
1845
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void DecodeStep3() {
2299
1846
  if (!RefillTo1()) {
2300
- Done3();
1847
+ Done4();
2301
1848
  return;
2302
1849
  }
2303
1850
  const auto index = (buffer_ >> (buffer_len_ - 1)) & 0x1;
2304
- const auto op = GetOp17(index);
1851
+ const auto op = GetOp18(index);
2305
1852
  const int consumed = op & 1;
2306
1853
  buffer_len_ -= consumed;
2307
1854
  const auto emit_ofs = op >> 1;
2308
- sink_(GetEmit17(index, emit_ofs + 0));
1855
+ sink_(GetEmit18(index, emit_ofs + 0));
2309
1856
  }
2310
- void Done3() {
1857
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void Done4() {
2311
1858
  done_ = true;
2312
1859
  ok_ = false;
2313
1860
  }
2314
- void DecodeStep3() {
2315
- if (!RefillTo1()) {
2316
- Done4();
2317
- return;
2318
- }
2319
- const auto index = (buffer_ >> (buffer_len_ - 1)) & 0x1;
2320
- const auto op = GetOp18(index);
2321
- const int consumed = op & 1;
2322
- buffer_len_ -= consumed;
2323
- const auto emit_ofs = op >> 1;
2324
- sink_(GetEmit18(index, emit_ofs + 0));
2325
- }
2326
- void Done4() {
2327
- done_ = true;
2328
- ok_ = false;
2329
- }
2330
- void DecodeStep4() {
1861
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void DecodeStep4() {
2331
1862
  if (!RefillTo1()) {
2332
1863
  Done5();
2333
1864
  return;
@@ -2339,11 +1870,11 @@ class HuffDecoder : public HuffDecoderCommon {
2339
1870
  const auto emit_ofs = op >> 1;
2340
1871
  sink_(GetEmit19(index, emit_ofs + 0));
2341
1872
  }
2342
- void Done5() {
1873
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void Done5() {
2343
1874
  done_ = true;
2344
1875
  ok_ = false;
2345
1876
  }
2346
- void DecodeStep5() {
1877
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void DecodeStep5() {
2347
1878
  if (!RefillTo1()) {
2348
1879
  Done6();
2349
1880
  return;
@@ -2355,236 +1886,171 @@ class HuffDecoder : public HuffDecoderCommon {
2355
1886
  const auto emit_ofs = op >> 1;
2356
1887
  sink_(GetEmit20(index, emit_ofs + 0));
2357
1888
  }
2358
- void Done6() {
1889
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void Done6() {
2359
1890
  done_ = true;
2360
1891
  ok_ = false;
2361
1892
  }
2362
- void DecodeStep6() {
2363
- if (!RefillTo1()) {
1893
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void DecodeStep6() {
1894
+ if (!RefillTo2()) {
2364
1895
  Done7();
2365
1896
  return;
2366
1897
  }
2367
- const auto index = (buffer_ >> (buffer_len_ - 1)) & 0x1;
1898
+ const auto index = (buffer_ >> (buffer_len_ - 2)) & 0x3;
2368
1899
  const auto op = GetOp21(index);
2369
- const int consumed = op & 1;
1900
+ const int consumed = op & 3;
2370
1901
  buffer_len_ -= consumed;
2371
- const auto emit_ofs = op >> 1;
1902
+ const auto emit_ofs = op >> 2;
2372
1903
  sink_(GetEmit21(index, emit_ofs + 0));
2373
1904
  }
2374
- void Done7() {
1905
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION bool RefillTo2() {
1906
+ switch (buffer_len_) {
1907
+ case 0: {
1908
+ return Read1to8Bytes();
1909
+ }
1910
+ case 1: {
1911
+ return Read1to7Bytes();
1912
+ }
1913
+ }
1914
+ return true;
1915
+ }
1916
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void Done7() {
2375
1917
  done_ = true;
2376
- ok_ = false;
1918
+ switch (buffer_len_) {
1919
+ case 1:
1920
+ case 0: {
1921
+ ok_ = false;
1922
+ return;
1923
+ }
1924
+ }
2377
1925
  }
2378
- void DecodeStep7() {
2379
- if (!RefillTo1()) {
1926
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void DecodeStep7() {
1927
+ if (!RefillTo2()) {
2380
1928
  Done8();
2381
1929
  return;
2382
1930
  }
2383
- const auto index = (buffer_ >> (buffer_len_ - 1)) & 0x1;
1931
+ const auto index = (buffer_ >> (buffer_len_ - 2)) & 0x3;
2384
1932
  const auto op = GetOp22(index);
2385
- const int consumed = op & 1;
1933
+ const int consumed = op & 3;
2386
1934
  buffer_len_ -= consumed;
2387
- const auto emit_ofs = op >> 1;
1935
+ const auto emit_ofs = op >> 2;
2388
1936
  sink_(GetEmit22(index, emit_ofs + 0));
2389
1937
  }
2390
- void Done8() {
1938
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void Done8() {
2391
1939
  done_ = true;
2392
- ok_ = false;
1940
+ switch (buffer_len_) {
1941
+ case 1:
1942
+ case 0: {
1943
+ ok_ = false;
1944
+ return;
1945
+ }
1946
+ }
2393
1947
  }
2394
- void DecodeStep8() {
2395
- if (!RefillTo1()) {
1948
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void DecodeStep8() {
1949
+ if (!RefillTo2()) {
2396
1950
  Done9();
2397
1951
  return;
2398
1952
  }
2399
- const auto index = (buffer_ >> (buffer_len_ - 1)) & 0x1;
1953
+ const auto index = (buffer_ >> (buffer_len_ - 2)) & 0x3;
2400
1954
  const auto op = GetOp23(index);
2401
- const int consumed = op & 1;
1955
+ const int consumed = op & 3;
2402
1956
  buffer_len_ -= consumed;
2403
- const auto emit_ofs = op >> 1;
1957
+ const auto emit_ofs = op >> 2;
2404
1958
  sink_(GetEmit23(index, emit_ofs + 0));
2405
1959
  }
2406
- void Done9() {
1960
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void Done9() {
2407
1961
  done_ = true;
2408
- ok_ = false;
1962
+ switch (buffer_len_) {
1963
+ case 1:
1964
+ case 0: {
1965
+ ok_ = false;
1966
+ return;
1967
+ }
1968
+ }
2409
1969
  }
2410
- void DecodeStep9() {
2411
- if (!RefillTo1()) {
1970
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void DecodeStep9() {
1971
+ if (!RefillTo3()) {
2412
1972
  Done10();
2413
1973
  return;
2414
1974
  }
2415
- const auto index = (buffer_ >> (buffer_len_ - 1)) & 0x1;
1975
+ const auto index = (buffer_ >> (buffer_len_ - 3)) & 0x7;
2416
1976
  const auto op = GetOp24(index);
2417
- const int consumed = op & 1;
2418
- buffer_len_ -= consumed;
2419
- const auto emit_ofs = op >> 1;
2420
- sink_(GetEmit24(index, emit_ofs + 0));
2421
- }
2422
- void Done10() {
2423
- done_ = true;
2424
- ok_ = false;
2425
- }
2426
- void DecodeStep10() {
2427
- if (!RefillTo1()) {
2428
- Done11();
2429
- return;
2430
- }
2431
- const auto index = (buffer_ >> (buffer_len_ - 1)) & 0x1;
2432
- const auto op = GetOp25(index);
2433
- const int consumed = op & 1;
2434
- buffer_len_ -= consumed;
2435
- const auto emit_ofs = op >> 1;
2436
- sink_(GetEmit25(index, emit_ofs + 0));
2437
- }
2438
- void Done11() {
2439
- done_ = true;
2440
- ok_ = false;
2441
- }
2442
- void DecodeStep11() {
2443
- if (!RefillTo1()) {
2444
- Done12();
2445
- return;
2446
- }
2447
- const auto index = (buffer_ >> (buffer_len_ - 1)) & 0x1;
2448
- const auto op = GetOp26(index);
2449
- const int consumed = op & 1;
2450
- buffer_len_ -= consumed;
2451
- const auto emit_ofs = op >> 1;
2452
- sink_(GetEmit26(index, emit_ofs + 0));
2453
- }
2454
- void Done12() {
2455
- done_ = true;
2456
- ok_ = false;
2457
- }
2458
- void DecodeStep12() {
2459
- if (!RefillTo1()) {
2460
- Done13();
2461
- return;
2462
- }
2463
- const auto index = (buffer_ >> (buffer_len_ - 1)) & 0x1;
2464
- const auto op = GetOp27(index);
2465
- const int consumed = op & 1;
2466
- buffer_len_ -= consumed;
2467
- const auto emit_ofs = op >> 1;
2468
- sink_(GetEmit27(index, emit_ofs + 0));
2469
- }
2470
- void Done13() {
2471
- done_ = true;
2472
- ok_ = false;
2473
- }
2474
- void DecodeStep13() {
2475
- if (!RefillTo1()) {
2476
- Done14();
2477
- return;
2478
- }
2479
- const auto index = (buffer_ >> (buffer_len_ - 1)) & 0x1;
2480
- const auto op = GetOp28(index);
2481
- const int consumed = op & 1;
2482
- buffer_len_ -= consumed;
2483
- const auto emit_ofs = op >> 1;
2484
- sink_(GetEmit28(index, emit_ofs + 0));
2485
- }
2486
- void Done14() {
2487
- done_ = true;
2488
- ok_ = false;
2489
- }
2490
- void DecodeStep14() {
2491
- if (!RefillTo1()) {
2492
- Done15();
2493
- return;
2494
- }
2495
- const auto index = (buffer_ >> (buffer_len_ - 1)) & 0x1;
2496
- const auto op = GetOp29(index);
2497
- const int consumed = op & 1;
2498
- buffer_len_ -= consumed;
2499
- const auto emit_ofs = op >> 1;
2500
- sink_(GetEmit29(index, emit_ofs + 0));
2501
- }
2502
- void Done15() {
2503
- done_ = true;
2504
- ok_ = false;
2505
- }
2506
- void DecodeStep15() {
2507
- if (!RefillTo2()) {
2508
- Done16();
2509
- return;
2510
- }
2511
- const auto index = (buffer_ >> (buffer_len_ - 2)) & 0x3;
2512
- const auto op = GetOp30(index);
2513
1977
  const int consumed = op & 3;
2514
1978
  buffer_len_ -= consumed;
2515
1979
  const auto emit_ofs = op >> 2;
2516
- sink_(GetEmit30(index, emit_ofs + 0));
1980
+ sink_(GetEmit24(index, emit_ofs + 0));
2517
1981
  }
2518
- bool RefillTo2() {
1982
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION bool RefillTo3() {
2519
1983
  switch (buffer_len_) {
2520
1984
  case 0: {
2521
1985
  return Read1to8Bytes();
2522
1986
  }
2523
- case 1: {
1987
+ case 1:
1988
+ case 2: {
2524
1989
  return Read1to7Bytes();
2525
1990
  }
2526
1991
  }
2527
1992
  return true;
2528
1993
  }
2529
- void Done16() {
1994
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void Done10() {
2530
1995
  done_ = true;
2531
1996
  switch (buffer_len_) {
2532
1997
  case 1:
1998
+ case 2:
2533
1999
  case 0: {
2534
2000
  ok_ = false;
2535
2001
  return;
2536
2002
  }
2537
2003
  }
2538
2004
  }
2539
- void DecodeStep16() {
2540
- if (!RefillTo2()) {
2541
- Done17();
2005
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void DecodeStep10() {
2006
+ if (!RefillTo3()) {
2007
+ Done11();
2542
2008
  return;
2543
2009
  }
2544
- const auto index = (buffer_ >> (buffer_len_ - 2)) & 0x3;
2545
- const auto op = GetOp31(index);
2010
+ const auto index = (buffer_ >> (buffer_len_ - 3)) & 0x7;
2011
+ const auto op = GetOp25(index);
2546
2012
  const int consumed = op & 3;
2547
2013
  buffer_len_ -= consumed;
2548
2014
  const auto emit_ofs = op >> 2;
2549
- sink_(GetEmit31(index, emit_ofs + 0));
2015
+ sink_(GetEmit25(index, emit_ofs + 0));
2550
2016
  }
2551
- void Done17() {
2017
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void Done11() {
2552
2018
  done_ = true;
2553
2019
  switch (buffer_len_) {
2554
2020
  case 1:
2021
+ case 2:
2555
2022
  case 0: {
2556
2023
  ok_ = false;
2557
2024
  return;
2558
2025
  }
2559
2026
  }
2560
2027
  }
2561
- void DecodeStep17() {
2562
- if (!RefillTo5()) {
2563
- Done18();
2028
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void DecodeStep11() {
2029
+ if (!RefillTo4()) {
2030
+ Done12();
2564
2031
  return;
2565
2032
  }
2566
- const auto index = (buffer_ >> (buffer_len_ - 5)) & 0x1f;
2567
- const auto op = GetOp32(index);
2033
+ const auto index = (buffer_ >> (buffer_len_ - 4)) & 0xf;
2034
+ const auto op = GetOp26(index);
2568
2035
  const int consumed = op & 7;
2569
2036
  buffer_len_ -= consumed;
2570
2037
  const auto emit_ofs = op >> 3;
2571
- sink_(GetEmit32(index, emit_ofs + 0));
2038
+ sink_(GetEmit26(index, emit_ofs + 0));
2572
2039
  }
2573
- bool RefillTo5() {
2040
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION bool RefillTo4() {
2574
2041
  switch (buffer_len_) {
2575
2042
  case 0: {
2576
2043
  return Read1to8Bytes();
2577
2044
  }
2578
2045
  case 1:
2579
2046
  case 2:
2580
- case 3:
2581
- case 4: {
2047
+ case 3: {
2582
2048
  return Read1to7Bytes();
2583
2049
  }
2584
2050
  }
2585
2051
  return true;
2586
2052
  }
2587
- void Done18() {
2053
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void Done12() {
2588
2054
  done_ = true;
2589
2055
  switch (buffer_len_) {
2590
2056
  case 1:
@@ -2594,44 +2060,34 @@ class HuffDecoder : public HuffDecoderCommon {
2594
2060
  ok_ = false;
2595
2061
  return;
2596
2062
  }
2597
- case 4: {
2598
- const auto index = buffer_ & 15;
2599
- const auto op = GetOp33(index);
2600
- switch (op & 1) {
2601
- case 0: {
2602
- sink_(GetEmit33(index, (op >> 1) + 0));
2603
- break;
2604
- }
2605
- case 1: {
2606
- ok_ = false;
2607
- break;
2608
- }
2609
- }
2610
- return;
2611
- }
2612
2063
  }
2613
2064
  }
2614
- void DecodeStep18() {
2615
- if (!RefillTo2()) {
2616
- Done19();
2065
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void DecodeStep12() {
2066
+ if (!RefillTo3()) {
2067
+ Done13();
2617
2068
  return;
2618
2069
  }
2619
- const auto index = (buffer_ >> (buffer_len_ - 2)) & 0x3;
2620
- const auto op = GetOp34(index);
2070
+ const auto index = (buffer_ >> (buffer_len_ - 3)) & 0x7;
2071
+ const auto op = GetOp27(index);
2621
2072
  const int consumed = op & 3;
2622
2073
  buffer_len_ -= consumed;
2623
2074
  const auto emit_ofs = op >> 2;
2624
- sink_(GetEmit34(index, emit_ofs + 0));
2075
+ sink_(GetEmit27(index, emit_ofs + 0));
2625
2076
  }
2626
- void Done19() {
2077
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void Done13() {
2627
2078
  done_ = true;
2628
2079
  switch (buffer_len_) {
2629
- case 1: {
2630
- const auto index = buffer_ & 1;
2631
- const auto op = GetOp35(index);
2080
+ case 1:
2081
+ case 0: {
2082
+ ok_ = false;
2083
+ return;
2084
+ }
2085
+ case 2: {
2086
+ const auto index = buffer_ & 3;
2087
+ const auto op = GetOp28(index);
2632
2088
  switch (op & 1) {
2633
2089
  case 0: {
2634
- sink_(GetEmit35(index, (op >> 1) + 0));
2090
+ sink_(GetEmit28(index, (op >> 1) + 0));
2635
2091
  break;
2636
2092
  }
2637
2093
  case 1: {
@@ -2641,50 +2097,35 @@ class HuffDecoder : public HuffDecoderCommon {
2641
2097
  }
2642
2098
  return;
2643
2099
  }
2644
- case 0: {
2645
- ok_ = false;
2646
- return;
2647
- }
2648
2100
  }
2649
2101
  }
2650
- void DecodeStep19() {
2651
- if (!RefillTo3()) {
2652
- Done20();
2102
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void DecodeStep13() {
2103
+ if (!RefillTo4()) {
2104
+ Done14();
2653
2105
  return;
2654
2106
  }
2655
- const auto index = (buffer_ >> (buffer_len_ - 3)) & 0x7;
2656
- const auto op = GetOp36(index);
2657
- const int consumed = op & 3;
2107
+ const auto index = (buffer_ >> (buffer_len_ - 4)) & 0xf;
2108
+ const auto op = GetOp29(index);
2109
+ const int consumed = op & 7;
2658
2110
  buffer_len_ -= consumed;
2659
- const auto emit_ofs = op >> 2;
2660
- sink_(GetEmit36(index, emit_ofs + 0));
2661
- }
2662
- bool RefillTo3() {
2663
- switch (buffer_len_) {
2664
- case 0: {
2665
- return Read1to8Bytes();
2666
- }
2667
- case 1:
2668
- case 2: {
2669
- return Read1to7Bytes();
2670
- }
2671
- }
2672
- return true;
2111
+ const auto emit_ofs = op >> 3;
2112
+ sink_(GetEmit29(index, emit_ofs + 0));
2673
2113
  }
2674
- void Done20() {
2114
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void Done14() {
2675
2115
  done_ = true;
2676
2116
  switch (buffer_len_) {
2677
2117
  case 1:
2118
+ case 2:
2678
2119
  case 0: {
2679
2120
  ok_ = false;
2680
2121
  return;
2681
2122
  }
2682
- case 2: {
2683
- const auto index = buffer_ & 3;
2684
- const auto op = GetOp37(index);
2123
+ case 3: {
2124
+ const auto index = buffer_ & 7;
2125
+ const auto op = GetOp30(index);
2685
2126
  switch (op & 1) {
2686
2127
  case 0: {
2687
- sink_(GetEmit37(index, (op >> 1) + 0));
2128
+ sink_(GetEmit30(index, (op >> 1) + 0));
2688
2129
  break;
2689
2130
  }
2690
2131
  case 1: {
@@ -2696,19 +2137,19 @@ class HuffDecoder : public HuffDecoderCommon {
2696
2137
  }
2697
2138
  }
2698
2139
  }
2699
- void DecodeStep20() {
2700
- if (!RefillTo8()) {
2701
- Done21();
2140
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void DecodeStep14() {
2141
+ if (!RefillTo11()) {
2142
+ Done15();
2702
2143
  return;
2703
2144
  }
2704
- const auto index = (buffer_ >> (buffer_len_ - 8)) & 0xff;
2705
- const auto op = GetOp38(index);
2145
+ const auto index = (buffer_ >> (buffer_len_ - 11)) & 0x7ff;
2146
+ const auto op = GetOp31(index);
2706
2147
  const int consumed = op & 15;
2707
2148
  buffer_len_ -= consumed;
2708
2149
  const auto emit_ofs = op >> 5;
2709
2150
  switch ((op >> 4) & 1) {
2710
2151
  case 0: {
2711
- sink_(GetEmit38(index, emit_ofs + 0));
2152
+ sink_(GetEmit31(index, emit_ofs + 0));
2712
2153
  break;
2713
2154
  }
2714
2155
  case 1: {
@@ -2718,44 +2159,70 @@ class HuffDecoder : public HuffDecoderCommon {
2718
2159
  }
2719
2160
  }
2720
2161
  }
2721
- bool RefillTo8() {
2162
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION bool RefillTo11() {
2722
2163
  switch (buffer_len_) {
2723
2164
  case 0: {
2724
- return Read1to8Bytes();
2165
+ return Read2to8Bytes();
2725
2166
  }
2726
2167
  case 1:
2727
- case 2:
2168
+ case 2: {
2169
+ return Read2to7Bytes();
2170
+ }
2728
2171
  case 3:
2729
2172
  case 4:
2730
2173
  case 5:
2731
2174
  case 6:
2732
- case 7: {
2175
+ case 7:
2176
+ case 8: {
2733
2177
  return Read1to7Bytes();
2734
2178
  }
2179
+ case 9:
2180
+ case 10: {
2181
+ return Read1to6Bytes();
2182
+ }
2735
2183
  }
2736
2184
  return true;
2737
2185
  }
2738
- void Done21() {
2186
+ GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION void Done15() {
2739
2187
  done_ = true;
2740
- switch (end_ - begin_) {}
2188
+ switch (end_ - begin_) {
2189
+ case 1: {
2190
+ Fill1();
2191
+ break;
2192
+ }
2193
+ }
2741
2194
  switch (buffer_len_) {
2742
2195
  case 1:
2743
2196
  case 2:
2744
- case 3:
2745
- case 4: {
2197
+ case 3: {
2746
2198
  ok_ = (buffer_ & ((1 << buffer_len_) - 1)) == (1 << buffer_len_) - 1;
2747
2199
  return;
2748
2200
  }
2201
+ case 4: {
2202
+ const auto index = buffer_ & 15;
2203
+ const auto op = GetOp32(index);
2204
+ switch (op & 3) {
2205
+ case 0: {
2206
+ sink_(GetEmit32(index, (op >> 2) + 0));
2207
+ break;
2208
+ }
2209
+ case 1: {
2210
+ ok_ = false;
2211
+ break;
2212
+ }
2213
+ }
2214
+ return;
2215
+ }
2749
2216
  case 5: {
2750
2217
  const auto index = buffer_ & 31;
2751
- const auto op = GetOp39(index);
2218
+ const auto op = GetOp33(index);
2752
2219
  switch (op & 3) {
2753
2220
  case 0: {
2754
- sink_(GetEmit39(index, (op >> 2) + 0));
2221
+ ok_ = false;
2755
2222
  break;
2756
2223
  }
2757
2224
  case 1: {
2758
- ok_ = false;
2225
+ sink_(GetEmit33(index, (op >> 2) + 0));
2759
2226
  break;
2760
2227
  }
2761
2228
  }
@@ -2763,14 +2230,14 @@ class HuffDecoder : public HuffDecoderCommon {
2763
2230
  }
2764
2231
  case 6: {
2765
2232
  const auto index = buffer_ & 63;
2766
- const auto op = GetOp40(index);
2233
+ const auto op = GetOp34(index);
2767
2234
  switch (op & 3) {
2768
2235
  case 0: {
2769
2236
  ok_ = false;
2770
2237
  break;
2771
2238
  }
2772
2239
  case 1: {
2773
- sink_(GetEmit40(index, (op >> 2) + 0));
2240
+ sink_(GetEmit34(index, (op >> 2) + 0));
2774
2241
  break;
2775
2242
  }
2776
2243
  }
@@ -2778,14 +2245,69 @@ class HuffDecoder : public HuffDecoderCommon {
2778
2245
  }
2779
2246
  case 7: {
2780
2247
  const auto index = buffer_ & 127;
2781
- const auto op = GetOp41(index);
2248
+ const auto op = GetOp35(index);
2782
2249
  switch (op & 3) {
2783
2250
  case 0: {
2784
2251
  ok_ = false;
2785
2252
  break;
2786
2253
  }
2787
2254
  case 1: {
2788
- sink_(GetEmit41(index, (op >> 2) + 0));
2255
+ sink_(GetEmit35(index, (op >> 2) + 0));
2256
+ break;
2257
+ }
2258
+ }
2259
+ return;
2260
+ }
2261
+ case 8: {
2262
+ const auto index = buffer_ & 255;
2263
+ const auto op = GetOp36(index);
2264
+ switch (op & 3) {
2265
+ case 0: {
2266
+ ok_ = false;
2267
+ break;
2268
+ }
2269
+ case 1: {
2270
+ sink_(GetEmit36(index, (op >> 2) + 0));
2271
+ break;
2272
+ }
2273
+ }
2274
+ return;
2275
+ }
2276
+ case 9: {
2277
+ const auto index = buffer_ & 511;
2278
+ const auto op = GetOp37(index);
2279
+ switch (op & 3) {
2280
+ case 0: {
2281
+ sink_(GetEmit37(index, (op >> 2) + 0));
2282
+ sink_(GetEmit37(index, (op >> 2) + 1));
2283
+ break;
2284
+ }
2285
+ case 1: {
2286
+ ok_ = false;
2287
+ break;
2288
+ }
2289
+ case 2: {
2290
+ sink_(GetEmit37(index, (op >> 2) + 0));
2291
+ break;
2292
+ }
2293
+ }
2294
+ return;
2295
+ }
2296
+ case 10: {
2297
+ const auto index = buffer_ & 1023;
2298
+ const auto op = GetOp38(index);
2299
+ switch (op & 3) {
2300
+ case 0: {
2301
+ ok_ = false;
2302
+ break;
2303
+ }
2304
+ case 1: {
2305
+ sink_(GetEmit38(index, (op >> 2) + 0));
2306
+ sink_(GetEmit38(index, (op >> 2) + 1));
2307
+ break;
2308
+ }
2309
+ case 2: {
2310
+ sink_(GetEmit38(index, (op >> 2) + 0));
2789
2311
  break;
2790
2312
  }
2791
2313
  }