QuicheError enum

Пакет: com.hypixel.hytale.lib.quiche

Файл: com/hypixel/hytale/lib/quiche/QuicheNative.java

Поля (5)

МодификаторыТипИмя
private static final QuicheNative.QuicheError[] BY_CODE
BY_CODE
private final int code
QuicheNative.QuicheError[] var0
int var1

Методы (4)

МодификаторыВозвратСигнатура
abstract OPTIMISTIC_ACK_DETECTED OPTIMISTIC_ACK_DETECTED(-22)
public int codepublic int code()
for for(QuicheNative.QuicheError var4 : var0)
public static QuicheNative.QuicheError fromCodepublic static QuicheNative.QuicheError fromCode(int var0)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.lib.quiche;

class="kw">import com.hypixel.hytale.sneakythrow.SneakyThrow;
class="kw">import java.io.IOException;
class="kw">import java.io.InputStream;
class="kw">import java.lang.foreign.AddressLayout;
class="kw">import java.lang.foreign.Arena;
class="kw">import java.lang.foreign.FunctionDescriptor;
class="kw">import java.lang.foreign.Linker;
class="kw">import java.lang.foreign.MemoryLayout;
class="kw">import java.lang.foreign.MemorySegment;
class="kw">import java.lang.foreign.StructLayout;
class="kw">import java.lang.foreign.SymbolLookup;
class="kw">import java.lang.foreign.ValueLayout;
class="kw">import java.lang.foreign.MemoryLayout.PathElement;
class="kw">import java.lang.foreign.ValueLayout.OfBoolean;
class="kw">import java.lang.foreign.ValueLayout.OfByte;
class="kw">import java.lang.foreign.ValueLayout.OfInt;
class="kw">import java.lang.foreign.ValueLayout.OfLong;
class="kw">import java.lang.foreign.ValueLayout.OfShort;
class="kw">import java.lang.invoke.MethodHandle;
class="kw">import java.lang.invoke.VarHandle;
class="kw">import java.nio.file.Files;
class="kw">import java.nio.file.Path;
class="kw">import java.nio.file.StandardCopyOption;
class="kw">import java.util.Locale;

class="kw">public class QuicheNative {
   class="kw">public class="kw">static class="kw">final int QUICHE_MAX_CONN_ID_LEN = 20;
   class="kw">public class="kw">static class="kw">final int QUICHE_SHUTDOWN_READ = 0;
   class="kw">public class="kw">static class="kw">final int QUICHE_SHUTDOWN_WRITE = 1;
   class="kw">private class="kw">static class="kw">final Linker LINKER = Linker.nativeLinker();
   class="kw">private class="kw">static class="kw">final Arena GLOBAL_ARENA = Arena.global();
   class="kw">private class="kw">static class="kw">final SymbolLookup LOOKUP;
   class="kw">public class="kw">static class="kw">final QuicheNative.Platform PLATFORM;
   class="kw">public class="kw">static class="kw">final AddressLayout C_POINTER;
   class="kw">public class="kw">static class="kw">final OfInt C_INT;
   class="kw">public class="kw">static class="kw">final OfLong C_LONG;
   class="kw">public class="kw">static class="kw">final OfByte C_BYTE;
   class="kw">public class="kw">static class="kw">final OfBoolean C_BOOL;
   class="kw">public class="kw">static class="kw">final OfShort C_SHORT;
   class="kw">public class="kw">static class="kw">final ValueLayout C_SIZE_T;
   class="kw">public class="kw">static class="kw">final StructLayout SOCKADDR_STORAGE_LAYOUT;
   class="kw">public class="kw">static class="kw">final StructLayout SOCKADDR_LAYOUT;
   class="kw">public class="kw">static class="kw">final StructLayout TIMESPEC_LAYOUT;
   class="kw">public class="kw">static class="kw">final StructLayout RECV_INFO_LAYOUT;
   class="kw">public class="kw">static class="kw">final StructLayout SEND_INFO_LAYOUT;
   class="kw">public class="kw">static class="kw">final VarHandle SOCKADDR_FAMILY;
   class="kw">public class="kw">static class="kw">final VarHandle SOCKADDR_STORAGE_FAMILY;
   class="kw">public class="kw">static class="kw">final VarHandle SOCKADDR_STORAGE_LEN;
   class="kw">public class="kw">static class="kw">final long SOCKADDR_STORAGE_DATA_OFFSET;
   class="kw">private class="kw">static class="kw">final VarHandle TIMESPEC_SEC;
   class="kw">private class="kw">static class="kw">final VarHandle TIMESPEC_NSEC;
   class="kw">private class="kw">static class="kw">final VarHandle RECV_INFO_FROM;
   class="kw">private class="kw">static class="kw">final VarHandle RECV_INFO_FROM_LEN;
   class="kw">private class="kw">static class="kw">final VarHandle RECV_INFO_TO;
   class="kw">private class="kw">static class="kw">final VarHandle RECV_INFO_TO_LEN;
   class="kw">private class="kw">static class="kw">final long SEND_INFO_FROM_OFFSET;
   class="kw">private class="kw">static class="kw">final VarHandle SEND_INFO_FROM_LEN;
   class="kw">private class="kw">static class="kw">final long SEND_INFO_TO_OFFSET;
   class="kw">private class="kw">static class="kw">final VarHandle SEND_INFO_TO_LEN;
   class="kw">private class="kw">static class="kw">final long SEND_INFO_AT_OFFSET;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_VERSION;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_ENABLE_DEBUG_LOGGING;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_PUT_VARINT;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_GET_VARINT;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_NEW;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_LOAD_CERT;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_LOAD_CERT_CHAIN_FROM_PEM_FILE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_LOAD_PRIV_KEY;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_LOAD_PRIV_KEY_FROM_PEM_FILE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_LOAD_VERIFY_LOCATIONS_FROM_FILE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_LOAD_VERIFY_LOCATIONS_FROM_DIRECTORY;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_VERIFY_PEER;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_VERIFY_PEER_OPTIONAL;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_GREASE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_DISCOVER_PMTU;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_LOG_KEYS;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_ENABLE_EARLY_DATA;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_SET_APPLICATION_PROTOS;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_SET_MAX_AMPLIFICATION_FACTOR;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_SET_MAX_IDLE_TIMEOUT;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_SET_MAX_RECV_UDP_PAYLOAD_SIZE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_SET_MAX_SEND_UDP_PAYLOAD_SIZE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_SET_INITIAL_MAX_DATA;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_SET_INITIAL_MAX_STREAM_DATA_BIDI_LOCAL;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_SET_INITIAL_MAX_STREAM_DATA_BIDI_REMOTE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_SET_INITIAL_MAX_STREAM_DATA_UNI;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_SET_INITIAL_MAX_STREAMS_BIDI;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_SET_INITIAL_MAX_STREAMS_UNI;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_SET_ACK_DELAY_EXPONENT;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_SET_MAX_ACK_DELAY;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_SET_DISABLE_ACTIVE_MIGRATION;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_SET_CC_ALGORITHM_NAME;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_SET_INITIAL_CONGESTION_WINDOW_PACKETS;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_SET_CC_ALGORITHM;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_ENABLE_HYSTART;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_ENABLE_PACING;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_SET_MAX_PACING_RATE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_ENABLE_DGRAM;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_SET_MAX_CONNECTION_WINDOW;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_SET_MAX_STREAM_WINDOW;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_SET_ACTIVE_CONNECTION_ID_LIMIT;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_SET_STATELESS_RESET_TOKEN;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_SET_DISABLE_DCID_REUSE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_SET_TICKET_KEY;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONFIG_FREE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_HEADER_INFO;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_ACCEPT;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONNECT;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_NEGOTIATE_VERSION;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_RETRY;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_VERSION_IS_SUPPORTED;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_NEW_WITH_TLS;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_SET_KEYLOG_PATH;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_SET_QLOG_PATH;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_SET_SESSION;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_SET_MAX_IDLE_TIMEOUT;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_RECV;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_SEND;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_SEND_QUANTUM;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_SEND_ON_PATH;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_SEND_QUANTUM_ON_PATH;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_TIMEOUT_AS_NANOS;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_TIMEOUT_AS_MILLIS;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_ON_TIMEOUT;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_CLOSE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_FREE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_STREAM_RECV;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_STREAM_SEND;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_STREAM_PRIORITY;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_STREAM_SHUTDOWN;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_STREAM_CAPACITY;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_STREAM_READABLE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_STREAM_READABLE_NEXT;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_STREAM_WRITABLE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_STREAM_WRITABLE_NEXT;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_STREAM_FINISHED;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_READABLE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_WRITABLE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_STREAM_ITER_NEXT;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_STREAM_ITER_FREE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_MAX_SEND_UDP_PAYLOAD_SIZE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_IS_ESTABLISHED;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_IS_RESUMED;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_IS_IN_EARLY_DATA;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_IS_READABLE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_IS_DRAINING;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_IS_CLOSED;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_IS_TIMED_OUT;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_IS_SERVER;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_PEER_STREAMS_LEFT_BIDI;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_PEER_STREAMS_LEFT_UNI;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_TRACE_ID;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_SOURCE_ID;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_DESTINATION_ID;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_APPLICATION_PROTO;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_PEER_CERT;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_SESSION;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_SERVER_NAME;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_PEER_ERROR;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_LOCAL_ERROR;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_STATS;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_PEER_TRANSPORT_PARAMS;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_PATH_STATS;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_SOURCE_IDS;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONNECTION_ID_ITER_NEXT;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONNECTION_ID_ITER_FREE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_RETIRED_SCIDS;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_AVAILABLE_DCIDS;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_SCIDS_LEFT;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_ACTIVE_SCIDS;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_NEW_SCID;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_RETIRE_DCID;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_PROBE_PATH;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_MIGRATE_SOURCE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_MIGRATE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_PATH_EVENT_NEXT;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_PATH_EVENT_TYPE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_PATH_EVENT_NEW;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_PATH_EVENT_VALIDATED;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_PATH_EVENT_FAILED_VALIDATION;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_PATH_EVENT_CLOSED;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_PATH_EVENT_REUSED_SOURCE_CONNECTION_ID;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_PATH_EVENT_PEER_MIGRATED;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_PATH_EVENT_FREE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_PATHS_ITER;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_SOCKET_ADDR_ITER_NEXT;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_SOCKET_ADDR_ITER_FREE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_IS_PATH_VALIDATED;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_DGRAM_MAX_WRITABLE_LEN;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_DGRAM_RECV_FRONT_LEN;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_DGRAM_RECV_QUEUE_LEN;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_DGRAM_RECV_QUEUE_BYTE_SIZE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_DGRAM_SEND_QUEUE_LEN;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_DGRAM_SEND_QUEUE_BYTE_SIZE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_DGRAM_RECV;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_DGRAM_SEND;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_DGRAM_PURGE_OUTGOING;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_IS_DGRAM_SEND_QUEUE_FULL;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_IS_DGRAM_RECV_QUEUE_FULL;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_SEND_ACK_ELICITING;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_CONN_SEND_ACK_ELICITING_ON_PATH;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_CONFIG_NEW;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_CONFIG_SET_MAX_FIELD_SECTION_SIZE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_CONFIG_SET_QPACK_MAX_TABLE_CAPACITY;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_CONFIG_SET_QPACK_BLOCKED_STREAMS;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_CONFIG_ENABLE_EXTENDED_CONNECT;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_CONFIG_FREE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_CONN_NEW_WITH_TRANSPORT;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_CONN_POLL;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_EVENT_TYPE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_EVENT_FOR_EACH_HEADER;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_FOR_EACH_SETTING;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_EVENT_HEADERS_HAS_MORE_FRAMES;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_EXTENDED_CONNECT_ENABLED_BY_PEER;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_EVENT_FREE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_SEND_REQUEST;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_SEND_RESPONSE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_SEND_RESPONSE_WITH_PRIORITY;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_SEND_ADDITIONAL_HEADERS;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_SEND_BODY;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_RECV_BODY;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_SEND_GOAWAY;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_PARSE_EXTENSIBLE_PRIORITY;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_SEND_PRIORITY_UPDATE_FOR_REQUEST;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_TAKE_LAST_PRIORITY_UPDATE;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_DGRAM_ENABLED_BY_PEER;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_CONN_STATS;
   class="kw">public class="kw">static class="kw">final MethodHandle QUICHE_H3_CONN_FREE;

   class="kw">public QuicheNative() {
   }

   class="kw">public class="kw">static void setSizeT(MemorySegment var0, long var1, long var3) {
      class="kw">switch (C_SIZE_T) {
         case OfLong var7:
            var0.set(var7, var1, var3);
            break;
         case OfInt var8:
            var0.set(var8, var1, (int)var3);
            break;
         class="kw">default:
            throw new UnsupportedOperationException("Unsupported size_t layout: " + C_SIZE_T);
      }
   }

   class="kw">public class="kw">static long getSizeT(MemorySegment var0, long var1) {
      class="kw">return class="kw">switch (C_SIZE_T) {
         case OfLong var5 -> var0.get(var5, var1);
         case OfInt var6 -> Integer.toUnsignedLong(var0.get(var6, var1));
         class="kw">default -> throw new UnsupportedOperationException("Unsupported size_t layout: " + C_SIZE_T);
      };
   }

   class="kw">public class="kw">static int getSockaddrFamily(MemorySegment var0) {
      class="kw">return class="kw">switch (PLATFORM) {
         case LINUX, WINDOWS -> Short.toUnsignedInt((short)SOCKADDR_FAMILY.get((MemorySegment)var0, (long)0L));
         case MACOS -> Byte.toUnsignedInt((byte)SOCKADDR_FAMILY.get((MemorySegment)var0, (long)0L));
      };
   }

   class="kw">public class="kw">static void setSockaddrFamily(MemorySegment var0, int var1) {
      class="kw">switch (PLATFORM) {
         case LINUX:
         case WINDOWS:
            SOCKADDR_FAMILY.set((MemorySegment)var0, (long)0L, (short)((short)var1));
            break;
         case MACOS:
            SOCKADDR_FAMILY.set((MemorySegment)var0, (long)0L, (byte)((byte)var1));
      }
   }

   class="kw">public class="kw">static byte getSockaddrLen(MemorySegment var0) {
      class="kw">return SOCKADDR_STORAGE_LEN == null ? 0 : (byte)SOCKADDR_STORAGE_LEN.get((MemorySegment)var0, (long)0L);
   }

   class="kw">public class="kw">static void setSockaddrLen(MemorySegment var0, byte var1) {
      if (SOCKADDR_STORAGE_LEN != null) {
         SOCKADDR_STORAGE_LEN.set((MemorySegment)var0, (long)0L, (byte)var1);
      }
   }

   class="kw">public class="kw">static MemorySegment getSockaddrData(MemorySegment var0) {
      class="kw">return var0.asSlice(SOCKADDR_STORAGE_DATA_OFFSET, SOCKADDR_LAYOUT.byteSize() - SOCKADDR_STORAGE_DATA_OFFSET);
   }

   class="kw">public class="kw">static int getSockaddrStorageFamily(MemorySegment var0) {
      class="kw">return class="kw">switch (PLATFORM) {
         case LINUX, WINDOWS -> Short.toUnsignedInt((short)SOCKADDR_STORAGE_FAMILY.get((MemorySegment)var0, (long)0L));
         case MACOS -> Byte.toUnsignedInt((byte)SOCKADDR_STORAGE_FAMILY.get((MemorySegment)var0, (long)0L));
      };
   }

   class="kw">public class="kw">static void setSockaddrStorageFamily(MemorySegment var0, int var1) {
      class="kw">switch (PLATFORM) {
         case LINUX:
         case WINDOWS:
            SOCKADDR_STORAGE_FAMILY.set((MemorySegment)var0, (long)0L, (short)((short)var1));
            break;
         case MACOS:
            SOCKADDR_STORAGE_FAMILY.set((MemorySegment)var0, (long)0L, (byte)((byte)var1));
      }
   }

   class="kw">public class="kw">static long getTimespecSec(MemorySegment var0) {
      class="kw">return (long)TIMESPEC_SEC.get((MemorySegment)var0, (long)0L);
   }

   class="kw">public class="kw">static void setTimespecSec(MemorySegment var0, long var1) {
      TIMESPEC_SEC.set((MemorySegment)var0, (long)0L, (long)var1);
   }

   class="kw">public class="kw">static long getTimespecNsec(MemorySegment var0) {
      class="kw">return class="kw">switch (PLATFORM) {
         case LINUX, MACOS -> (long)TIMESPEC_NSEC.get((MemorySegment)var0, (long)0L);
         case WINDOWS -> Integer.toUnsignedLong((int)TIMESPEC_NSEC.get((MemorySegment)var0, (long)0L));
      };
   }

   class="kw">public class="kw">static void setTimespecNsec(MemorySegment var0, long var1) {
      class="kw">switch (PLATFORM) {
         case LINUX:
         case MACOS:
            TIMESPEC_NSEC.set((MemorySegment)var0, (long)0L, (long)var1);
            break;
         case WINDOWS:
            TIMESPEC_NSEC.set((MemorySegment)var0, (long)0L, (int)((int)var1));
      }
   }

   class="kw">public class="kw">static MemorySegment getRecvInfoFrom(MemorySegment var0) {
      class="kw">return (MemorySegment)RECV_INFO_FROM.get((MemorySegment)var0, (long)0L);
   }

   class="kw">public class="kw">static void setRecvInfoFrom(MemorySegment var0, MemorySegment var1) {
      RECV_INFO_FROM.set((MemorySegment)var0, (long)0L, (MemorySegment)var1);
   }

   class="kw">public class="kw">static int getRecvInfoFromLen(MemorySegment var0) {
      class="kw">return (int)RECV_INFO_FROM_LEN.get((MemorySegment)var0, (long)0L);
   }

   class="kw">public class="kw">static void setRecvInfoFromLen(MemorySegment var0, int var1) {
      RECV_INFO_FROM_LEN.set((MemorySegment)var0, (long)0L, (int)var1);
   }

   class="kw">public class="kw">static MemorySegment getRecvInfoTo(MemorySegment var0) {
      class="kw">return (MemorySegment)RECV_INFO_TO.get((MemorySegment)var0, (long)0L);
   }

   class="kw">public class="kw">static void setRecvInfoTo(MemorySegment var0, MemorySegment var1) {
      RECV_INFO_TO.set((MemorySegment)var0, (long)0L, (MemorySegment)var1);
   }

   class="kw">public class="kw">static int getRecvInfoToLen(MemorySegment var0) {
      class="kw">return (int)RECV_INFO_TO_LEN.get((MemorySegment)var0, (long)0L);
   }

   class="kw">public class="kw">static void setRecvInfoToLen(MemorySegment var0, int var1) {
      RECV_INFO_TO_LEN.set((MemorySegment)var0, (long)0L, (int)var1);
   }

   class="kw">public class="kw">static MemorySegment getSendInfoFrom(MemorySegment var0) {
      class="kw">return var0.asSlice(SEND_INFO_FROM_OFFSET, SOCKADDR_STORAGE_LAYOUT);
   }

   class="kw">public class="kw">static int getSendInfoFromLen(MemorySegment var0) {
      class="kw">return (int)SEND_INFO_FROM_LEN.get((MemorySegment)var0, (long)0L);
   }

   class="kw">public class="kw">static void setSendInfoFromLen(MemorySegment var0, int var1) {
      SEND_INFO_FROM_LEN.set((MemorySegment)var0, (long)0L, (int)var1);
   }

   class="kw">public class="kw">static MemorySegment getSendInfoTo(MemorySegment var0) {
      class="kw">return var0.asSlice(SEND_INFO_TO_OFFSET, SOCKADDR_STORAGE_LAYOUT);
   }

   class="kw">public class="kw">static int getSendInfoToLen(MemorySegment var0) {
      class="kw">return (int)SEND_INFO_TO_LEN.get((MemorySegment)var0, (long)0L);
   }

   class="kw">public class="kw">static void setSendInfoToLen(MemorySegment var0, int var1) {
      SEND_INFO_TO_LEN.set((MemorySegment)var0, (long)0L, (int)var1);
   }

   class="kw">public class="kw">static MemorySegment getSendInfoAt(MemorySegment var0) {
      class="kw">return var0.asSlice(SEND_INFO_AT_OFFSET, TIMESPEC_LAYOUT);
   }

   class="kw">private class="kw">static MethodHandle downcall(String var0, FunctionDescriptor var1) {
      class="kw">return LINKER.downcallHandle(LOOKUP.find(var0).orElseThrow(), var1);
   }

   class="kw">public class="kw">static MemorySegment version() {
      try {
         class="kw">return (MemorySegment)QUICHE_VERSION.invokeExact();
      } catch (Throwable var1) {
         throw SneakyThrow.sneakyThrow(var1);
      }
   }

   class="kw">public class="kw">static int enableDebugLogging(MemorySegment var0, MemorySegment var1) {
      try {
         class="kw">return (int)QUICHE_ENABLE_DEBUG_LOGGING.invokeExact((MemorySegment)var0, (MemorySegment)var1);
      } catch (Throwable var3) {
         throw SneakyThrow.sneakyThrow(var3);
      }
   }

   class="kw">public class="kw">static int putVarint(MemorySegment var0, long var1, long var3) {
      try {
         class="kw">return (int)QUICHE_PUT_VARINT.invokeExact((MemorySegment)var0, (long)var1, (long)var3);
      } catch (Throwable var6) {
         throw SneakyThrow.sneakyThrow(var6);
      }
   }

   class="kw">public class="kw">static long getVarint(MemorySegment var0, long var1, MemorySegment var3) {
      try {
         class="kw">return (long)QUICHE_GET_VARINT.invokeExact((MemorySegment)var0, (long)var1, (MemorySegment)var3);
      } catch (Throwable var5) {
         throw SneakyThrow.sneakyThrow(var5);
      }
   }

   class="kw">public class="kw">static MemorySegment configNew(int var0) {
      try {
         class="kw">return (MemorySegment)QUICHE_CONFIG_NEW.invokeExact((int)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static int configLoadCert(MemorySegment var0, MemorySegment var1, long var2) {
      try {
         class="kw">return (int)QUICHE_CONFIG_LOAD_CERT.invokeExact((MemorySegment)var0, (MemorySegment)var1, (long)var2);
      } catch (Throwable var5) {
         throw SneakyThrow.sneakyThrow(var5);
      }
   }

   class="kw">public class="kw">static int configLoadCertChainFromPemFile(MemorySegment var0, MemorySegment var1) {
      try {
         class="kw">return (int)QUICHE_CONFIG_LOAD_CERT_CHAIN_FROM_PEM_FILE.invokeExact((MemorySegment)var0, (MemorySegment)var1);
      } catch (Throwable var3) {
         throw SneakyThrow.sneakyThrow(var3);
      }
   }

   class="kw">public class="kw">static int configLoadPrivKey(MemorySegment var0, MemorySegment var1, long var2) {
      try {
         class="kw">return (int)QUICHE_CONFIG_LOAD_PRIV_KEY.invokeExact((MemorySegment)var0, (MemorySegment)var1, (long)var2);
      } catch (Throwable var5) {
         throw SneakyThrow.sneakyThrow(var5);
      }
   }

   class="kw">public class="kw">static int configLoadPrivKeyFromPemFile(MemorySegment var0, MemorySegment var1) {
      try {
         class="kw">return (int)QUICHE_CONFIG_LOAD_PRIV_KEY_FROM_PEM_FILE.invokeExact((MemorySegment)var0, (MemorySegment)var1);
      } catch (Throwable var3) {
         throw SneakyThrow.sneakyThrow(var3);
      }
   }

   class="kw">public class="kw">static int configLoadVerifyLocationsFromFile(MemorySegment var0, MemorySegment var1) {
      try {
         class="kw">return (int)QUICHE_CONFIG_LOAD_VERIFY_LOCATIONS_FROM_FILE.invokeExact((MemorySegment)var0, (MemorySegment)var1);
      } catch (Throwable var3) {
         throw SneakyThrow.sneakyThrow(var3);
      }
   }

   class="kw">public class="kw">static int configLoadVerifyLocationsFromDirectory(MemorySegment var0, MemorySegment var1) {
      try {
         class="kw">return (int)QUICHE_CONFIG_LOAD_VERIFY_LOCATIONS_FROM_DIRECTORY.invokeExact((MemorySegment)var0, (MemorySegment)var1);
      } catch (Throwable var3) {
         throw SneakyThrow.sneakyThrow(var3);
      }
   }

   class="kw">public class="kw">static void configVerifyPeer(MemorySegment var0, boolean var1) {
      try {
         QUICHE_CONFIG_VERIFY_PEER.invokeExact((MemorySegment)var0, (boolean)var1);
      } catch (Throwable var3) {
         throw SneakyThrow.sneakyThrow(var3);
      }
   }

   class="kw">public class="kw">static void configVerifyPeerOptional(MemorySegment var0) {
      try {
         QUICHE_CONFIG_VERIFY_PEER_OPTIONAL.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static void configGrease(MemorySegment var0, boolean var1) {
      try {
         QUICHE_CONFIG_GREASE.invokeExact((MemorySegment)var0, (boolean)var1);
      } catch (Throwable var3) {
         throw SneakyThrow.sneakyThrow(var3);
      }
   }

   class="kw">public class="kw">static void configDiscoverPmtu(MemorySegment var0, boolean var1) {
      try {
         QUICHE_CONFIG_DISCOVER_PMTU.invokeExact((MemorySegment)var0, (boolean)var1);
      } catch (Throwable var3) {
         throw SneakyThrow.sneakyThrow(var3);
      }
   }

   class="kw">public class="kw">static void configLogKeys(MemorySegment var0) {
      try {
         QUICHE_CONFIG_LOG_KEYS.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static void configEnableEarlyData(MemorySegment var0) {
      try {
         QUICHE_CONFIG_ENABLE_EARLY_DATA.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static int configSetApplicationProtos(MemorySegment var0, MemorySegment var1, long var2) {
      try {
         class="kw">return (int)QUICHE_CONFIG_SET_APPLICATION_PROTOS.invokeExact((MemorySegment)var0, (MemorySegment)var1, (long)var2);
      } catch (Throwable var5) {
         throw SneakyThrow.sneakyThrow(var5);
      }
   }

   class="kw">public class="kw">static void configSetMaxAmplificationFactor(MemorySegment var0, long var1) {
      try {
         QUICHE_CONFIG_SET_MAX_AMPLIFICATION_FACTOR.invokeExact((MemorySegment)var0, (long)var1);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void configSetMaxIdleTimeout(MemorySegment var0, long var1) {
      try {
         QUICHE_CONFIG_SET_MAX_IDLE_TIMEOUT.invokeExact((MemorySegment)var0, (long)var1);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void configSetMaxRecvUdpPayloadSize(MemorySegment var0, long var1) {
      try {
         QUICHE_CONFIG_SET_MAX_RECV_UDP_PAYLOAD_SIZE.invokeExact((MemorySegment)var0, (long)var1);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void configSetMaxSendUdpPayloadSize(MemorySegment var0, long var1) {
      try {
         QUICHE_CONFIG_SET_MAX_SEND_UDP_PAYLOAD_SIZE.invokeExact((MemorySegment)var0, (long)var1);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void configSetInitialMaxData(MemorySegment var0, long var1) {
      try {
         QUICHE_CONFIG_SET_INITIAL_MAX_DATA.invokeExact((MemorySegment)var0, (long)var1);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void configSetInitialMaxStreamDataBidiLocal(MemorySegment var0, long var1) {
      try {
         QUICHE_CONFIG_SET_INITIAL_MAX_STREAM_DATA_BIDI_LOCAL.invokeExact((MemorySegment)var0, (long)var1);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void configSetInitialMaxStreamDataBidiRemote(MemorySegment var0, long var1) {
      try {
         QUICHE_CONFIG_SET_INITIAL_MAX_STREAM_DATA_BIDI_REMOTE.invokeExact((MemorySegment)var0, (long)var1);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void configSetInitialMaxStreamDataUni(MemorySegment var0, long var1) {
      try {
         QUICHE_CONFIG_SET_INITIAL_MAX_STREAM_DATA_UNI.invokeExact((MemorySegment)var0, (long)var1);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void configSetInitialMaxStreamsBidi(MemorySegment var0, long var1) {
      try {
         QUICHE_CONFIG_SET_INITIAL_MAX_STREAMS_BIDI.invokeExact((MemorySegment)var0, (long)var1);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void configSetInitialMaxStreamsUni(MemorySegment var0, long var1) {
      try {
         QUICHE_CONFIG_SET_INITIAL_MAX_STREAMS_UNI.invokeExact((MemorySegment)var0, (long)var1);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void configSetAckDelayExponent(MemorySegment var0, long var1) {
      try {
         QUICHE_CONFIG_SET_ACK_DELAY_EXPONENT.invokeExact((MemorySegment)var0, (long)var1);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void configSetMaxAckDelay(MemorySegment var0, long var1) {
      try {
         QUICHE_CONFIG_SET_MAX_ACK_DELAY.invokeExact((MemorySegment)var0, (long)var1);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void configSetDisableActiveMigration(MemorySegment var0, boolean var1) {
      try {
         QUICHE_CONFIG_SET_DISABLE_ACTIVE_MIGRATION.invokeExact((MemorySegment)var0, (boolean)var1);
      } catch (Throwable var3) {
         throw SneakyThrow.sneakyThrow(var3);
      }
   }

   class="kw">public class="kw">static int configSetCcAlgorithmName(MemorySegment var0, MemorySegment var1) {
      try {
         class="kw">return (int)QUICHE_CONFIG_SET_CC_ALGORITHM_NAME.invokeExact((MemorySegment)var0, (MemorySegment)var1);
      } catch (Throwable var3) {
         throw SneakyThrow.sneakyThrow(var3);
      }
   }

   class="kw">public class="kw">static void configSetInitialCongestionWindowPackets(MemorySegment var0, long var1) {
      try {
         QUICHE_CONFIG_SET_INITIAL_CONGESTION_WINDOW_PACKETS.invokeExact((MemorySegment)var0, (long)var1);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void configSetCcAlgorithm(MemorySegment var0, int var1) {
      try {
         QUICHE_CONFIG_SET_CC_ALGORITHM.invokeExact((MemorySegment)var0, (int)var1);
      } catch (Throwable var3) {
         throw SneakyThrow.sneakyThrow(var3);
      }
   }

   class="kw">public class="kw">static void configEnableHystart(MemorySegment var0, boolean var1) {
      try {
         QUICHE_CONFIG_ENABLE_HYSTART.invokeExact((MemorySegment)var0, (boolean)var1);
      } catch (Throwable var3) {
         throw SneakyThrow.sneakyThrow(var3);
      }
   }

   class="kw">public class="kw">static void configEnablePacing(MemorySegment var0, boolean var1) {
      try {
         QUICHE_CONFIG_ENABLE_PACING.invokeExact((MemorySegment)var0, (boolean)var1);
      } catch (Throwable var3) {
         throw SneakyThrow.sneakyThrow(var3);
      }
   }

   class="kw">public class="kw">static void configSetMaxPacingRate(MemorySegment var0, long var1) {
      try {
         QUICHE_CONFIG_SET_MAX_PACING_RATE.invokeExact((MemorySegment)var0, (long)var1);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void configEnableDgram(MemorySegment var0, boolean var1, long var2, long var4) {
      try {
         QUICHE_CONFIG_ENABLE_DGRAM.invokeExact((MemorySegment)var0, (boolean)var1, (long)var2, (long)var4);
      } catch (Throwable var7) {
         throw SneakyThrow.sneakyThrow(var7);
      }
   }

   class="kw">public class="kw">static void configSetMaxConnectionWindow(MemorySegment var0, long var1) {
      try {
         QUICHE_CONFIG_SET_MAX_CONNECTION_WINDOW.invokeExact((MemorySegment)var0, (long)var1);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void configSetMaxStreamWindow(MemorySegment var0, long var1) {
      try {
         QUICHE_CONFIG_SET_MAX_STREAM_WINDOW.invokeExact((MemorySegment)var0, (long)var1);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void configSetActiveConnectionIdLimit(MemorySegment var0, long var1) {
      try {
         QUICHE_CONFIG_SET_ACTIVE_CONNECTION_ID_LIMIT.invokeExact((MemorySegment)var0, (long)var1);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void configSetStatelessResetToken(MemorySegment var0, MemorySegment var1) {
      try {
         QUICHE_CONFIG_SET_STATELESS_RESET_TOKEN.invokeExact((MemorySegment)var0, (MemorySegment)var1);
      } catch (Throwable var3) {
         throw SneakyThrow.sneakyThrow(var3);
      }
   }

   class="kw">public class="kw">static void configSetDisableDcidReuse(MemorySegment var0, boolean var1) {
      try {
         QUICHE_CONFIG_SET_DISABLE_DCID_REUSE.invokeExact((MemorySegment)var0, (boolean)var1);
      } catch (Throwable var3) {
         throw SneakyThrow.sneakyThrow(var3);
      }
   }

   class="kw">public class="kw">static int configSetTicketKey(MemorySegment var0, MemorySegment var1, long var2) {
      try {
         class="kw">return (int)QUICHE_CONFIG_SET_TICKET_KEY.invokeExact((MemorySegment)var0, (MemorySegment)var1, (long)var2);
      } catch (Throwable var5) {
         throw SneakyThrow.sneakyThrow(var5);
      }
   }

   class="kw">public class="kw">static void configFree(MemorySegment var0) {
      try {
         QUICHE_CONFIG_FREE.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static int headerInfo(
      MemorySegment var0,
      long var1,
      long var3,
      MemorySegment var5,
      MemorySegment var6,
      MemorySegment var7,
      MemorySegment var8,
      MemorySegment var9,
      MemorySegment var10,
      MemorySegment var11,
      MemorySegment var12
   ) {
      try {
         class="kw">return (int)QUICHE_HEADER_INFO.invokeExact(
            (MemorySegment)var0,
            (long)var1,
            (long)var3,
            (MemorySegment)var5,
            (MemorySegment)var6,
            (MemorySegment)var7,
            (MemorySegment)var8,
            (MemorySegment)var9,
            (MemorySegment)var10,
            (MemorySegment)var11,
            (MemorySegment)var12
         );
      } catch (Throwable var14) {
         throw SneakyThrow.sneakyThrow(var14);
      }
   }

   class="kw">public class="kw">static MemorySegment accept(
      MemorySegment var0, long var1, MemorySegment var3, long var4, MemorySegment var6, int var7, MemorySegment var8, int var9, MemorySegment var10
   ) {
      try {
         class="kw">return (MemorySegment)QUICHE_ACCEPT.invokeExact(
            (MemorySegment)var0,
            (long)var1,
            (MemorySegment)var3,
            (long)var4,
            (MemorySegment)var6,
            (int)var7,
            (MemorySegment)var8,
            (int)var9,
            (MemorySegment)var10
         );
      } catch (Throwable var12) {
         throw SneakyThrow.sneakyThrow(var12);
      }
   }

   class="kw">public class="kw">static MemorySegment connect(
      MemorySegment var0, MemorySegment var1, long var2, MemorySegment var4, int var5, MemorySegment var6, int var7, MemorySegment var8
   ) {
      try {
         class="kw">return (MemorySegment)QUICHE_CONNECT.invokeExact(
            (MemorySegment)var0, (MemorySegment)var1, (long)var2, (MemorySegment)var4, (int)var5, (MemorySegment)var6, (int)var7, (MemorySegment)var8
         );
      } catch (Throwable var10) {
         throw SneakyThrow.sneakyThrow(var10);
      }
   }

   class="kw">public class="kw">static long negotiateVersion(MemorySegment var0, long var1, MemorySegment var3, long var4, MemorySegment var6, long var7) {
      try {
         class="kw">return (long)QUICHE_NEGOTIATE_VERSION.invokeExact((MemorySegment)var0, (long)var1, (MemorySegment)var3, (long)var4, (MemorySegment)var6, (long)var7);
      } catch (Throwable var10) {
         throw SneakyThrow.sneakyThrow(var10);
      }
   }

   class="kw">public class="kw">static long retry(
      MemorySegment var0,
      long var1,
      MemorySegment var3,
      long var4,
      MemorySegment var6,
      long var7,
      MemorySegment var9,
      long var10,
      int var12,
      MemorySegment var13,
      long var14
   ) {
      try {
         class="kw">return (long)QUICHE_RETRY.invokeExact(
            (MemorySegment)var0,
            (long)var1,
            (MemorySegment)var3,
            (long)var4,
            (MemorySegment)var6,
            (long)var7,
            (MemorySegment)var9,
            (long)var10,
            (int)var12,
            (MemorySegment)var13,
            (long)var14
         );
      } catch (Throwable var17) {
         throw SneakyThrow.sneakyThrow(var17);
      }
   }

   class="kw">public class="kw">static boolean versionIsSupported(int var0) {
      try {
         class="kw">return (boolean)QUICHE_VERSION_IS_SUPPORTED.invokeExact((int)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static MemorySegment connNewWithTls(
      MemorySegment var0,
      long var1,
      MemorySegment var3,
      long var4,
      MemorySegment var6,
      int var7,
      MemorySegment var8,
      int var9,
      MemorySegment var10,
      MemorySegment var11,
      boolean var12
   ) {
      try {
         class="kw">return (MemorySegment)QUICHE_CONN_NEW_WITH_TLS.invokeExact(
            (MemorySegment)var0,
            (long)var1,
            (MemorySegment)var3,
            (long)var4,
            (MemorySegment)var6,
            (int)var7,
            (MemorySegment)var8,
            (int)var9,
            (MemorySegment)var10,
            (MemorySegment)var11,
            (boolean)var12
         );
      } catch (Throwable var14) {
         throw SneakyThrow.sneakyThrow(var14);
      }
   }

   class="kw">public class="kw">static boolean connSetKeylogPath(MemorySegment var0, MemorySegment var1) {
      try {
         class="kw">return (boolean)QUICHE_CONN_SET_KEYLOG_PATH.invokeExact((MemorySegment)var0, (MemorySegment)var1);
      } catch (Throwable var3) {
         throw SneakyThrow.sneakyThrow(var3);
      }
   }

   class="kw">public class="kw">static boolean connSetQlogPath(MemorySegment var0, MemorySegment var1, MemorySegment var2, MemorySegment var3) {
      try {
         class="kw">return (boolean)QUICHE_CONN_SET_QLOG_PATH.invokeExact((MemorySegment)var0, (MemorySegment)var1, (MemorySegment)var2, (MemorySegment)var3);
      } catch (Throwable var5) {
         throw SneakyThrow.sneakyThrow(var5);
      }
   }

   class="kw">public class="kw">static int connSetSession(MemorySegment var0, MemorySegment var1, long var2) {
      try {
         class="kw">return (int)QUICHE_CONN_SET_SESSION.invokeExact((MemorySegment)var0, (MemorySegment)var1, (long)var2);
      } catch (Throwable var5) {
         throw SneakyThrow.sneakyThrow(var5);
      }
   }

   class="kw">public class="kw">static int connSetMaxIdleTimeout(MemorySegment var0, long var1) {
      try {
         class="kw">return (int)QUICHE_CONN_SET_MAX_IDLE_TIMEOUT.invokeExact((MemorySegment)var0, (long)var1);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static long connRecv(MemorySegment var0, MemorySegment var1, long var2, MemorySegment var4) {
      try {
         class="kw">return (long)QUICHE_CONN_RECV.invokeExact((MemorySegment)var0, (MemorySegment)var1, (long)var2, (MemorySegment)var4);
      } catch (Throwable var6) {
         throw SneakyThrow.sneakyThrow(var6);
      }
   }

   class="kw">public class="kw">static long connSend(MemorySegment var0, MemorySegment var1, long var2, MemorySegment var4) {
      try {
         class="kw">return (long)QUICHE_CONN_SEND.invokeExact((MemorySegment)var0, (MemorySegment)var1, (long)var2, (MemorySegment)var4);
      } catch (Throwable var6) {
         throw SneakyThrow.sneakyThrow(var6);
      }
   }

   class="kw">public class="kw">static long connSendQuantum(MemorySegment var0) {
      try {
         class="kw">return (long)QUICHE_CONN_SEND_QUANTUM.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static long connSendOnPath(
      MemorySegment var0, MemorySegment var1, long var2, MemorySegment var4, int var5, MemorySegment var6, int var7, MemorySegment var8
   ) {
      try {
         class="kw">return (long)QUICHE_CONN_SEND_ON_PATH.invokeExact(
            (MemorySegment)var0, (MemorySegment)var1, (long)var2, (MemorySegment)var4, (int)var5, (MemorySegment)var6, (int)var7, (MemorySegment)var8
         );
      } catch (Throwable var10) {
         throw SneakyThrow.sneakyThrow(var10);
      }
   }

   class="kw">public class="kw">static long connSendQuantumOnPath(MemorySegment var0, MemorySegment var1, int var2, MemorySegment var3, int var4) {
      try {
         class="kw">return (long)QUICHE_CONN_SEND_QUANTUM_ON_PATH.invokeExact((MemorySegment)var0, (MemorySegment)var1, (int)var2, (MemorySegment)var3, (int)var4);
      } catch (Throwable var6) {
         throw SneakyThrow.sneakyThrow(var6);
      }
   }

   class="kw">public class="kw">static long connTimeoutAsNanos(MemorySegment var0) {
      try {
         class="kw">return (long)QUICHE_CONN_TIMEOUT_AS_NANOS.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static long connTimeoutAsMillis(MemorySegment var0) {
      try {
         class="kw">return (long)QUICHE_CONN_TIMEOUT_AS_MILLIS.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static void connOnTimeout(MemorySegment var0) {
      try {
         QUICHE_CONN_ON_TIMEOUT.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static int connClose(MemorySegment var0, boolean var1, long var2, MemorySegment var4, long var5) {
      try {
         class="kw">return (int)QUICHE_CONN_CLOSE.invokeExact((MemorySegment)var0, (boolean)var1, (long)var2, (MemorySegment)var4, (long)var5);
      } catch (Throwable var8) {
         throw SneakyThrow.sneakyThrow(var8);
      }
   }

   class="kw">public class="kw">static void connFree(MemorySegment var0) {
      try {
         QUICHE_CONN_FREE.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static long connStreamRecv(MemorySegment var0, long var1, MemorySegment var3, long var4, MemorySegment var6, MemorySegment var7) {
      try {
         class="kw">return (long)QUICHE_CONN_STREAM_RECV.invokeExact(
            (MemorySegment)var0, (long)var1, (MemorySegment)var3, (long)var4, (MemorySegment)var6, (MemorySegment)var7
         );
      } catch (Throwable var9) {
         throw SneakyThrow.sneakyThrow(var9);
      }
   }

   class="kw">public class="kw">static long connStreamSend(MemorySegment var0, long var1, MemorySegment var3, long var4, boolean var6, MemorySegment var7) {
      try {
         class="kw">return (long)QUICHE_CONN_STREAM_SEND.invokeExact((MemorySegment)var0, (long)var1, (MemorySegment)var3, (long)var4, (boolean)var6, (MemorySegment)var7);
      } catch (Throwable var9) {
         throw SneakyThrow.sneakyThrow(var9);
      }
   }

   class="kw">public class="kw">static int connStreamPriority(MemorySegment var0, long var1, byte var3, boolean var4) {
      try {
         class="kw">return (int)QUICHE_CONN_STREAM_PRIORITY.invokeExact((MemorySegment)var0, (long)var1, (byte)var3, (boolean)var4);
      } catch (Throwable var6) {
         throw SneakyThrow.sneakyThrow(var6);
      }
   }

   class="kw">public class="kw">static int connStreamShutdown(MemorySegment var0, long var1, int var3, long var4) {
      if (var3 != 0 && var3 != 1) {
         throw new IllegalArgumentException("Invalid shutdown direction: " + var3);
      }

      try {
         class="kw">return (int)QUICHE_CONN_STREAM_SHUTDOWN.invokeExact((MemorySegment)var0, (long)var1, (int)var3, (long)var4);
      } catch (Throwable var7) {
         throw SneakyThrow.sneakyThrow(var7);
      }
   }

   class="kw">public class="kw">static long connStreamCapacity(MemorySegment var0, long var1) {
      try {
         class="kw">return (long)QUICHE_CONN_STREAM_CAPACITY.invokeExact((MemorySegment)var0, (long)var1);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static boolean connStreamReadable(MemorySegment var0, long var1) {
      try {
         class="kw">return (boolean)QUICHE_CONN_STREAM_READABLE.invokeExact((MemorySegment)var0, (long)var1);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static long connStreamReadableNext(MemorySegment var0) {
      try {
         class="kw">return (long)QUICHE_CONN_STREAM_READABLE_NEXT.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static int connStreamWritable(MemorySegment var0, long var1, long var3) {
      try {
         class="kw">return (int)QUICHE_CONN_STREAM_WRITABLE.invokeExact((MemorySegment)var0, (long)var1, (long)var3);
      } catch (Throwable var6) {
         throw SneakyThrow.sneakyThrow(var6);
      }
   }

   class="kw">public class="kw">static long connStreamWritableNext(MemorySegment var0) {
      try {
         class="kw">return (long)QUICHE_CONN_STREAM_WRITABLE_NEXT.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static boolean connStreamFinished(MemorySegment var0, long var1) {
      try {
         class="kw">return (boolean)QUICHE_CONN_STREAM_FINISHED.invokeExact((MemorySegment)var0, (long)var1);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static MemorySegment connReadable(MemorySegment var0) {
      try {
         class="kw">return (MemorySegment)QUICHE_CONN_READABLE.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static MemorySegment connWritable(MemorySegment var0) {
      try {
         class="kw">return (MemorySegment)QUICHE_CONN_WRITABLE.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static boolean streamIterNext(MemorySegment var0, MemorySegment var1) {
      try {
         class="kw">return (boolean)QUICHE_STREAM_ITER_NEXT.invokeExact((MemorySegment)var0, (MemorySegment)var1);
      } catch (Throwable var3) {
         throw SneakyThrow.sneakyThrow(var3);
      }
   }

   class="kw">public class="kw">static void streamIterFree(MemorySegment var0) {
      try {
         QUICHE_STREAM_ITER_FREE.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static long connMaxSendUdpPayloadSize(MemorySegment var0) {
      try {
         class="kw">return (long)QUICHE_CONN_MAX_SEND_UDP_PAYLOAD_SIZE.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static boolean connIsEstablished(MemorySegment var0) {
      try {
         class="kw">return (boolean)QUICHE_CONN_IS_ESTABLISHED.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static boolean connIsResumed(MemorySegment var0) {
      try {
         class="kw">return (boolean)QUICHE_CONN_IS_RESUMED.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static boolean connIsInEarlyData(MemorySegment var0) {
      try {
         class="kw">return (boolean)QUICHE_CONN_IS_IN_EARLY_DATA.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static boolean connIsReadable(MemorySegment var0) {
      try {
         class="kw">return (boolean)QUICHE_CONN_IS_READABLE.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static boolean connIsDraining(MemorySegment var0) {
      try {
         class="kw">return (boolean)QUICHE_CONN_IS_DRAINING.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static boolean connIsClosed(MemorySegment var0) {
      try {
         class="kw">return (boolean)QUICHE_CONN_IS_CLOSED.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static boolean connIsTimedOut(MemorySegment var0) {
      try {
         class="kw">return (boolean)QUICHE_CONN_IS_TIMED_OUT.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static boolean connIsServer(MemorySegment var0) {
      try {
         class="kw">return (boolean)QUICHE_CONN_IS_SERVER.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static long connPeerStreamsLeftBidi(MemorySegment var0) {
      try {
         class="kw">return (long)QUICHE_CONN_PEER_STREAMS_LEFT_BIDI.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static long connPeerStreamsLeftUni(MemorySegment var0) {
      try {
         class="kw">return (long)QUICHE_CONN_PEER_STREAMS_LEFT_UNI.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static void connTraceId(MemorySegment var0, MemorySegment var1, MemorySegment var2) {
      try {
         QUICHE_CONN_TRACE_ID.invokeExact((MemorySegment)var0, (MemorySegment)var1, (MemorySegment)var2);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void connSourceId(MemorySegment var0, MemorySegment var1, MemorySegment var2) {
      try {
         QUICHE_CONN_SOURCE_ID.invokeExact((MemorySegment)var0, (MemorySegment)var1, (MemorySegment)var2);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void connDestinationId(MemorySegment var0, MemorySegment var1, MemorySegment var2) {
      try {
         QUICHE_CONN_DESTINATION_ID.invokeExact((MemorySegment)var0, (MemorySegment)var1, (MemorySegment)var2);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void connApplicationProto(MemorySegment var0, MemorySegment var1, MemorySegment var2) {
      try {
         QUICHE_CONN_APPLICATION_PROTO.invokeExact((MemorySegment)var0, (MemorySegment)var1, (MemorySegment)var2);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void connPeerCert(MemorySegment var0, MemorySegment var1, MemorySegment var2) {
      try {
         QUICHE_CONN_PEER_CERT.invokeExact((MemorySegment)var0, (MemorySegment)var1, (MemorySegment)var2);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void connSession(MemorySegment var0, MemorySegment var1, MemorySegment var2) {
      try {
         QUICHE_CONN_SESSION.invokeExact((MemorySegment)var0, (MemorySegment)var1, (MemorySegment)var2);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void connServerName(MemorySegment var0, MemorySegment var1, MemorySegment var2) {
      try {
         QUICHE_CONN_SERVER_NAME.invokeExact((MemorySegment)var0, (MemorySegment)var1, (MemorySegment)var2);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static boolean connPeerError(MemorySegment var0, MemorySegment var1, MemorySegment var2, MemorySegment var3, MemorySegment var4) {
      try {
         class="kw">return (boolean)QUICHE_CONN_PEER_ERROR.invokeExact(
            (MemorySegment)var0, (MemorySegment)var1, (MemorySegment)var2, (MemorySegment)var3, (MemorySegment)var4
         );
      } catch (Throwable var6) {
         throw SneakyThrow.sneakyThrow(var6);
      }
   }

   class="kw">public class="kw">static boolean connLocalError(MemorySegment var0, MemorySegment var1, MemorySegment var2, MemorySegment var3, MemorySegment var4) {
      try {
         class="kw">return (boolean)QUICHE_CONN_LOCAL_ERROR.invokeExact(
            (MemorySegment)var0, (MemorySegment)var1, (MemorySegment)var2, (MemorySegment)var3, (MemorySegment)var4
         );
      } catch (Throwable var6) {
         throw SneakyThrow.sneakyThrow(var6);
      }
   }

   class="kw">public class="kw">static void connStats(MemorySegment var0, MemorySegment var1) {
      try {
         QUICHE_CONN_STATS.invokeExact((MemorySegment)var0, (MemorySegment)var1);
      } catch (Throwable var3) {
         throw SneakyThrow.sneakyThrow(var3);
      }
   }

   class="kw">public class="kw">static boolean connPeerTransportParams(MemorySegment var0, MemorySegment var1) {
      try {
         class="kw">return (boolean)QUICHE_CONN_PEER_TRANSPORT_PARAMS.invokeExact((MemorySegment)var0, (MemorySegment)var1);
      } catch (Throwable var3) {
         throw SneakyThrow.sneakyThrow(var3);
      }
   }

   class="kw">public class="kw">static int connPathStats(MemorySegment var0, long var1, MemorySegment var3) {
      try {
         class="kw">return (int)QUICHE_CONN_PATH_STATS.invokeExact((MemorySegment)var0, (long)var1, (MemorySegment)var3);
      } catch (Throwable var5) {
         throw SneakyThrow.sneakyThrow(var5);
      }
   }

   class="kw">public class="kw">static MemorySegment connSourceIds(MemorySegment var0) {
      try {
         class="kw">return (MemorySegment)QUICHE_CONN_SOURCE_IDS.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static boolean connectionIdIterNext(MemorySegment var0, MemorySegment var1, MemorySegment var2) {
      try {
         class="kw">return (boolean)QUICHE_CONNECTION_ID_ITER_NEXT.invokeExact((MemorySegment)var0, (MemorySegment)var1, (MemorySegment)var2);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void connectionIdIterFree(MemorySegment var0) {
      try {
         QUICHE_CONNECTION_ID_ITER_FREE.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static long connRetiredScids(MemorySegment var0) {
      try {
         class="kw">return (long)QUICHE_CONN_RETIRED_SCIDS.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static long connAvailableDcids(MemorySegment var0) {
      try {
         class="kw">return (long)QUICHE_CONN_AVAILABLE_DCIDS.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static long connScidsLeft(MemorySegment var0) {
      try {
         class="kw">return (long)QUICHE_CONN_SCIDS_LEFT.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static long connActiveScids(MemorySegment var0) {
      try {
         class="kw">return (long)QUICHE_CONN_ACTIVE_SCIDS.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static int connNewScid(MemorySegment var0, MemorySegment var1, long var2, MemorySegment var4, boolean var5, MemorySegment var6) {
      try {
         class="kw">return (int)QUICHE_CONN_NEW_SCID.invokeExact(
            (MemorySegment)var0, (MemorySegment)var1, (long)var2, (MemorySegment)var4, (boolean)var5, (MemorySegment)var6
         );
      } catch (Throwable var8) {
         throw SneakyThrow.sneakyThrow(var8);
      }
   }

   class="kw">public class="kw">static int connRetireDcid(MemorySegment var0, long var1) {
      try {
         class="kw">return (int)QUICHE_CONN_RETIRE_DCID.invokeExact((MemorySegment)var0, (long)var1);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static int connProbePath(MemorySegment var0, MemorySegment var1, int var2, MemorySegment var3, int var4, MemorySegment var5) {
      try {
         class="kw">return (int)QUICHE_CONN_PROBE_PATH.invokeExact(
            (MemorySegment)var0, (MemorySegment)var1, (int)var2, (MemorySegment)var3, (int)var4, (MemorySegment)var5
         );
      } catch (Throwable var7) {
         throw SneakyThrow.sneakyThrow(var7);
      }
   }

   class="kw">public class="kw">static int connMigrateSource(MemorySegment var0, MemorySegment var1, int var2, MemorySegment var3) {
      try {
         class="kw">return (int)QUICHE_CONN_MIGRATE_SOURCE.invokeExact((MemorySegment)var0, (MemorySegment)var1, (int)var2, (MemorySegment)var3);
      } catch (Throwable var5) {
         throw SneakyThrow.sneakyThrow(var5);
      }
   }

   class="kw">public class="kw">static int connMigrate(MemorySegment var0, MemorySegment var1, int var2, MemorySegment var3, int var4, MemorySegment var5) {
      try {
         class="kw">return (int)QUICHE_CONN_MIGRATE.invokeExact((MemorySegment)var0, (MemorySegment)var1, (int)var2, (MemorySegment)var3, (int)var4, (MemorySegment)var5);
      } catch (Throwable var7) {
         throw SneakyThrow.sneakyThrow(var7);
      }
   }

   class="kw">public class="kw">static MemorySegment connPathEventNext(MemorySegment var0) {
      try {
         class="kw">return (MemorySegment)QUICHE_CONN_PATH_EVENT_NEXT.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static int pathEventType(MemorySegment var0) {
      try {
         class="kw">return (int)QUICHE_PATH_EVENT_TYPE.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static void pathEventNew(MemorySegment var0, MemorySegment var1, MemorySegment var2, MemorySegment var3, MemorySegment var4) {
      try {
         QUICHE_PATH_EVENT_NEW.invokeExact((MemorySegment)var0, (MemorySegment)var1, (MemorySegment)var2, (MemorySegment)var3, (MemorySegment)var4);
      } catch (Throwable var6) {
         throw SneakyThrow.sneakyThrow(var6);
      }
   }

   class="kw">public class="kw">static void pathEventValidated(MemorySegment var0, MemorySegment var1, MemorySegment var2, MemorySegment var3, MemorySegment var4) {
      try {
         QUICHE_PATH_EVENT_VALIDATED.invokeExact((MemorySegment)var0, (MemorySegment)var1, (MemorySegment)var2, (MemorySegment)var3, (MemorySegment)var4);
      } catch (Throwable var6) {
         throw SneakyThrow.sneakyThrow(var6);
      }
   }

   class="kw">public class="kw">static void pathEventFailedValidation(MemorySegment var0, MemorySegment var1, MemorySegment var2, MemorySegment var3, MemorySegment var4) {
      try {
         QUICHE_PATH_EVENT_FAILED_VALIDATION.invokeExact(
            (MemorySegment)var0, (MemorySegment)var1, (MemorySegment)var2, (MemorySegment)var3, (MemorySegment)var4
         );
      } catch (Throwable var6) {
         throw SneakyThrow.sneakyThrow(var6);
      }
   }

   class="kw">public class="kw">static void pathEventClosed(MemorySegment var0, MemorySegment var1, MemorySegment var2, MemorySegment var3, MemorySegment var4) {
      try {
         QUICHE_PATH_EVENT_CLOSED.invokeExact((MemorySegment)var0, (MemorySegment)var1, (MemorySegment)var2, (MemorySegment)var3, (MemorySegment)var4);
      } catch (Throwable var6) {
         throw SneakyThrow.sneakyThrow(var6);
      }
   }

   class="kw">public class="kw">static void pathEventReusedSourceConnectionId(
      MemorySegment var0,
      MemorySegment var1,
      MemorySegment var2,
      MemorySegment var3,
      MemorySegment var4,
      MemorySegment var5,
      MemorySegment var6,
      MemorySegment var7,
      MemorySegment var8,
      MemorySegment var9
   ) {
      try {
         QUICHE_PATH_EVENT_REUSED_SOURCE_CONNECTION_ID.invokeExact(
            (MemorySegment)var0,
            (MemorySegment)var1,
            (MemorySegment)var2,
            (MemorySegment)var3,
            (MemorySegment)var4,
            (MemorySegment)var5,
            (MemorySegment)var6,
            (MemorySegment)var7,
            (MemorySegment)var8,
            (MemorySegment)var9
         );
      } catch (Throwable var11) {
         throw SneakyThrow.sneakyThrow(var11);
      }
   }

   class="kw">public class="kw">static void pathEventPeerMigrated(MemorySegment var0, MemorySegment var1, MemorySegment var2, MemorySegment var3, MemorySegment var4) {
      try {
         QUICHE_PATH_EVENT_PEER_MIGRATED.invokeExact((MemorySegment)var0, (MemorySegment)var1, (MemorySegment)var2, (MemorySegment)var3, (MemorySegment)var4);
      } catch (Throwable var6) {
         throw SneakyThrow.sneakyThrow(var6);
      }
   }

   class="kw">public class="kw">static void pathEventFree(MemorySegment var0) {
      try {
         QUICHE_PATH_EVENT_FREE.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static MemorySegment connPathsIter(MemorySegment var0, MemorySegment var1, long var2) {
      try {
         class="kw">return (MemorySegment)QUICHE_CONN_PATHS_ITER.invokeExact((MemorySegment)var0, (MemorySegment)var1, (long)var2);
      } catch (Throwable var5) {
         throw SneakyThrow.sneakyThrow(var5);
      }
   }

   class="kw">public class="kw">static boolean socketAddrIterNext(MemorySegment var0, MemorySegment var1, MemorySegment var2) {
      try {
         class="kw">return (boolean)QUICHE_SOCKET_ADDR_ITER_NEXT.invokeExact((MemorySegment)var0, (MemorySegment)var1, (MemorySegment)var2);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void socketAddrIterFree(MemorySegment var0) {
      try {
         QUICHE_SOCKET_ADDR_ITER_FREE.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static int connIsPathValidated(MemorySegment var0, MemorySegment var1, long var2, MemorySegment var4, long var5) {
      try {
         class="kw">return (int)QUICHE_CONN_IS_PATH_VALIDATED.invokeExact((MemorySegment)var0, (MemorySegment)var1, (long)var2, (MemorySegment)var4, (long)var5);
      } catch (Throwable var8) {
         throw SneakyThrow.sneakyThrow(var8);
      }
   }

   class="kw">public class="kw">static long connDgramMaxWritableLen(MemorySegment var0) {
      try {
         class="kw">return (long)QUICHE_CONN_DGRAM_MAX_WRITABLE_LEN.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static long connDgramRecvFrontLen(MemorySegment var0) {
      try {
         class="kw">return (long)QUICHE_CONN_DGRAM_RECV_FRONT_LEN.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static long connDgramRecvQueueLen(MemorySegment var0) {
      try {
         class="kw">return (long)QUICHE_CONN_DGRAM_RECV_QUEUE_LEN.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static long connDgramRecvQueueByteSize(MemorySegment var0) {
      try {
         class="kw">return (long)QUICHE_CONN_DGRAM_RECV_QUEUE_BYTE_SIZE.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static long connDgramSendQueueLen(MemorySegment var0) {
      try {
         class="kw">return (long)QUICHE_CONN_DGRAM_SEND_QUEUE_LEN.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static long connDgramSendQueueByteSize(MemorySegment var0) {
      try {
         class="kw">return (long)QUICHE_CONN_DGRAM_SEND_QUEUE_BYTE_SIZE.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static long connDgramRecv(MemorySegment var0, MemorySegment var1, long var2) {
      try {
         class="kw">return (long)QUICHE_CONN_DGRAM_RECV.invokeExact((MemorySegment)var0, (MemorySegment)var1, (long)var2);
      } catch (Throwable var5) {
         throw SneakyThrow.sneakyThrow(var5);
      }
   }

   class="kw">public class="kw">static long connDgramSend(MemorySegment var0, MemorySegment var1, long var2) {
      try {
         class="kw">return (long)QUICHE_CONN_DGRAM_SEND.invokeExact((MemorySegment)var0, (MemorySegment)var1, (long)var2);
      } catch (Throwable var5) {
         throw SneakyThrow.sneakyThrow(var5);
      }
   }

   class="kw">public class="kw">static void connDgramPurgeOutgoing(MemorySegment var0, MemorySegment var1) {
      try {
         QUICHE_CONN_DGRAM_PURGE_OUTGOING.invokeExact((MemorySegment)var0, (MemorySegment)var1);
      } catch (Throwable var3) {
         throw SneakyThrow.sneakyThrow(var3);
      }
   }

   class="kw">public class="kw">static boolean connIsDgramSendQueueFull(MemorySegment var0) {
      try {
         class="kw">return (boolean)QUICHE_CONN_IS_DGRAM_SEND_QUEUE_FULL.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static boolean connIsDgramRecvQueueFull(MemorySegment var0) {
      try {
         class="kw">return (boolean)QUICHE_CONN_IS_DGRAM_RECV_QUEUE_FULL.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static long connSendAckEliciting(MemorySegment var0) {
      try {
         class="kw">return (long)QUICHE_CONN_SEND_ACK_ELICITING.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static long connSendAckElicitingOnPath(MemorySegment var0, MemorySegment var1, int var2, MemorySegment var3, int var4) {
      try {
         class="kw">return (long)QUICHE_CONN_SEND_ACK_ELICITING_ON_PATH.invokeExact((MemorySegment)var0, (MemorySegment)var1, (int)var2, (MemorySegment)var3, (int)var4);
      } catch (Throwable var6) {
         throw SneakyThrow.sneakyThrow(var6);
      }
   }

   class="kw">public class="kw">static MemorySegment h3ConfigNew() {
      try {
         class="kw">return (MemorySegment)QUICHE_H3_CONFIG_NEW.invokeExact();
      } catch (Throwable var1) {
         throw SneakyThrow.sneakyThrow(var1);
      }
   }

   class="kw">public class="kw">static void h3ConfigSetMaxFieldSectionSize(MemorySegment var0, long var1) {
      try {
         QUICHE_H3_CONFIG_SET_MAX_FIELD_SECTION_SIZE.invokeExact((MemorySegment)var0, (long)var1);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void h3ConfigSetQpackMaxTableCapacity(MemorySegment var0, long var1) {
      try {
         QUICHE_H3_CONFIG_SET_QPACK_MAX_TABLE_CAPACITY.invokeExact((MemorySegment)var0, (long)var1);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void h3ConfigSetQpackBlockedStreams(MemorySegment var0, long var1) {
      try {
         QUICHE_H3_CONFIG_SET_QPACK_BLOCKED_STREAMS.invokeExact((MemorySegment)var0, (long)var1);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static void h3ConfigEnableExtendedConnect(MemorySegment var0, boolean var1) {
      try {
         QUICHE_H3_CONFIG_ENABLE_EXTENDED_CONNECT.invokeExact((MemorySegment)var0, (boolean)var1);
      } catch (Throwable var3) {
         throw SneakyThrow.sneakyThrow(var3);
      }
   }

   class="kw">public class="kw">static void h3ConfigFree(MemorySegment var0) {
      try {
         QUICHE_H3_CONFIG_FREE.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static MemorySegment h3ConnNewWithTransport(MemorySegment var0, MemorySegment var1) {
      try {
         class="kw">return (MemorySegment)QUICHE_H3_CONN_NEW_WITH_TRANSPORT.invokeExact((MemorySegment)var0, (MemorySegment)var1);
      } catch (Throwable var3) {
         throw SneakyThrow.sneakyThrow(var3);
      }
   }

   class="kw">public class="kw">static long h3ConnPoll(MemorySegment var0, MemorySegment var1, MemorySegment var2) {
      try {
         class="kw">return (long)QUICHE_H3_CONN_POLL.invokeExact((MemorySegment)var0, (MemorySegment)var1, (MemorySegment)var2);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static int h3EventType(MemorySegment var0) {
      try {
         class="kw">return (int)QUICHE_H3_EVENT_TYPE.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static int h3EventForEachHeader(MemorySegment var0, MemorySegment var1, MemorySegment var2) {
      try {
         class="kw">return (int)QUICHE_H3_EVENT_FOR_EACH_HEADER.invokeExact((MemorySegment)var0, (MemorySegment)var1, (MemorySegment)var2);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static int h3ForEachSetting(MemorySegment var0, MemorySegment var1, MemorySegment var2) {
      try {
         class="kw">return (int)QUICHE_H3_FOR_EACH_SETTING.invokeExact((MemorySegment)var0, (MemorySegment)var1, (MemorySegment)var2);
      } catch (Throwable var4) {
         throw SneakyThrow.sneakyThrow(var4);
      }
   }

   class="kw">public class="kw">static boolean h3EventHeadersHasMoreFrames(MemorySegment var0) {
      try {
         class="kw">return (boolean)QUICHE_H3_EVENT_HEADERS_HAS_MORE_FRAMES.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static boolean h3ExtendedConnectEnabledByPeer(MemorySegment var0) {
      try {
         class="kw">return (boolean)QUICHE_H3_EXTENDED_CONNECT_ENABLED_BY_PEER.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static void h3EventFree(MemorySegment var0) {
      try {
         QUICHE_H3_EVENT_FREE.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">public class="kw">static long h3SendRequest(MemorySegment var0, MemorySegment var1, MemorySegment var2, long var3, boolean var5) {
      try {
         class="kw">return (long)QUICHE_H3_SEND_REQUEST.invokeExact((MemorySegment)var0, (MemorySegment)var1, (MemorySegment)var2, (long)var3, (boolean)var5);
      } catch (Throwable var7) {
         throw SneakyThrow.sneakyThrow(var7);
      }
   }

   class="kw">public class="kw">static int h3SendResponse(MemorySegment var0, MemorySegment var1, long var2, MemorySegment var4, long var5, boolean var7) {
      try {
         class="kw">return (int)QUICHE_H3_SEND_RESPONSE.invokeExact((MemorySegment)var0, (MemorySegment)var1, (long)var2, (MemorySegment)var4, (long)var5, (boolean)var7);
      } catch (Throwable var9) {
         throw SneakyThrow.sneakyThrow(var9);
      }
   }

   class="kw">public class="kw">static int h3SendResponseWithPriority(
      MemorySegment var0, MemorySegment var1, long var2, MemorySegment var4, long var5, MemorySegment var7, boolean var8
   ) {
      try {
         class="kw">return (int)QUICHE_H3_SEND_RESPONSE_WITH_PRIORITY.invokeExact(
            (MemorySegment)var0, (MemorySegment)var1, (long)var2, (MemorySegment)var4, (long)var5, (MemorySegment)var7, (boolean)var8
         );
      } catch (Throwable var10) {
         throw SneakyThrow.sneakyThrow(var10);
      }
   }

   class="kw">public class="kw">static int h3SendAdditionalHeaders(MemorySegment var0, MemorySegment var1, long var2, MemorySegment var4, long var5, boolean var7, boolean var8) {
      try {
         class="kw">return (int)QUICHE_H3_SEND_ADDITIONAL_HEADERS.invokeExact(
            (MemorySegment)var0, (MemorySegment)var1, (long)var2, (MemorySegment)var4, (long)var5, (boolean)var7, (boolean)var8
         );
      } catch (Throwable var10) {
         throw SneakyThrow.sneakyThrow(var10);
      }
   }

   class="kw">public class="kw">static long h3SendBody(MemorySegment var0, MemorySegment var1, long var2, MemorySegment var4, long var5, boolean var7) {
      try {
         class="kw">return (long)QUICHE_H3_SEND_BODY.invokeExact((MemorySegment)var0, (MemorySegment)var1, (long)var2, (MemorySegment)var4, (long)var5, (boolean)var7);
      } catch (Throwable var9) {
         throw SneakyThrow.sneakyThrow(var9);
      }
   }

   class="kw">public class="kw">static long h3RecvBody(MemorySegment var0, MemorySegment var1, long var2, MemorySegment var4, long var5) {
      try {
         class="kw">return (long)QUICHE_H3_RECV_BODY.invokeExact((MemorySegment)var0, (MemorySegment)var1, (long)var2, (MemorySegment)var4, (long)var5);
      } catch (Throwable var8) {
         throw SneakyThrow.sneakyThrow(var8);
      }
   }

   class="kw">public class="kw">static int h3SendGoaway(MemorySegment var0, MemorySegment var1, long var2) {
      try {
         class="kw">return (int)QUICHE_H3_SEND_GOAWAY.invokeExact((MemorySegment)var0, (MemorySegment)var1, (long)var2);
      } catch (Throwable var5) {
         throw SneakyThrow.sneakyThrow(var5);
      }
   }

   class="kw">public class="kw">static int h3ParseExtensiblePriority(MemorySegment var0, long var1, MemorySegment var3) {
      try {
         class="kw">return (int)QUICHE_H3_PARSE_EXTENSIBLE_PRIORITY.invokeExact((MemorySegment)var0, (long)var1, (MemorySegment)var3);
      } catch (Throwable var5) {
         throw SneakyThrow.sneakyThrow(var5);
      }
   }

   class="kw">public class="kw">static int h3SendPriorityUpdateForRequest(MemorySegment var0, MemorySegment var1, long var2, MemorySegment var4) {
      try {
         class="kw">return (int)QUICHE_H3_SEND_PRIORITY_UPDATE_FOR_REQUEST.invokeExact((MemorySegment)var0, (MemorySegment)var1, (long)var2, (MemorySegment)var4);
      } catch (Throwable var6) {
         throw SneakyThrow.sneakyThrow(var6);
      }
   }

   class="kw">public class="kw">static int h3TakeLastPriorityUpdate(MemorySegment var0, long var1, MemorySegment var3, MemorySegment var4) {
      try {
         class="kw">return (int)QUICHE_H3_TAKE_LAST_PRIORITY_UPDATE.invokeExact((MemorySegment)var0, (long)var1, (MemorySegment)var3, (MemorySegment)var4);
      } catch (Throwable var6) {
         throw SneakyThrow.sneakyThrow(var6);
      }
   }

   class="kw">public class="kw">static boolean h3DgramEnabledByPeer(MemorySegment var0, MemorySegment var1) {
      try {
         class="kw">return (boolean)QUICHE_H3_DGRAM_ENABLED_BY_PEER.invokeExact((MemorySegment)var0, (MemorySegment)var1);
      } catch (Throwable var3) {
         throw SneakyThrow.sneakyThrow(var3);
      }
   }

   class="kw">public class="kw">static void h3ConnStats(MemorySegment var0, MemorySegment var1) {
      try {
         QUICHE_H3_CONN_STATS.invokeExact((MemorySegment)var0, (MemorySegment)var1);
      } catch (Throwable var3) {
         throw SneakyThrow.sneakyThrow(var3);
      }
   }

   class="kw">public class="kw">static void h3ConnFree(MemorySegment var0) {
      try {
         QUICHE_H3_CONN_FREE.invokeExact((MemorySegment)var0);
      } catch (Throwable var2) {
         throw SneakyThrow.sneakyThrow(var2);
      }
   }

   class="kw">static {
      String var0 = System.getProperty("os.name").toLowerCase(Locale.ROOT);
      String var1 = System.getProperty("os.arch").toLowerCase(Locale.ROOT);
      if (var0.contains("linux")) {
         PLATFORM = QuicheNative.Platform.LINUX;
      } else if (!var0.contains("mac") && !var0.contains("darwin")) {
         if (!var0.contains("win")) {
            throw new UnsupportedOperationException("Unsupported OS: " + var0);
         }

         PLATFORM = QuicheNative.Platform.WINDOWS;
      } else {
         PLATFORM = QuicheNative.Platform.MACOS;
      }
      String var2 = class="kw">switch (PLATFORM) {
         case LINUX -> {
            if (!"amd64".equals(var1) && !"x86_64".equals(var1)) {
               throw new UnsupportedOperationException("Unsupported Linux architecture: " + var1);
            }

            yield "/class="kw">native/linux-x64/libquiche.so";
         }
         case MACOS -> {
            if (!"aarch64".equals(var1)) {
               throw new UnsupportedOperationException("Unsupported macOS architecture: " + var1);
            }

            yield "/class="kw">native/osx-arm64/libquiche.dylib";
         }
         case WINDOWS -> {
            if (!"amd64".equals(var1) && !"x86_64".equals(var1)) {
               throw new UnsupportedOperationException("Unsupported Windows architecture: " + var1);
            }

            yield "/class="kw">native/win-x64/quiche.dll";
         }
      };

      try (InputStream var3 = QuicheNative.class.getResourceAsStream(var2)) {
         if (var3 == null) {
            throw new IllegalStateException("Native library not found on classpath: " + var2);
         }

         Path var4 = Files.createTempDirectory("quiche-class="kw">native");
         Path var5 = var4.resolve(Path.of(var2).getFileName());
         Files.copy(var3, var5, StandardCopyOption.REPLACE_EXISTING);
         var5.toFile().deleteOnExit();
         var4.toFile().deleteOnExit();
         LOOKUP = SymbolLookup.libraryLookup(var5, GLOBAL_ARENA);
      } catch (IOException var8) {
         throw new ExceptionInInitializerError(var8);
      }

      C_POINTER = ValueLayout.ADDRESS;
      C_INT = ValueLayout.JAVA_INT;
      C_LONG = ValueLayout.JAVA_LONG;
      C_BYTE = ValueLayout.JAVA_BYTE;
      C_BOOL = ValueLayout.JAVA_BOOLEAN;
      C_SHORT = ValueLayout.JAVA_SHORT;
      C_SIZE_T = (ValueLayout)LINKER.canonicalLayouts().get("size_t");

      SOCKADDR_STORAGE_LAYOUT = class="kw">switch (PLATFORM) {
         case LINUX -> MemoryLayout.structLayout(
               C_SHORT.withName("ss_family"), MemoryLayout.sequenceLayout(118L, C_BYTE).withName("__ss_padding"), C_LONG.withName("__ss_align")
            )
            .withName("sockaddr_storage");
         case MACOS -> MemoryLayout.structLayout(
               C_BYTE.withName("ss_len"),
               C_BYTE.withName("ss_family"),
               MemoryLayout.sequenceLayout(6L, C_BYTE).withName("__ss_pad1"),
               C_LONG.withName("__ss_align"),
               MemoryLayout.sequenceLayout(112L, C_BYTE).withName("__ss_pad2")
            )
            .withName("sockaddr_storage");
         case WINDOWS -> MemoryLayout.structLayout(
               C_SHORT.withName("ss_family"),
               MemoryLayout.sequenceLayout(6L, C_BYTE).withName("__ss_pad1"),
               C_LONG.withName("__ss_align"),
               MemoryLayout.sequenceLayout(112L, C_BYTE).withName("__ss_pad2")
            )
            .withName("sockaddr_storage");
      };

      SOCKADDR_LAYOUT = class="kw">switch (PLATFORM) {
         case LINUX, WINDOWS -> MemoryLayout.structLayout(C_SHORT.withName("sa_family"), MemoryLayout.sequenceLayout(14L, C_BYTE).withName("sa_data"))
            .withName("sockaddr");
         case MACOS -> MemoryLayout.structLayout(
               C_BYTE.withName("sa_len"), C_BYTE.withName("sa_family"), MemoryLayout.sequenceLayout(14L, C_BYTE).withName("sa_data")
            )
            .withName("sockaddr");
      };

      TIMESPEC_LAYOUT = class="kw">switch (PLATFORM) {
         case LINUX, MACOS -> MemoryLayout.structLayout(C_LONG.withName("tv_sec"), C_LONG.withName("tv_nsec")).withName("timespec");
         case WINDOWS -> MemoryLayout.structLayout(C_LONG.withName("tv_sec"), C_INT.withName("tv_nsec"), MemoryLayout.paddingLayout(4L)).withName("timespec");
      };
      RECV_INFO_LAYOUT = MemoryLayout.structLayout(
            C_POINTER.withName("from"),
            C_INT.withName("from_len"),
            MemoryLayout.paddingLayout(4L),
            C_POINTER.withName("to"),
            C_INT.withName("to_len"),
            MemoryLayout.paddingLayout(4L)
         )
         .withName("quiche_recv_info");
      SEND_INFO_LAYOUT = MemoryLayout.structLayout(
            SOCKADDR_STORAGE_LAYOUT.withName("from"),
            C_INT.withName("from_len"),
            MemoryLayout.paddingLayout(4L),
            SOCKADDR_STORAGE_LAYOUT.withName("to"),
            C_INT.withName("to_len"),
            MemoryLayout.paddingLayout(4L),
            TIMESPEC_LAYOUT.withName("at")
         )
         .withName("quiche_send_info");
      SOCKADDR_FAMILY = SOCKADDR_LAYOUT.varHandle(PathElement.groupElement("sa_family"));
      SOCKADDR_STORAGE_FAMILY = SOCKADDR_STORAGE_LAYOUT.varHandle(PathElement.groupElement("ss_family"));
      SOCKADDR_STORAGE_LEN = PLATFORM == QuicheNative.Platform.MACOS ? SOCKADDR_STORAGE_LAYOUT.varHandle(PathElement.groupElement("ss_len")) : null;
      SOCKADDR_STORAGE_DATA_OFFSET = SOCKADDR_STORAGE_LAYOUT.byteOffset(PathElement.groupElement("ss_family"))
         + SOCKADDR_STORAGE_LAYOUT.select(PathElement.groupElement("ss_family")).byteSize();
      TIMESPEC_SEC = TIMESPEC_LAYOUT.varHandle(PathElement.groupElement("tv_sec"));
      TIMESPEC_NSEC = TIMESPEC_LAYOUT.varHandle(PathElement.groupElement("tv_nsec"));
      RECV_INFO_FROM = RECV_INFO_LAYOUT.varHandle(PathElement.groupElement("from"));
      RECV_INFO_FROM_LEN = RECV_INFO_LAYOUT.varHandle(PathElement.groupElement("from_len"));
      RECV_INFO_TO = RECV_INFO_LAYOUT.varHandle(PathElement.groupElement("to"));
      RECV_INFO_TO_LEN = RECV_INFO_LAYOUT.varHandle(PathElement.groupElement("to_len"));
      SEND_INFO_FROM_OFFSET = SEND_INFO_LAYOUT.byteOffset(PathElement.groupElement("from"));
      SEND_INFO_FROM_LEN = SEND_INFO_LAYOUT.varHandle(PathElement.groupElement("from_len"));
      SEND_INFO_TO_OFFSET = SEND_INFO_LAYOUT.byteOffset(PathElement.groupElement("to"));
      SEND_INFO_TO_LEN = SEND_INFO_LAYOUT.varHandle(PathElement.groupElement("to_len"));
      SEND_INFO_AT_OFFSET = SEND_INFO_LAYOUT.byteOffset(PathElement.groupElement("at"));
      QUICHE_VERSION = downcall("quiche_version", FunctionDescriptor.of(C_POINTER));
      QUICHE_ENABLE_DEBUG_LOGGING = downcall("quiche_enable_debug_logging", FunctionDescriptor.of(C_INT, C_POINTER, C_POINTER));
      QUICHE_PUT_VARINT = downcall("quiche_put_varint", FunctionDescriptor.of(C_INT, C_POINTER, C_LONG, C_LONG));
      QUICHE_GET_VARINT = downcall("quiche_get_varint", FunctionDescriptor.of(C_LONG, C_POINTER, C_LONG, C_POINTER));
      QUICHE_CONFIG_NEW = downcall("quiche_config_new", FunctionDescriptor.of(C_POINTER, C_INT));
      QUICHE_CONFIG_LOAD_CERT = downcall("quiche_config_load_cert", FunctionDescriptor.of(C_INT, C_POINTER, C_POINTER, C_LONG));
      QUICHE_CONFIG_LOAD_CERT_CHAIN_FROM_PEM_FILE = downcall("quiche_config_load_cert_chain_from_pem_file", FunctionDescriptor.of(C_INT, C_POINTER, C_POINTER));
      QUICHE_CONFIG_LOAD_PRIV_KEY = downcall("quiche_config_load_priv_key", FunctionDescriptor.of(C_INT, C_POINTER, C_POINTER, C_LONG));
      QUICHE_CONFIG_LOAD_PRIV_KEY_FROM_PEM_FILE = downcall("quiche_config_load_priv_key_from_pem_file", FunctionDescriptor.of(C_INT, C_POINTER, C_POINTER));
      QUICHE_CONFIG_LOAD_VERIFY_LOCATIONS_FROM_FILE = downcall(
         "quiche_config_load_verify_locations_from_file", FunctionDescriptor.of(C_INT, C_POINTER, C_POINTER)
      );
      QUICHE_CONFIG_LOAD_VERIFY_LOCATIONS_FROM_DIRECTORY = downcall(
         "quiche_config_load_verify_locations_from_directory", FunctionDescriptor.of(C_INT, C_POINTER, C_POINTER)
      );
      QUICHE_CONFIG_VERIFY_PEER = downcall("quiche_config_verify_peer", FunctionDescriptor.ofVoid(C_POINTER, C_BOOL));
      QUICHE_CONFIG_VERIFY_PEER_OPTIONAL = downcall("quiche_config_verify_peer_optional", FunctionDescriptor.ofVoid(C_POINTER));
      QUICHE_CONFIG_GREASE = downcall("quiche_config_grease", FunctionDescriptor.ofVoid(C_POINTER, C_BOOL));
      QUICHE_CONFIG_DISCOVER_PMTU = downcall("quiche_config_discover_pmtu", FunctionDescriptor.ofVoid(C_POINTER, C_BOOL));
      QUICHE_CONFIG_LOG_KEYS = downcall("quiche_config_log_keys", FunctionDescriptor.ofVoid(C_POINTER));
      QUICHE_CONFIG_ENABLE_EARLY_DATA = downcall("quiche_config_enable_early_data", FunctionDescriptor.ofVoid(C_POINTER));
      QUICHE_CONFIG_SET_APPLICATION_PROTOS = downcall("quiche_config_set_application_protos", FunctionDescriptor.of(C_INT, C_POINTER, C_POINTER, C_LONG));
      QUICHE_CONFIG_SET_MAX_AMPLIFICATION_FACTOR = downcall("quiche_config_set_max_amplification_factor", FunctionDescriptor.ofVoid(C_POINTER, C_LONG));
      QUICHE_CONFIG_SET_MAX_IDLE_TIMEOUT = downcall("quiche_config_set_max_idle_timeout", FunctionDescriptor.ofVoid(C_POINTER, C_LONG));
      QUICHE_CONFIG_SET_MAX_RECV_UDP_PAYLOAD_SIZE = downcall("quiche_config_set_max_recv_udp_payload_size", FunctionDescriptor.ofVoid(C_POINTER, C_LONG));
      QUICHE_CONFIG_SET_MAX_SEND_UDP_PAYLOAD_SIZE = downcall("quiche_config_set_max_send_udp_payload_size", FunctionDescriptor.ofVoid(C_POINTER, C_LONG));
      QUICHE_CONFIG_SET_INITIAL_MAX_DATA = downcall("quiche_config_set_initial_max_data", FunctionDescriptor.ofVoid(C_POINTER, C_LONG));
      QUICHE_CONFIG_SET_INITIAL_MAX_STREAM_DATA_BIDI_LOCAL = downcall(
         "quiche_config_set_initial_max_stream_data_bidi_local", FunctionDescriptor.ofVoid(C_POINTER, C_LONG)
      );
      QUICHE_CONFIG_SET_INITIAL_MAX_STREAM_DATA_BIDI_REMOTE = downcall(
         "quiche_config_set_initial_max_stream_data_bidi_remote", FunctionDescriptor.ofVoid(C_POINTER, C_LONG)
      );
      QUICHE_CONFIG_SET_INITIAL_MAX_STREAM_DATA_UNI = downcall("quiche_config_set_initial_max_stream_data_uni", FunctionDescriptor.ofVoid(C_POINTER, C_LONG));
      QUICHE_CONFIG_SET_INITIAL_MAX_STREAMS_BIDI = downcall("quiche_config_set_initial_max_streams_bidi", FunctionDescriptor.ofVoid(C_POINTER, C_LONG));
      QUICHE_CONFIG_SET_INITIAL_MAX_STREAMS_UNI = downcall("quiche_config_set_initial_max_streams_uni", FunctionDescriptor.ofVoid(C_POINTER, C_LONG));
      QUICHE_CONFIG_SET_ACK_DELAY_EXPONENT = downcall("quiche_config_set_ack_delay_exponent", FunctionDescriptor.ofVoid(C_POINTER, C_LONG));
      QUICHE_CONFIG_SET_MAX_ACK_DELAY = downcall("quiche_config_set_max_ack_delay", FunctionDescriptor.ofVoid(C_POINTER, C_LONG));
      QUICHE_CONFIG_SET_DISABLE_ACTIVE_MIGRATION = downcall("quiche_config_set_disable_active_migration", FunctionDescriptor.ofVoid(C_POINTER, C_BOOL));
      QUICHE_CONFIG_SET_CC_ALGORITHM_NAME = downcall("quiche_config_set_cc_algorithm_name", FunctionDescriptor.of(C_INT, C_POINTER, C_POINTER));
      QUICHE_CONFIG_SET_INITIAL_CONGESTION_WINDOW_PACKETS = downcall(
         "quiche_config_set_initial_congestion_window_packets", FunctionDescriptor.ofVoid(C_POINTER, C_LONG)
      );
      QUICHE_CONFIG_SET_CC_ALGORITHM = downcall("quiche_config_set_cc_algorithm", FunctionDescriptor.ofVoid(C_POINTER, C_INT));
      QUICHE_CONFIG_ENABLE_HYSTART = downcall("quiche_config_enable_hystart", FunctionDescriptor.ofVoid(C_POINTER, C_BOOL));
      QUICHE_CONFIG_ENABLE_PACING = downcall("quiche_config_enable_pacing", FunctionDescriptor.ofVoid(C_POINTER, C_BOOL));
      QUICHE_CONFIG_SET_MAX_PACING_RATE = downcall("quiche_config_set_max_pacing_rate", FunctionDescriptor.ofVoid(C_POINTER, C_LONG));
      QUICHE_CONFIG_ENABLE_DGRAM = downcall("quiche_config_enable_dgram", FunctionDescriptor.ofVoid(C_POINTER, C_BOOL, C_LONG, C_LONG));
      QUICHE_CONFIG_SET_MAX_CONNECTION_WINDOW = downcall("quiche_config_set_max_connection_window", FunctionDescriptor.ofVoid(C_POINTER, C_LONG));
      QUICHE_CONFIG_SET_MAX_STREAM_WINDOW = downcall("quiche_config_set_max_stream_window", FunctionDescriptor.ofVoid(C_POINTER, C_LONG));
      QUICHE_CONFIG_SET_ACTIVE_CONNECTION_ID_LIMIT = downcall("quiche_config_set_active_connection_id_limit", FunctionDescriptor.ofVoid(C_POINTER, C_LONG));
      QUICHE_CONFIG_SET_STATELESS_RESET_TOKEN = downcall("quiche_config_set_stateless_reset_token", FunctionDescriptor.ofVoid(C_POINTER, C_POINTER));
      QUICHE_CONFIG_SET_DISABLE_DCID_REUSE = downcall("quiche_config_set_disable_dcid_reuse", FunctionDescriptor.ofVoid(C_POINTER, C_BOOL));
      QUICHE_CONFIG_SET_TICKET_KEY = downcall("quiche_config_set_ticket_key", FunctionDescriptor.of(C_INT, C_POINTER, C_POINTER, C_LONG));
      QUICHE_CONFIG_FREE = downcall("quiche_config_free", FunctionDescriptor.ofVoid(C_POINTER));
      QUICHE_HEADER_INFO = downcall(
         "quiche_header_info",
         FunctionDescriptor.of(C_INT, C_POINTER, C_LONG, C_LONG, C_POINTER, C_POINTER, C_POINTER, C_POINTER, C_POINTER, C_POINTER, C_POINTER, C_POINTER)
      );
      QUICHE_ACCEPT = downcall(
         "quiche_accept", FunctionDescriptor.of(C_POINTER, C_POINTER, C_LONG, C_POINTER, C_LONG, C_POINTER, C_INT, C_POINTER, C_INT, C_POINTER)
      );
      QUICHE_CONNECT = downcall("quiche_connect", FunctionDescriptor.of(C_POINTER, C_POINTER, C_POINTER, C_LONG, C_POINTER, C_INT, C_POINTER, C_INT, C_POINTER));
      QUICHE_NEGOTIATE_VERSION = downcall("quiche_negotiate_version", FunctionDescriptor.of(C_LONG, C_POINTER, C_LONG, C_POINTER, C_LONG, C_POINTER, C_LONG));
      QUICHE_RETRY = downcall(
         "quiche_retry", FunctionDescriptor.of(C_LONG, C_POINTER, C_LONG, C_POINTER, C_LONG, C_POINTER, C_LONG, C_POINTER, C_LONG, C_INT, C_POINTER, C_LONG)
      );
      QUICHE_VERSION_IS_SUPPORTED = downcall("quiche_version_is_supported", FunctionDescriptor.of(C_BOOL, C_INT));
      QUICHE_CONN_NEW_WITH_TLS = downcall(
         "quiche_conn_new_with_tls",
         FunctionDescriptor.of(C_POINTER, C_POINTER, C_LONG, C_POINTER, C_LONG, C_POINTER, C_INT, C_POINTER, C_INT, C_POINTER, C_POINTER, C_BOOL)
      );
      QUICHE_CONN_SET_KEYLOG_PATH = downcall("quiche_conn_set_keylog_path", FunctionDescriptor.of(C_BOOL, C_POINTER, C_POINTER));
      QUICHE_CONN_SET_QLOG_PATH = downcall("quiche_conn_set_qlog_path", FunctionDescriptor.of(C_BOOL, C_POINTER, C_POINTER, C_POINTER, C_POINTER));
      QUICHE_CONN_SET_SESSION = downcall("quiche_conn_set_session", FunctionDescriptor.of(C_INT, C_POINTER, C_POINTER, C_LONG));
      QUICHE_CONN_SET_MAX_IDLE_TIMEOUT = downcall("quiche_conn_set_max_idle_timeout", FunctionDescriptor.of(C_INT, C_POINTER, C_LONG));
      QUICHE_CONN_RECV = downcall("quiche_conn_recv", FunctionDescriptor.of(C_LONG, C_POINTER, C_POINTER, C_LONG, C_POINTER));
      QUICHE_CONN_SEND = downcall("quiche_conn_send", FunctionDescriptor.of(C_LONG, C_POINTER, C_POINTER, C_LONG, C_POINTER));
      QUICHE_CONN_SEND_QUANTUM = downcall("quiche_conn_send_quantum", FunctionDescriptor.of(C_LONG, C_POINTER));
      QUICHE_CONN_SEND_ON_PATH = downcall(
         "quiche_conn_send_on_path", FunctionDescriptor.of(C_LONG, C_POINTER, C_POINTER, C_LONG, C_POINTER, C_INT, C_POINTER, C_INT, C_POINTER)
      );
      QUICHE_CONN_SEND_QUANTUM_ON_PATH = downcall(
         "quiche_conn_send_quantum_on_path", FunctionDescriptor.of(C_LONG, C_POINTER, C_POINTER, C_INT, C_POINTER, C_INT)
      );
      QUICHE_CONN_TIMEOUT_AS_NANOS = downcall("quiche_conn_timeout_as_nanos", FunctionDescriptor.of(C_LONG, C_POINTER));
      QUICHE_CONN_TIMEOUT_AS_MILLIS = downcall("quiche_conn_timeout_as_millis", FunctionDescriptor.of(C_LONG, C_POINTER));
      QUICHE_CONN_ON_TIMEOUT = downcall("quiche_conn_on_timeout", FunctionDescriptor.ofVoid(C_POINTER));
      QUICHE_CONN_CLOSE = downcall("quiche_conn_close", FunctionDescriptor.of(C_INT, C_POINTER, C_BOOL, C_LONG, C_POINTER, C_LONG));
      QUICHE_CONN_FREE = downcall("quiche_conn_free", FunctionDescriptor.ofVoid(C_POINTER));
      QUICHE_CONN_STREAM_RECV = downcall("quiche_conn_stream_recv", FunctionDescriptor.of(C_LONG, C_POINTER, C_LONG, C_POINTER, C_LONG, C_POINTER, C_POINTER));
      QUICHE_CONN_STREAM_SEND = downcall("quiche_conn_stream_send", FunctionDescriptor.of(C_LONG, C_POINTER, C_LONG, C_POINTER, C_LONG, C_BOOL, C_POINTER));
      QUICHE_CONN_STREAM_PRIORITY = downcall("quiche_conn_stream_priority", FunctionDescriptor.of(C_INT, C_POINTER, C_LONG, C_BYTE, C_BOOL));
      QUICHE_CONN_STREAM_SHUTDOWN = downcall("quiche_conn_stream_shutdown", FunctionDescriptor.of(C_INT, C_POINTER, C_LONG, C_INT, C_LONG));
      QUICHE_CONN_STREAM_CAPACITY = downcall("quiche_conn_stream_capacity", FunctionDescriptor.of(C_LONG, C_POINTER, C_LONG));
      QUICHE_CONN_STREAM_READABLE = downcall("quiche_conn_stream_readable", FunctionDescriptor.of(C_BOOL, C_POINTER, C_LONG));
      QUICHE_CONN_STREAM_READABLE_NEXT = downcall("quiche_conn_stream_readable_next", FunctionDescriptor.of(C_LONG, C_POINTER));
      QUICHE_CONN_STREAM_WRITABLE = downcall("quiche_conn_stream_writable", FunctionDescriptor.of(C_INT, C_POINTER, C_LONG, C_LONG));
      QUICHE_CONN_STREAM_WRITABLE_NEXT = downcall("quiche_conn_stream_writable_next", FunctionDescriptor.of(C_LONG, C_POINTER));
      QUICHE_CONN_STREAM_FINISHED = downcall("quiche_conn_stream_finished", FunctionDescriptor.of(C_BOOL, C_POINTER, C_LONG));
      QUICHE_CONN_READABLE = downcall("quiche_conn_readable", FunctionDescriptor.of(C_POINTER, C_POINTER));
      QUICHE_CONN_WRITABLE = downcall("quiche_conn_writable", FunctionDescriptor.of(C_POINTER, C_POINTER));
      QUICHE_STREAM_ITER_NEXT = downcall("quiche_stream_iter_next", FunctionDescriptor.of(C_BOOL, C_POINTER, C_POINTER));
      QUICHE_STREAM_ITER_FREE = downcall("quiche_stream_iter_free", FunctionDescriptor.ofVoid(C_POINTER));
      QUICHE_CONN_MAX_SEND_UDP_PAYLOAD_SIZE = downcall("quiche_conn_max_send_udp_payload_size", FunctionDescriptor.of(C_LONG, C_POINTER));
      QUICHE_CONN_IS_ESTABLISHED = downcall("quiche_conn_is_established", FunctionDescriptor.of(C_BOOL, C_POINTER));
      QUICHE_CONN_IS_RESUMED = downcall("quiche_conn_is_resumed", FunctionDescriptor.of(C_BOOL, C_POINTER));
      QUICHE_CONN_IS_IN_EARLY_DATA = downcall("quiche_conn_is_in_early_data", FunctionDescriptor.of(C_BOOL, C_POINTER));
      QUICHE_CONN_IS_READABLE = downcall("quiche_conn_is_readable", FunctionDescriptor.of(C_BOOL, C_POINTER));
      QUICHE_CONN_IS_DRAINING = downcall("quiche_conn_is_draining", FunctionDescriptor.of(C_BOOL, C_POINTER));
      QUICHE_CONN_IS_CLOSED = downcall("quiche_conn_is_closed", FunctionDescriptor.of(C_BOOL, C_POINTER));
      QUICHE_CONN_IS_TIMED_OUT = downcall("quiche_conn_is_timed_out", FunctionDescriptor.of(C_BOOL, C_POINTER));
      QUICHE_CONN_IS_SERVER = downcall("quiche_conn_is_server", FunctionDescriptor.of(C_BOOL, C_POINTER));
      QUICHE_CONN_PEER_STREAMS_LEFT_BIDI = downcall("quiche_conn_peer_streams_left_bidi", FunctionDescriptor.of(C_LONG, C_POINTER));
      QUICHE_CONN_PEER_STREAMS_LEFT_UNI = downcall("quiche_conn_peer_streams_left_uni", FunctionDescriptor.of(C_LONG, C_POINTER));
      QUICHE_CONN_TRACE_ID = downcall("quiche_conn_trace_id", FunctionDescriptor.ofVoid(C_POINTER, C_POINTER, C_POINTER));
      QUICHE_CONN_SOURCE_ID = downcall("quiche_conn_source_id", FunctionDescriptor.ofVoid(C_POINTER, C_POINTER, C_POINTER));
      QUICHE_CONN_DESTINATION_ID = downcall("quiche_conn_destination_id", FunctionDescriptor.ofVoid(C_POINTER, C_POINTER, C_POINTER));
      QUICHE_CONN_APPLICATION_PROTO = downcall("quiche_conn_application_proto", FunctionDescriptor.ofVoid(C_POINTER, C_POINTER, C_POINTER));
      QUICHE_CONN_PEER_CERT = downcall("quiche_conn_peer_cert", FunctionDescriptor.ofVoid(C_POINTER, C_POINTER, C_POINTER));
      QUICHE_CONN_SESSION = downcall("quiche_conn_session", FunctionDescriptor.ofVoid(C_POINTER, C_POINTER, C_POINTER));
      QUICHE_CONN_SERVER_NAME = downcall("quiche_conn_server_name", FunctionDescriptor.ofVoid(C_POINTER, C_POINTER, C_POINTER));
      QUICHE_CONN_PEER_ERROR = downcall("quiche_conn_peer_error", FunctionDescriptor.of(C_BOOL, C_POINTER, C_POINTER, C_POINTER, C_POINTER, C_POINTER));
      QUICHE_CONN_LOCAL_ERROR = downcall("quiche_conn_local_error", FunctionDescriptor.of(C_BOOL, C_POINTER, C_POINTER, C_POINTER, C_POINTER, C_POINTER));
      QUICHE_CONN_STATS = downcall("quiche_conn_stats", FunctionDescriptor.ofVoid(C_POINTER, C_POINTER));
      QUICHE_CONN_PEER_TRANSPORT_PARAMS = downcall("quiche_conn_peer_transport_params", FunctionDescriptor.of(C_BOOL, C_POINTER, C_POINTER));
      QUICHE_CONN_PATH_STATS = downcall("quiche_conn_path_stats", FunctionDescriptor.of(C_INT, C_POINTER, C_LONG, C_POINTER));
      QUICHE_CONN_SOURCE_IDS = downcall("quiche_conn_source_ids", FunctionDescriptor.of(C_POINTER, C_POINTER));
      QUICHE_CONNECTION_ID_ITER_NEXT = downcall("quiche_connection_id_iter_next", FunctionDescriptor.of(C_BOOL, C_POINTER, C_POINTER, C_POINTER));
      QUICHE_CONNECTION_ID_ITER_FREE = downcall("quiche_connection_id_iter_free", FunctionDescriptor.ofVoid(C_POINTER));
      QUICHE_CONN_RETIRED_SCIDS = downcall("quiche_conn_retired_scids", FunctionDescriptor.of(C_LONG, C_POINTER));
      QUICHE_CONN_AVAILABLE_DCIDS = downcall("quiche_conn_available_dcids", FunctionDescriptor.of(C_LONG, C_POINTER));
      QUICHE_CONN_SCIDS_LEFT = downcall("quiche_conn_scids_left", FunctionDescriptor.of(C_LONG, C_POINTER));
      QUICHE_CONN_ACTIVE_SCIDS = downcall("quiche_conn_active_scids", FunctionDescriptor.of(C_LONG, C_POINTER));
      QUICHE_CONN_NEW_SCID = downcall("quiche_conn_new_scid", FunctionDescriptor.of(C_INT, C_POINTER, C_POINTER, C_LONG, C_POINTER, C_BOOL, C_POINTER));
      QUICHE_CONN_RETIRE_DCID = downcall("quiche_conn_retire_dcid", FunctionDescriptor.of(C_INT, C_POINTER, C_LONG));
      QUICHE_CONN_PROBE_PATH = downcall("quiche_conn_probe_path", FunctionDescriptor.of(C_INT, C_POINTER, C_POINTER, C_INT, C_POINTER, C_INT, C_POINTER));
      QUICHE_CONN_MIGRATE_SOURCE = downcall("quiche_conn_migrate_source", FunctionDescriptor.of(C_INT, C_POINTER, C_POINTER, C_INT, C_POINTER));
      QUICHE_CONN_MIGRATE = downcall("quiche_conn_migrate", FunctionDescriptor.of(C_INT, C_POINTER, C_POINTER, C_INT, C_POINTER, C_INT, C_POINTER));
      QUICHE_CONN_PATH_EVENT_NEXT = downcall("quiche_conn_path_event_next", FunctionDescriptor.of(C_POINTER, C_POINTER));
      QUICHE_PATH_EVENT_TYPE = downcall("quiche_path_event_type", FunctionDescriptor.of(C_INT, C_POINTER));
      QUICHE_PATH_EVENT_NEW = downcall("quiche_path_event_new", FunctionDescriptor.ofVoid(C_POINTER, C_POINTER, C_POINTER, C_POINTER, C_POINTER));
      QUICHE_PATH_EVENT_VALIDATED = downcall("quiche_path_event_validated", FunctionDescriptor.ofVoid(C_POINTER, C_POINTER, C_POINTER, C_POINTER, C_POINTER));
      QUICHE_PATH_EVENT_FAILED_VALIDATION = downcall(
         "quiche_path_event_failed_validation", FunctionDescriptor.ofVoid(C_POINTER, C_POINTER, C_POINTER, C_POINTER, C_POINTER)
      );
      QUICHE_PATH_EVENT_CLOSED = downcall("quiche_path_event_closed", FunctionDescriptor.ofVoid(C_POINTER, C_POINTER, C_POINTER, C_POINTER, C_POINTER));
      QUICHE_PATH_EVENT_REUSED_SOURCE_CONNECTION_ID = downcall(
         "quiche_path_event_reused_source_connection_id",
         FunctionDescriptor.ofVoid(C_POINTER, C_POINTER, C_POINTER, C_POINTER, C_POINTER, C_POINTER, C_POINTER, C_POINTER, C_POINTER, C_POINTER)
      );
      QUICHE_PATH_EVENT_PEER_MIGRATED = downcall(
         "quiche_path_event_peer_migrated", FunctionDescriptor.ofVoid(C_POINTER, C_POINTER, C_POINTER, C_POINTER, C_POINTER)
      );
      QUICHE_PATH_EVENT_FREE = downcall("quiche_path_event_free", FunctionDescriptor.ofVoid(C_POINTER));
      QUICHE_CONN_PATHS_ITER = downcall("quiche_conn_paths_iter", FunctionDescriptor.of(C_POINTER, C_POINTER, C_POINTER, C_LONG));
      QUICHE_SOCKET_ADDR_ITER_NEXT = downcall("quiche_socket_addr_iter_next", FunctionDescriptor.of(C_BOOL, C_POINTER, C_POINTER, C_POINTER));
      QUICHE_SOCKET_ADDR_ITER_FREE = downcall("quiche_socket_addr_iter_free", FunctionDescriptor.ofVoid(C_POINTER));
      QUICHE_CONN_IS_PATH_VALIDATED = downcall("quiche_conn_is_path_validated", FunctionDescriptor.of(C_INT, C_POINTER, C_POINTER, C_LONG, C_POINTER, C_LONG));
      QUICHE_CONN_DGRAM_MAX_WRITABLE_LEN = downcall("quiche_conn_dgram_max_writable_len", FunctionDescriptor.of(C_LONG, C_POINTER));
      QUICHE_CONN_DGRAM_RECV_FRONT_LEN = downcall("quiche_conn_dgram_recv_front_len", FunctionDescriptor.of(C_LONG, C_POINTER));
      QUICHE_CONN_DGRAM_RECV_QUEUE_LEN = downcall("quiche_conn_dgram_recv_queue_len", FunctionDescriptor.of(C_LONG, C_POINTER));
      QUICHE_CONN_DGRAM_RECV_QUEUE_BYTE_SIZE = downcall("quiche_conn_dgram_recv_queue_byte_size", FunctionDescriptor.of(C_LONG, C_POINTER));
      QUICHE_CONN_DGRAM_SEND_QUEUE_LEN = downcall("quiche_conn_dgram_send_queue_len", FunctionDescriptor.of(C_LONG, C_POINTER));
      QUICHE_CONN_DGRAM_SEND_QUEUE_BYTE_SIZE = downcall("quiche_conn_dgram_send_queue_byte_size", FunctionDescriptor.of(C_LONG, C_POINTER));
      QUICHE_CONN_DGRAM_RECV = downcall("quiche_conn_dgram_recv", FunctionDescriptor.of(C_LONG, C_POINTER, C_POINTER, C_LONG));
      QUICHE_CONN_DGRAM_SEND = downcall("quiche_conn_dgram_send", FunctionDescriptor.of(C_LONG, C_POINTER, C_POINTER, C_LONG));
      QUICHE_CONN_DGRAM_PURGE_OUTGOING = downcall("quiche_conn_dgram_purge_outgoing", FunctionDescriptor.ofVoid(C_POINTER, C_POINTER));
      QUICHE_CONN_IS_DGRAM_SEND_QUEUE_FULL = downcall("quiche_conn_is_dgram_send_queue_full", FunctionDescriptor.of(C_BOOL, C_POINTER));
      QUICHE_CONN_IS_DGRAM_RECV_QUEUE_FULL = downcall("quiche_conn_is_dgram_recv_queue_full", FunctionDescriptor.of(C_BOOL, C_POINTER));
      QUICHE_CONN_SEND_ACK_ELICITING = downcall("quiche_conn_send_ack_eliciting", FunctionDescriptor.of(C_LONG, C_POINTER));
      QUICHE_CONN_SEND_ACK_ELICITING_ON_PATH = downcall(
         "quiche_conn_send_ack_eliciting_on_path", FunctionDescriptor.of(C_LONG, C_POINTER, C_POINTER, C_INT, C_POINTER, C_INT)
      );
      QUICHE_H3_CONFIG_NEW = downcall("quiche_h3_config_new", FunctionDescriptor.of(C_POINTER));
      QUICHE_H3_CONFIG_SET_MAX_FIELD_SECTION_SIZE = downcall("quiche_h3_config_set_max_field_section_size", FunctionDescriptor.ofVoid(C_POINTER, C_LONG));
      QUICHE_H3_CONFIG_SET_QPACK_MAX_TABLE_CAPACITY = downcall("quiche_h3_config_set_qpack_max_table_capacity", FunctionDescriptor.ofVoid(C_POINTER, C_LONG));
      QUICHE_H3_CONFIG_SET_QPACK_BLOCKED_STREAMS = downcall("quiche_h3_config_set_qpack_blocked_streams", FunctionDescriptor.ofVoid(C_POINTER, C_LONG));
      QUICHE_H3_CONFIG_ENABLE_EXTENDED_CONNECT = downcall("quiche_h3_config_enable_extended_connect", FunctionDescriptor.ofVoid(C_POINTER, C_BOOL));
      QUICHE_H3_CONFIG_FREE = downcall("quiche_h3_config_free", FunctionDescriptor.ofVoid(C_POINTER));
      QUICHE_H3_CONN_NEW_WITH_TRANSPORT = downcall("quiche_h3_conn_new_with_transport", FunctionDescriptor.of(C_POINTER, C_POINTER, C_POINTER));
      QUICHE_H3_CONN_POLL = downcall("quiche_h3_conn_poll", FunctionDescriptor.of(C_LONG, C_POINTER, C_POINTER, C_POINTER));
      QUICHE_H3_EVENT_TYPE = downcall("quiche_h3_event_type", FunctionDescriptor.of(C_INT, C_POINTER));
      QUICHE_H3_EVENT_FOR_EACH_HEADER = downcall("quiche_h3_event_for_each_header", FunctionDescriptor.of(C_INT, C_POINTER, C_POINTER, C_POINTER));
      QUICHE_H3_FOR_EACH_SETTING = downcall("quiche_h3_for_each_setting", FunctionDescriptor.of(C_INT, C_POINTER, C_POINTER, C_POINTER));
      QUICHE_H3_EVENT_HEADERS_HAS_MORE_FRAMES = downcall("quiche_h3_event_headers_has_more_frames", FunctionDescriptor.of(C_BOOL, C_POINTER));
      QUICHE_H3_EXTENDED_CONNECT_ENABLED_BY_PEER = downcall("quiche_h3_extended_connect_enabled_by_peer", FunctionDescriptor.of(C_BOOL, C_POINTER));
      QUICHE_H3_EVENT_FREE = downcall("quiche_h3_event_free", FunctionDescriptor.ofVoid(C_POINTER));
      QUICHE_H3_SEND_REQUEST = downcall("quiche_h3_send_request", FunctionDescriptor.of(C_LONG, C_POINTER, C_POINTER, C_POINTER, C_LONG, C_BOOL));
      QUICHE_H3_SEND_RESPONSE = downcall("quiche_h3_send_response", FunctionDescriptor.of(C_INT, C_POINTER, C_POINTER, C_LONG, C_POINTER, C_LONG, C_BOOL));
      QUICHE_H3_SEND_RESPONSE_WITH_PRIORITY = downcall(
         "quiche_h3_send_response_with_priority", FunctionDescriptor.of(C_INT, C_POINTER, C_POINTER, C_LONG, C_POINTER, C_LONG, C_POINTER, C_BOOL)
      );
      QUICHE_H3_SEND_ADDITIONAL_HEADERS = downcall(
         "quiche_h3_send_additional_headers", FunctionDescriptor.of(C_INT, C_POINTER, C_POINTER, C_LONG, C_POINTER, C_LONG, C_BOOL, C_BOOL)
      );
      QUICHE_H3_SEND_BODY = downcall("quiche_h3_send_body", FunctionDescriptor.of(C_LONG, C_POINTER, C_POINTER, C_LONG, C_POINTER, C_LONG, C_BOOL));
      QUICHE_H3_RECV_BODY = downcall("quiche_h3_recv_body", FunctionDescriptor.of(C_LONG, C_POINTER, C_POINTER, C_LONG, C_POINTER, C_LONG));
      QUICHE_H3_SEND_GOAWAY = downcall("quiche_h3_send_goaway", FunctionDescriptor.of(C_INT, C_POINTER, C_POINTER, C_LONG));
      QUICHE_H3_PARSE_EXTENSIBLE_PRIORITY = downcall("quiche_h3_parse_extensible_priority", FunctionDescriptor.of(C_INT, C_POINTER, C_LONG, C_POINTER));
      QUICHE_H3_SEND_PRIORITY_UPDATE_FOR_REQUEST = downcall(
         "quiche_h3_send_priority_update_for_request", FunctionDescriptor.of(C_INT, C_POINTER, C_POINTER, C_LONG, C_POINTER)
      );
      QUICHE_H3_TAKE_LAST_PRIORITY_UPDATE = downcall(
         "quiche_h3_take_last_priority_update", FunctionDescriptor.of(C_INT, C_POINTER, C_LONG, C_POINTER, C_POINTER)
      );
      QUICHE_H3_DGRAM_ENABLED_BY_PEER = downcall("quiche_h3_dgram_enabled_by_peer", FunctionDescriptor.of(C_BOOL, C_POINTER, C_POINTER));
      QUICHE_H3_CONN_STATS = downcall("quiche_h3_conn_stats", FunctionDescriptor.ofVoid(C_POINTER, C_POINTER));
      QUICHE_H3_CONN_FREE = downcall("quiche_h3_conn_free", FunctionDescriptor.ofVoid(C_POINTER));
   }

   class="kw">public enum Platform {
      LINUX,
      MACOS,
      WINDOWS;

      Platform() {
      }
   }

   class="kw">public enum QuicheError {
      DONE(-1),
      BUFFER_TOO_SHORT(-2),
      UNKNOWN_VERSION(-3),
      INVALID_FRAME(-4),
      INVALID_PACKET(-5),
      INVALID_STATE(-6),
      INVALID_STREAM_STATE(-7),
      INVALID_TRANSPORT_PARAM(-8),
      CRYPTO_FAIL(-9),
      TLS_FAIL(-10),
      FLOW_CONTROL(-11),
      STREAM_LIMIT(-12),
      FINAL_SIZE(-13),
      CONGESTION_CONTROL(-14),
      STREAM_STOPPED(-15),
      STREAM_RESET(-16),
      ID_LIMIT(-17),
      OUT_OF_IDENTIFIERS(-18),
      KEY_UPDATE(-19),
      CRYPTO_BUFFER_EXCEEDED(-20),
      INVALID_ACK_RANGE(-21),
      OPTIMISTIC_ACK_DETECTED(-22);

      class="kw">private class="kw">static class="kw">final QuicheNative.QuicheError[] BY_CODE;
      class="kw">private class="kw">final int code;

      QuicheError(int nullxx) {
         this.code = nullxx;
      }

      class="kw">public int code() {
         class="kw">return this.code;
      }

      class="kw">public class="kw">static QuicheNative.QuicheError fromCode(int var0) {
         int var1 = -var0 - 1;
         class="kw">return var1 >= 0 && var1 < BY_CODE.length ? BY_CODE[var1] : null;
      }

      class="kw">static {
         QuicheNative.QuicheError[] var0 = values();
         BY_CODE = new QuicheNative.QuicheError[var0.length];

         for (QuicheNative.QuicheError var4 : var0) {
            BY_CODE[-var4.code - 1] = var4;
         }
      }
   }
}