/* automatically generated by rust-bindgen 0.66.1 */

#[repr(C)]
#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
pub struct __BindgenBitfieldUnit<Storage> {
    storage: Storage,
}
impl<Storage> __BindgenBitfieldUnit<Storage> {
    #[inline]
    pub const fn new(storage: Storage) -> Self {
        Self { storage }
    }
}
impl<Storage> __BindgenBitfieldUnit<Storage>
where
    Storage: AsRef<[u8]> + AsMut<[u8]>,
{
    #[inline]
    pub fn get_bit(&self, index: usize) -> bool {
        debug_assert!(index / 8 < self.storage.as_ref().len());
        let byte_index = index / 8;
        let byte = self.storage.as_ref()[byte_index];
        let bit_index = if cfg!(target_endian = "big") {
            7 - (index % 8)
        } else {
            index % 8
        };
        let mask = 1 << bit_index;
        byte & mask == mask
    }
    #[inline]
    pub fn set_bit(&mut self, index: usize, val: bool) {
        debug_assert!(index / 8 < self.storage.as_ref().len());
        let byte_index = index / 8;
        let byte = &mut self.storage.as_mut()[byte_index];
        let bit_index = if cfg!(target_endian = "big") {
            7 - (index % 8)
        } else {
            index % 8
        };
        let mask = 1 << bit_index;
        if val {
            *byte |= mask;
        } else {
            *byte &= !mask;
        }
    }
    #[inline]
    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
        debug_assert!(bit_width <= 64);
        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
        let mut val = 0;
        for i in 0..(bit_width as usize) {
            if self.get_bit(i + bit_offset) {
                let index = if cfg!(target_endian = "big") {
                    bit_width as usize - 1 - i
                } else {
                    i
                };
                val |= 1 << index;
            }
        }
        val
    }
    #[inline]
    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
        debug_assert!(bit_width <= 64);
        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
        for i in 0..(bit_width as usize) {
            let mask = 1 << i;
            let val_bit_is_set = val & mask == mask;
            let index = if cfg!(target_endian = "big") {
                bit_width as usize - 1 - i
            } else {
                i
            };
            self.set_bit(index + bit_offset, val_bit_is_set);
        }
    }
}
#[repr(C)]
#[derive(Default)]
pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
impl<T> __IncompleteArrayField<T> {
    #[inline]
    pub const fn new() -> Self {
        __IncompleteArrayField(::std::marker::PhantomData, [])
    }
    #[inline]
    pub fn as_ptr(&self) -> *const T {
        self as *const _ as *const T
    }
    #[inline]
    pub fn as_mut_ptr(&mut self) -> *mut T {
        self as *mut _ as *mut T
    }
    #[inline]
    pub unsafe fn as_slice(&self, len: usize) -> &[T] {
        ::std::slice::from_raw_parts(self.as_ptr(), len)
    }
    #[inline]
    pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
        ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
    }
}
impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        fmt.write_str("__IncompleteArrayField")
    }
}
pub const MAX_MEM_LEVEL: u32 = 9;
pub const MAX_WBITS: u32 = 15;
pub const _LIBC_LIMITS_H_: u32 = 1;
pub const _FEATURES_H: u32 = 1;
pub const _DEFAULT_SOURCE: u32 = 1;
pub const __GLIBC_USE_ISOC2X: u32 = 0;
pub const __USE_ISOC11: u32 = 1;
pub const __USE_ISOC99: u32 = 1;
pub const __USE_ISOC95: u32 = 1;
pub const __USE_POSIX_IMPLICITLY: u32 = 1;
pub const _POSIX_SOURCE: u32 = 1;
pub const _POSIX_C_SOURCE: u32 = 200809;
pub const __USE_POSIX: u32 = 1;
pub const __USE_POSIX2: u32 = 1;
pub const __USE_POSIX199309: u32 = 1;
pub const __USE_POSIX199506: u32 = 1;
pub const __USE_XOPEN2K: u32 = 1;
pub const __USE_XOPEN2K8: u32 = 1;
pub const _ATFILE_SOURCE: u32 = 1;
pub const __WORDSIZE: u32 = 64;
pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
pub const __SYSCALL_WORDSIZE: u32 = 64;
pub const __TIMESIZE: u32 = 64;
pub const __USE_MISC: u32 = 1;
pub const __USE_ATFILE: u32 = 1;
pub const __USE_FORTIFY_LEVEL: u32 = 0;
pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0;
pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0;
pub const _STDC_PREDEF_H: u32 = 1;
pub const __STDC_IEC_559__: u32 = 1;
pub const __STDC_IEC_60559_BFP__: u32 = 201404;
pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
pub const __STDC_IEC_60559_COMPLEX__: u32 = 201404;
pub const __STDC_ISO_10646__: u32 = 201706;
pub const __GNU_LIBRARY__: u32 = 6;
pub const __GLIBC__: u32 = 2;
pub const __GLIBC_MINOR__: u32 = 37;
pub const _SYS_CDEFS_H: u32 = 1;
pub const __glibc_c99_flexarr_available: u32 = 1;
pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0;
pub const __HAVE_GENERIC_SELECTION: u32 = 1;
pub const __GLIBC_USE_LIB_EXT2: u32 = 0;
pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0;
pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 0;
pub const __GLIBC_USE_IEC_60559_EXT: u32 = 0;
pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0;
pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0;
pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0;
pub const MB_LEN_MAX: u32 = 16;
pub const _BITS_POSIX1_LIM_H: u32 = 1;
pub const _POSIX_AIO_LISTIO_MAX: u32 = 2;
pub const _POSIX_AIO_MAX: u32 = 1;
pub const _POSIX_ARG_MAX: u32 = 4096;
pub const _POSIX_CHILD_MAX: u32 = 25;
pub const _POSIX_DELAYTIMER_MAX: u32 = 32;
pub const _POSIX_HOST_NAME_MAX: u32 = 255;
pub const _POSIX_LINK_MAX: u32 = 8;
pub const _POSIX_LOGIN_NAME_MAX: u32 = 9;
pub const _POSIX_MAX_CANON: u32 = 255;
pub const _POSIX_MAX_INPUT: u32 = 255;
pub const _POSIX_MQ_OPEN_MAX: u32 = 8;
pub const _POSIX_MQ_PRIO_MAX: u32 = 32;
pub const _POSIX_NAME_MAX: u32 = 14;
pub const _POSIX_NGROUPS_MAX: u32 = 8;
pub const _POSIX_OPEN_MAX: u32 = 20;
pub const _POSIX_PATH_MAX: u32 = 256;
pub const _POSIX_PIPE_BUF: u32 = 512;
pub const _POSIX_RE_DUP_MAX: u32 = 255;
pub const _POSIX_RTSIG_MAX: u32 = 8;
pub const _POSIX_SEM_NSEMS_MAX: u32 = 256;
pub const _POSIX_SEM_VALUE_MAX: u32 = 32767;
pub const _POSIX_SIGQUEUE_MAX: u32 = 32;
pub const _POSIX_SSIZE_MAX: u32 = 32767;
pub const _POSIX_STREAM_MAX: u32 = 8;
pub const _POSIX_SYMLINK_MAX: u32 = 255;
pub const _POSIX_SYMLOOP_MAX: u32 = 8;
pub const _POSIX_TIMER_MAX: u32 = 32;
pub const _POSIX_TTY_NAME_MAX: u32 = 9;
pub const _POSIX_TZNAME_MAX: u32 = 6;
pub const _POSIX_CLOCKRES_MIN: u32 = 20000000;
pub const NR_OPEN: u32 = 1024;
pub const NGROUPS_MAX: u32 = 65536;
pub const ARG_MAX: u32 = 131072;
pub const LINK_MAX: u32 = 127;
pub const MAX_CANON: u32 = 255;
pub const MAX_INPUT: u32 = 255;
pub const NAME_MAX: u32 = 255;
pub const PATH_MAX: u32 = 4096;
pub const PIPE_BUF: u32 = 4096;
pub const XATTR_NAME_MAX: u32 = 255;
pub const XATTR_SIZE_MAX: u32 = 65536;
pub const XATTR_LIST_MAX: u32 = 65536;
pub const RTSIG_MAX: u32 = 32;
pub const _POSIX_THREAD_KEYS_MAX: u32 = 128;
pub const PTHREAD_KEYS_MAX: u32 = 1024;
pub const _POSIX_THREAD_DESTRUCTOR_ITERATIONS: u32 = 4;
pub const PTHREAD_DESTRUCTOR_ITERATIONS: u32 = 4;
pub const _POSIX_THREAD_THREADS_MAX: u32 = 64;
pub const AIO_PRIO_DELTA_MAX: u32 = 20;
pub const PTHREAD_STACK_MIN: u32 = 16384;
pub const DELAYTIMER_MAX: u32 = 2147483647;
pub const TTY_NAME_MAX: u32 = 32;
pub const LOGIN_NAME_MAX: u32 = 256;
pub const HOST_NAME_MAX: u32 = 64;
pub const MQ_PRIO_MAX: u32 = 32768;
pub const SEM_VALUE_MAX: u32 = 2147483647;
pub const _BITS_POSIX2_LIM_H: u32 = 1;
pub const _POSIX2_BC_BASE_MAX: u32 = 99;
pub const _POSIX2_BC_DIM_MAX: u32 = 2048;
pub const _POSIX2_BC_SCALE_MAX: u32 = 99;
pub const _POSIX2_BC_STRING_MAX: u32 = 1000;
pub const _POSIX2_COLL_WEIGHTS_MAX: u32 = 2;
pub const _POSIX2_EXPR_NEST_MAX: u32 = 32;
pub const _POSIX2_LINE_MAX: u32 = 2048;
pub const _POSIX2_RE_DUP_MAX: u32 = 255;
pub const _POSIX2_CHARCLASS_NAME_MAX: u32 = 14;
pub const BC_BASE_MAX: u32 = 99;
pub const BC_DIM_MAX: u32 = 2048;
pub const BC_SCALE_MAX: u32 = 99;
pub const BC_STRING_MAX: u32 = 1000;
pub const COLL_WEIGHTS_MAX: u32 = 255;
pub const EXPR_NEST_MAX: u32 = 32;
pub const LINE_MAX: u32 = 2048;
pub const CHARCLASS_NAME_MAX: u32 = 2048;
pub const RE_DUP_MAX: u32 = 32767;
pub const _SYS_TYPES_H: u32 = 1;
pub const _BITS_TYPES_H: u32 = 1;
pub const _BITS_TYPESIZES_H: u32 = 1;
pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
pub const __INO_T_MATCHES_INO64_T: u32 = 1;
pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1;
pub const __STATFS_MATCHES_STATFS64: u32 = 1;
pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1;
pub const __FD_SETSIZE: u32 = 1024;
pub const _BITS_TIME64_H: u32 = 1;
pub const __clock_t_defined: u32 = 1;
pub const __clockid_t_defined: u32 = 1;
pub const __time_t_defined: u32 = 1;
pub const __timer_t_defined: u32 = 1;
pub const _BITS_STDINT_INTN_H: u32 = 1;
pub const __BIT_TYPES_DEFINED__: u32 = 1;
pub const _ENDIAN_H: u32 = 1;
pub const _BITS_ENDIAN_H: u32 = 1;
pub const __LITTLE_ENDIAN: u32 = 1234;
pub const __BIG_ENDIAN: u32 = 4321;
pub const __PDP_ENDIAN: u32 = 3412;
pub const _BITS_ENDIANNESS_H: u32 = 1;
pub const __BYTE_ORDER: u32 = 1234;
pub const __FLOAT_WORD_ORDER: u32 = 1234;
pub const LITTLE_ENDIAN: u32 = 1234;
pub const BIG_ENDIAN: u32 = 4321;
pub const PDP_ENDIAN: u32 = 3412;
pub const BYTE_ORDER: u32 = 1234;
pub const _BITS_BYTESWAP_H: u32 = 1;
pub const _BITS_UINTN_IDENTITY_H: u32 = 1;
pub const _SYS_SELECT_H: u32 = 1;
pub const __sigset_t_defined: u32 = 1;
pub const __timeval_defined: u32 = 1;
pub const _STRUCT_TIMESPEC: u32 = 1;
pub const FD_SETSIZE: u32 = 1024;
pub const _BITS_PTHREADTYPES_COMMON_H: u32 = 1;
pub const _THREAD_SHARED_TYPES_H: u32 = 1;
pub const _BITS_PTHREADTYPES_ARCH_H: u32 = 1;
pub const __SIZEOF_PTHREAD_MUTEX_T: u32 = 40;
pub const __SIZEOF_PTHREAD_ATTR_T: u32 = 56;
pub const __SIZEOF_PTHREAD_RWLOCK_T: u32 = 56;
pub const __SIZEOF_PTHREAD_BARRIER_T: u32 = 32;
pub const __SIZEOF_PTHREAD_MUTEXATTR_T: u32 = 4;
pub const __SIZEOF_PTHREAD_COND_T: u32 = 48;
pub const __SIZEOF_PTHREAD_CONDATTR_T: u32 = 4;
pub const __SIZEOF_PTHREAD_RWLOCKATTR_T: u32 = 8;
pub const __SIZEOF_PTHREAD_BARRIERATTR_T: u32 = 4;
pub const _THREAD_MUTEX_INTERNAL_H: u32 = 1;
pub const __PTHREAD_MUTEX_HAVE_PREV: u32 = 1;
pub const __have_pthread_attr_t: u32 = 1;
pub const __GNUC_VA_LIST: u32 = 1;
pub const _UNISTD_H: u32 = 1;
pub const _POSIX_VERSION: u32 = 200809;
pub const __POSIX2_THIS_VERSION: u32 = 200809;
pub const _POSIX2_VERSION: u32 = 200809;
pub const _POSIX2_C_VERSION: u32 = 200809;
pub const _POSIX2_C_BIND: u32 = 200809;
pub const _POSIX2_C_DEV: u32 = 200809;
pub const _POSIX2_SW_DEV: u32 = 200809;
pub const _POSIX2_LOCALEDEF: u32 = 200809;
pub const _XOPEN_VERSION: u32 = 700;
pub const _XOPEN_XCU_VERSION: u32 = 4;
pub const _XOPEN_XPG2: u32 = 1;
pub const _XOPEN_XPG3: u32 = 1;
pub const _XOPEN_XPG4: u32 = 1;
pub const _XOPEN_UNIX: u32 = 1;
pub const _XOPEN_ENH_I18N: u32 = 1;
pub const _XOPEN_LEGACY: u32 = 1;
pub const _BITS_POSIX_OPT_H: u32 = 1;
pub const _POSIX_JOB_CONTROL: u32 = 1;
pub const _POSIX_SAVED_IDS: u32 = 1;
pub const _POSIX_PRIORITY_SCHEDULING: u32 = 200809;
pub const _POSIX_SYNCHRONIZED_IO: u32 = 200809;
pub const _POSIX_FSYNC: u32 = 200809;
pub const _POSIX_MAPPED_FILES: u32 = 200809;
pub const _POSIX_MEMLOCK: u32 = 200809;
pub const _POSIX_MEMLOCK_RANGE: u32 = 200809;
pub const _POSIX_MEMORY_PROTECTION: u32 = 200809;
pub const _POSIX_CHOWN_RESTRICTED: u32 = 0;
pub const _POSIX_VDISABLE: u8 = 0u8;
pub const _POSIX_NO_TRUNC: u32 = 1;
pub const _XOPEN_REALTIME: u32 = 1;
pub const _XOPEN_REALTIME_THREADS: u32 = 1;
pub const _XOPEN_SHM: u32 = 1;
pub const _POSIX_THREADS: u32 = 200809;
pub const _POSIX_REENTRANT_FUNCTIONS: u32 = 1;
pub const _POSIX_THREAD_SAFE_FUNCTIONS: u32 = 200809;
pub const _POSIX_THREAD_PRIORITY_SCHEDULING: u32 = 200809;
pub const _POSIX_THREAD_ATTR_STACKSIZE: u32 = 200809;
pub const _POSIX_THREAD_ATTR_STACKADDR: u32 = 200809;
pub const _POSIX_THREAD_PRIO_INHERIT: u32 = 200809;
pub const _POSIX_THREAD_PRIO_PROTECT: u32 = 200809;
pub const _POSIX_THREAD_ROBUST_PRIO_INHERIT: u32 = 200809;
pub const _POSIX_THREAD_ROBUST_PRIO_PROTECT: i32 = -1;
pub const _POSIX_SEMAPHORES: u32 = 200809;
pub const _POSIX_REALTIME_SIGNALS: u32 = 200809;
pub const _POSIX_ASYNCHRONOUS_IO: u32 = 200809;
pub const _POSIX_ASYNC_IO: u32 = 1;
pub const _LFS_ASYNCHRONOUS_IO: u32 = 1;
pub const _POSIX_PRIORITIZED_IO: u32 = 200809;
pub const _LFS64_ASYNCHRONOUS_IO: u32 = 1;
pub const _LFS_LARGEFILE: u32 = 1;
pub const _LFS64_LARGEFILE: u32 = 1;
pub const _LFS64_STDIO: u32 = 1;
pub const _POSIX_SHARED_MEMORY_OBJECTS: u32 = 200809;
pub const _POSIX_CPUTIME: u32 = 0;
pub const _POSIX_THREAD_CPUTIME: u32 = 0;
pub const _POSIX_REGEXP: u32 = 1;
pub const _POSIX_READER_WRITER_LOCKS: u32 = 200809;
pub const _POSIX_SHELL: u32 = 1;
pub const _POSIX_TIMEOUTS: u32 = 200809;
pub const _POSIX_SPIN_LOCKS: u32 = 200809;
pub const _POSIX_SPAWN: u32 = 200809;
pub const _POSIX_TIMERS: u32 = 200809;
pub const _POSIX_BARRIERS: u32 = 200809;
pub const _POSIX_MESSAGE_PASSING: u32 = 200809;
pub const _POSIX_THREAD_PROCESS_SHARED: u32 = 200809;
pub const _POSIX_MONOTONIC_CLOCK: u32 = 0;
pub const _POSIX_CLOCK_SELECTION: u32 = 200809;
pub const _POSIX_ADVISORY_INFO: u32 = 200809;
pub const _POSIX_IPV6: u32 = 200809;
pub const _POSIX_RAW_SOCKETS: u32 = 200809;
pub const _POSIX2_CHAR_TERM: u32 = 200809;
pub const _POSIX_SPORADIC_SERVER: i32 = -1;
pub const _POSIX_THREAD_SPORADIC_SERVER: i32 = -1;
pub const _POSIX_TRACE: i32 = -1;
pub const _POSIX_TRACE_EVENT_FILTER: i32 = -1;
pub const _POSIX_TRACE_INHERIT: i32 = -1;
pub const _POSIX_TRACE_LOG: i32 = -1;
pub const _POSIX_TYPED_MEMORY_OBJECTS: i32 = -1;
pub const _POSIX_V7_LPBIG_OFFBIG: i32 = -1;
pub const _POSIX_V6_LPBIG_OFFBIG: i32 = -1;
pub const _XBS5_LPBIG_OFFBIG: i32 = -1;
pub const _POSIX_V7_LP64_OFF64: u32 = 1;
pub const _POSIX_V6_LP64_OFF64: u32 = 1;
pub const _XBS5_LP64_OFF64: u32 = 1;
#[allow(unsafe_code)]
pub const __ILP32_OFF32_CFLAGS: &::std::ffi::CStr =
    unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"-m32\0") };
#[allow(unsafe_code)]
pub const __ILP32_OFF32_LDFLAGS: &::std::ffi::CStr =
    unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"-m32\0") };
#[allow(unsafe_code)]
pub const __ILP32_OFFBIG_CFLAGS: &::std::ffi::CStr = unsafe {
    ::std::ffi::CStr::from_bytes_with_nul_unchecked(
        b"-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64\0",
    )
};
#[allow(unsafe_code)]
pub const __ILP32_OFFBIG_LDFLAGS: &::std::ffi::CStr =
    unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"-m32\0") };
#[allow(unsafe_code)]
pub const __LP64_OFF64_CFLAGS: &::std::ffi::CStr =
    unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"-m64\0") };
#[allow(unsafe_code)]
pub const __LP64_OFF64_LDFLAGS: &::std::ffi::CStr =
    unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"-m64\0") };
pub const STDIN_FILENO: u32 = 0;
pub const STDOUT_FILENO: u32 = 1;
pub const STDERR_FILENO: u32 = 2;
pub const R_OK: u32 = 4;
pub const W_OK: u32 = 2;
pub const X_OK: u32 = 1;
pub const F_OK: u32 = 0;
pub const SEEK_SET: u32 = 0;
pub const SEEK_CUR: u32 = 1;
pub const SEEK_END: u32 = 2;
pub const L_SET: u32 = 0;
pub const L_INCR: u32 = 1;
pub const L_XTND: u32 = 2;
pub const _GETOPT_POSIX_H: u32 = 1;
pub const _GETOPT_CORE_H: u32 = 1;
pub const F_ULOCK: u32 = 0;
pub const F_LOCK: u32 = 1;
pub const F_TLOCK: u32 = 2;
pub const F_TEST: u32 = 3;
#[allow(unsafe_code)]
pub const ZLIB_VERSION: &::std::ffi::CStr =
    unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1.2.13\0") };
pub const ZLIB_VERNUM: u32 = 4816;
pub const ZLIB_VER_MAJOR: u32 = 1;
pub const ZLIB_VER_MINOR: u32 = 2;
pub const ZLIB_VER_REVISION: u32 = 13;
pub const ZLIB_VER_SUBREVISION: u32 = 0;
pub const Z_NO_FLUSH: u32 = 0;
pub const Z_PARTIAL_FLUSH: u32 = 1;
pub const Z_SYNC_FLUSH: u32 = 2;
pub const Z_FULL_FLUSH: u32 = 3;
pub const Z_FINISH: u32 = 4;
pub const Z_BLOCK: u32 = 5;
pub const Z_TREES: u32 = 6;
pub const Z_OK: u32 = 0;
pub const Z_STREAM_END: u32 = 1;
pub const Z_NEED_DICT: u32 = 2;
pub const Z_ERRNO: i32 = -1;
pub const Z_STREAM_ERROR: i32 = -2;
pub const Z_DATA_ERROR: i32 = -3;
pub const Z_MEM_ERROR: i32 = -4;
pub const Z_BUF_ERROR: i32 = -5;
pub const Z_VERSION_ERROR: i32 = -6;
pub const Z_NO_COMPRESSION: u32 = 0;
pub const Z_BEST_SPEED: u32 = 1;
pub const Z_BEST_COMPRESSION: u32 = 9;
pub const Z_DEFAULT_COMPRESSION: i32 = -1;
pub const Z_FILTERED: u32 = 1;
pub const Z_HUFFMAN_ONLY: u32 = 2;
pub const Z_RLE: u32 = 3;
pub const Z_FIXED: u32 = 4;
pub const Z_DEFAULT_STRATEGY: u32 = 0;
pub const Z_BINARY: u32 = 0;
pub const Z_TEXT: u32 = 1;
pub const Z_ASCII: u32 = 1;
pub const Z_UNKNOWN: u32 = 2;
pub const Z_DEFLATED: u32 = 8;
pub const Z_NULL: u32 = 0;
pub const _STDLIB_H: u32 = 1;
pub const WNOHANG: u32 = 1;
pub const WUNTRACED: u32 = 2;
pub const WSTOPPED: u32 = 2;
pub const WEXITED: u32 = 4;
pub const WCONTINUED: u32 = 8;
pub const WNOWAIT: u32 = 16777216;
pub const __WNOTHREAD: u32 = 536870912;
pub const __WALL: u32 = 1073741824;
pub const __WCLONE: u32 = 2147483648;
pub const __W_CONTINUED: u32 = 65535;
pub const __WCOREFLAG: u32 = 128;
pub const __HAVE_FLOAT128: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT128: u32 = 0;
pub const __HAVE_FLOAT64X: u32 = 1;
pub const __HAVE_FLOAT64X_LONG_DOUBLE: u32 = 1;
pub const __HAVE_FLOAT16: u32 = 0;
pub const __HAVE_FLOAT32: u32 = 1;
pub const __HAVE_FLOAT64: u32 = 1;
pub const __HAVE_FLOAT32X: u32 = 1;
pub const __HAVE_FLOAT128X: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT16: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT32: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT64: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT32X: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT64X: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT128X: u32 = 0;
pub const __HAVE_FLOATN_NOT_TYPEDEF: u32 = 0;
pub const __ldiv_t_defined: u32 = 1;
pub const __lldiv_t_defined: u32 = 1;
pub const RAND_MAX: u32 = 2147483647;
pub const EXIT_FAILURE: u32 = 1;
pub const EXIT_SUCCESS: u32 = 0;
pub const _ALLOCA_H: u32 = 1;
pub const _STRING_H: u32 = 1;
pub const _BITS_TYPES_LOCALE_T_H: u32 = 1;
pub const _BITS_TYPES___LOCALE_T_H: u32 = 1;
pub const _STRINGS_H: u32 = 1;
pub const _STDINT_H: u32 = 1;
pub const _BITS_WCHAR_H: u32 = 1;
pub const _BITS_STDINT_UINTN_H: u32 = 1;
pub const INT8_MIN: i32 = -128;
pub const INT16_MIN: i32 = -32768;
pub const INT32_MIN: i32 = -2147483648;
pub const INT8_MAX: u32 = 127;
pub const INT16_MAX: u32 = 32767;
pub const INT32_MAX: u32 = 2147483647;
pub const UINT8_MAX: u32 = 255;
pub const UINT16_MAX: u32 = 65535;
pub const UINT32_MAX: u32 = 4294967295;
pub const INT_LEAST8_MIN: i32 = -128;
pub const INT_LEAST16_MIN: i32 = -32768;
pub const INT_LEAST32_MIN: i32 = -2147483648;
pub const INT_LEAST8_MAX: u32 = 127;
pub const INT_LEAST16_MAX: u32 = 32767;
pub const INT_LEAST32_MAX: u32 = 2147483647;
pub const UINT_LEAST8_MAX: u32 = 255;
pub const UINT_LEAST16_MAX: u32 = 65535;
pub const UINT_LEAST32_MAX: u32 = 4294967295;
pub const INT_FAST8_MIN: i32 = -128;
pub const INT_FAST16_MIN: i64 = -9223372036854775808;
pub const INT_FAST32_MIN: i64 = -9223372036854775808;
pub const INT_FAST8_MAX: u32 = 127;
pub const INT_FAST16_MAX: u64 = 9223372036854775807;
pub const INT_FAST32_MAX: u64 = 9223372036854775807;
pub const UINT_FAST8_MAX: u32 = 255;
pub const UINT_FAST16_MAX: i32 = -1;
pub const UINT_FAST32_MAX: i32 = -1;
pub const INTPTR_MIN: i64 = -9223372036854775808;
pub const INTPTR_MAX: u64 = 9223372036854775807;
pub const UINTPTR_MAX: i32 = -1;
pub const PTRDIFF_MIN: i64 = -9223372036854775808;
pub const PTRDIFF_MAX: u64 = 9223372036854775807;
pub const SIG_ATOMIC_MIN: i32 = -2147483648;
pub const SIG_ATOMIC_MAX: u32 = 2147483647;
pub const SIZE_MAX: i32 = -1;
pub const WINT_MIN: u32 = 0;
pub const WINT_MAX: u32 = 4294967295;
#[allow(unsafe_code)]
pub const AC_VERSION_KHASH_H: &::std::ffi::CStr =
    unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"0.2.8\0") };
pub const _CTYPE_H: u32 = 1;
pub const KS_SEP_SPACE: u32 = 0;
pub const KS_SEP_TAB: u32 = 1;
pub const KS_SEP_LINE: u32 = 2;
pub const KS_SEP_MAX: u32 = 2;
pub const KSW_NEG_INF: i32 = -1073741824;
pub const KSW_EZ_SCORE_ONLY: u32 = 1;
pub const KSW_EZ_RIGHT: u32 = 2;
pub const KSW_EZ_GENERIC_SC: u32 = 4;
pub const KSW_EZ_APPROX_MAX: u32 = 8;
pub const KSW_EZ_APPROX_DROP: u32 = 16;
pub const KSW_EZ_EXTZ_ONLY: u32 = 64;
pub const KSW_EZ_REV_CIGAR: u32 = 128;
pub const KSW_EZ_SPLICE_FOR: u32 = 256;
pub const KSW_EZ_SPLICE_REV: u32 = 512;
pub const KSW_EZ_SPLICE_FLANK: u32 = 1024;
pub const KSW_CIGAR_MATCH: u32 = 0;
pub const KSW_CIGAR_INS: u32 = 1;
pub const KSW_CIGAR_DEL: u32 = 2;
pub const KSW_CIGAR_N_SKIP: u32 = 3;
pub const _ASSERT_H: u32 = 1;
pub const _STDIO_H: u32 = 1;
pub const _____fpos_t_defined: u32 = 1;
pub const ____mbstate_t_defined: u32 = 1;
pub const _____fpos64_t_defined: u32 = 1;
pub const ____FILE_defined: u32 = 1;
pub const __FILE_defined: u32 = 1;
pub const __struct_FILE_defined: u32 = 1;
pub const _IO_EOF_SEEN: u32 = 16;
pub const _IO_ERR_SEEN: u32 = 32;
pub const _IO_USER_LOCK: u32 = 32768;
pub const _IOFBF: u32 = 0;
pub const _IOLBF: u32 = 1;
pub const _IONBF: u32 = 2;
pub const BUFSIZ: u32 = 8192;
pub const EOF: i32 = -1;
#[allow(unsafe_code)]
pub const P_tmpdir: &::std::ffi::CStr =
    unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"/tmp\0") };
pub const _BITS_STDIO_LIM_H: u32 = 1;
pub const L_tmpnam: u32 = 20;
pub const TMP_MAX: u32 = 238328;
pub const FILENAME_MAX: u32 = 4096;
pub const L_ctermid: u32 = 9;
pub const FOPEN_MAX: u32 = 16;
pub const MM_F_NO_DIAG: u32 = 1;
pub const MM_F_NO_DUAL: u32 = 2;
pub const MM_F_CIGAR: u32 = 4;
pub const MM_F_OUT_SAM: u32 = 8;
pub const MM_F_NO_QUAL: u32 = 16;
pub const MM_F_OUT_CG: u32 = 32;
pub const MM_F_OUT_CS: u32 = 64;
pub const MM_F_SPLICE: u32 = 128;
pub const MM_F_SPLICE_FOR: u32 = 256;
pub const MM_F_SPLICE_REV: u32 = 512;
pub const MM_F_NO_LJOIN: u32 = 1024;
pub const MM_F_OUT_CS_LONG: u32 = 2048;
pub const MM_F_SR: u32 = 4096;
pub const MM_F_FRAG_MODE: u32 = 8192;
pub const MM_F_NO_PRINT_2ND: u32 = 16384;
pub const MM_F_2_IO_THREADS: u32 = 32768;
pub const MM_F_LONG_CIGAR: u32 = 65536;
pub const MM_F_INDEPEND_SEG: u32 = 131072;
pub const MM_F_SPLICE_FLANK: u32 = 262144;
pub const MM_F_SOFTCLIP: u32 = 524288;
pub const MM_F_FOR_ONLY: u32 = 1048576;
pub const MM_F_REV_ONLY: u32 = 2097152;
pub const MM_F_HEAP_SORT: u32 = 4194304;
pub const MM_F_ALL_CHAINS: u32 = 8388608;
pub const MM_F_OUT_MD: u32 = 16777216;
pub const MM_F_COPY_COMMENT: u32 = 33554432;
pub const MM_F_EQX: u32 = 67108864;
pub const MM_F_PAF_NO_HIT: u32 = 134217728;
pub const MM_F_NO_END_FLT: u32 = 268435456;
pub const MM_F_HARD_MLEVEL: u32 = 536870912;
pub const MM_F_SAM_HIT_ONLY: u32 = 1073741824;
pub const MM_F_RMQ: u32 = 2147483648;
pub const MM_F_QSTRAND: u64 = 4294967296;
pub const MM_F_NO_INV: u64 = 8589934592;
pub const MM_F_NO_HASH_NAME: u64 = 17179869184;
pub const MM_I_HPC: u32 = 1;
pub const MM_I_NO_SEQ: u32 = 2;
pub const MM_I_NO_NAME: u32 = 4;
#[allow(unsafe_code)]
pub const MM_IDX_MAGIC: &::std::ffi::CStr =
    unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"MMI\x02\0") };
pub const MM_MAX_SEG: u32 = 255;
pub const MM_CIGAR_MATCH: u32 = 0;
pub const MM_CIGAR_INS: u32 = 1;
pub const MM_CIGAR_DEL: u32 = 2;
pub const MM_CIGAR_N_SKIP: u32 = 3;
pub const MM_CIGAR_SOFTCLIP: u32 = 4;
pub const MM_CIGAR_HARDCLIP: u32 = 5;
pub const MM_CIGAR_PADDING: u32 = 6;
pub const MM_CIGAR_EQ_MATCH: u32 = 7;
pub const MM_CIGAR_X_MISMATCH: u32 = 8;
#[allow(unsafe_code)]
pub const MM_CIGAR_STR: &::std::ffi::CStr =
    unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"MIDNSHP=XB\0") };
pub const MM_PARENT_UNSET: i32 = -1;
pub const MM_PARENT_TMP_PRI: i32 = -2;
pub const MM_DBG_NO_KALLOC: u32 = 1;
pub const MM_DBG_PRINT_QNAME: u32 = 2;
pub const MM_DBG_PRINT_SEED: u32 = 4;
pub const MM_DBG_PRINT_ALN_SEQ: u32 = 8;
pub const MM_DBG_PRINT_CHAIN: u32 = 16;
pub const MM_SEED_LONG_JOIN: u64 = 1099511627776;
pub const MM_SEED_IGNORE: u64 = 2199023255552;
pub const MM_SEED_TANDEM: u64 = 4398046511104;
pub const MM_SEED_SELF: u64 = 8796093022208;
pub const MM_SEED_SEG_SHIFT: u32 = 48;
pub const MM_SEED_SEG_MASK: u64 = 71776119061217280;
pub const ko_no_argument: u32 = 0;
pub const ko_required_argument: u32 = 1;
pub const ko_optional_argument: u32 = 2;
pub const KRMQ_MAX_DEPTH: u32 = 64;
pub const RS_MIN_SIZE: u32 = 64;
pub const RS_MAX_BITS: u32 = 8;
pub type wchar_t = ::std::os::raw::c_int;
#[repr(C)]
#[repr(align(16))]
#[derive(Debug, Copy, Clone)]
pub struct max_align_t {
    pub __clang_max_align_nonce1: ::std::os::raw::c_longlong,
    pub __bindgen_padding_0: u64,
    pub __clang_max_align_nonce2: u128,
}
#[test]
fn bindgen_test_layout_max_align_t() {
    const UNINIT: ::std::mem::MaybeUninit<max_align_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<max_align_t>(),
        32usize,
        concat!("Size of: ", stringify!(max_align_t))
    );
    assert_eq!(
        ::std::mem::align_of::<max_align_t>(),
        16usize,
        concat!("Alignment of ", stringify!(max_align_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce1) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(max_align_t),
            "::",
            stringify!(__clang_max_align_nonce1)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__clang_max_align_nonce2) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(max_align_t),
            "::",
            stringify!(__clang_max_align_nonce2)
        )
    );
}
pub type z_size_t = usize;
pub type Byte = ::std::os::raw::c_uchar;
pub type uInt = ::std::os::raw::c_uint;
pub type uLong = ::std::os::raw::c_ulong;
pub type Bytef = Byte;
pub type charf = ::std::os::raw::c_char;
pub type intf = ::std::os::raw::c_int;
pub type uIntf = uInt;
pub type uLongf = uLong;
pub type voidpc = *const ::std::os::raw::c_void;
pub type voidpf = *mut ::std::os::raw::c_void;
pub type voidp = *mut ::std::os::raw::c_void;
pub type z_crc_t = ::std::os::raw::c_uint;
pub type __u_char = ::std::os::raw::c_uchar;
pub type __u_short = ::std::os::raw::c_ushort;
pub type __u_int = ::std::os::raw::c_uint;
pub type __u_long = ::std::os::raw::c_ulong;
pub type __int8_t = ::std::os::raw::c_schar;
pub type __uint8_t = ::std::os::raw::c_uchar;
pub type __int16_t = ::std::os::raw::c_short;
pub type __uint16_t = ::std::os::raw::c_ushort;
pub type __int32_t = ::std::os::raw::c_int;
pub type __uint32_t = ::std::os::raw::c_uint;
pub type __int64_t = ::std::os::raw::c_long;
pub type __uint64_t = ::std::os::raw::c_ulong;
pub type __int_least8_t = __int8_t;
pub type __uint_least8_t = __uint8_t;
pub type __int_least16_t = __int16_t;
pub type __uint_least16_t = __uint16_t;
pub type __int_least32_t = __int32_t;
pub type __uint_least32_t = __uint32_t;
pub type __int_least64_t = __int64_t;
pub type __uint_least64_t = __uint64_t;
pub type __quad_t = ::std::os::raw::c_long;
pub type __u_quad_t = ::std::os::raw::c_ulong;
pub type __intmax_t = ::std::os::raw::c_long;
pub type __uintmax_t = ::std::os::raw::c_ulong;
pub type __dev_t = ::std::os::raw::c_ulong;
pub type __uid_t = ::std::os::raw::c_uint;
pub type __gid_t = ::std::os::raw::c_uint;
pub type __ino_t = ::std::os::raw::c_ulong;
pub type __ino64_t = ::std::os::raw::c_ulong;
pub type __mode_t = ::std::os::raw::c_uint;
pub type __nlink_t = ::std::os::raw::c_ulong;
pub type __off_t = ::std::os::raw::c_long;
pub type __off64_t = ::std::os::raw::c_long;
pub type __pid_t = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __fsid_t {
    pub __val: [::std::os::raw::c_int; 2usize],
}
#[test]
fn bindgen_test_layout___fsid_t() {
    const UNINIT: ::std::mem::MaybeUninit<__fsid_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<__fsid_t>(),
        8usize,
        concat!("Size of: ", stringify!(__fsid_t))
    );
    assert_eq!(
        ::std::mem::align_of::<__fsid_t>(),
        4usize,
        concat!("Alignment of ", stringify!(__fsid_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__fsid_t),
            "::",
            stringify!(__val)
        )
    );
}
pub type __clock_t = ::std::os::raw::c_long;
pub type __rlim_t = ::std::os::raw::c_ulong;
pub type __rlim64_t = ::std::os::raw::c_ulong;
pub type __id_t = ::std::os::raw::c_uint;
pub type __time_t = ::std::os::raw::c_long;
pub type __useconds_t = ::std::os::raw::c_uint;
pub type __suseconds_t = ::std::os::raw::c_long;
pub type __suseconds64_t = ::std::os::raw::c_long;
pub type __daddr_t = ::std::os::raw::c_int;
pub type __key_t = ::std::os::raw::c_int;
pub type __clockid_t = ::std::os::raw::c_int;
pub type __timer_t = *mut ::std::os::raw::c_void;
pub type __blksize_t = ::std::os::raw::c_long;
pub type __blkcnt_t = ::std::os::raw::c_long;
pub type __blkcnt64_t = ::std::os::raw::c_long;
pub type __fsblkcnt_t = ::std::os::raw::c_ulong;
pub type __fsblkcnt64_t = ::std::os::raw::c_ulong;
pub type __fsfilcnt_t = ::std::os::raw::c_ulong;
pub type __fsfilcnt64_t = ::std::os::raw::c_ulong;
pub type __fsword_t = ::std::os::raw::c_long;
pub type __ssize_t = ::std::os::raw::c_long;
pub type __syscall_slong_t = ::std::os::raw::c_long;
pub type __syscall_ulong_t = ::std::os::raw::c_ulong;
pub type __loff_t = __off64_t;
pub type __caddr_t = *mut ::std::os::raw::c_char;
pub type __intptr_t = ::std::os::raw::c_long;
pub type __socklen_t = ::std::os::raw::c_uint;
pub type __sig_atomic_t = ::std::os::raw::c_int;
pub type u_char = __u_char;
pub type u_short = __u_short;
pub type u_int = __u_int;
pub type u_long = __u_long;
pub type quad_t = __quad_t;
pub type u_quad_t = __u_quad_t;
pub type fsid_t = __fsid_t;
pub type loff_t = __loff_t;
pub type ino_t = __ino_t;
pub type dev_t = __dev_t;
pub type gid_t = __gid_t;
pub type mode_t = __mode_t;
pub type nlink_t = __nlink_t;
pub type uid_t = __uid_t;
pub type off_t = __off_t;
pub type pid_t = __pid_t;
pub type id_t = __id_t;
pub type daddr_t = __daddr_t;
pub type caddr_t = __caddr_t;
pub type key_t = __key_t;
pub type clock_t = __clock_t;
pub type clockid_t = __clockid_t;
pub type time_t = __time_t;
pub type timer_t = __timer_t;
pub type ulong = ::std::os::raw::c_ulong;
pub type ushort = ::std::os::raw::c_ushort;
pub type uint = ::std::os::raw::c_uint;
pub type u_int8_t = __uint8_t;
pub type u_int16_t = __uint16_t;
pub type u_int32_t = __uint32_t;
pub type u_int64_t = __uint64_t;
pub type register_t = ::std::os::raw::c_long;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __sigset_t {
    pub __val: [::std::os::raw::c_ulong; 16usize],
}
#[test]
fn bindgen_test_layout___sigset_t() {
    const UNINIT: ::std::mem::MaybeUninit<__sigset_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<__sigset_t>(),
        128usize,
        concat!("Size of: ", stringify!(__sigset_t))
    );
    assert_eq!(
        ::std::mem::align_of::<__sigset_t>(),
        8usize,
        concat!("Alignment of ", stringify!(__sigset_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__val) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__sigset_t),
            "::",
            stringify!(__val)
        )
    );
}
pub type sigset_t = __sigset_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct timeval {
    pub tv_sec: __time_t,
    pub tv_usec: __suseconds_t,
}
#[test]
fn bindgen_test_layout_timeval() {
    const UNINIT: ::std::mem::MaybeUninit<timeval> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<timeval>(),
        16usize,
        concat!("Size of: ", stringify!(timeval))
    );
    assert_eq!(
        ::std::mem::align_of::<timeval>(),
        8usize,
        concat!("Alignment of ", stringify!(timeval))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(timeval),
            "::",
            stringify!(tv_sec)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).tv_usec) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(timeval),
            "::",
            stringify!(tv_usec)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct timespec {
    pub tv_sec: __time_t,
    pub tv_nsec: __syscall_slong_t,
}
#[test]
fn bindgen_test_layout_timespec() {
    const UNINIT: ::std::mem::MaybeUninit<timespec> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<timespec>(),
        16usize,
        concat!("Size of: ", stringify!(timespec))
    );
    assert_eq!(
        ::std::mem::align_of::<timespec>(),
        8usize,
        concat!("Alignment of ", stringify!(timespec))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).tv_sec) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(timespec),
            "::",
            stringify!(tv_sec)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).tv_nsec) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(timespec),
            "::",
            stringify!(tv_nsec)
        )
    );
}
pub type suseconds_t = __suseconds_t;
pub type __fd_mask = ::std::os::raw::c_long;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct fd_set {
    pub __fds_bits: [__fd_mask; 16usize],
}
#[test]
fn bindgen_test_layout_fd_set() {
    const UNINIT: ::std::mem::MaybeUninit<fd_set> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<fd_set>(),
        128usize,
        concat!("Size of: ", stringify!(fd_set))
    );
    assert_eq!(
        ::std::mem::align_of::<fd_set>(),
        8usize,
        concat!("Alignment of ", stringify!(fd_set))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__fds_bits) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(fd_set),
            "::",
            stringify!(__fds_bits)
        )
    );
}
pub type fd_mask = __fd_mask;
extern "C" {
    pub fn select(
        __nfds: ::std::os::raw::c_int,
        __readfds: *mut fd_set,
        __writefds: *mut fd_set,
        __exceptfds: *mut fd_set,
        __timeout: *mut timeval,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn pselect(
        __nfds: ::std::os::raw::c_int,
        __readfds: *mut fd_set,
        __writefds: *mut fd_set,
        __exceptfds: *mut fd_set,
        __timeout: *const timespec,
        __sigmask: *const __sigset_t,
    ) -> ::std::os::raw::c_int;
}
pub type blksize_t = __blksize_t;
pub type blkcnt_t = __blkcnt_t;
pub type fsblkcnt_t = __fsblkcnt_t;
pub type fsfilcnt_t = __fsfilcnt_t;
#[repr(C)]
#[derive(Copy, Clone)]
pub union __atomic_wide_counter {
    pub __value64: ::std::os::raw::c_ulonglong,
    pub __value32: __atomic_wide_counter__bindgen_ty_1,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __atomic_wide_counter__bindgen_ty_1 {
    pub __low: ::std::os::raw::c_uint,
    pub __high: ::std::os::raw::c_uint,
}
#[test]
fn bindgen_test_layout___atomic_wide_counter__bindgen_ty_1() {
    const UNINIT: ::std::mem::MaybeUninit<__atomic_wide_counter__bindgen_ty_1> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<__atomic_wide_counter__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(__atomic_wide_counter__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<__atomic_wide_counter__bindgen_ty_1>(),
        4usize,
        concat!(
            "Alignment of ",
            stringify!(__atomic_wide_counter__bindgen_ty_1)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__low) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__atomic_wide_counter__bindgen_ty_1),
            "::",
            stringify!(__low)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__high) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(__atomic_wide_counter__bindgen_ty_1),
            "::",
            stringify!(__high)
        )
    );
}
#[test]
fn bindgen_test_layout___atomic_wide_counter() {
    const UNINIT: ::std::mem::MaybeUninit<__atomic_wide_counter> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<__atomic_wide_counter>(),
        8usize,
        concat!("Size of: ", stringify!(__atomic_wide_counter))
    );
    assert_eq!(
        ::std::mem::align_of::<__atomic_wide_counter>(),
        8usize,
        concat!("Alignment of ", stringify!(__atomic_wide_counter))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__value64) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__atomic_wide_counter),
            "::",
            stringify!(__value64)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__value32) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__atomic_wide_counter),
            "::",
            stringify!(__value32)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __pthread_internal_list {
    pub __prev: *mut __pthread_internal_list,
    pub __next: *mut __pthread_internal_list,
}
#[test]
fn bindgen_test_layout___pthread_internal_list() {
    const UNINIT: ::std::mem::MaybeUninit<__pthread_internal_list> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<__pthread_internal_list>(),
        16usize,
        concat!("Size of: ", stringify!(__pthread_internal_list))
    );
    assert_eq!(
        ::std::mem::align_of::<__pthread_internal_list>(),
        8usize,
        concat!("Alignment of ", stringify!(__pthread_internal_list))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__prev) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_internal_list),
            "::",
            stringify!(__prev)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_internal_list),
            "::",
            stringify!(__next)
        )
    );
}
pub type __pthread_list_t = __pthread_internal_list;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __pthread_internal_slist {
    pub __next: *mut __pthread_internal_slist,
}
#[test]
fn bindgen_test_layout___pthread_internal_slist() {
    const UNINIT: ::std::mem::MaybeUninit<__pthread_internal_slist> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<__pthread_internal_slist>(),
        8usize,
        concat!("Size of: ", stringify!(__pthread_internal_slist))
    );
    assert_eq!(
        ::std::mem::align_of::<__pthread_internal_slist>(),
        8usize,
        concat!("Alignment of ", stringify!(__pthread_internal_slist))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__next) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_internal_slist),
            "::",
            stringify!(__next)
        )
    );
}
pub type __pthread_slist_t = __pthread_internal_slist;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __pthread_mutex_s {
    pub __lock: ::std::os::raw::c_int,
    pub __count: ::std::os::raw::c_uint,
    pub __owner: ::std::os::raw::c_int,
    pub __nusers: ::std::os::raw::c_uint,
    pub __kind: ::std::os::raw::c_int,
    pub __spins: ::std::os::raw::c_short,
    pub __elision: ::std::os::raw::c_short,
    pub __list: __pthread_list_t,
}
#[test]
fn bindgen_test_layout___pthread_mutex_s() {
    const UNINIT: ::std::mem::MaybeUninit<__pthread_mutex_s> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<__pthread_mutex_s>(),
        40usize,
        concat!("Size of: ", stringify!(__pthread_mutex_s))
    );
    assert_eq!(
        ::std::mem::align_of::<__pthread_mutex_s>(),
        8usize,
        concat!("Alignment of ", stringify!(__pthread_mutex_s))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__lock) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_mutex_s),
            "::",
            stringify!(__lock)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__count) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_mutex_s),
            "::",
            stringify!(__count)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__owner) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_mutex_s),
            "::",
            stringify!(__owner)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__nusers) as usize - ptr as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_mutex_s),
            "::",
            stringify!(__nusers)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__kind) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_mutex_s),
            "::",
            stringify!(__kind)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__spins) as usize - ptr as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_mutex_s),
            "::",
            stringify!(__spins)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__elision) as usize - ptr as usize },
        22usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_mutex_s),
            "::",
            stringify!(__elision)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__list) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_mutex_s),
            "::",
            stringify!(__list)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __pthread_rwlock_arch_t {
    pub __readers: ::std::os::raw::c_uint,
    pub __writers: ::std::os::raw::c_uint,
    pub __wrphase_futex: ::std::os::raw::c_uint,
    pub __writers_futex: ::std::os::raw::c_uint,
    pub __pad3: ::std::os::raw::c_uint,
    pub __pad4: ::std::os::raw::c_uint,
    pub __cur_writer: ::std::os::raw::c_int,
    pub __shared: ::std::os::raw::c_int,
    pub __rwelision: ::std::os::raw::c_schar,
    pub __pad1: [::std::os::raw::c_uchar; 7usize],
    pub __pad2: ::std::os::raw::c_ulong,
    pub __flags: ::std::os::raw::c_uint,
}
#[test]
fn bindgen_test_layout___pthread_rwlock_arch_t() {
    const UNINIT: ::std::mem::MaybeUninit<__pthread_rwlock_arch_t> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<__pthread_rwlock_arch_t>(),
        56usize,
        concat!("Size of: ", stringify!(__pthread_rwlock_arch_t))
    );
    assert_eq!(
        ::std::mem::align_of::<__pthread_rwlock_arch_t>(),
        8usize,
        concat!("Alignment of ", stringify!(__pthread_rwlock_arch_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__readers) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_rwlock_arch_t),
            "::",
            stringify!(__readers)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__writers) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_rwlock_arch_t),
            "::",
            stringify!(__writers)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__wrphase_futex) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_rwlock_arch_t),
            "::",
            stringify!(__wrphase_futex)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__writers_futex) as usize - ptr as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_rwlock_arch_t),
            "::",
            stringify!(__writers_futex)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__pad3) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_rwlock_arch_t),
            "::",
            stringify!(__pad3)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__pad4) as usize - ptr as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_rwlock_arch_t),
            "::",
            stringify!(__pad4)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__cur_writer) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_rwlock_arch_t),
            "::",
            stringify!(__cur_writer)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__shared) as usize - ptr as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_rwlock_arch_t),
            "::",
            stringify!(__shared)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__rwelision) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_rwlock_arch_t),
            "::",
            stringify!(__rwelision)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__pad1) as usize - ptr as usize },
        33usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_rwlock_arch_t),
            "::",
            stringify!(__pad1)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__pad2) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_rwlock_arch_t),
            "::",
            stringify!(__pad2)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__flags) as usize - ptr as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_rwlock_arch_t),
            "::",
            stringify!(__flags)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct __pthread_cond_s {
    pub __wseq: __atomic_wide_counter,
    pub __g1_start: __atomic_wide_counter,
    pub __g_refs: [::std::os::raw::c_uint; 2usize],
    pub __g_size: [::std::os::raw::c_uint; 2usize],
    pub __g1_orig_size: ::std::os::raw::c_uint,
    pub __wrefs: ::std::os::raw::c_uint,
    pub __g_signals: [::std::os::raw::c_uint; 2usize],
}
#[test]
fn bindgen_test_layout___pthread_cond_s() {
    const UNINIT: ::std::mem::MaybeUninit<__pthread_cond_s> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<__pthread_cond_s>(),
        48usize,
        concat!("Size of: ", stringify!(__pthread_cond_s))
    );
    assert_eq!(
        ::std::mem::align_of::<__pthread_cond_s>(),
        8usize,
        concat!("Alignment of ", stringify!(__pthread_cond_s))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__wseq) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_cond_s),
            "::",
            stringify!(__wseq)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__g1_start) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_cond_s),
            "::",
            stringify!(__g1_start)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__g_refs) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_cond_s),
            "::",
            stringify!(__g_refs)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__g_size) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_cond_s),
            "::",
            stringify!(__g_size)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__g1_orig_size) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_cond_s),
            "::",
            stringify!(__g1_orig_size)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__wrefs) as usize - ptr as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_cond_s),
            "::",
            stringify!(__wrefs)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__g_signals) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(__pthread_cond_s),
            "::",
            stringify!(__g_signals)
        )
    );
}
pub type __tss_t = ::std::os::raw::c_uint;
pub type __thrd_t = ::std::os::raw::c_ulong;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __once_flag {
    pub __data: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout___once_flag() {
    const UNINIT: ::std::mem::MaybeUninit<__once_flag> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<__once_flag>(),
        4usize,
        concat!("Size of: ", stringify!(__once_flag))
    );
    assert_eq!(
        ::std::mem::align_of::<__once_flag>(),
        4usize,
        concat!("Alignment of ", stringify!(__once_flag))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__once_flag),
            "::",
            stringify!(__data)
        )
    );
}
pub type pthread_t = ::std::os::raw::c_ulong;
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_mutexattr_t {
    pub __size: [::std::os::raw::c_char; 4usize],
    pub __align: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_pthread_mutexattr_t() {
    const UNINIT: ::std::mem::MaybeUninit<pthread_mutexattr_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<pthread_mutexattr_t>(),
        4usize,
        concat!("Size of: ", stringify!(pthread_mutexattr_t))
    );
    assert_eq!(
        ::std::mem::align_of::<pthread_mutexattr_t>(),
        4usize,
        concat!("Alignment of ", stringify!(pthread_mutexattr_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pthread_mutexattr_t),
            "::",
            stringify!(__size)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pthread_mutexattr_t),
            "::",
            stringify!(__align)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_condattr_t {
    pub __size: [::std::os::raw::c_char; 4usize],
    pub __align: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_pthread_condattr_t() {
    const UNINIT: ::std::mem::MaybeUninit<pthread_condattr_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<pthread_condattr_t>(),
        4usize,
        concat!("Size of: ", stringify!(pthread_condattr_t))
    );
    assert_eq!(
        ::std::mem::align_of::<pthread_condattr_t>(),
        4usize,
        concat!("Alignment of ", stringify!(pthread_condattr_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pthread_condattr_t),
            "::",
            stringify!(__size)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pthread_condattr_t),
            "::",
            stringify!(__align)
        )
    );
}
pub type pthread_key_t = ::std::os::raw::c_uint;
pub type pthread_once_t = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_attr_t {
    pub __size: [::std::os::raw::c_char; 56usize],
    pub __align: ::std::os::raw::c_long,
}
#[test]
fn bindgen_test_layout_pthread_attr_t() {
    const UNINIT: ::std::mem::MaybeUninit<pthread_attr_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<pthread_attr_t>(),
        56usize,
        concat!("Size of: ", stringify!(pthread_attr_t))
    );
    assert_eq!(
        ::std::mem::align_of::<pthread_attr_t>(),
        8usize,
        concat!("Alignment of ", stringify!(pthread_attr_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pthread_attr_t),
            "::",
            stringify!(__size)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pthread_attr_t),
            "::",
            stringify!(__align)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_mutex_t {
    pub __data: __pthread_mutex_s,
    pub __size: [::std::os::raw::c_char; 40usize],
    pub __align: ::std::os::raw::c_long,
}
#[test]
fn bindgen_test_layout_pthread_mutex_t() {
    const UNINIT: ::std::mem::MaybeUninit<pthread_mutex_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<pthread_mutex_t>(),
        40usize,
        concat!("Size of: ", stringify!(pthread_mutex_t))
    );
    assert_eq!(
        ::std::mem::align_of::<pthread_mutex_t>(),
        8usize,
        concat!("Alignment of ", stringify!(pthread_mutex_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pthread_mutex_t),
            "::",
            stringify!(__data)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pthread_mutex_t),
            "::",
            stringify!(__size)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pthread_mutex_t),
            "::",
            stringify!(__align)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_cond_t {
    pub __data: __pthread_cond_s,
    pub __size: [::std::os::raw::c_char; 48usize],
    pub __align: ::std::os::raw::c_longlong,
}
#[test]
fn bindgen_test_layout_pthread_cond_t() {
    const UNINIT: ::std::mem::MaybeUninit<pthread_cond_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<pthread_cond_t>(),
        48usize,
        concat!("Size of: ", stringify!(pthread_cond_t))
    );
    assert_eq!(
        ::std::mem::align_of::<pthread_cond_t>(),
        8usize,
        concat!("Alignment of ", stringify!(pthread_cond_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pthread_cond_t),
            "::",
            stringify!(__data)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pthread_cond_t),
            "::",
            stringify!(__size)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pthread_cond_t),
            "::",
            stringify!(__align)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_rwlock_t {
    pub __data: __pthread_rwlock_arch_t,
    pub __size: [::std::os::raw::c_char; 56usize],
    pub __align: ::std::os::raw::c_long,
}
#[test]
fn bindgen_test_layout_pthread_rwlock_t() {
    const UNINIT: ::std::mem::MaybeUninit<pthread_rwlock_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<pthread_rwlock_t>(),
        56usize,
        concat!("Size of: ", stringify!(pthread_rwlock_t))
    );
    assert_eq!(
        ::std::mem::align_of::<pthread_rwlock_t>(),
        8usize,
        concat!("Alignment of ", stringify!(pthread_rwlock_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__data) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pthread_rwlock_t),
            "::",
            stringify!(__data)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pthread_rwlock_t),
            "::",
            stringify!(__size)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pthread_rwlock_t),
            "::",
            stringify!(__align)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_rwlockattr_t {
    pub __size: [::std::os::raw::c_char; 8usize],
    pub __align: ::std::os::raw::c_long,
}
#[test]
fn bindgen_test_layout_pthread_rwlockattr_t() {
    const UNINIT: ::std::mem::MaybeUninit<pthread_rwlockattr_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<pthread_rwlockattr_t>(),
        8usize,
        concat!("Size of: ", stringify!(pthread_rwlockattr_t))
    );
    assert_eq!(
        ::std::mem::align_of::<pthread_rwlockattr_t>(),
        8usize,
        concat!("Alignment of ", stringify!(pthread_rwlockattr_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pthread_rwlockattr_t),
            "::",
            stringify!(__size)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pthread_rwlockattr_t),
            "::",
            stringify!(__align)
        )
    );
}
pub type pthread_spinlock_t = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_barrier_t {
    pub __size: [::std::os::raw::c_char; 32usize],
    pub __align: ::std::os::raw::c_long,
}
#[test]
fn bindgen_test_layout_pthread_barrier_t() {
    const UNINIT: ::std::mem::MaybeUninit<pthread_barrier_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<pthread_barrier_t>(),
        32usize,
        concat!("Size of: ", stringify!(pthread_barrier_t))
    );
    assert_eq!(
        ::std::mem::align_of::<pthread_barrier_t>(),
        8usize,
        concat!("Alignment of ", stringify!(pthread_barrier_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pthread_barrier_t),
            "::",
            stringify!(__size)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pthread_barrier_t),
            "::",
            stringify!(__align)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union pthread_barrierattr_t {
    pub __size: [::std::os::raw::c_char; 4usize],
    pub __align: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_pthread_barrierattr_t() {
    const UNINIT: ::std::mem::MaybeUninit<pthread_barrierattr_t> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<pthread_barrierattr_t>(),
        4usize,
        concat!("Size of: ", stringify!(pthread_barrierattr_t))
    );
    assert_eq!(
        ::std::mem::align_of::<pthread_barrierattr_t>(),
        4usize,
        concat!("Alignment of ", stringify!(pthread_barrierattr_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__size) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pthread_barrierattr_t),
            "::",
            stringify!(__size)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__align) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(pthread_barrierattr_t),
            "::",
            stringify!(__align)
        )
    );
}
pub type va_list = __builtin_va_list;
pub type __gnuc_va_list = __builtin_va_list;
pub type useconds_t = __useconds_t;
pub type socklen_t = __socklen_t;
extern "C" {
    pub fn access(
        __name: *const ::std::os::raw::c_char,
        __type: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn faccessat(
        __fd: ::std::os::raw::c_int,
        __file: *const ::std::os::raw::c_char,
        __type: ::std::os::raw::c_int,
        __flag: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn lseek(
        __fd: ::std::os::raw::c_int,
        __offset: __off_t,
        __whence: ::std::os::raw::c_int,
    ) -> __off_t;
}
extern "C" {
    pub fn close(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn closefrom(__lowfd: ::std::os::raw::c_int);
}
extern "C" {
    pub fn read(
        __fd: ::std::os::raw::c_int,
        __buf: *mut ::std::os::raw::c_void,
        __nbytes: usize,
    ) -> isize;
}
extern "C" {
    pub fn write(
        __fd: ::std::os::raw::c_int,
        __buf: *const ::std::os::raw::c_void,
        __n: usize,
    ) -> isize;
}
extern "C" {
    pub fn pread(
        __fd: ::std::os::raw::c_int,
        __buf: *mut ::std::os::raw::c_void,
        __nbytes: usize,
        __offset: __off_t,
    ) -> isize;
}
extern "C" {
    pub fn pwrite(
        __fd: ::std::os::raw::c_int,
        __buf: *const ::std::os::raw::c_void,
        __n: usize,
        __offset: __off_t,
    ) -> isize;
}
extern "C" {
    pub fn pipe(__pipedes: *mut ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn alarm(__seconds: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn sleep(__seconds: ::std::os::raw::c_uint) -> ::std::os::raw::c_uint;
}
extern "C" {
    pub fn ualarm(__value: __useconds_t, __interval: __useconds_t) -> __useconds_t;
}
extern "C" {
    pub fn usleep(__useconds: __useconds_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn pause() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn chown(
        __file: *const ::std::os::raw::c_char,
        __owner: __uid_t,
        __group: __gid_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fchown(
        __fd: ::std::os::raw::c_int,
        __owner: __uid_t,
        __group: __gid_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn lchown(
        __file: *const ::std::os::raw::c_char,
        __owner: __uid_t,
        __group: __gid_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fchownat(
        __fd: ::std::os::raw::c_int,
        __file: *const ::std::os::raw::c_char,
        __owner: __uid_t,
        __group: __gid_t,
        __flag: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn chdir(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fchdir(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn getcwd(__buf: *mut ::std::os::raw::c_char, __size: usize)
        -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn getwd(__buf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn dup(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn dup2(__fd: ::std::os::raw::c_int, __fd2: ::std::os::raw::c_int)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub static mut __environ: *mut *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn execve(
        __path: *const ::std::os::raw::c_char,
        __argv: *const *mut ::std::os::raw::c_char,
        __envp: *const *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fexecve(
        __fd: ::std::os::raw::c_int,
        __argv: *const *mut ::std::os::raw::c_char,
        __envp: *const *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn execv(
        __path: *const ::std::os::raw::c_char,
        __argv: *const *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn execle(
        __path: *const ::std::os::raw::c_char,
        __arg: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn execl(
        __path: *const ::std::os::raw::c_char,
        __arg: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn execvp(
        __file: *const ::std::os::raw::c_char,
        __argv: *const *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn execlp(
        __file: *const ::std::os::raw::c_char,
        __arg: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn nice(__inc: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _exit(__status: ::std::os::raw::c_int) -> !;
}
pub const _PC_LINK_MAX: _bindgen_ty_1 = 0;
pub const _PC_MAX_CANON: _bindgen_ty_1 = 1;
pub const _PC_MAX_INPUT: _bindgen_ty_1 = 2;
pub const _PC_NAME_MAX: _bindgen_ty_1 = 3;
pub const _PC_PATH_MAX: _bindgen_ty_1 = 4;
pub const _PC_PIPE_BUF: _bindgen_ty_1 = 5;
pub const _PC_CHOWN_RESTRICTED: _bindgen_ty_1 = 6;
pub const _PC_NO_TRUNC: _bindgen_ty_1 = 7;
pub const _PC_VDISABLE: _bindgen_ty_1 = 8;
pub const _PC_SYNC_IO: _bindgen_ty_1 = 9;
pub const _PC_ASYNC_IO: _bindgen_ty_1 = 10;
pub const _PC_PRIO_IO: _bindgen_ty_1 = 11;
pub const _PC_SOCK_MAXBUF: _bindgen_ty_1 = 12;
pub const _PC_FILESIZEBITS: _bindgen_ty_1 = 13;
pub const _PC_REC_INCR_XFER_SIZE: _bindgen_ty_1 = 14;
pub const _PC_REC_MAX_XFER_SIZE: _bindgen_ty_1 = 15;
pub const _PC_REC_MIN_XFER_SIZE: _bindgen_ty_1 = 16;
pub const _PC_REC_XFER_ALIGN: _bindgen_ty_1 = 17;
pub const _PC_ALLOC_SIZE_MIN: _bindgen_ty_1 = 18;
pub const _PC_SYMLINK_MAX: _bindgen_ty_1 = 19;
pub const _PC_2_SYMLINKS: _bindgen_ty_1 = 20;
pub type _bindgen_ty_1 = ::std::os::raw::c_uint;
pub const _SC_ARG_MAX: _bindgen_ty_2 = 0;
pub const _SC_CHILD_MAX: _bindgen_ty_2 = 1;
pub const _SC_CLK_TCK: _bindgen_ty_2 = 2;
pub const _SC_NGROUPS_MAX: _bindgen_ty_2 = 3;
pub const _SC_OPEN_MAX: _bindgen_ty_2 = 4;
pub const _SC_STREAM_MAX: _bindgen_ty_2 = 5;
pub const _SC_TZNAME_MAX: _bindgen_ty_2 = 6;
pub const _SC_JOB_CONTROL: _bindgen_ty_2 = 7;
pub const _SC_SAVED_IDS: _bindgen_ty_2 = 8;
pub const _SC_REALTIME_SIGNALS: _bindgen_ty_2 = 9;
pub const _SC_PRIORITY_SCHEDULING: _bindgen_ty_2 = 10;
pub const _SC_TIMERS: _bindgen_ty_2 = 11;
pub const _SC_ASYNCHRONOUS_IO: _bindgen_ty_2 = 12;
pub const _SC_PRIORITIZED_IO: _bindgen_ty_2 = 13;
pub const _SC_SYNCHRONIZED_IO: _bindgen_ty_2 = 14;
pub const _SC_FSYNC: _bindgen_ty_2 = 15;
pub const _SC_MAPPED_FILES: _bindgen_ty_2 = 16;
pub const _SC_MEMLOCK: _bindgen_ty_2 = 17;
pub const _SC_MEMLOCK_RANGE: _bindgen_ty_2 = 18;
pub const _SC_MEMORY_PROTECTION: _bindgen_ty_2 = 19;
pub const _SC_MESSAGE_PASSING: _bindgen_ty_2 = 20;
pub const _SC_SEMAPHORES: _bindgen_ty_2 = 21;
pub const _SC_SHARED_MEMORY_OBJECTS: _bindgen_ty_2 = 22;
pub const _SC_AIO_LISTIO_MAX: _bindgen_ty_2 = 23;
pub const _SC_AIO_MAX: _bindgen_ty_2 = 24;
pub const _SC_AIO_PRIO_DELTA_MAX: _bindgen_ty_2 = 25;
pub const _SC_DELAYTIMER_MAX: _bindgen_ty_2 = 26;
pub const _SC_MQ_OPEN_MAX: _bindgen_ty_2 = 27;
pub const _SC_MQ_PRIO_MAX: _bindgen_ty_2 = 28;
pub const _SC_VERSION: _bindgen_ty_2 = 29;
pub const _SC_PAGESIZE: _bindgen_ty_2 = 30;
pub const _SC_RTSIG_MAX: _bindgen_ty_2 = 31;
pub const _SC_SEM_NSEMS_MAX: _bindgen_ty_2 = 32;
pub const _SC_SEM_VALUE_MAX: _bindgen_ty_2 = 33;
pub const _SC_SIGQUEUE_MAX: _bindgen_ty_2 = 34;
pub const _SC_TIMER_MAX: _bindgen_ty_2 = 35;
pub const _SC_BC_BASE_MAX: _bindgen_ty_2 = 36;
pub const _SC_BC_DIM_MAX: _bindgen_ty_2 = 37;
pub const _SC_BC_SCALE_MAX: _bindgen_ty_2 = 38;
pub const _SC_BC_STRING_MAX: _bindgen_ty_2 = 39;
pub const _SC_COLL_WEIGHTS_MAX: _bindgen_ty_2 = 40;
pub const _SC_EQUIV_CLASS_MAX: _bindgen_ty_2 = 41;
pub const _SC_EXPR_NEST_MAX: _bindgen_ty_2 = 42;
pub const _SC_LINE_MAX: _bindgen_ty_2 = 43;
pub const _SC_RE_DUP_MAX: _bindgen_ty_2 = 44;
pub const _SC_CHARCLASS_NAME_MAX: _bindgen_ty_2 = 45;
pub const _SC_2_VERSION: _bindgen_ty_2 = 46;
pub const _SC_2_C_BIND: _bindgen_ty_2 = 47;
pub const _SC_2_C_DEV: _bindgen_ty_2 = 48;
pub const _SC_2_FORT_DEV: _bindgen_ty_2 = 49;
pub const _SC_2_FORT_RUN: _bindgen_ty_2 = 50;
pub const _SC_2_SW_DEV: _bindgen_ty_2 = 51;
pub const _SC_2_LOCALEDEF: _bindgen_ty_2 = 52;
pub const _SC_PII: _bindgen_ty_2 = 53;
pub const _SC_PII_XTI: _bindgen_ty_2 = 54;
pub const _SC_PII_SOCKET: _bindgen_ty_2 = 55;
pub const _SC_PII_INTERNET: _bindgen_ty_2 = 56;
pub const _SC_PII_OSI: _bindgen_ty_2 = 57;
pub const _SC_POLL: _bindgen_ty_2 = 58;
pub const _SC_SELECT: _bindgen_ty_2 = 59;
pub const _SC_UIO_MAXIOV: _bindgen_ty_2 = 60;
pub const _SC_IOV_MAX: _bindgen_ty_2 = 60;
pub const _SC_PII_INTERNET_STREAM: _bindgen_ty_2 = 61;
pub const _SC_PII_INTERNET_DGRAM: _bindgen_ty_2 = 62;
pub const _SC_PII_OSI_COTS: _bindgen_ty_2 = 63;
pub const _SC_PII_OSI_CLTS: _bindgen_ty_2 = 64;
pub const _SC_PII_OSI_M: _bindgen_ty_2 = 65;
pub const _SC_T_IOV_MAX: _bindgen_ty_2 = 66;
pub const _SC_THREADS: _bindgen_ty_2 = 67;
pub const _SC_THREAD_SAFE_FUNCTIONS: _bindgen_ty_2 = 68;
pub const _SC_GETGR_R_SIZE_MAX: _bindgen_ty_2 = 69;
pub const _SC_GETPW_R_SIZE_MAX: _bindgen_ty_2 = 70;
pub const _SC_LOGIN_NAME_MAX: _bindgen_ty_2 = 71;
pub const _SC_TTY_NAME_MAX: _bindgen_ty_2 = 72;
pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: _bindgen_ty_2 = 73;
pub const _SC_THREAD_KEYS_MAX: _bindgen_ty_2 = 74;
pub const _SC_THREAD_STACK_MIN: _bindgen_ty_2 = 75;
pub const _SC_THREAD_THREADS_MAX: _bindgen_ty_2 = 76;
pub const _SC_THREAD_ATTR_STACKADDR: _bindgen_ty_2 = 77;
pub const _SC_THREAD_ATTR_STACKSIZE: _bindgen_ty_2 = 78;
pub const _SC_THREAD_PRIORITY_SCHEDULING: _bindgen_ty_2 = 79;
pub const _SC_THREAD_PRIO_INHERIT: _bindgen_ty_2 = 80;
pub const _SC_THREAD_PRIO_PROTECT: _bindgen_ty_2 = 81;
pub const _SC_THREAD_PROCESS_SHARED: _bindgen_ty_2 = 82;
pub const _SC_NPROCESSORS_CONF: _bindgen_ty_2 = 83;
pub const _SC_NPROCESSORS_ONLN: _bindgen_ty_2 = 84;
pub const _SC_PHYS_PAGES: _bindgen_ty_2 = 85;
pub const _SC_AVPHYS_PAGES: _bindgen_ty_2 = 86;
pub const _SC_ATEXIT_MAX: _bindgen_ty_2 = 87;
pub const _SC_PASS_MAX: _bindgen_ty_2 = 88;
pub const _SC_XOPEN_VERSION: _bindgen_ty_2 = 89;
pub const _SC_XOPEN_XCU_VERSION: _bindgen_ty_2 = 90;
pub const _SC_XOPEN_UNIX: _bindgen_ty_2 = 91;
pub const _SC_XOPEN_CRYPT: _bindgen_ty_2 = 92;
pub const _SC_XOPEN_ENH_I18N: _bindgen_ty_2 = 93;
pub const _SC_XOPEN_SHM: _bindgen_ty_2 = 94;
pub const _SC_2_CHAR_TERM: _bindgen_ty_2 = 95;
pub const _SC_2_C_VERSION: _bindgen_ty_2 = 96;
pub const _SC_2_UPE: _bindgen_ty_2 = 97;
pub const _SC_XOPEN_XPG2: _bindgen_ty_2 = 98;
pub const _SC_XOPEN_XPG3: _bindgen_ty_2 = 99;
pub const _SC_XOPEN_XPG4: _bindgen_ty_2 = 100;
pub const _SC_CHAR_BIT: _bindgen_ty_2 = 101;
pub const _SC_CHAR_MAX: _bindgen_ty_2 = 102;
pub const _SC_CHAR_MIN: _bindgen_ty_2 = 103;
pub const _SC_INT_MAX: _bindgen_ty_2 = 104;
pub const _SC_INT_MIN: _bindgen_ty_2 = 105;
pub const _SC_LONG_BIT: _bindgen_ty_2 = 106;
pub const _SC_WORD_BIT: _bindgen_ty_2 = 107;
pub const _SC_MB_LEN_MAX: _bindgen_ty_2 = 108;
pub const _SC_NZERO: _bindgen_ty_2 = 109;
pub const _SC_SSIZE_MAX: _bindgen_ty_2 = 110;
pub const _SC_SCHAR_MAX: _bindgen_ty_2 = 111;
pub const _SC_SCHAR_MIN: _bindgen_ty_2 = 112;
pub const _SC_SHRT_MAX: _bindgen_ty_2 = 113;
pub const _SC_SHRT_MIN: _bindgen_ty_2 = 114;
pub const _SC_UCHAR_MAX: _bindgen_ty_2 = 115;
pub const _SC_UINT_MAX: _bindgen_ty_2 = 116;
pub const _SC_ULONG_MAX: _bindgen_ty_2 = 117;
pub const _SC_USHRT_MAX: _bindgen_ty_2 = 118;
pub const _SC_NL_ARGMAX: _bindgen_ty_2 = 119;
pub const _SC_NL_LANGMAX: _bindgen_ty_2 = 120;
pub const _SC_NL_MSGMAX: _bindgen_ty_2 = 121;
pub const _SC_NL_NMAX: _bindgen_ty_2 = 122;
pub const _SC_NL_SETMAX: _bindgen_ty_2 = 123;
pub const _SC_NL_TEXTMAX: _bindgen_ty_2 = 124;
pub const _SC_XBS5_ILP32_OFF32: _bindgen_ty_2 = 125;
pub const _SC_XBS5_ILP32_OFFBIG: _bindgen_ty_2 = 126;
pub const _SC_XBS5_LP64_OFF64: _bindgen_ty_2 = 127;
pub const _SC_XBS5_LPBIG_OFFBIG: _bindgen_ty_2 = 128;
pub const _SC_XOPEN_LEGACY: _bindgen_ty_2 = 129;
pub const _SC_XOPEN_REALTIME: _bindgen_ty_2 = 130;
pub const _SC_XOPEN_REALTIME_THREADS: _bindgen_ty_2 = 131;
pub const _SC_ADVISORY_INFO: _bindgen_ty_2 = 132;
pub const _SC_BARRIERS: _bindgen_ty_2 = 133;
pub const _SC_BASE: _bindgen_ty_2 = 134;
pub const _SC_C_LANG_SUPPORT: _bindgen_ty_2 = 135;
pub const _SC_C_LANG_SUPPORT_R: _bindgen_ty_2 = 136;
pub const _SC_CLOCK_SELECTION: _bindgen_ty_2 = 137;
pub const _SC_CPUTIME: _bindgen_ty_2 = 138;
pub const _SC_THREAD_CPUTIME: _bindgen_ty_2 = 139;
pub const _SC_DEVICE_IO: _bindgen_ty_2 = 140;
pub const _SC_DEVICE_SPECIFIC: _bindgen_ty_2 = 141;
pub const _SC_DEVICE_SPECIFIC_R: _bindgen_ty_2 = 142;
pub const _SC_FD_MGMT: _bindgen_ty_2 = 143;
pub const _SC_FIFO: _bindgen_ty_2 = 144;
pub const _SC_PIPE: _bindgen_ty_2 = 145;
pub const _SC_FILE_ATTRIBUTES: _bindgen_ty_2 = 146;
pub const _SC_FILE_LOCKING: _bindgen_ty_2 = 147;
pub const _SC_FILE_SYSTEM: _bindgen_ty_2 = 148;
pub const _SC_MONOTONIC_CLOCK: _bindgen_ty_2 = 149;
pub const _SC_MULTI_PROCESS: _bindgen_ty_2 = 150;
pub const _SC_SINGLE_PROCESS: _bindgen_ty_2 = 151;
pub const _SC_NETWORKING: _bindgen_ty_2 = 152;
pub const _SC_READER_WRITER_LOCKS: _bindgen_ty_2 = 153;
pub const _SC_SPIN_LOCKS: _bindgen_ty_2 = 154;
pub const _SC_REGEXP: _bindgen_ty_2 = 155;
pub const _SC_REGEX_VERSION: _bindgen_ty_2 = 156;
pub const _SC_SHELL: _bindgen_ty_2 = 157;
pub const _SC_SIGNALS: _bindgen_ty_2 = 158;
pub const _SC_SPAWN: _bindgen_ty_2 = 159;
pub const _SC_SPORADIC_SERVER: _bindgen_ty_2 = 160;
pub const _SC_THREAD_SPORADIC_SERVER: _bindgen_ty_2 = 161;
pub const _SC_SYSTEM_DATABASE: _bindgen_ty_2 = 162;
pub const _SC_SYSTEM_DATABASE_R: _bindgen_ty_2 = 163;
pub const _SC_TIMEOUTS: _bindgen_ty_2 = 164;
pub const _SC_TYPED_MEMORY_OBJECTS: _bindgen_ty_2 = 165;
pub const _SC_USER_GROUPS: _bindgen_ty_2 = 166;
pub const _SC_USER_GROUPS_R: _bindgen_ty_2 = 167;
pub const _SC_2_PBS: _bindgen_ty_2 = 168;
pub const _SC_2_PBS_ACCOUNTING: _bindgen_ty_2 = 169;
pub const _SC_2_PBS_LOCATE: _bindgen_ty_2 = 170;
pub const _SC_2_PBS_MESSAGE: _bindgen_ty_2 = 171;
pub const _SC_2_PBS_TRACK: _bindgen_ty_2 = 172;
pub const _SC_SYMLOOP_MAX: _bindgen_ty_2 = 173;
pub const _SC_STREAMS: _bindgen_ty_2 = 174;
pub const _SC_2_PBS_CHECKPOINT: _bindgen_ty_2 = 175;
pub const _SC_V6_ILP32_OFF32: _bindgen_ty_2 = 176;
pub const _SC_V6_ILP32_OFFBIG: _bindgen_ty_2 = 177;
pub const _SC_V6_LP64_OFF64: _bindgen_ty_2 = 178;
pub const _SC_V6_LPBIG_OFFBIG: _bindgen_ty_2 = 179;
pub const _SC_HOST_NAME_MAX: _bindgen_ty_2 = 180;
pub const _SC_TRACE: _bindgen_ty_2 = 181;
pub const _SC_TRACE_EVENT_FILTER: _bindgen_ty_2 = 182;
pub const _SC_TRACE_INHERIT: _bindgen_ty_2 = 183;
pub const _SC_TRACE_LOG: _bindgen_ty_2 = 184;
pub const _SC_LEVEL1_ICACHE_SIZE: _bindgen_ty_2 = 185;
pub const _SC_LEVEL1_ICACHE_ASSOC: _bindgen_ty_2 = 186;
pub const _SC_LEVEL1_ICACHE_LINESIZE: _bindgen_ty_2 = 187;
pub const _SC_LEVEL1_DCACHE_SIZE: _bindgen_ty_2 = 188;
pub const _SC_LEVEL1_DCACHE_ASSOC: _bindgen_ty_2 = 189;
pub const _SC_LEVEL1_DCACHE_LINESIZE: _bindgen_ty_2 = 190;
pub const _SC_LEVEL2_CACHE_SIZE: _bindgen_ty_2 = 191;
pub const _SC_LEVEL2_CACHE_ASSOC: _bindgen_ty_2 = 192;
pub const _SC_LEVEL2_CACHE_LINESIZE: _bindgen_ty_2 = 193;
pub const _SC_LEVEL3_CACHE_SIZE: _bindgen_ty_2 = 194;
pub const _SC_LEVEL3_CACHE_ASSOC: _bindgen_ty_2 = 195;
pub const _SC_LEVEL3_CACHE_LINESIZE: _bindgen_ty_2 = 196;
pub const _SC_LEVEL4_CACHE_SIZE: _bindgen_ty_2 = 197;
pub const _SC_LEVEL4_CACHE_ASSOC: _bindgen_ty_2 = 198;
pub const _SC_LEVEL4_CACHE_LINESIZE: _bindgen_ty_2 = 199;
pub const _SC_IPV6: _bindgen_ty_2 = 235;
pub const _SC_RAW_SOCKETS: _bindgen_ty_2 = 236;
pub const _SC_V7_ILP32_OFF32: _bindgen_ty_2 = 237;
pub const _SC_V7_ILP32_OFFBIG: _bindgen_ty_2 = 238;
pub const _SC_V7_LP64_OFF64: _bindgen_ty_2 = 239;
pub const _SC_V7_LPBIG_OFFBIG: _bindgen_ty_2 = 240;
pub const _SC_SS_REPL_MAX: _bindgen_ty_2 = 241;
pub const _SC_TRACE_EVENT_NAME_MAX: _bindgen_ty_2 = 242;
pub const _SC_TRACE_NAME_MAX: _bindgen_ty_2 = 243;
pub const _SC_TRACE_SYS_MAX: _bindgen_ty_2 = 244;
pub const _SC_TRACE_USER_EVENT_MAX: _bindgen_ty_2 = 245;
pub const _SC_XOPEN_STREAMS: _bindgen_ty_2 = 246;
pub const _SC_THREAD_ROBUST_PRIO_INHERIT: _bindgen_ty_2 = 247;
pub const _SC_THREAD_ROBUST_PRIO_PROTECT: _bindgen_ty_2 = 248;
pub const _SC_MINSIGSTKSZ: _bindgen_ty_2 = 249;
pub const _SC_SIGSTKSZ: _bindgen_ty_2 = 250;
pub type _bindgen_ty_2 = ::std::os::raw::c_uint;
pub const _CS_PATH: _bindgen_ty_3 = 0;
pub const _CS_V6_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 1;
pub const _CS_GNU_LIBC_VERSION: _bindgen_ty_3 = 2;
pub const _CS_GNU_LIBPTHREAD_VERSION: _bindgen_ty_3 = 3;
pub const _CS_V5_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 4;
pub const _CS_V7_WIDTH_RESTRICTED_ENVS: _bindgen_ty_3 = 5;
pub const _CS_LFS_CFLAGS: _bindgen_ty_3 = 1000;
pub const _CS_LFS_LDFLAGS: _bindgen_ty_3 = 1001;
pub const _CS_LFS_LIBS: _bindgen_ty_3 = 1002;
pub const _CS_LFS_LINTFLAGS: _bindgen_ty_3 = 1003;
pub const _CS_LFS64_CFLAGS: _bindgen_ty_3 = 1004;
pub const _CS_LFS64_LDFLAGS: _bindgen_ty_3 = 1005;
pub const _CS_LFS64_LIBS: _bindgen_ty_3 = 1006;
pub const _CS_LFS64_LINTFLAGS: _bindgen_ty_3 = 1007;
pub const _CS_XBS5_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1100;
pub const _CS_XBS5_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1101;
pub const _CS_XBS5_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1102;
pub const _CS_XBS5_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1103;
pub const _CS_XBS5_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1104;
pub const _CS_XBS5_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1105;
pub const _CS_XBS5_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1106;
pub const _CS_XBS5_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1107;
pub const _CS_XBS5_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1108;
pub const _CS_XBS5_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1109;
pub const _CS_XBS5_LP64_OFF64_LIBS: _bindgen_ty_3 = 1110;
pub const _CS_XBS5_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1111;
pub const _CS_XBS5_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1112;
pub const _CS_XBS5_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1113;
pub const _CS_XBS5_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1114;
pub const _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1115;
pub const _CS_POSIX_V6_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1116;
pub const _CS_POSIX_V6_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1117;
pub const _CS_POSIX_V6_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1118;
pub const _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1119;
pub const _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1120;
pub const _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1121;
pub const _CS_POSIX_V6_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1122;
pub const _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1123;
pub const _CS_POSIX_V6_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1124;
pub const _CS_POSIX_V6_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1125;
pub const _CS_POSIX_V6_LP64_OFF64_LIBS: _bindgen_ty_3 = 1126;
pub const _CS_POSIX_V6_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1127;
pub const _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1128;
pub const _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1129;
pub const _CS_POSIX_V6_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1130;
pub const _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1131;
pub const _CS_POSIX_V7_ILP32_OFF32_CFLAGS: _bindgen_ty_3 = 1132;
pub const _CS_POSIX_V7_ILP32_OFF32_LDFLAGS: _bindgen_ty_3 = 1133;
pub const _CS_POSIX_V7_ILP32_OFF32_LIBS: _bindgen_ty_3 = 1134;
pub const _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS: _bindgen_ty_3 = 1135;
pub const _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS: _bindgen_ty_3 = 1136;
pub const _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1137;
pub const _CS_POSIX_V7_ILP32_OFFBIG_LIBS: _bindgen_ty_3 = 1138;
pub const _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1139;
pub const _CS_POSIX_V7_LP64_OFF64_CFLAGS: _bindgen_ty_3 = 1140;
pub const _CS_POSIX_V7_LP64_OFF64_LDFLAGS: _bindgen_ty_3 = 1141;
pub const _CS_POSIX_V7_LP64_OFF64_LIBS: _bindgen_ty_3 = 1142;
pub const _CS_POSIX_V7_LP64_OFF64_LINTFLAGS: _bindgen_ty_3 = 1143;
pub const _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS: _bindgen_ty_3 = 1144;
pub const _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS: _bindgen_ty_3 = 1145;
pub const _CS_POSIX_V7_LPBIG_OFFBIG_LIBS: _bindgen_ty_3 = 1146;
pub const _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS: _bindgen_ty_3 = 1147;
pub const _CS_V6_ENV: _bindgen_ty_3 = 1148;
pub const _CS_V7_ENV: _bindgen_ty_3 = 1149;
pub type _bindgen_ty_3 = ::std::os::raw::c_uint;
extern "C" {
    pub fn pathconf(
        __path: *const ::std::os::raw::c_char,
        __name: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn fpathconf(
        __fd: ::std::os::raw::c_int,
        __name: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn sysconf(__name: ::std::os::raw::c_int) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn confstr(
        __name: ::std::os::raw::c_int,
        __buf: *mut ::std::os::raw::c_char,
        __len: usize,
    ) -> usize;
}
extern "C" {
    pub fn getpid() -> __pid_t;
}
extern "C" {
    pub fn getppid() -> __pid_t;
}
extern "C" {
    pub fn getpgrp() -> __pid_t;
}
extern "C" {
    pub fn __getpgid(__pid: __pid_t) -> __pid_t;
}
extern "C" {
    pub fn getpgid(__pid: __pid_t) -> __pid_t;
}
extern "C" {
    pub fn setpgid(__pid: __pid_t, __pgid: __pid_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn setpgrp() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn setsid() -> __pid_t;
}
extern "C" {
    pub fn getsid(__pid: __pid_t) -> __pid_t;
}
extern "C" {
    pub fn getuid() -> __uid_t;
}
extern "C" {
    pub fn geteuid() -> __uid_t;
}
extern "C" {
    pub fn getgid() -> __gid_t;
}
extern "C" {
    pub fn getegid() -> __gid_t;
}
extern "C" {
    pub fn getgroups(__size: ::std::os::raw::c_int, __list: *mut __gid_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn setuid(__uid: __uid_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn setreuid(__ruid: __uid_t, __euid: __uid_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn seteuid(__uid: __uid_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn setgid(__gid: __gid_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn setregid(__rgid: __gid_t, __egid: __gid_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn setegid(__gid: __gid_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fork() -> __pid_t;
}
extern "C" {
    pub fn vfork() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ttyname(__fd: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn ttyname_r(
        __fd: ::std::os::raw::c_int,
        __buf: *mut ::std::os::raw::c_char,
        __buflen: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isatty(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ttyslot() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn link(
        __from: *const ::std::os::raw::c_char,
        __to: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn linkat(
        __fromfd: ::std::os::raw::c_int,
        __from: *const ::std::os::raw::c_char,
        __tofd: ::std::os::raw::c_int,
        __to: *const ::std::os::raw::c_char,
        __flags: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn symlink(
        __from: *const ::std::os::raw::c_char,
        __to: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn readlink(
        __path: *const ::std::os::raw::c_char,
        __buf: *mut ::std::os::raw::c_char,
        __len: usize,
    ) -> isize;
}
extern "C" {
    pub fn symlinkat(
        __from: *const ::std::os::raw::c_char,
        __tofd: ::std::os::raw::c_int,
        __to: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn readlinkat(
        __fd: ::std::os::raw::c_int,
        __path: *const ::std::os::raw::c_char,
        __buf: *mut ::std::os::raw::c_char,
        __len: usize,
    ) -> isize;
}
extern "C" {
    pub fn unlink(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn unlinkat(
        __fd: ::std::os::raw::c_int,
        __name: *const ::std::os::raw::c_char,
        __flag: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn rmdir(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn tcgetpgrp(__fd: ::std::os::raw::c_int) -> __pid_t;
}
extern "C" {
    pub fn tcsetpgrp(__fd: ::std::os::raw::c_int, __pgrp_id: __pid_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn getlogin() -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn getlogin_r(
        __name: *mut ::std::os::raw::c_char,
        __name_len: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn setlogin(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub static mut optarg: *mut ::std::os::raw::c_char;
}
extern "C" {
    pub static mut optind: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut opterr: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut optopt: ::std::os::raw::c_int;
}
extern "C" {
    pub fn getopt(
        ___argc: ::std::os::raw::c_int,
        ___argv: *const *mut ::std::os::raw::c_char,
        __shortopts: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gethostname(__name: *mut ::std::os::raw::c_char, __len: usize) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sethostname(
        __name: *const ::std::os::raw::c_char,
        __len: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sethostid(__id: ::std::os::raw::c_long) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn getdomainname(
        __name: *mut ::std::os::raw::c_char,
        __len: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn setdomainname(
        __name: *const ::std::os::raw::c_char,
        __len: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vhangup() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn revoke(__file: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn profil(
        __sample_buffer: *mut ::std::os::raw::c_ushort,
        __size: usize,
        __offset: usize,
        __scale: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn acct(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn getusershell() -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn endusershell();
}
extern "C" {
    pub fn setusershell();
}
extern "C" {
    pub fn daemon(
        __nochdir: ::std::os::raw::c_int,
        __noclose: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn chroot(__path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn getpass(__prompt: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn fsync(__fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gethostid() -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn sync();
}
extern "C" {
    pub fn getpagesize() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn getdtablesize() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn truncate(
        __file: *const ::std::os::raw::c_char,
        __length: __off_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ftruncate(__fd: ::std::os::raw::c_int, __length: __off_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn brk(__addr: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sbrk(__delta: isize) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn syscall(__sysno: ::std::os::raw::c_long, ...) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn lockf(
        __fd: ::std::os::raw::c_int,
        __cmd: ::std::os::raw::c_int,
        __len: __off_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fdatasync(__fildes: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn crypt(
        __key: *const ::std::os::raw::c_char,
        __salt: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn getentropy(
        __buffer: *mut ::std::os::raw::c_void,
        __length: usize,
    ) -> ::std::os::raw::c_int;
}
pub type alloc_func =
    ::std::option::Option<unsafe extern "C" fn(opaque: voidpf, items: uInt, size: uInt) -> voidpf>;
pub type free_func = ::std::option::Option<unsafe extern "C" fn(opaque: voidpf, address: voidpf)>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct internal_state {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct z_stream_s {
    pub next_in: *mut Bytef,
    pub avail_in: uInt,
    pub total_in: uLong,
    pub next_out: *mut Bytef,
    pub avail_out: uInt,
    pub total_out: uLong,
    pub msg: *mut ::std::os::raw::c_char,
    pub state: *mut internal_state,
    pub zalloc: alloc_func,
    pub zfree: free_func,
    pub opaque: voidpf,
    pub data_type: ::std::os::raw::c_int,
    pub adler: uLong,
    pub reserved: uLong,
}
#[test]
fn bindgen_test_layout_z_stream_s() {
    const UNINIT: ::std::mem::MaybeUninit<z_stream_s> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<z_stream_s>(),
        112usize,
        concat!("Size of: ", stringify!(z_stream_s))
    );
    assert_eq!(
        ::std::mem::align_of::<z_stream_s>(),
        8usize,
        concat!("Alignment of ", stringify!(z_stream_s))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).next_in) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(z_stream_s),
            "::",
            stringify!(next_in)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).avail_in) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(z_stream_s),
            "::",
            stringify!(avail_in)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).total_in) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(z_stream_s),
            "::",
            stringify!(total_in)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).next_out) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(z_stream_s),
            "::",
            stringify!(next_out)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).avail_out) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(z_stream_s),
            "::",
            stringify!(avail_out)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).total_out) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(z_stream_s),
            "::",
            stringify!(total_out)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).msg) as usize - ptr as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(z_stream_s),
            "::",
            stringify!(msg)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(z_stream_s),
            "::",
            stringify!(state)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).zalloc) as usize - ptr as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(z_stream_s),
            "::",
            stringify!(zalloc)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).zfree) as usize - ptr as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(z_stream_s),
            "::",
            stringify!(zfree)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).opaque) as usize - ptr as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(z_stream_s),
            "::",
            stringify!(opaque)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).data_type) as usize - ptr as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(z_stream_s),
            "::",
            stringify!(data_type)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).adler) as usize - ptr as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(z_stream_s),
            "::",
            stringify!(adler)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(z_stream_s),
            "::",
            stringify!(reserved)
        )
    );
}
pub type z_stream = z_stream_s;
pub type z_streamp = *mut z_stream;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gz_header_s {
    pub text: ::std::os::raw::c_int,
    pub time: uLong,
    pub xflags: ::std::os::raw::c_int,
    pub os: ::std::os::raw::c_int,
    pub extra: *mut Bytef,
    pub extra_len: uInt,
    pub extra_max: uInt,
    pub name: *mut Bytef,
    pub name_max: uInt,
    pub comment: *mut Bytef,
    pub comm_max: uInt,
    pub hcrc: ::std::os::raw::c_int,
    pub done: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_gz_header_s() {
    const UNINIT: ::std::mem::MaybeUninit<gz_header_s> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<gz_header_s>(),
        80usize,
        concat!("Size of: ", stringify!(gz_header_s))
    );
    assert_eq!(
        ::std::mem::align_of::<gz_header_s>(),
        8usize,
        concat!("Alignment of ", stringify!(gz_header_s))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).text) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(gz_header_s),
            "::",
            stringify!(text)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).time) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(gz_header_s),
            "::",
            stringify!(time)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).xflags) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(gz_header_s),
            "::",
            stringify!(xflags)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).os) as usize - ptr as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(gz_header_s),
            "::",
            stringify!(os)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).extra) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(gz_header_s),
            "::",
            stringify!(extra)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).extra_len) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(gz_header_s),
            "::",
            stringify!(extra_len)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).extra_max) as usize - ptr as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(gz_header_s),
            "::",
            stringify!(extra_max)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(gz_header_s),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).name_max) as usize - ptr as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(gz_header_s),
            "::",
            stringify!(name_max)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).comment) as usize - ptr as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(gz_header_s),
            "::",
            stringify!(comment)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).comm_max) as usize - ptr as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(gz_header_s),
            "::",
            stringify!(comm_max)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).hcrc) as usize - ptr as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(gz_header_s),
            "::",
            stringify!(hcrc)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).done) as usize - ptr as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(gz_header_s),
            "::",
            stringify!(done)
        )
    );
}
pub type gz_header = gz_header_s;
pub type gz_headerp = *mut gz_header;
extern "C" {
    pub fn zlibVersion() -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn deflate(strm: z_streamp, flush: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn deflateEnd(strm: z_streamp) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn inflate(strm: z_streamp, flush: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn inflateEnd(strm: z_streamp) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn deflateSetDictionary(
        strm: z_streamp,
        dictionary: *const Bytef,
        dictLength: uInt,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn deflateGetDictionary(
        strm: z_streamp,
        dictionary: *mut Bytef,
        dictLength: *mut uInt,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn deflateCopy(dest: z_streamp, source: z_streamp) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn deflateReset(strm: z_streamp) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn deflateParams(
        strm: z_streamp,
        level: ::std::os::raw::c_int,
        strategy: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn deflateTune(
        strm: z_streamp,
        good_length: ::std::os::raw::c_int,
        max_lazy: ::std::os::raw::c_int,
        nice_length: ::std::os::raw::c_int,
        max_chain: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn deflateBound(strm: z_streamp, sourceLen: uLong) -> uLong;
}
extern "C" {
    pub fn deflatePending(
        strm: z_streamp,
        pending: *mut ::std::os::raw::c_uint,
        bits: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn deflatePrime(
        strm: z_streamp,
        bits: ::std::os::raw::c_int,
        value: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn deflateSetHeader(strm: z_streamp, head: gz_headerp) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn inflateSetDictionary(
        strm: z_streamp,
        dictionary: *const Bytef,
        dictLength: uInt,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn inflateGetDictionary(
        strm: z_streamp,
        dictionary: *mut Bytef,
        dictLength: *mut uInt,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn inflateSync(strm: z_streamp) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn inflateCopy(dest: z_streamp, source: z_streamp) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn inflateReset(strm: z_streamp) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn inflateReset2(
        strm: z_streamp,
        windowBits: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn inflatePrime(
        strm: z_streamp,
        bits: ::std::os::raw::c_int,
        value: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn inflateMark(strm: z_streamp) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn inflateGetHeader(strm: z_streamp, head: gz_headerp) -> ::std::os::raw::c_int;
}
pub type in_func = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: *mut ::std::os::raw::c_void,
        arg2: *mut *mut ::std::os::raw::c_uchar,
    ) -> ::std::os::raw::c_uint,
>;
pub type out_func = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: *mut ::std::os::raw::c_void,
        arg2: *mut ::std::os::raw::c_uchar,
        arg3: ::std::os::raw::c_uint,
    ) -> ::std::os::raw::c_int,
>;
extern "C" {
    pub fn inflateBack(
        strm: z_streamp,
        in_: in_func,
        in_desc: *mut ::std::os::raw::c_void,
        out: out_func,
        out_desc: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn inflateBackEnd(strm: z_streamp) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn zlibCompileFlags() -> uLong;
}
extern "C" {
    pub fn compress(
        dest: *mut Bytef,
        destLen: *mut uLongf,
        source: *const Bytef,
        sourceLen: uLong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn compress2(
        dest: *mut Bytef,
        destLen: *mut uLongf,
        source: *const Bytef,
        sourceLen: uLong,
        level: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn compressBound(sourceLen: uLong) -> uLong;
}
extern "C" {
    pub fn uncompress(
        dest: *mut Bytef,
        destLen: *mut uLongf,
        source: *const Bytef,
        sourceLen: uLong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn uncompress2(
        dest: *mut Bytef,
        destLen: *mut uLongf,
        source: *const Bytef,
        sourceLen: *mut uLong,
    ) -> ::std::os::raw::c_int;
}
pub type gzFile = *mut gzFile_s;
extern "C" {
    pub fn gzdopen(fd: ::std::os::raw::c_int, mode: *const ::std::os::raw::c_char) -> gzFile;
}
extern "C" {
    pub fn gzbuffer(file: gzFile, size: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gzsetparams(
        file: gzFile,
        level: ::std::os::raw::c_int,
        strategy: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gzread(file: gzFile, buf: voidp, len: ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gzfread(buf: voidp, size: z_size_t, nitems: z_size_t, file: gzFile) -> z_size_t;
}
extern "C" {
    pub fn gzwrite(file: gzFile, buf: voidpc, len: ::std::os::raw::c_uint)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gzfwrite(buf: voidpc, size: z_size_t, nitems: z_size_t, file: gzFile) -> z_size_t;
}
extern "C" {
    pub fn gzprintf(
        file: gzFile,
        format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gzputs(file: gzFile, s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gzgets(
        file: gzFile,
        buf: *mut ::std::os::raw::c_char,
        len: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn gzputc(file: gzFile, c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gzgetc(file: gzFile) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gzungetc(c: ::std::os::raw::c_int, file: gzFile) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gzflush(file: gzFile, flush: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gzrewind(file: gzFile) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gzeof(file: gzFile) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gzdirect(file: gzFile) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gzclose(file: gzFile) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gzclose_r(file: gzFile) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gzclose_w(file: gzFile) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gzerror(
        file: gzFile,
        errnum: *mut ::std::os::raw::c_int,
    ) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn gzclearerr(file: gzFile);
}
extern "C" {
    pub fn adler32(adler: uLong, buf: *const Bytef, len: uInt) -> uLong;
}
extern "C" {
    pub fn adler32_z(adler: uLong, buf: *const Bytef, len: z_size_t) -> uLong;
}
extern "C" {
    pub fn crc32(crc: uLong, buf: *const Bytef, len: uInt) -> uLong;
}
extern "C" {
    pub fn crc32_z(crc: uLong, buf: *const Bytef, len: z_size_t) -> uLong;
}
extern "C" {
    pub fn crc32_combine_op(crc1: uLong, crc2: uLong, op: uLong) -> uLong;
}
extern "C" {
    pub fn deflateInit_(
        strm: z_streamp,
        level: ::std::os::raw::c_int,
        version: *const ::std::os::raw::c_char,
        stream_size: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn inflateInit_(
        strm: z_streamp,
        version: *const ::std::os::raw::c_char,
        stream_size: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn deflateInit2_(
        strm: z_streamp,
        level: ::std::os::raw::c_int,
        method: ::std::os::raw::c_int,
        windowBits: ::std::os::raw::c_int,
        memLevel: ::std::os::raw::c_int,
        strategy: ::std::os::raw::c_int,
        version: *const ::std::os::raw::c_char,
        stream_size: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn inflateInit2_(
        strm: z_streamp,
        windowBits: ::std::os::raw::c_int,
        version: *const ::std::os::raw::c_char,
        stream_size: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn inflateBackInit_(
        strm: z_streamp,
        windowBits: ::std::os::raw::c_int,
        window: *mut ::std::os::raw::c_uchar,
        version: *const ::std::os::raw::c_char,
        stream_size: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct gzFile_s {
    pub have: ::std::os::raw::c_uint,
    pub next: *mut ::std::os::raw::c_uchar,
    pub pos: off_t,
}
#[test]
fn bindgen_test_layout_gzFile_s() {
    const UNINIT: ::std::mem::MaybeUninit<gzFile_s> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<gzFile_s>(),
        24usize,
        concat!("Size of: ", stringify!(gzFile_s))
    );
    assert_eq!(
        ::std::mem::align_of::<gzFile_s>(),
        8usize,
        concat!("Alignment of ", stringify!(gzFile_s))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).have) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(gzFile_s),
            "::",
            stringify!(have)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).next) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(gzFile_s),
            "::",
            stringify!(next)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pos) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(gzFile_s),
            "::",
            stringify!(pos)
        )
    );
}
extern "C" {
    pub fn gzgetc_(file: gzFile) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gzopen(
        arg1: *const ::std::os::raw::c_char,
        arg2: *const ::std::os::raw::c_char,
    ) -> gzFile;
}
extern "C" {
    pub fn gzseek(arg1: gzFile, arg2: off_t, arg3: ::std::os::raw::c_int) -> off_t;
}
extern "C" {
    pub fn gztell(arg1: gzFile) -> off_t;
}
extern "C" {
    pub fn gzoffset(arg1: gzFile) -> off_t;
}
extern "C" {
    pub fn adler32_combine(arg1: uLong, arg2: uLong, arg3: off_t) -> uLong;
}
extern "C" {
    pub fn crc32_combine(arg1: uLong, arg2: uLong, arg3: off_t) -> uLong;
}
extern "C" {
    pub fn crc32_combine_gen(arg1: off_t) -> uLong;
}
extern "C" {
    pub fn zError(arg1: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
}
extern "C" {
    pub fn inflateSyncPoint(arg1: z_streamp) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn get_crc_table() -> *const z_crc_t;
}
extern "C" {
    pub fn inflateUndermine(arg1: z_streamp, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn inflateValidate(arg1: z_streamp, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn inflateCodesUsed(arg1: z_streamp) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn inflateResetKeep(arg1: z_streamp) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn deflateResetKeep(arg1: z_streamp) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn gzvprintf(
        file: gzFile,
        format: *const ::std::os::raw::c_char,
        va: *mut __va_list_tag,
    ) -> ::std::os::raw::c_int;
}
pub type _Float32 = f32;
pub type _Float64 = f64;
pub type _Float32x = f64;
pub type _Float64x = u128;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct div_t {
    pub quot: ::std::os::raw::c_int,
    pub rem: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_div_t() {
    const UNINIT: ::std::mem::MaybeUninit<div_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<div_t>(),
        8usize,
        concat!("Size of: ", stringify!(div_t))
    );
    assert_eq!(
        ::std::mem::align_of::<div_t>(),
        4usize,
        concat!("Alignment of ", stringify!(div_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(div_t),
            "::",
            stringify!(quot)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(div_t),
            "::",
            stringify!(rem)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ldiv_t {
    pub quot: ::std::os::raw::c_long,
    pub rem: ::std::os::raw::c_long,
}
#[test]
fn bindgen_test_layout_ldiv_t() {
    const UNINIT: ::std::mem::MaybeUninit<ldiv_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ldiv_t>(),
        16usize,
        concat!("Size of: ", stringify!(ldiv_t))
    );
    assert_eq!(
        ::std::mem::align_of::<ldiv_t>(),
        8usize,
        concat!("Alignment of ", stringify!(ldiv_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ldiv_t),
            "::",
            stringify!(quot)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ldiv_t),
            "::",
            stringify!(rem)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct lldiv_t {
    pub quot: ::std::os::raw::c_longlong,
    pub rem: ::std::os::raw::c_longlong,
}
#[test]
fn bindgen_test_layout_lldiv_t() {
    const UNINIT: ::std::mem::MaybeUninit<lldiv_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<lldiv_t>(),
        16usize,
        concat!("Size of: ", stringify!(lldiv_t))
    );
    assert_eq!(
        ::std::mem::align_of::<lldiv_t>(),
        8usize,
        concat!("Alignment of ", stringify!(lldiv_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).quot) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(lldiv_t),
            "::",
            stringify!(quot)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).rem) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(lldiv_t),
            "::",
            stringify!(rem)
        )
    );
}
extern "C" {
    pub fn __ctype_get_mb_cur_max() -> usize;
}
extern "C" {
    pub fn atof(__nptr: *const ::std::os::raw::c_char) -> f64;
}
extern "C" {
    pub fn atoi(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn atol(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn atoll(__nptr: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn strtod(
        __nptr: *const ::std::os::raw::c_char,
        __endptr: *mut *mut ::std::os::raw::c_char,
    ) -> f64;
}
extern "C" {
    pub fn strtof(
        __nptr: *const ::std::os::raw::c_char,
        __endptr: *mut *mut ::std::os::raw::c_char,
    ) -> f32;
}
extern "C" {
    pub fn strtold(
        __nptr: *const ::std::os::raw::c_char,
        __endptr: *mut *mut ::std::os::raw::c_char,
    ) -> u128;
}
extern "C" {
    pub fn strtol(
        __nptr: *const ::std::os::raw::c_char,
        __endptr: *mut *mut ::std::os::raw::c_char,
        __base: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn strtoul(
        __nptr: *const ::std::os::raw::c_char,
        __endptr: *mut *mut ::std::os::raw::c_char,
        __base: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn strtoq(
        __nptr: *const ::std::os::raw::c_char,
        __endptr: *mut *mut ::std::os::raw::c_char,
        __base: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn strtouq(
        __nptr: *const ::std::os::raw::c_char,
        __endptr: *mut *mut ::std::os::raw::c_char,
        __base: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn strtoll(
        __nptr: *const ::std::os::raw::c_char,
        __endptr: *mut *mut ::std::os::raw::c_char,
        __base: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn strtoull(
        __nptr: *const ::std::os::raw::c_char,
        __endptr: *mut *mut ::std::os::raw::c_char,
        __base: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_ulonglong;
}
extern "C" {
    pub fn l64a(__n: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn a64l(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn random() -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn srandom(__seed: ::std::os::raw::c_uint);
}
extern "C" {
    pub fn initstate(
        __seed: ::std::os::raw::c_uint,
        __statebuf: *mut ::std::os::raw::c_char,
        __statelen: usize,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn setstate(__statebuf: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct random_data {
    pub fptr: *mut i32,
    pub rptr: *mut i32,
    pub state: *mut i32,
    pub rand_type: ::std::os::raw::c_int,
    pub rand_deg: ::std::os::raw::c_int,
    pub rand_sep: ::std::os::raw::c_int,
    pub end_ptr: *mut i32,
}
#[test]
fn bindgen_test_layout_random_data() {
    const UNINIT: ::std::mem::MaybeUninit<random_data> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<random_data>(),
        48usize,
        concat!("Size of: ", stringify!(random_data))
    );
    assert_eq!(
        ::std::mem::align_of::<random_data>(),
        8usize,
        concat!("Alignment of ", stringify!(random_data))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).fptr) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(random_data),
            "::",
            stringify!(fptr)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).rptr) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(random_data),
            "::",
            stringify!(rptr)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).state) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(random_data),
            "::",
            stringify!(state)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).rand_type) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(random_data),
            "::",
            stringify!(rand_type)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).rand_deg) as usize - ptr as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(random_data),
            "::",
            stringify!(rand_deg)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).rand_sep) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(random_data),
            "::",
            stringify!(rand_sep)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).end_ptr) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(random_data),
            "::",
            stringify!(end_ptr)
        )
    );
}
extern "C" {
    pub fn random_r(__buf: *mut random_data, __result: *mut i32) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn srandom_r(
        __seed: ::std::os::raw::c_uint,
        __buf: *mut random_data,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn initstate_r(
        __seed: ::std::os::raw::c_uint,
        __statebuf: *mut ::std::os::raw::c_char,
        __statelen: usize,
        __buf: *mut random_data,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn setstate_r(
        __statebuf: *mut ::std::os::raw::c_char,
        __buf: *mut random_data,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn rand() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn srand(__seed: ::std::os::raw::c_uint);
}
extern "C" {
    pub fn rand_r(__seed: *mut ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn drand48() -> f64;
}
extern "C" {
    pub fn erand48(__xsubi: *mut ::std::os::raw::c_ushort) -> f64;
}
extern "C" {
    pub fn lrand48() -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn nrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn mrand48() -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn jrand48(__xsubi: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn srand48(__seedval: ::std::os::raw::c_long);
}
extern "C" {
    pub fn seed48(__seed16v: *mut ::std::os::raw::c_ushort) -> *mut ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn lcong48(__param: *mut ::std::os::raw::c_ushort);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct drand48_data {
    pub __x: [::std::os::raw::c_ushort; 3usize],
    pub __old_x: [::std::os::raw::c_ushort; 3usize],
    pub __c: ::std::os::raw::c_ushort,
    pub __init: ::std::os::raw::c_ushort,
    pub __a: ::std::os::raw::c_ulonglong,
}
#[test]
fn bindgen_test_layout_drand48_data() {
    const UNINIT: ::std::mem::MaybeUninit<drand48_data> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<drand48_data>(),
        24usize,
        concat!("Size of: ", stringify!(drand48_data))
    );
    assert_eq!(
        ::std::mem::align_of::<drand48_data>(),
        8usize,
        concat!("Alignment of ", stringify!(drand48_data))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__x) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(drand48_data),
            "::",
            stringify!(__x)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__old_x) as usize - ptr as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(drand48_data),
            "::",
            stringify!(__old_x)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__c) as usize - ptr as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(drand48_data),
            "::",
            stringify!(__c)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__init) as usize - ptr as usize },
        14usize,
        concat!(
            "Offset of field: ",
            stringify!(drand48_data),
            "::",
            stringify!(__init)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__a) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(drand48_data),
            "::",
            stringify!(__a)
        )
    );
}
extern "C" {
    pub fn drand48_r(__buffer: *mut drand48_data, __result: *mut f64) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn erand48_r(
        __xsubi: *mut ::std::os::raw::c_ushort,
        __buffer: *mut drand48_data,
        __result: *mut f64,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn lrand48_r(
        __buffer: *mut drand48_data,
        __result: *mut ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn nrand48_r(
        __xsubi: *mut ::std::os::raw::c_ushort,
        __buffer: *mut drand48_data,
        __result: *mut ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mrand48_r(
        __buffer: *mut drand48_data,
        __result: *mut ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn jrand48_r(
        __xsubi: *mut ::std::os::raw::c_ushort,
        __buffer: *mut drand48_data,
        __result: *mut ::std::os::raw::c_long,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn srand48_r(
        __seedval: ::std::os::raw::c_long,
        __buffer: *mut drand48_data,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn seed48_r(
        __seed16v: *mut ::std::os::raw::c_ushort,
        __buffer: *mut drand48_data,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn lcong48_r(
        __param: *mut ::std::os::raw::c_ushort,
        __buffer: *mut drand48_data,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn arc4random() -> __uint32_t;
}
extern "C" {
    pub fn arc4random_buf(__buf: *mut ::std::os::raw::c_void, __size: usize);
}
extern "C" {
    pub fn arc4random_uniform(__upper_bound: __uint32_t) -> __uint32_t;
}
extern "C" {
    pub fn malloc(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn calloc(
        __nmemb: ::std::os::raw::c_ulong,
        __size: ::std::os::raw::c_ulong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn realloc(
        __ptr: *mut ::std::os::raw::c_void,
        __size: ::std::os::raw::c_ulong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn free(__ptr: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn reallocarray(
        __ptr: *mut ::std::os::raw::c_void,
        __nmemb: usize,
        __size: usize,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn alloca(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn valloc(__size: usize) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn posix_memalign(
        __memptr: *mut *mut ::std::os::raw::c_void,
        __alignment: usize,
        __size: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn aligned_alloc(
        __alignment: ::std::os::raw::c_ulong,
        __size: ::std::os::raw::c_ulong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn abort() -> !;
}
extern "C" {
    pub fn atexit(__func: ::std::option::Option<unsafe extern "C" fn()>) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn at_quick_exit(
        __func: ::std::option::Option<unsafe extern "C" fn()>,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn on_exit(
        __func: ::std::option::Option<
            unsafe extern "C" fn(
                __status: ::std::os::raw::c_int,
                __arg: *mut ::std::os::raw::c_void,
            ),
        >,
        __arg: *mut ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn exit(__status: ::std::os::raw::c_int) -> !;
}
extern "C" {
    pub fn quick_exit(__status: ::std::os::raw::c_int) -> !;
}
extern "C" {
    pub fn _Exit(__status: ::std::os::raw::c_int) -> !;
}
extern "C" {
    pub fn getenv(__name: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn putenv(__string: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn setenv(
        __name: *const ::std::os::raw::c_char,
        __value: *const ::std::os::raw::c_char,
        __replace: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn unsetenv(__name: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn clearenv() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mktemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn mkstemp(__template: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mkstemps(
        __template: *mut ::std::os::raw::c_char,
        __suffixlen: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mkdtemp(__template: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn system(__command: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn realpath(
        __name: *const ::std::os::raw::c_char,
        __resolved: *mut ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
pub type __compar_fn_t = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: *const ::std::os::raw::c_void,
        arg2: *const ::std::os::raw::c_void,
    ) -> ::std::os::raw::c_int,
>;
extern "C" {
    pub fn bsearch(
        __key: *const ::std::os::raw::c_void,
        __base: *const ::std::os::raw::c_void,
        __nmemb: usize,
        __size: usize,
        __compar: __compar_fn_t,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn qsort(
        __base: *mut ::std::os::raw::c_void,
        __nmemb: usize,
        __size: usize,
        __compar: __compar_fn_t,
    );
}
extern "C" {
    pub fn abs(__x: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn labs(__x: ::std::os::raw::c_long) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn llabs(__x: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong;
}
extern "C" {
    pub fn div(__numer: ::std::os::raw::c_int, __denom: ::std::os::raw::c_int) -> div_t;
}
extern "C" {
    pub fn ldiv(__numer: ::std::os::raw::c_long, __denom: ::std::os::raw::c_long) -> ldiv_t;
}
extern "C" {
    pub fn lldiv(
        __numer: ::std::os::raw::c_longlong,
        __denom: ::std::os::raw::c_longlong,
    ) -> lldiv_t;
}
extern "C" {
    pub fn ecvt(
        __value: f64,
        __ndigit: ::std::os::raw::c_int,
        __decpt: *mut ::std::os::raw::c_int,
        __sign: *mut ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn fcvt(
        __value: f64,
        __ndigit: ::std::os::raw::c_int,
        __decpt: *mut ::std::os::raw::c_int,
        __sign: *mut ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn gcvt(
        __value: f64,
        __ndigit: ::std::os::raw::c_int,
        __buf: *mut ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn qecvt(
        __value: u128,
        __ndigit: ::std::os::raw::c_int,
        __decpt: *mut ::std::os::raw::c_int,
        __sign: *mut ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn qfcvt(
        __value: u128,
        __ndigit: ::std::os::raw::c_int,
        __decpt: *mut ::std::os::raw::c_int,
        __sign: *mut ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn qgcvt(
        __value: u128,
        __ndigit: ::std::os::raw::c_int,
        __buf: *mut ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn ecvt_r(
        __value: f64,
        __ndigit: ::std::os::raw::c_int,
        __decpt: *mut ::std::os::raw::c_int,
        __sign: *mut ::std::os::raw::c_int,
        __buf: *mut ::std::os::raw::c_char,
        __len: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fcvt_r(
        __value: f64,
        __ndigit: ::std::os::raw::c_int,
        __decpt: *mut ::std::os::raw::c_int,
        __sign: *mut ::std::os::raw::c_int,
        __buf: *mut ::std::os::raw::c_char,
        __len: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn qecvt_r(
        __value: u128,
        __ndigit: ::std::os::raw::c_int,
        __decpt: *mut ::std::os::raw::c_int,
        __sign: *mut ::std::os::raw::c_int,
        __buf: *mut ::std::os::raw::c_char,
        __len: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn qfcvt_r(
        __value: u128,
        __ndigit: ::std::os::raw::c_int,
        __decpt: *mut ::std::os::raw::c_int,
        __sign: *mut ::std::os::raw::c_int,
        __buf: *mut ::std::os::raw::c_char,
        __len: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mblen(__s: *const ::std::os::raw::c_char, __n: usize) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mbtowc(
        __pwc: *mut wchar_t,
        __s: *const ::std::os::raw::c_char,
        __n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn wctomb(__s: *mut ::std::os::raw::c_char, __wchar: wchar_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mbstowcs(__pwcs: *mut wchar_t, __s: *const ::std::os::raw::c_char, __n: usize) -> usize;
}
extern "C" {
    pub fn wcstombs(__s: *mut ::std::os::raw::c_char, __pwcs: *const wchar_t, __n: usize) -> usize;
}
extern "C" {
    pub fn rpmatch(__response: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn getsubopt(
        __optionp: *mut *mut ::std::os::raw::c_char,
        __tokens: *const *mut ::std::os::raw::c_char,
        __valuep: *mut *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn getloadavg(__loadavg: *mut f64, __nelem: ::std::os::raw::c_int)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn memcpy(
        __dest: *mut ::std::os::raw::c_void,
        __src: *const ::std::os::raw::c_void,
        __n: ::std::os::raw::c_ulong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn memmove(
        __dest: *mut ::std::os::raw::c_void,
        __src: *const ::std::os::raw::c_void,
        __n: ::std::os::raw::c_ulong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn memccpy(
        __dest: *mut ::std::os::raw::c_void,
        __src: *const ::std::os::raw::c_void,
        __c: ::std::os::raw::c_int,
        __n: ::std::os::raw::c_ulong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn memset(
        __s: *mut ::std::os::raw::c_void,
        __c: ::std::os::raw::c_int,
        __n: ::std::os::raw::c_ulong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn memcmp(
        __s1: *const ::std::os::raw::c_void,
        __s2: *const ::std::os::raw::c_void,
        __n: ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __memcmpeq(
        __s1: *const ::std::os::raw::c_void,
        __s2: *const ::std::os::raw::c_void,
        __n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn memchr(
        __s: *const ::std::os::raw::c_void,
        __c: ::std::os::raw::c_int,
        __n: ::std::os::raw::c_ulong,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn strcpy(
        __dest: *mut ::std::os::raw::c_char,
        __src: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strncpy(
        __dest: *mut ::std::os::raw::c_char,
        __src: *const ::std::os::raw::c_char,
        __n: ::std::os::raw::c_ulong,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strcat(
        __dest: *mut ::std::os::raw::c_char,
        __src: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strncat(
        __dest: *mut ::std::os::raw::c_char,
        __src: *const ::std::os::raw::c_char,
        __n: ::std::os::raw::c_ulong,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strcmp(
        __s1: *const ::std::os::raw::c_char,
        __s2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strncmp(
        __s1: *const ::std::os::raw::c_char,
        __s2: *const ::std::os::raw::c_char,
        __n: ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strcoll(
        __s1: *const ::std::os::raw::c_char,
        __s2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strxfrm(
        __dest: *mut ::std::os::raw::c_char,
        __src: *const ::std::os::raw::c_char,
        __n: ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_ulong;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __locale_struct {
    pub __locales: [*mut __locale_data; 13usize],
    pub __ctype_b: *const ::std::os::raw::c_ushort,
    pub __ctype_tolower: *const ::std::os::raw::c_int,
    pub __ctype_toupper: *const ::std::os::raw::c_int,
    pub __names: [*const ::std::os::raw::c_char; 13usize],
}
#[test]
fn bindgen_test_layout___locale_struct() {
    const UNINIT: ::std::mem::MaybeUninit<__locale_struct> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<__locale_struct>(),
        232usize,
        concat!("Size of: ", stringify!(__locale_struct))
    );
    assert_eq!(
        ::std::mem::align_of::<__locale_struct>(),
        8usize,
        concat!("Alignment of ", stringify!(__locale_struct))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__locales) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__locale_struct),
            "::",
            stringify!(__locales)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__ctype_b) as usize - ptr as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(__locale_struct),
            "::",
            stringify!(__ctype_b)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__ctype_tolower) as usize - ptr as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(__locale_struct),
            "::",
            stringify!(__ctype_tolower)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__ctype_toupper) as usize - ptr as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(__locale_struct),
            "::",
            stringify!(__ctype_toupper)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__names) as usize - ptr as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(__locale_struct),
            "::",
            stringify!(__names)
        )
    );
}
pub type __locale_t = *mut __locale_struct;
pub type locale_t = __locale_t;
extern "C" {
    pub fn strcoll_l(
        __s1: *const ::std::os::raw::c_char,
        __s2: *const ::std::os::raw::c_char,
        __l: locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strxfrm_l(
        __dest: *mut ::std::os::raw::c_char,
        __src: *const ::std::os::raw::c_char,
        __n: usize,
        __l: locale_t,
    ) -> usize;
}
extern "C" {
    pub fn strdup(__s: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strndup(
        __string: *const ::std::os::raw::c_char,
        __n: ::std::os::raw::c_ulong,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strchr(
        __s: *const ::std::os::raw::c_char,
        __c: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strrchr(
        __s: *const ::std::os::raw::c_char,
        __c: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strcspn(
        __s: *const ::std::os::raw::c_char,
        __reject: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn strspn(
        __s: *const ::std::os::raw::c_char,
        __accept: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn strpbrk(
        __s: *const ::std::os::raw::c_char,
        __accept: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strstr(
        __haystack: *const ::std::os::raw::c_char,
        __needle: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strtok(
        __s: *mut ::std::os::raw::c_char,
        __delim: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn __strtok_r(
        __s: *mut ::std::os::raw::c_char,
        __delim: *const ::std::os::raw::c_char,
        __save_ptr: *mut *mut ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strtok_r(
        __s: *mut ::std::os::raw::c_char,
        __delim: *const ::std::os::raw::c_char,
        __save_ptr: *mut *mut ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strlen(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn strnlen(__string: *const ::std::os::raw::c_char, __maxlen: usize) -> usize;
}
extern "C" {
    pub fn strerror(__errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    #[link_name = "\u{1}__xpg_strerror_r"]
    pub fn strerror_r(
        __errnum: ::std::os::raw::c_int,
        __buf: *mut ::std::os::raw::c_char,
        __buflen: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strerror_l(
        __errnum: ::std::os::raw::c_int,
        __l: locale_t,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn bcmp(
        __s1: *const ::std::os::raw::c_void,
        __s2: *const ::std::os::raw::c_void,
        __n: ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn bcopy(
        __src: *const ::std::os::raw::c_void,
        __dest: *mut ::std::os::raw::c_void,
        __n: usize,
    );
}
extern "C" {
    pub fn bzero(__s: *mut ::std::os::raw::c_void, __n: ::std::os::raw::c_ulong);
}
extern "C" {
    pub fn index(
        __s: *const ::std::os::raw::c_char,
        __c: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn rindex(
        __s: *const ::std::os::raw::c_char,
        __c: ::std::os::raw::c_int,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn ffs(__i: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ffsl(__l: ::std::os::raw::c_long) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ffsll(__ll: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strcasecmp(
        __s1: *const ::std::os::raw::c_char,
        __s2: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strncasecmp(
        __s1: *const ::std::os::raw::c_char,
        __s2: *const ::std::os::raw::c_char,
        __n: ::std::os::raw::c_ulong,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strcasecmp_l(
        __s1: *const ::std::os::raw::c_char,
        __s2: *const ::std::os::raw::c_char,
        __loc: locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn strncasecmp_l(
        __s1: *const ::std::os::raw::c_char,
        __s2: *const ::std::os::raw::c_char,
        __n: usize,
        __loc: locale_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn explicit_bzero(__s: *mut ::std::os::raw::c_void, __n: usize);
}
extern "C" {
    pub fn strsep(
        __stringp: *mut *mut ::std::os::raw::c_char,
        __delim: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn strsignal(__sig: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn __stpcpy(
        __dest: *mut ::std::os::raw::c_char,
        __src: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn stpcpy(
        __dest: *mut ::std::os::raw::c_char,
        __src: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn __stpncpy(
        __dest: *mut ::std::os::raw::c_char,
        __src: *const ::std::os::raw::c_char,
        __n: usize,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn stpncpy(
        __dest: *mut ::std::os::raw::c_char,
        __src: *const ::std::os::raw::c_char,
        __n: ::std::os::raw::c_ulong,
    ) -> *mut ::std::os::raw::c_char;
}
pub type int_least8_t = __int_least8_t;
pub type int_least16_t = __int_least16_t;
pub type int_least32_t = __int_least32_t;
pub type int_least64_t = __int_least64_t;
pub type uint_least8_t = __uint_least8_t;
pub type uint_least16_t = __uint_least16_t;
pub type uint_least32_t = __uint_least32_t;
pub type uint_least64_t = __uint_least64_t;
pub type int_fast8_t = ::std::os::raw::c_schar;
pub type int_fast16_t = ::std::os::raw::c_long;
pub type int_fast32_t = ::std::os::raw::c_long;
pub type int_fast64_t = ::std::os::raw::c_long;
pub type uint_fast8_t = ::std::os::raw::c_uchar;
pub type uint_fast16_t = ::std::os::raw::c_ulong;
pub type uint_fast32_t = ::std::os::raw::c_ulong;
pub type uint_fast64_t = ::std::os::raw::c_ulong;
pub type intmax_t = __intmax_t;
pub type uintmax_t = __uintmax_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct km_stat_t {
    pub capacity: usize,
    pub available: usize,
    pub n_blocks: usize,
    pub n_cores: usize,
    pub largest: usize,
}
#[test]
fn bindgen_test_layout_km_stat_t() {
    const UNINIT: ::std::mem::MaybeUninit<km_stat_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<km_stat_t>(),
        40usize,
        concat!("Size of: ", stringify!(km_stat_t))
    );
    assert_eq!(
        ::std::mem::align_of::<km_stat_t>(),
        8usize,
        concat!("Alignment of ", stringify!(km_stat_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).capacity) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(km_stat_t),
            "::",
            stringify!(capacity)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).available) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(km_stat_t),
            "::",
            stringify!(available)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).n_blocks) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(km_stat_t),
            "::",
            stringify!(n_blocks)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).n_cores) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(km_stat_t),
            "::",
            stringify!(n_cores)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).largest) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(km_stat_t),
            "::",
            stringify!(largest)
        )
    );
}
extern "C" {
    pub fn kmalloc(km: *mut ::std::os::raw::c_void, size: usize) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn krealloc(
        km: *mut ::std::os::raw::c_void,
        ptr: *mut ::std::os::raw::c_void,
        size: usize,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn kcalloc(
        km: *mut ::std::os::raw::c_void,
        count: usize,
        size: usize,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn kfree(km: *mut ::std::os::raw::c_void, ptr: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn km_init() -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn km_init2(
        km_par: *mut ::std::os::raw::c_void,
        min_core_size: usize,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn km_destroy(km: *mut ::std::os::raw::c_void);
}
extern "C" {
    pub fn km_stat(_km: *const ::std::os::raw::c_void, s: *mut km_stat_t);
}
pub type khint32_t = ::std::os::raw::c_uint;
pub type khint64_t = ::std::os::raw::c_ulong;
pub type khint_t = khint32_t;
pub type khiter_t = khint_t;
pub const __ac_HASH_UPPER: f64 = 0.77;
pub type kh_cstr_t = *const ::std::os::raw::c_char;
pub const _ISupper: _bindgen_ty_4 = 256;
pub const _ISlower: _bindgen_ty_4 = 512;
pub const _ISalpha: _bindgen_ty_4 = 1024;
pub const _ISdigit: _bindgen_ty_4 = 2048;
pub const _ISxdigit: _bindgen_ty_4 = 4096;
pub const _ISspace: _bindgen_ty_4 = 8192;
pub const _ISprint: _bindgen_ty_4 = 16384;
pub const _ISgraph: _bindgen_ty_4 = 32768;
pub const _ISblank: _bindgen_ty_4 = 1;
pub const _IScntrl: _bindgen_ty_4 = 2;
pub const _ISpunct: _bindgen_ty_4 = 4;
pub const _ISalnum: _bindgen_ty_4 = 8;
pub type _bindgen_ty_4 = ::std::os::raw::c_uint;
extern "C" {
    pub fn __ctype_b_loc() -> *mut *const ::std::os::raw::c_ushort;
}
extern "C" {
    pub fn __ctype_tolower_loc() -> *mut *const __int32_t;
}
extern "C" {
    pub fn __ctype_toupper_loc() -> *mut *const __int32_t;
}
extern "C" {
    pub fn isalnum(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isalpha(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iscntrl(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn islower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isgraph(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isprint(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ispunct(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isspace(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isxdigit(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn tolower(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn toupper(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isblank(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn toascii(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _toupper(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn _tolower(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isalnum_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isalpha_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn iscntrl_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn islower_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isgraph_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isprint_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ispunct_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isspace_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isupper_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isxdigit_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn isblank_l(arg1: ::std::os::raw::c_int, arg2: locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn tolower_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn toupper_l(__c: ::std::os::raw::c_int, __l: locale_t) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __kstring_t {
    pub l: usize,
    pub m: usize,
    pub s: *mut ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout___kstring_t() {
    const UNINIT: ::std::mem::MaybeUninit<__kstring_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<__kstring_t>(),
        24usize,
        concat!("Size of: ", stringify!(__kstring_t))
    );
    assert_eq!(
        ::std::mem::align_of::<__kstring_t>(),
        8usize,
        concat!("Alignment of ", stringify!(__kstring_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).l) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__kstring_t),
            "::",
            stringify!(l)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).m) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(__kstring_t),
            "::",
            stringify!(m)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).s) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(__kstring_t),
            "::",
            stringify!(s)
        )
    );
}
pub type kstring_t = __kstring_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ksw_extz_t {
    pub _bitfield_align_1: [u32; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
    pub max_q: ::std::os::raw::c_int,
    pub max_t: ::std::os::raw::c_int,
    pub mqe: ::std::os::raw::c_int,
    pub mqe_t: ::std::os::raw::c_int,
    pub mte: ::std::os::raw::c_int,
    pub mte_q: ::std::os::raw::c_int,
    pub score: ::std::os::raw::c_int,
    pub m_cigar: ::std::os::raw::c_int,
    pub n_cigar: ::std::os::raw::c_int,
    pub reach_end: ::std::os::raw::c_int,
    pub cigar: *mut u32,
}
#[test]
fn bindgen_test_layout_ksw_extz_t() {
    const UNINIT: ::std::mem::MaybeUninit<ksw_extz_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ksw_extz_t>(),
        56usize,
        concat!("Size of: ", stringify!(ksw_extz_t))
    );
    assert_eq!(
        ::std::mem::align_of::<ksw_extz_t>(),
        8usize,
        concat!("Alignment of ", stringify!(ksw_extz_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).max_q) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(ksw_extz_t),
            "::",
            stringify!(max_q)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).max_t) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ksw_extz_t),
            "::",
            stringify!(max_t)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).mqe) as usize - ptr as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(ksw_extz_t),
            "::",
            stringify!(mqe)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).mqe_t) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ksw_extz_t),
            "::",
            stringify!(mqe_t)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).mte) as usize - ptr as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(ksw_extz_t),
            "::",
            stringify!(mte)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).mte_q) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ksw_extz_t),
            "::",
            stringify!(mte_q)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).score) as usize - ptr as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(ksw_extz_t),
            "::",
            stringify!(score)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).m_cigar) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(ksw_extz_t),
            "::",
            stringify!(m_cigar)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).n_cigar) as usize - ptr as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(ksw_extz_t),
            "::",
            stringify!(n_cigar)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).reach_end) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(ksw_extz_t),
            "::",
            stringify!(reach_end)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).cigar) as usize - ptr as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(ksw_extz_t),
            "::",
            stringify!(cigar)
        )
    );
}
impl ksw_extz_t {
    #[inline]
    pub fn max(&self) -> u32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 31u8) as u32) }
    }
    #[inline]
    pub fn set_max(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 31u8, val as u64)
        }
    }
    #[inline]
    pub fn zdropped(&self) -> u32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(31usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_zdropped(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(31usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(max: u32, zdropped: u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 31u8, {
            let max: u32 = unsafe { ::std::mem::transmute(max) };
            max as u64
        });
        __bindgen_bitfield_unit.set(31usize, 1u8, {
            let zdropped: u32 = unsafe { ::std::mem::transmute(zdropped) };
            zdropped as u64
        });
        __bindgen_bitfield_unit
    }
}
extern "C" {
    #[doc = " NW-like extension\n\n @param km        memory pool, when used with kalloc\n @param qlen      query length\n @param query     query sequence with 0 <= query[i] < m\n @param tlen      target length\n @param target    target sequence with 0 <= target[i] < m\n @param m         number of residue types\n @param mat       m*m scoring mattrix in one-dimension array\n @param gapo      gap open penalty; a gap of length l cost \"-(gapo+l*gape)\"\n @param gape      gap extension penalty\n @param w         band width (<0 to disable)\n @param zdrop     off-diagonal drop-off to stop extension (positive; <0 to disable)\n @param flag      flag (see KSW_EZ_* macros)\n @param ez        (out) scores and cigar"]
    pub fn ksw_extz(
        km: *mut ::std::os::raw::c_void,
        qlen: ::std::os::raw::c_int,
        query: *const u8,
        tlen: ::std::os::raw::c_int,
        target: *const u8,
        m: i8,
        mat: *const i8,
        q: i8,
        e: i8,
        w: ::std::os::raw::c_int,
        zdrop: ::std::os::raw::c_int,
        flag: ::std::os::raw::c_int,
        ez: *mut ksw_extz_t,
    );
}
extern "C" {
    pub fn ksw_extz2_sse(
        km: *mut ::std::os::raw::c_void,
        qlen: ::std::os::raw::c_int,
        query: *const u8,
        tlen: ::std::os::raw::c_int,
        target: *const u8,
        m: i8,
        mat: *const i8,
        q: i8,
        e: i8,
        w: ::std::os::raw::c_int,
        zdrop: ::std::os::raw::c_int,
        end_bonus: ::std::os::raw::c_int,
        flag: ::std::os::raw::c_int,
        ez: *mut ksw_extz_t,
    );
}
extern "C" {
    pub fn ksw_extd(
        km: *mut ::std::os::raw::c_void,
        qlen: ::std::os::raw::c_int,
        query: *const u8,
        tlen: ::std::os::raw::c_int,
        target: *const u8,
        m: i8,
        mat: *const i8,
        gapo: i8,
        gape: i8,
        gapo2: i8,
        gape2: i8,
        w: ::std::os::raw::c_int,
        zdrop: ::std::os::raw::c_int,
        flag: ::std::os::raw::c_int,
        ez: *mut ksw_extz_t,
    );
}
extern "C" {
    pub fn ksw_extd2_sse(
        km: *mut ::std::os::raw::c_void,
        qlen: ::std::os::raw::c_int,
        query: *const u8,
        tlen: ::std::os::raw::c_int,
        target: *const u8,
        m: i8,
        mat: *const i8,
        gapo: i8,
        gape: i8,
        gapo2: i8,
        gape2: i8,
        w: ::std::os::raw::c_int,
        zdrop: ::std::os::raw::c_int,
        end_bonus: ::std::os::raw::c_int,
        flag: ::std::os::raw::c_int,
        ez: *mut ksw_extz_t,
    );
}
extern "C" {
    pub fn ksw_exts2_sse(
        km: *mut ::std::os::raw::c_void,
        qlen: ::std::os::raw::c_int,
        query: *const u8,
        tlen: ::std::os::raw::c_int,
        target: *const u8,
        m: i8,
        mat: *const i8,
        gapo: i8,
        gape: i8,
        gapo2: i8,
        noncan: i8,
        zdrop: ::std::os::raw::c_int,
        junc_bonus: i8,
        flag: ::std::os::raw::c_int,
        junc: *const u8,
        ez: *mut ksw_extz_t,
    );
}
extern "C" {
    pub fn ksw_extf2_sse(
        km: *mut ::std::os::raw::c_void,
        qlen: ::std::os::raw::c_int,
        query: *const u8,
        tlen: ::std::os::raw::c_int,
        target: *const u8,
        mch: i8,
        mis: i8,
        e: i8,
        w: ::std::os::raw::c_int,
        xdrop: ::std::os::raw::c_int,
        ez: *mut ksw_extz_t,
    );
}
extern "C" {
    #[doc = " Global alignment\n\n (first 10 parameters identical to ksw_extz_sse())\n @param m_cigar   (modified) max CIGAR length; feed 0 if cigar==0\n @param n_cigar   (out) number of CIGAR elements\n @param cigar     (out) BAM-encoded CIGAR; caller need to deallocate with kfree(km, )\n\n @return          score of the alignment"]
    pub fn ksw_gg(
        km: *mut ::std::os::raw::c_void,
        qlen: ::std::os::raw::c_int,
        query: *const u8,
        tlen: ::std::os::raw::c_int,
        target: *const u8,
        m: i8,
        mat: *const i8,
        gapo: i8,
        gape: i8,
        w: ::std::os::raw::c_int,
        m_cigar_: *mut ::std::os::raw::c_int,
        n_cigar_: *mut ::std::os::raw::c_int,
        cigar_: *mut *mut u32,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ksw_gg2(
        km: *mut ::std::os::raw::c_void,
        qlen: ::std::os::raw::c_int,
        query: *const u8,
        tlen: ::std::os::raw::c_int,
        target: *const u8,
        m: i8,
        mat: *const i8,
        gapo: i8,
        gape: i8,
        w: ::std::os::raw::c_int,
        m_cigar_: *mut ::std::os::raw::c_int,
        n_cigar_: *mut ::std::os::raw::c_int,
        cigar_: *mut *mut u32,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ksw_gg2_sse(
        km: *mut ::std::os::raw::c_void,
        qlen: ::std::os::raw::c_int,
        query: *const u8,
        tlen: ::std::os::raw::c_int,
        target: *const u8,
        m: i8,
        mat: *const i8,
        gapo: i8,
        gape: i8,
        w: ::std::os::raw::c_int,
        m_cigar_: *mut ::std::os::raw::c_int,
        n_cigar_: *mut ::std::os::raw::c_int,
        cigar_: *mut *mut u32,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ksw_ll_qinit(
        km: *mut ::std::os::raw::c_void,
        size: ::std::os::raw::c_int,
        qlen: ::std::os::raw::c_int,
        query: *const u8,
        m: ::std::os::raw::c_int,
        mat: *const i8,
    ) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    pub fn ksw_ll_i16(
        q: *mut ::std::os::raw::c_void,
        tlen: ::std::os::raw::c_int,
        target: *const u8,
        gapo: ::std::os::raw::c_int,
        gape: ::std::os::raw::c_int,
        qe: *mut ::std::os::raw::c_int,
        te: *mut ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __assert_fail(
        __assertion: *const ::std::os::raw::c_char,
        __file: *const ::std::os::raw::c_char,
        __line: ::std::os::raw::c_uint,
        __function: *const ::std::os::raw::c_char,
    ) -> !;
}
extern "C" {
    pub fn __assert_perror_fail(
        __errnum: ::std::os::raw::c_int,
        __file: *const ::std::os::raw::c_char,
        __line: ::std::os::raw::c_uint,
        __function: *const ::std::os::raw::c_char,
    ) -> !;
}
extern "C" {
    pub fn __assert(
        __assertion: *const ::std::os::raw::c_char,
        __file: *const ::std::os::raw::c_char,
        __line: ::std::os::raw::c_int,
    ) -> !;
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct __mbstate_t {
    pub __count: ::std::os::raw::c_int,
    pub __value: __mbstate_t__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union __mbstate_t__bindgen_ty_1 {
    pub __wch: ::std::os::raw::c_uint,
    pub __wchb: [::std::os::raw::c_char; 4usize],
}
#[test]
fn bindgen_test_layout___mbstate_t__bindgen_ty_1() {
    const UNINIT: ::std::mem::MaybeUninit<__mbstate_t__bindgen_ty_1> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<__mbstate_t__bindgen_ty_1>(),
        4usize,
        concat!("Size of: ", stringify!(__mbstate_t__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<__mbstate_t__bindgen_ty_1>(),
        4usize,
        concat!("Alignment of ", stringify!(__mbstate_t__bindgen_ty_1))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__wch) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__mbstate_t__bindgen_ty_1),
            "::",
            stringify!(__wch)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__wchb) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__mbstate_t__bindgen_ty_1),
            "::",
            stringify!(__wchb)
        )
    );
}
#[test]
fn bindgen_test_layout___mbstate_t() {
    const UNINIT: ::std::mem::MaybeUninit<__mbstate_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<__mbstate_t>(),
        8usize,
        concat!("Size of: ", stringify!(__mbstate_t))
    );
    assert_eq!(
        ::std::mem::align_of::<__mbstate_t>(),
        4usize,
        concat!("Alignment of ", stringify!(__mbstate_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__count) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__mbstate_t),
            "::",
            stringify!(__count)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__value) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(__mbstate_t),
            "::",
            stringify!(__value)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _G_fpos_t {
    pub __pos: __off_t,
    pub __state: __mbstate_t,
}
#[test]
fn bindgen_test_layout__G_fpos_t() {
    const UNINIT: ::std::mem::MaybeUninit<_G_fpos_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<_G_fpos_t>(),
        16usize,
        concat!("Size of: ", stringify!(_G_fpos_t))
    );
    assert_eq!(
        ::std::mem::align_of::<_G_fpos_t>(),
        8usize,
        concat!("Alignment of ", stringify!(_G_fpos_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__pos) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_G_fpos_t),
            "::",
            stringify!(__pos)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__state) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_G_fpos_t),
            "::",
            stringify!(__state)
        )
    );
}
pub type __fpos_t = _G_fpos_t;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _G_fpos64_t {
    pub __pos: __off64_t,
    pub __state: __mbstate_t,
}
#[test]
fn bindgen_test_layout__G_fpos64_t() {
    const UNINIT: ::std::mem::MaybeUninit<_G_fpos64_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<_G_fpos64_t>(),
        16usize,
        concat!("Size of: ", stringify!(_G_fpos64_t))
    );
    assert_eq!(
        ::std::mem::align_of::<_G_fpos64_t>(),
        8usize,
        concat!("Alignment of ", stringify!(_G_fpos64_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__pos) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_G_fpos64_t),
            "::",
            stringify!(__pos)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__state) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_G_fpos64_t),
            "::",
            stringify!(__state)
        )
    );
}
pub type __fpos64_t = _G_fpos64_t;
pub type __FILE = _IO_FILE;
pub type FILE = _IO_FILE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_marker {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_codecvt {
    _unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_wide_data {
    _unused: [u8; 0],
}
pub type _IO_lock_t = ::std::os::raw::c_void;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_FILE {
    pub _flags: ::std::os::raw::c_int,
    pub _IO_read_ptr: *mut ::std::os::raw::c_char,
    pub _IO_read_end: *mut ::std::os::raw::c_char,
    pub _IO_read_base: *mut ::std::os::raw::c_char,
    pub _IO_write_base: *mut ::std::os::raw::c_char,
    pub _IO_write_ptr: *mut ::std::os::raw::c_char,
    pub _IO_write_end: *mut ::std::os::raw::c_char,
    pub _IO_buf_base: *mut ::std::os::raw::c_char,
    pub _IO_buf_end: *mut ::std::os::raw::c_char,
    pub _IO_save_base: *mut ::std::os::raw::c_char,
    pub _IO_backup_base: *mut ::std::os::raw::c_char,
    pub _IO_save_end: *mut ::std::os::raw::c_char,
    pub _markers: *mut _IO_marker,
    pub _chain: *mut _IO_FILE,
    pub _fileno: ::std::os::raw::c_int,
    pub _flags2: ::std::os::raw::c_int,
    pub _old_offset: __off_t,
    pub _cur_column: ::std::os::raw::c_ushort,
    pub _vtable_offset: ::std::os::raw::c_schar,
    pub _shortbuf: [::std::os::raw::c_char; 1usize],
    pub _lock: *mut _IO_lock_t,
    pub _offset: __off64_t,
    pub _codecvt: *mut _IO_codecvt,
    pub _wide_data: *mut _IO_wide_data,
    pub _freeres_list: *mut _IO_FILE,
    pub _freeres_buf: *mut ::std::os::raw::c_void,
    pub __pad5: usize,
    pub _mode: ::std::os::raw::c_int,
    pub _unused2: [::std::os::raw::c_char; 20usize],
}
#[test]
fn bindgen_test_layout__IO_FILE() {
    const UNINIT: ::std::mem::MaybeUninit<_IO_FILE> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<_IO_FILE>(),
        216usize,
        concat!("Size of: ", stringify!(_IO_FILE))
    );
    assert_eq!(
        ::std::mem::align_of::<_IO_FILE>(),
        8usize,
        concat!("Alignment of ", stringify!(_IO_FILE))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._flags) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_flags)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_ptr) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_IO_read_ptr)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_end) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_IO_read_end)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._IO_read_base) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_IO_read_base)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_base) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_IO_write_base)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_ptr) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_IO_write_ptr)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._IO_write_end) as usize - ptr as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_IO_write_end)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_base) as usize - ptr as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_IO_buf_base)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._IO_buf_end) as usize - ptr as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_IO_buf_end)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_base) as usize - ptr as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_IO_save_base)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._IO_backup_base) as usize - ptr as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_IO_backup_base)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._IO_save_end) as usize - ptr as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_IO_save_end)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._markers) as usize - ptr as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_markers)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._chain) as usize - ptr as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_chain)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._fileno) as usize - ptr as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_fileno)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._flags2) as usize - ptr as usize },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_flags2)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._old_offset) as usize - ptr as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_old_offset)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._cur_column) as usize - ptr as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_cur_column)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._vtable_offset) as usize - ptr as usize },
        130usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_vtable_offset)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._shortbuf) as usize - ptr as usize },
        131usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_shortbuf)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._lock) as usize - ptr as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_lock)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._offset) as usize - ptr as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_offset)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._codecvt) as usize - ptr as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_codecvt)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._wide_data) as usize - ptr as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_wide_data)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._freeres_list) as usize - ptr as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_freeres_list)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._freeres_buf) as usize - ptr as usize },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_freeres_buf)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).__pad5) as usize - ptr as usize },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(__pad5)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._mode) as usize - ptr as usize },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_mode)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr)._unused2) as usize - ptr as usize },
        196usize,
        concat!(
            "Offset of field: ",
            stringify!(_IO_FILE),
            "::",
            stringify!(_unused2)
        )
    );
}
pub type fpos_t = __fpos_t;
extern "C" {
    pub static mut stdin: *mut FILE;
}
extern "C" {
    pub static mut stdout: *mut FILE;
}
extern "C" {
    pub static mut stderr: *mut FILE;
}
extern "C" {
    pub fn remove(__filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn rename(
        __old: *const ::std::os::raw::c_char,
        __new: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn renameat(
        __oldfd: ::std::os::raw::c_int,
        __old: *const ::std::os::raw::c_char,
        __newfd: ::std::os::raw::c_int,
        __new: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn tmpfile() -> *mut FILE;
}
extern "C" {
    pub fn tmpnam(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn tmpnam_r(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn tempnam(
        __dir: *const ::std::os::raw::c_char,
        __pfx: *const ::std::os::raw::c_char,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn fflush(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fflush_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fopen(
        __filename: *const ::std::os::raw::c_char,
        __modes: *const ::std::os::raw::c_char,
    ) -> *mut FILE;
}
extern "C" {
    pub fn freopen(
        __filename: *const ::std::os::raw::c_char,
        __modes: *const ::std::os::raw::c_char,
        __stream: *mut FILE,
    ) -> *mut FILE;
}
extern "C" {
    pub fn fdopen(__fd: ::std::os::raw::c_int, __modes: *const ::std::os::raw::c_char)
        -> *mut FILE;
}
extern "C" {
    pub fn fmemopen(
        __s: *mut ::std::os::raw::c_void,
        __len: usize,
        __modes: *const ::std::os::raw::c_char,
    ) -> *mut FILE;
}
extern "C" {
    pub fn open_memstream(
        __bufloc: *mut *mut ::std::os::raw::c_char,
        __sizeloc: *mut usize,
    ) -> *mut FILE;
}
extern "C" {
    pub fn setbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char);
}
extern "C" {
    pub fn setvbuf(
        __stream: *mut FILE,
        __buf: *mut ::std::os::raw::c_char,
        __modes: ::std::os::raw::c_int,
        __n: usize,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn setbuffer(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char, __size: usize);
}
extern "C" {
    pub fn setlinebuf(__stream: *mut FILE);
}
extern "C" {
    pub fn fprintf(
        __stream: *mut FILE,
        __format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn printf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sprintf(
        __s: *mut ::std::os::raw::c_char,
        __format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vfprintf(
        __s: *mut FILE,
        __format: *const ::std::os::raw::c_char,
        __arg: *mut __va_list_tag,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vprintf(
        __format: *const ::std::os::raw::c_char,
        __arg: *mut __va_list_tag,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vsprintf(
        __s: *mut ::std::os::raw::c_char,
        __format: *const ::std::os::raw::c_char,
        __arg: *mut __va_list_tag,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn snprintf(
        __s: *mut ::std::os::raw::c_char,
        __maxlen: ::std::os::raw::c_ulong,
        __format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vsnprintf(
        __s: *mut ::std::os::raw::c_char,
        __maxlen: ::std::os::raw::c_ulong,
        __format: *const ::std::os::raw::c_char,
        __arg: *mut __va_list_tag,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vdprintf(
        __fd: ::std::os::raw::c_int,
        __fmt: *const ::std::os::raw::c_char,
        __arg: *mut __va_list_tag,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn dprintf(
        __fd: ::std::os::raw::c_int,
        __fmt: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fscanf(
        __stream: *mut FILE,
        __format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn scanf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn sscanf(
        __s: *const ::std::os::raw::c_char,
        __format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[link_name = "\u{1}__isoc99_fscanf"]
    pub fn fscanf1(
        __stream: *mut FILE,
        __format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[link_name = "\u{1}__isoc99_scanf"]
    pub fn scanf1(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
extern "C" {
    #[link_name = "\u{1}__isoc99_sscanf"]
    pub fn sscanf1(
        __s: *const ::std::os::raw::c_char,
        __format: *const ::std::os::raw::c_char,
        ...
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vfscanf(
        __s: *mut FILE,
        __format: *const ::std::os::raw::c_char,
        __arg: *mut __va_list_tag,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vscanf(
        __format: *const ::std::os::raw::c_char,
        __arg: *mut __va_list_tag,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn vsscanf(
        __s: *const ::std::os::raw::c_char,
        __format: *const ::std::os::raw::c_char,
        __arg: *mut __va_list_tag,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[link_name = "\u{1}__isoc99_vfscanf"]
    pub fn vfscanf1(
        __s: *mut FILE,
        __format: *const ::std::os::raw::c_char,
        __arg: *mut __va_list_tag,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[link_name = "\u{1}__isoc99_vscanf"]
    pub fn vscanf1(
        __format: *const ::std::os::raw::c_char,
        __arg: *mut __va_list_tag,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[link_name = "\u{1}__isoc99_vsscanf"]
    pub fn vsscanf1(
        __s: *const ::std::os::raw::c_char,
        __format: *const ::std::os::raw::c_char,
        __arg: *mut __va_list_tag,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fgetc(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn getc(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn getchar() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn getc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn getchar_unlocked() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fgetc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fputc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn putc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn putchar(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fputc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE)
        -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn putc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn putchar_unlocked(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn getw(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn putw(__w: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fgets(
        __s: *mut ::std::os::raw::c_char,
        __n: ::std::os::raw::c_int,
        __stream: *mut FILE,
    ) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn __getdelim(
        __lineptr: *mut *mut ::std::os::raw::c_char,
        __n: *mut usize,
        __delimiter: ::std::os::raw::c_int,
        __stream: *mut FILE,
    ) -> __ssize_t;
}
extern "C" {
    pub fn getdelim(
        __lineptr: *mut *mut ::std::os::raw::c_char,
        __n: *mut usize,
        __delimiter: ::std::os::raw::c_int,
        __stream: *mut FILE,
    ) -> __ssize_t;
}
extern "C" {
    pub fn getline(
        __lineptr: *mut *mut ::std::os::raw::c_char,
        __n: *mut usize,
        __stream: *mut FILE,
    ) -> __ssize_t;
}
extern "C" {
    pub fn fputs(__s: *const ::std::os::raw::c_char, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn puts(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ungetc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fread(
        __ptr: *mut ::std::os::raw::c_void,
        __size: ::std::os::raw::c_ulong,
        __n: ::std::os::raw::c_ulong,
        __stream: *mut FILE,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn fwrite(
        __ptr: *const ::std::os::raw::c_void,
        __size: ::std::os::raw::c_ulong,
        __n: ::std::os::raw::c_ulong,
        __s: *mut FILE,
    ) -> ::std::os::raw::c_ulong;
}
extern "C" {
    pub fn fread_unlocked(
        __ptr: *mut ::std::os::raw::c_void,
        __size: usize,
        __n: usize,
        __stream: *mut FILE,
    ) -> usize;
}
extern "C" {
    pub fn fwrite_unlocked(
        __ptr: *const ::std::os::raw::c_void,
        __size: usize,
        __n: usize,
        __stream: *mut FILE,
    ) -> usize;
}
extern "C" {
    pub fn fseek(
        __stream: *mut FILE,
        __off: ::std::os::raw::c_long,
        __whence: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ftell(__stream: *mut FILE) -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn rewind(__stream: *mut FILE);
}
extern "C" {
    pub fn fseeko(
        __stream: *mut FILE,
        __off: __off_t,
        __whence: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ftello(__stream: *mut FILE) -> __off_t;
}
extern "C" {
    pub fn fgetpos(__stream: *mut FILE, __pos: *mut fpos_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fsetpos(__stream: *mut FILE, __pos: *const fpos_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn clearerr(__stream: *mut FILE);
}
extern "C" {
    pub fn feof(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ferror(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn clearerr_unlocked(__stream: *mut FILE);
}
extern "C" {
    pub fn feof_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn ferror_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn perror(__s: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn fileno(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn fileno_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn pclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn popen(
        __command: *const ::std::os::raw::c_char,
        __modes: *const ::std::os::raw::c_char,
    ) -> *mut FILE;
}
extern "C" {
    pub fn ctermid(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
    pub fn flockfile(__stream: *mut FILE);
}
extern "C" {
    pub fn ftrylockfile(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn funlockfile(__stream: *mut FILE);
}
extern "C" {
    pub fn __uflow(arg1: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn __overflow(arg1: *mut FILE, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mm128_t {
    pub x: u64,
    pub y: u64,
}
#[test]
fn bindgen_test_layout_mm128_t() {
    const UNINIT: ::std::mem::MaybeUninit<mm128_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<mm128_t>(),
        16usize,
        concat!("Size of: ", stringify!(mm128_t))
    );
    assert_eq!(
        ::std::mem::align_of::<mm128_t>(),
        8usize,
        concat!("Alignment of ", stringify!(mm128_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).x) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(mm128_t),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).y) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(mm128_t),
            "::",
            stringify!(y)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mm128_v {
    pub n: usize,
    pub m: usize,
    pub a: *mut mm128_t,
}
#[test]
fn bindgen_test_layout_mm128_v() {
    const UNINIT: ::std::mem::MaybeUninit<mm128_v> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<mm128_v>(),
        24usize,
        concat!("Size of: ", stringify!(mm128_v))
    );
    assert_eq!(
        ::std::mem::align_of::<mm128_v>(),
        8usize,
        concat!("Alignment of ", stringify!(mm128_v))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).n) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(mm128_v),
            "::",
            stringify!(n)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).m) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(mm128_v),
            "::",
            stringify!(m)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).a) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(mm128_v),
            "::",
            stringify!(a)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mm_idx_seq_t {
    pub name: *mut ::std::os::raw::c_char,
    pub offset: u64,
    pub len: u32,
    pub is_alt: u32,
}
#[test]
fn bindgen_test_layout_mm_idx_seq_t() {
    const UNINIT: ::std::mem::MaybeUninit<mm_idx_seq_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<mm_idx_seq_t>(),
        24usize,
        concat!("Size of: ", stringify!(mm_idx_seq_t))
    );
    assert_eq!(
        ::std::mem::align_of::<mm_idx_seq_t>(),
        8usize,
        concat!("Alignment of ", stringify!(mm_idx_seq_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idx_seq_t),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).offset) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idx_seq_t),
            "::",
            stringify!(offset)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).len) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idx_seq_t),
            "::",
            stringify!(len)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).is_alt) as usize - ptr as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idx_seq_t),
            "::",
            stringify!(is_alt)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mm_idx_t {
    pub b: i32,
    pub w: i32,
    pub k: i32,
    pub flag: i32,
    pub n_seq: u32,
    pub index: i32,
    pub n_alt: i32,
    pub seq: *mut mm_idx_seq_t,
    pub S: *mut u32,
    pub B: *mut mm_idx_bucket_s,
    pub I: *mut mm_idx_intv_s,
    pub km: *mut ::std::os::raw::c_void,
    pub h: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_mm_idx_t() {
    const UNINIT: ::std::mem::MaybeUninit<mm_idx_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<mm_idx_t>(),
        80usize,
        concat!("Size of: ", stringify!(mm_idx_t))
    );
    assert_eq!(
        ::std::mem::align_of::<mm_idx_t>(),
        8usize,
        concat!("Alignment of ", stringify!(mm_idx_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).b) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idx_t),
            "::",
            stringify!(b)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).w) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idx_t),
            "::",
            stringify!(w)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).k) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idx_t),
            "::",
            stringify!(k)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).flag) as usize - ptr as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idx_t),
            "::",
            stringify!(flag)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).n_seq) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idx_t),
            "::",
            stringify!(n_seq)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).index) as usize - ptr as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idx_t),
            "::",
            stringify!(index)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).n_alt) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idx_t),
            "::",
            stringify!(n_alt)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).seq) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idx_t),
            "::",
            stringify!(seq)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).S) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idx_t),
            "::",
            stringify!(S)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).B) as usize - ptr as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idx_t),
            "::",
            stringify!(B)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).I) as usize - ptr as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idx_t),
            "::",
            stringify!(I)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).km) as usize - ptr as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idx_t),
            "::",
            stringify!(km)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).h) as usize - ptr as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idx_t),
            "::",
            stringify!(h)
        )
    );
}
#[repr(C)]
#[derive(Debug)]
pub struct mm_extra_t {
    pub capacity: u32,
    pub dp_score: i32,
    pub dp_max: i32,
    pub dp_max2: i32,
    pub _bitfield_align_1: [u32; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
    pub n_cigar: u32,
    pub cigar: __IncompleteArrayField<u32>,
}
#[test]
fn bindgen_test_layout_mm_extra_t() {
    const UNINIT: ::std::mem::MaybeUninit<mm_extra_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<mm_extra_t>(),
        24usize,
        concat!("Size of: ", stringify!(mm_extra_t))
    );
    assert_eq!(
        ::std::mem::align_of::<mm_extra_t>(),
        4usize,
        concat!("Alignment of ", stringify!(mm_extra_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).capacity) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_extra_t),
            "::",
            stringify!(capacity)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).dp_score) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_extra_t),
            "::",
            stringify!(dp_score)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).dp_max) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_extra_t),
            "::",
            stringify!(dp_max)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).dp_max2) as usize - ptr as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_extra_t),
            "::",
            stringify!(dp_max2)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).n_cigar) as usize - ptr as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_extra_t),
            "::",
            stringify!(n_cigar)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).cigar) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_extra_t),
            "::",
            stringify!(cigar)
        )
    );
}
impl mm_extra_t {
    #[inline]
    pub fn n_ambi(&self) -> u32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 30u8) as u32) }
    }
    #[inline]
    pub fn set_n_ambi(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 30u8, val as u64)
        }
    }
    #[inline]
    pub fn trans_strand(&self) -> u32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(30usize, 2u8) as u32) }
    }
    #[inline]
    pub fn set_trans_strand(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(30usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(n_ambi: u32, trans_strand: u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 30u8, {
            let n_ambi: u32 = unsafe { ::std::mem::transmute(n_ambi) };
            n_ambi as u64
        });
        __bindgen_bitfield_unit.set(30usize, 2u8, {
            let trans_strand: u32 = unsafe { ::std::mem::transmute(trans_strand) };
            trans_strand as u64
        });
        __bindgen_bitfield_unit
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mm_reg1_t {
    pub id: i32,
    pub cnt: i32,
    pub rid: i32,
    pub score: i32,
    pub qs: i32,
    pub qe: i32,
    pub rs: i32,
    pub re: i32,
    pub parent: i32,
    pub subsc: i32,
    pub as_: i32,
    pub mlen: i32,
    pub blen: i32,
    pub n_sub: i32,
    pub score0: i32,
    pub _bitfield_align_1: [u8; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
    pub hash: u32,
    pub div: f32,
    pub p: *mut mm_extra_t,
}
#[test]
fn bindgen_test_layout_mm_reg1_t() {
    const UNINIT: ::std::mem::MaybeUninit<mm_reg1_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<mm_reg1_t>(),
        80usize,
        concat!("Size of: ", stringify!(mm_reg1_t))
    );
    assert_eq!(
        ::std::mem::align_of::<mm_reg1_t>(),
        8usize,
        concat!("Alignment of ", stringify!(mm_reg1_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).id) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_reg1_t),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).cnt) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_reg1_t),
            "::",
            stringify!(cnt)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).rid) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_reg1_t),
            "::",
            stringify!(rid)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).score) as usize - ptr as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_reg1_t),
            "::",
            stringify!(score)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).qs) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_reg1_t),
            "::",
            stringify!(qs)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).qe) as usize - ptr as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_reg1_t),
            "::",
            stringify!(qe)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).rs) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_reg1_t),
            "::",
            stringify!(rs)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).re) as usize - ptr as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_reg1_t),
            "::",
            stringify!(re)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).parent) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_reg1_t),
            "::",
            stringify!(parent)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).subsc) as usize - ptr as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_reg1_t),
            "::",
            stringify!(subsc)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).as_) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_reg1_t),
            "::",
            stringify!(as_)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).mlen) as usize - ptr as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_reg1_t),
            "::",
            stringify!(mlen)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).blen) as usize - ptr as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_reg1_t),
            "::",
            stringify!(blen)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).n_sub) as usize - ptr as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_reg1_t),
            "::",
            stringify!(n_sub)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).score0) as usize - ptr as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_reg1_t),
            "::",
            stringify!(score0)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).hash) as usize - ptr as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_reg1_t),
            "::",
            stringify!(hash)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).div) as usize - ptr as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_reg1_t),
            "::",
            stringify!(div)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).p) as usize - ptr as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_reg1_t),
            "::",
            stringify!(p)
        )
    );
}
impl mm_reg1_t {
    #[inline]
    pub fn mapq(&self) -> u32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) }
    }
    #[inline]
    pub fn set_mapq(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 8u8, val as u64)
        }
    }
    #[inline]
    pub fn split(&self) -> u32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 2u8) as u32) }
    }
    #[inline]
    pub fn set_split(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(8usize, 2u8, val as u64)
        }
    }
    #[inline]
    pub fn rev(&self) -> u32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_rev(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(10usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn inv(&self) -> u32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_inv(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(11usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn sam_pri(&self) -> u32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_sam_pri(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(12usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn proper_frag(&self) -> u32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_proper_frag(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(13usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn pe_thru(&self) -> u32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_pe_thru(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(14usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn seg_split(&self) -> u32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_seg_split(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(15usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn seg_id(&self) -> u32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 8u8) as u32) }
    }
    #[inline]
    pub fn set_seg_id(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(16usize, 8u8, val as u64)
        }
    }
    #[inline]
    pub fn split_inv(&self) -> u32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(24usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_split_inv(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(24usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn is_alt(&self) -> u32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(25usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_is_alt(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(25usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn strand_retained(&self) -> u32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(26usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_strand_retained(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(26usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn dummy(&self) -> u32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(27usize, 5u8) as u32) }
    }
    #[inline]
    pub fn set_dummy(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(27usize, 5u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        mapq: u32,
        split: u32,
        rev: u32,
        inv: u32,
        sam_pri: u32,
        proper_frag: u32,
        pe_thru: u32,
        seg_split: u32,
        seg_id: u32,
        split_inv: u32,
        is_alt: u32,
        strand_retained: u32,
        dummy: u32,
    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 8u8, {
            let mapq: u32 = unsafe { ::std::mem::transmute(mapq) };
            mapq as u64
        });
        __bindgen_bitfield_unit.set(8usize, 2u8, {
            let split: u32 = unsafe { ::std::mem::transmute(split) };
            split as u64
        });
        __bindgen_bitfield_unit.set(10usize, 1u8, {
            let rev: u32 = unsafe { ::std::mem::transmute(rev) };
            rev as u64
        });
        __bindgen_bitfield_unit.set(11usize, 1u8, {
            let inv: u32 = unsafe { ::std::mem::transmute(inv) };
            inv as u64
        });
        __bindgen_bitfield_unit.set(12usize, 1u8, {
            let sam_pri: u32 = unsafe { ::std::mem::transmute(sam_pri) };
            sam_pri as u64
        });
        __bindgen_bitfield_unit.set(13usize, 1u8, {
            let proper_frag: u32 = unsafe { ::std::mem::transmute(proper_frag) };
            proper_frag as u64
        });
        __bindgen_bitfield_unit.set(14usize, 1u8, {
            let pe_thru: u32 = unsafe { ::std::mem::transmute(pe_thru) };
            pe_thru as u64
        });
        __bindgen_bitfield_unit.set(15usize, 1u8, {
            let seg_split: u32 = unsafe { ::std::mem::transmute(seg_split) };
            seg_split as u64
        });
        __bindgen_bitfield_unit.set(16usize, 8u8, {
            let seg_id: u32 = unsafe { ::std::mem::transmute(seg_id) };
            seg_id as u64
        });
        __bindgen_bitfield_unit.set(24usize, 1u8, {
            let split_inv: u32 = unsafe { ::std::mem::transmute(split_inv) };
            split_inv as u64
        });
        __bindgen_bitfield_unit.set(25usize, 1u8, {
            let is_alt: u32 = unsafe { ::std::mem::transmute(is_alt) };
            is_alt as u64
        });
        __bindgen_bitfield_unit.set(26usize, 1u8, {
            let strand_retained: u32 = unsafe { ::std::mem::transmute(strand_retained) };
            strand_retained as u64
        });
        __bindgen_bitfield_unit.set(27usize, 5u8, {
            let dummy: u32 = unsafe { ::std::mem::transmute(dummy) };
            dummy as u64
        });
        __bindgen_bitfield_unit
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mm_idxopt_t {
    pub k: ::std::os::raw::c_short,
    pub w: ::std::os::raw::c_short,
    pub flag: ::std::os::raw::c_short,
    pub bucket_bits: ::std::os::raw::c_short,
    pub mini_batch_size: i64,
    pub batch_size: u64,
}
#[test]
fn bindgen_test_layout_mm_idxopt_t() {
    const UNINIT: ::std::mem::MaybeUninit<mm_idxopt_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<mm_idxopt_t>(),
        24usize,
        concat!("Size of: ", stringify!(mm_idxopt_t))
    );
    assert_eq!(
        ::std::mem::align_of::<mm_idxopt_t>(),
        8usize,
        concat!("Alignment of ", stringify!(mm_idxopt_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).k) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idxopt_t),
            "::",
            stringify!(k)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).w) as usize - ptr as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idxopt_t),
            "::",
            stringify!(w)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).flag) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idxopt_t),
            "::",
            stringify!(flag)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).bucket_bits) as usize - ptr as usize },
        6usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idxopt_t),
            "::",
            stringify!(bucket_bits)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).mini_batch_size) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idxopt_t),
            "::",
            stringify!(mini_batch_size)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).batch_size) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idxopt_t),
            "::",
            stringify!(batch_size)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mm_mapopt_t {
    pub flag: i64,
    pub seed: ::std::os::raw::c_int,
    pub sdust_thres: ::std::os::raw::c_int,
    pub max_qlen: ::std::os::raw::c_int,
    pub bw: ::std::os::raw::c_int,
    pub bw_long: ::std::os::raw::c_int,
    pub max_gap: ::std::os::raw::c_int,
    pub max_gap_ref: ::std::os::raw::c_int,
    pub max_frag_len: ::std::os::raw::c_int,
    pub max_chain_skip: ::std::os::raw::c_int,
    pub max_chain_iter: ::std::os::raw::c_int,
    pub min_cnt: ::std::os::raw::c_int,
    pub min_chain_score: ::std::os::raw::c_int,
    pub chain_gap_scale: f32,
    pub chain_skip_scale: f32,
    pub rmq_size_cap: ::std::os::raw::c_int,
    pub rmq_inner_dist: ::std::os::raw::c_int,
    pub rmq_rescue_size: ::std::os::raw::c_int,
    pub rmq_rescue_ratio: f32,
    pub mask_level: f32,
    pub mask_len: ::std::os::raw::c_int,
    pub pri_ratio: f32,
    pub best_n: ::std::os::raw::c_int,
    pub alt_drop: f32,
    pub a: ::std::os::raw::c_int,
    pub b: ::std::os::raw::c_int,
    pub q: ::std::os::raw::c_int,
    pub e: ::std::os::raw::c_int,
    pub q2: ::std::os::raw::c_int,
    pub e2: ::std::os::raw::c_int,
    pub sc_ambi: ::std::os::raw::c_int,
    pub noncan: ::std::os::raw::c_int,
    pub junc_bonus: ::std::os::raw::c_int,
    pub zdrop: ::std::os::raw::c_int,
    pub zdrop_inv: ::std::os::raw::c_int,
    pub end_bonus: ::std::os::raw::c_int,
    pub min_dp_max: ::std::os::raw::c_int,
    pub min_ksw_len: ::std::os::raw::c_int,
    pub anchor_ext_len: ::std::os::raw::c_int,
    pub anchor_ext_shift: ::std::os::raw::c_int,
    pub max_clip_ratio: f32,
    pub rank_min_len: ::std::os::raw::c_int,
    pub rank_frac: f32,
    pub pe_ori: ::std::os::raw::c_int,
    pub pe_bonus: ::std::os::raw::c_int,
    pub mid_occ_frac: f32,
    pub q_occ_frac: f32,
    pub min_mid_occ: i32,
    pub max_mid_occ: i32,
    pub mid_occ: i32,
    pub max_occ: i32,
    pub max_max_occ: i32,
    pub occ_dist: i32,
    pub mini_batch_size: i64,
    pub max_sw_mat: i64,
    pub cap_kalloc: i64,
    pub split_prefix: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_mm_mapopt_t() {
    const UNINIT: ::std::mem::MaybeUninit<mm_mapopt_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<mm_mapopt_t>(),
        248usize,
        concat!("Size of: ", stringify!(mm_mapopt_t))
    );
    assert_eq!(
        ::std::mem::align_of::<mm_mapopt_t>(),
        8usize,
        concat!("Alignment of ", stringify!(mm_mapopt_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).flag) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(flag)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).seed) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(seed)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).sdust_thres) as usize - ptr as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(sdust_thres)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).max_qlen) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(max_qlen)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).bw) as usize - ptr as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(bw)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).bw_long) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(bw_long)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).max_gap) as usize - ptr as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(max_gap)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).max_gap_ref) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(max_gap_ref)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).max_frag_len) as usize - ptr as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(max_frag_len)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).max_chain_skip) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(max_chain_skip)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).max_chain_iter) as usize - ptr as usize },
        44usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(max_chain_iter)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).min_cnt) as usize - ptr as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(min_cnt)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).min_chain_score) as usize - ptr as usize },
        52usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(min_chain_score)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).chain_gap_scale) as usize - ptr as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(chain_gap_scale)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).chain_skip_scale) as usize - ptr as usize },
        60usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(chain_skip_scale)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).rmq_size_cap) as usize - ptr as usize },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(rmq_size_cap)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).rmq_inner_dist) as usize - ptr as usize },
        68usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(rmq_inner_dist)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).rmq_rescue_size) as usize - ptr as usize },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(rmq_rescue_size)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).rmq_rescue_ratio) as usize - ptr as usize },
        76usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(rmq_rescue_ratio)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).mask_level) as usize - ptr as usize },
        80usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(mask_level)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).mask_len) as usize - ptr as usize },
        84usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(mask_len)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pri_ratio) as usize - ptr as usize },
        88usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(pri_ratio)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).best_n) as usize - ptr as usize },
        92usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(best_n)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).alt_drop) as usize - ptr as usize },
        96usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(alt_drop)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).a) as usize - ptr as usize },
        100usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(a)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).b) as usize - ptr as usize },
        104usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(b)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).q) as usize - ptr as usize },
        108usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(q)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).e) as usize - ptr as usize },
        112usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(e)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).q2) as usize - ptr as usize },
        116usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(q2)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).e2) as usize - ptr as usize },
        120usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(e2)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).sc_ambi) as usize - ptr as usize },
        124usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(sc_ambi)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).noncan) as usize - ptr as usize },
        128usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(noncan)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).junc_bonus) as usize - ptr as usize },
        132usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(junc_bonus)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).zdrop) as usize - ptr as usize },
        136usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(zdrop)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).zdrop_inv) as usize - ptr as usize },
        140usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(zdrop_inv)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).end_bonus) as usize - ptr as usize },
        144usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(end_bonus)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).min_dp_max) as usize - ptr as usize },
        148usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(min_dp_max)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).min_ksw_len) as usize - ptr as usize },
        152usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(min_ksw_len)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).anchor_ext_len) as usize - ptr as usize },
        156usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(anchor_ext_len)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).anchor_ext_shift) as usize - ptr as usize },
        160usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(anchor_ext_shift)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).max_clip_ratio) as usize - ptr as usize },
        164usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(max_clip_ratio)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).rank_min_len) as usize - ptr as usize },
        168usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(rank_min_len)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).rank_frac) as usize - ptr as usize },
        172usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(rank_frac)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pe_ori) as usize - ptr as usize },
        176usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(pe_ori)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pe_bonus) as usize - ptr as usize },
        180usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(pe_bonus)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).mid_occ_frac) as usize - ptr as usize },
        184usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(mid_occ_frac)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).q_occ_frac) as usize - ptr as usize },
        188usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(q_occ_frac)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).min_mid_occ) as usize - ptr as usize },
        192usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(min_mid_occ)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).max_mid_occ) as usize - ptr as usize },
        196usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(max_mid_occ)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).mid_occ) as usize - ptr as usize },
        200usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(mid_occ)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).max_occ) as usize - ptr as usize },
        204usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(max_occ)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).max_max_occ) as usize - ptr as usize },
        208usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(max_max_occ)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).occ_dist) as usize - ptr as usize },
        212usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(occ_dist)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).mini_batch_size) as usize - ptr as usize },
        216usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(mini_batch_size)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).max_sw_mat) as usize - ptr as usize },
        224usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(max_sw_mat)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).cap_kalloc) as usize - ptr as usize },
        232usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(cap_kalloc)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).split_prefix) as usize - ptr as usize },
        240usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_mapopt_t),
            "::",
            stringify!(split_prefix)
        )
    );
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct mm_idx_reader_t {
    pub is_idx: ::std::os::raw::c_int,
    pub n_parts: ::std::os::raw::c_int,
    pub idx_size: i64,
    pub opt: mm_idxopt_t,
    pub fp_out: *mut FILE,
    pub fp: mm_idx_reader_t__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union mm_idx_reader_t__bindgen_ty_1 {
    pub seq: *mut mm_bseq_file_s,
    pub idx: *mut FILE,
}
#[test]
fn bindgen_test_layout_mm_idx_reader_t__bindgen_ty_1() {
    const UNINIT: ::std::mem::MaybeUninit<mm_idx_reader_t__bindgen_ty_1> =
        ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<mm_idx_reader_t__bindgen_ty_1>(),
        8usize,
        concat!("Size of: ", stringify!(mm_idx_reader_t__bindgen_ty_1))
    );
    assert_eq!(
        ::std::mem::align_of::<mm_idx_reader_t__bindgen_ty_1>(),
        8usize,
        concat!("Alignment of ", stringify!(mm_idx_reader_t__bindgen_ty_1))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).seq) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idx_reader_t__bindgen_ty_1),
            "::",
            stringify!(seq)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).idx) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idx_reader_t__bindgen_ty_1),
            "::",
            stringify!(idx)
        )
    );
}
#[test]
fn bindgen_test_layout_mm_idx_reader_t() {
    const UNINIT: ::std::mem::MaybeUninit<mm_idx_reader_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<mm_idx_reader_t>(),
        56usize,
        concat!("Size of: ", stringify!(mm_idx_reader_t))
    );
    assert_eq!(
        ::std::mem::align_of::<mm_idx_reader_t>(),
        8usize,
        concat!("Alignment of ", stringify!(mm_idx_reader_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).is_idx) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idx_reader_t),
            "::",
            stringify!(is_idx)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).n_parts) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idx_reader_t),
            "::",
            stringify!(n_parts)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).idx_size) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idx_reader_t),
            "::",
            stringify!(idx_size)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).opt) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idx_reader_t),
            "::",
            stringify!(opt)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).fp_out) as usize - ptr as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idx_reader_t),
            "::",
            stringify!(fp_out)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).fp) as usize - ptr as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_idx_reader_t),
            "::",
            stringify!(fp)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mm_tbuf_s {
    _unused: [u8; 0],
}
pub type mm_tbuf_t = mm_tbuf_s;
extern "C" {
    pub static mut mm_verbose: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut mm_dbg_flag: ::std::os::raw::c_int;
}
extern "C" {
    pub static mut mm_realtime0: f64;
}
extern "C" {
    #[doc = " Set default or preset parameters\n\n @param preset     NULL to set all parameters as default; otherwise apply preset to affected parameters\n @param io         pointer to indexing parameters\n @param mo         pointer to mapping parameters\n\n @return 0 if success; -1 if _present_ unknown"]
    pub fn mm_set_opt(
        preset: *const ::std::os::raw::c_char,
        io: *mut mm_idxopt_t,
        mo: *mut mm_mapopt_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mm_check_opt(io: *const mm_idxopt_t, mo: *const mm_mapopt_t) -> ::std::os::raw::c_int;
}
extern "C" {
    #[doc = " Update mm_mapopt_t::mid_occ via mm_mapopt_t::mid_occ_frac\n\n If mm_mapopt_t::mid_occ is 0, this function sets it to a number such that no\n more than mm_mapopt_t::mid_occ_frac of minimizers in the index have a higher\n occurrence.\n\n @param opt        mapping parameters\n @param mi         minimap2 index"]
    pub fn mm_mapopt_update(opt: *mut mm_mapopt_t, mi: *const mm_idx_t);
}
extern "C" {
    pub fn mm_mapopt_max_intron_len(opt: *mut mm_mapopt_t, max_intron_len: ::std::os::raw::c_int);
}
extern "C" {
    #[doc = " Initialize an index reader\n\n @param fn         index or fasta/fastq file name (this function tests the file type)\n @param opt        indexing parameters\n @param fn_out     if not NULL, write built index to this file\n\n @return an index reader on success; NULL if fail to open _fn_"]
    pub fn mm_idx_reader_open(
        fn_: *const ::std::os::raw::c_char,
        opt: *const mm_idxopt_t,
        fn_out: *const ::std::os::raw::c_char,
    ) -> *mut mm_idx_reader_t;
}
extern "C" {
    #[doc = " Read/build an index\n\n If the input file is an index file, this function reads one part of the\n index and returns. If the input file is a sequence file (fasta or fastq),\n this function constructs the index for about mm_idxopt_t::batch_size bases.\n Importantly, for a huge collection of sequences, this function may only\n return an index for part of sequences. It needs to be repeatedly called\n to traverse the entire index/sequence file.\n\n @param r          index reader\n @param n_threads  number of threads for constructing index\n\n @return an index on success; NULL if reaching the end of the input file"]
    pub fn mm_idx_reader_read(
        r: *mut mm_idx_reader_t,
        n_threads: ::std::os::raw::c_int,
    ) -> *mut mm_idx_t;
}
extern "C" {
    #[doc = " Destroy/deallocate an index reader\n\n @param r          index reader"]
    pub fn mm_idx_reader_close(r: *mut mm_idx_reader_t);
}
extern "C" {
    pub fn mm_idx_reader_eof(r: *const mm_idx_reader_t) -> ::std::os::raw::c_int;
}
extern "C" {
    #[doc = " Check whether the file contains a minimap2 index\n\n @param fn         file name\n\n @return the file size if fn is an index file; 0 if fn is not."]
    pub fn mm_idx_is_idx(fn_: *const ::std::os::raw::c_char) -> i64;
}
extern "C" {
    #[doc = " Load a part of an index\n\n Given a uni-part index, this function loads the entire index into memory.\n Given a multi-part index, it loads one part only and places the file pointer\n at the end of that part.\n\n @param fp         pointer to FILE object\n\n @return minimap2 index read from fp"]
    pub fn mm_idx_load(fp: *mut FILE) -> *mut mm_idx_t;
}
extern "C" {
    #[doc = " Append an index (or one part of a full index) to file\n\n @param fp         pointer to FILE object\n @param mi         minimap2 index"]
    pub fn mm_idx_dump(fp: *mut FILE, mi: *const mm_idx_t);
}
extern "C" {
    #[doc = " Store hash table from minimap2 index into a file\n @param f_name     File name for output file\n @param mi \t     minimap2 index"]
    pub fn mm_idx_dump_hash(f_name: *const ::std::os::raw::c_char, mi: *const mm_idx_t);
}
extern "C" {
    #[doc = " Create an index from strings in memory\n\n @param w            minimizer window size\n @param k            minimizer k-mer size\n @param is_hpc       use HPC k-mer if true\n @param bucket_bits  number of bits for the first level of the hash table\n @param n            number of sequences\n @param seq          sequences in A/C/G/T\n @param name         sequence names; could be NULL\n\n @return minimap2 index"]
    pub fn mm_idx_str(
        w: ::std::os::raw::c_int,
        k: ::std::os::raw::c_int,
        is_hpc: ::std::os::raw::c_int,
        bucket_bits: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        seq: *mut *const ::std::os::raw::c_char,
        name: *mut *const ::std::os::raw::c_char,
    ) -> *mut mm_idx_t;
}
extern "C" {
    #[doc = " Print index statistics to stderr\n\n @param mi         minimap2 index"]
    pub fn mm_idx_stat(idx: *const mm_idx_t);
}
extern "C" {
    #[doc = " Destroy/deallocate an index\n\n @param r          minimap2 index"]
    pub fn mm_idx_destroy(mi: *mut mm_idx_t);
}
extern "C" {
    #[doc = " Destroy/deallocate an hash table index\n\n @param r          minimap2 index"]
    pub fn mm_idx_destroy_mm_hash(mi: *mut mm_idx_t);
}
extern "C" {
    #[doc = " Destroy/deallocate target sequences\n\n @param r          minimap2 index"]
    pub fn mm_idx_destroy_seq(mi: *mut mm_idx_t);
}
extern "C" {
    #[doc = " Initialize a thread-local buffer for mapping\n\n Each mapping thread requires a buffer specific to the thread (see mm_map()\n below). The primary purpose of this buffer is to reduce frequent heap\n allocations across threads. A buffer shall not be used by two or more\n threads.\n\n @return pointer to a thread-local buffer"]
    pub fn mm_tbuf_init() -> *mut mm_tbuf_t;
}
extern "C" {
    #[doc = " Destroy/deallocate a thread-local buffer for mapping\n\n @param b          the buffer"]
    pub fn mm_tbuf_destroy(b: *mut mm_tbuf_t);
}
extern "C" {
    pub fn mm_tbuf_get_km(b: *mut mm_tbuf_t) -> *mut ::std::os::raw::c_void;
}
extern "C" {
    #[doc = " Align a query sequence against an index\n\n This function possibly finds multiple alignments of the query sequence.\n The returned array and the mm_reg1_t::p field of each element are allocated\n with malloc().\n\n @param mi         minimap2 index\n @param l_seq      length of the query sequence\n @param seq        the query sequence\n @param n_regs     number of hits (out)\n @param b          thread-local buffer; two mm_map() calls shall not use one buffer at the same time!\n @param opt        mapping parameters\n @param name       query name, used for all-vs-all overlapping and debugging\n\n @return an array of hits which need to be deallocated with free() together\n         with mm_reg1_t::p of each element. The size is written to _n_regs_."]
    pub fn mm_map(
        mi: *const mm_idx_t,
        l_seq: ::std::os::raw::c_int,
        seq: *const ::std::os::raw::c_char,
        n_regs: *mut ::std::os::raw::c_int,
        b: *mut mm_tbuf_t,
        opt: *const mm_mapopt_t,
        name: *const ::std::os::raw::c_char,
    ) -> *mut mm_reg1_t;
}
extern "C" {
    pub fn mm_map_frag(
        mi: *const mm_idx_t,
        n_segs: ::std::os::raw::c_int,
        qlens: *const ::std::os::raw::c_int,
        seqs: *mut *const ::std::os::raw::c_char,
        n_regs: *mut ::std::os::raw::c_int,
        regs: *mut *mut mm_reg1_t,
        b: *mut mm_tbuf_t,
        opt: *const mm_mapopt_t,
        qname: *const ::std::os::raw::c_char,
    );
}
extern "C" {
    #[doc = " Align a fasta/fastq file and print alignments to stdout\n\n @param idx        minimap2 index\n @param fn         fasta/fastq file name\n @param opt        mapping parameters\n @param n_threads  number of threads\n\n @return 0 on success; -1 if _fn_ can't be read"]
    pub fn mm_map_file(
        idx: *const mm_idx_t,
        fn_: *const ::std::os::raw::c_char,
        opt: *const mm_mapopt_t,
        n_threads: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mm_map_file_frag(
        idx: *const mm_idx_t,
        n_segs: ::std::os::raw::c_int,
        fn_: *mut *const ::std::os::raw::c_char,
        opt: *const mm_mapopt_t,
        n_threads: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    #[doc = " Generate the cs tag (new in 2.12)\n\n @param km         memory blocks; set to NULL if unsure\n @param buf        buffer to write the cs/MD tag; typicall NULL on the first call\n @param max_len    max length of the buffer; typically set to 0 on the first call\n @param mi         index\n @param r          alignment\n @param seq        query sequence\n @param no_iden    true to use : instead of =\n\n @return the length of cs"]
    pub fn mm_gen_cs(
        km: *mut ::std::os::raw::c_void,
        buf: *mut *mut ::std::os::raw::c_char,
        max_len: *mut ::std::os::raw::c_int,
        mi: *const mm_idx_t,
        r: *const mm_reg1_t,
        seq: *const ::std::os::raw::c_char,
        no_iden: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mm_gen_MD(
        km: *mut ::std::os::raw::c_void,
        buf: *mut *mut ::std::os::raw::c_char,
        max_len: *mut ::std::os::raw::c_int,
        mi: *const mm_idx_t,
        r: *const mm_reg1_t,
        seq: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mm_idx_index_name(mi: *mut mm_idx_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mm_idx_name2id(
        mi: *const mm_idx_t,
        name: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mm_idx_getseq(
        mi: *const mm_idx_t,
        rid: u32,
        st: u32,
        en: u32,
        seq: *mut u8,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mm_idx_alt_read(
        mi: *mut mm_idx_t,
        fn_: *const ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mm_idx_bed_read(
        mi: *mut mm_idx_t,
        fn_: *const ::std::os::raw::c_char,
        read_junc: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mm_idx_bed_junc(
        mi: *const mm_idx_t,
        ctg: i32,
        st: i32,
        en: i32,
        s: *mut u8,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mm_mapopt_init(opt: *mut mm_mapopt_t);
}
extern "C" {
    pub fn mm_idx_build(
        fn_: *const ::std::os::raw::c_char,
        w: ::std::os::raw::c_int,
        k: ::std::os::raw::c_int,
        flag: ::std::os::raw::c_int,
        n_threads: ::std::os::raw::c_int,
    ) -> *mut mm_idx_t;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mm_bseq_file_s {
    _unused: [u8; 0],
}
pub type mm_bseq_file_t = mm_bseq_file_s;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mm_bseq1_t {
    pub l_seq: ::std::os::raw::c_int,
    pub rid: ::std::os::raw::c_int,
    pub name: *mut ::std::os::raw::c_char,
    pub seq: *mut ::std::os::raw::c_char,
    pub qual: *mut ::std::os::raw::c_char,
    pub comment: *mut ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_mm_bseq1_t() {
    const UNINIT: ::std::mem::MaybeUninit<mm_bseq1_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<mm_bseq1_t>(),
        40usize,
        concat!("Size of: ", stringify!(mm_bseq1_t))
    );
    assert_eq!(
        ::std::mem::align_of::<mm_bseq1_t>(),
        8usize,
        concat!("Alignment of ", stringify!(mm_bseq1_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).l_seq) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_bseq1_t),
            "::",
            stringify!(l_seq)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).rid) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_bseq1_t),
            "::",
            stringify!(rid)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_bseq1_t),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).seq) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_bseq1_t),
            "::",
            stringify!(seq)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).qual) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_bseq1_t),
            "::",
            stringify!(qual)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).comment) as usize - ptr as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_bseq1_t),
            "::",
            stringify!(comment)
        )
    );
}
extern "C" {
    pub fn mm_bseq_open(fn_: *const ::std::os::raw::c_char) -> *mut mm_bseq_file_t;
}
extern "C" {
    pub fn mm_bseq_close(fp: *mut mm_bseq_file_t);
}
extern "C" {
    pub fn mm_bseq_read3(
        fp: *mut mm_bseq_file_t,
        chunk_size: i64,
        with_qual: ::std::os::raw::c_int,
        with_comment: ::std::os::raw::c_int,
        frag_mode: ::std::os::raw::c_int,
        n_: *mut ::std::os::raw::c_int,
    ) -> *mut mm_bseq1_t;
}
extern "C" {
    pub fn mm_bseq_read2(
        fp: *mut mm_bseq_file_t,
        chunk_size: i64,
        with_qual: ::std::os::raw::c_int,
        frag_mode: ::std::os::raw::c_int,
        n_: *mut ::std::os::raw::c_int,
    ) -> *mut mm_bseq1_t;
}
extern "C" {
    pub fn mm_bseq_read(
        fp: *mut mm_bseq_file_t,
        chunk_size: i64,
        with_qual: ::std::os::raw::c_int,
        n_: *mut ::std::os::raw::c_int,
    ) -> *mut mm_bseq1_t;
}
extern "C" {
    pub fn mm_bseq_read_frag2(
        n_fp: ::std::os::raw::c_int,
        fp: *mut *mut mm_bseq_file_t,
        chunk_size: i64,
        with_qual: ::std::os::raw::c_int,
        with_comment: ::std::os::raw::c_int,
        n_: *mut ::std::os::raw::c_int,
    ) -> *mut mm_bseq1_t;
}
extern "C" {
    pub fn mm_bseq_read_frag(
        n_fp: ::std::os::raw::c_int,
        fp: *mut *mut mm_bseq_file_t,
        chunk_size: i64,
        with_qual: ::std::os::raw::c_int,
        n_: *mut ::std::os::raw::c_int,
    ) -> *mut mm_bseq1_t;
}
extern "C" {
    pub fn mm_bseq_eof(fp: *mut mm_bseq_file_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub static mut seq_nt4_table: [::std::os::raw::c_uchar; 256usize];
}
extern "C" {
    pub static mut seq_comp_table: [::std::os::raw::c_uchar; 256usize];
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mm_seed_t {
    pub n: u32,
    pub q_pos: u32,
    pub _bitfield_align_1: [u32; 0],
    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
    pub cr: *const u64,
}
#[test]
fn bindgen_test_layout_mm_seed_t() {
    const UNINIT: ::std::mem::MaybeUninit<mm_seed_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<mm_seed_t>(),
        24usize,
        concat!("Size of: ", stringify!(mm_seed_t))
    );
    assert_eq!(
        ::std::mem::align_of::<mm_seed_t>(),
        8usize,
        concat!("Alignment of ", stringify!(mm_seed_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).n) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_seed_t),
            "::",
            stringify!(n)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).q_pos) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_seed_t),
            "::",
            stringify!(q_pos)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).cr) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_seed_t),
            "::",
            stringify!(cr)
        )
    );
}
impl mm_seed_t {
    #[inline]
    pub fn q_span(&self) -> u32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 31u8) as u32) }
    }
    #[inline]
    pub fn set_q_span(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(0usize, 31u8, val as u64)
        }
    }
    #[inline]
    pub fn flt(&self) -> u32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(31usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_flt(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(31usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn seg_id(&self) -> u32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 31u8) as u32) }
    }
    #[inline]
    pub fn set_seg_id(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(32usize, 31u8, val as u64)
        }
    }
    #[inline]
    pub fn is_tandem(&self) -> u32 {
        unsafe { ::std::mem::transmute(self._bitfield_1.get(63usize, 1u8) as u32) }
    }
    #[inline]
    pub fn set_is_tandem(&mut self, val: u32) {
        unsafe {
            let val: u32 = ::std::mem::transmute(val);
            self._bitfield_1.set(63usize, 1u8, val as u64)
        }
    }
    #[inline]
    pub fn new_bitfield_1(
        q_span: u32,
        flt: u32,
        seg_id: u32,
        is_tandem: u32,
    ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
        __bindgen_bitfield_unit.set(0usize, 31u8, {
            let q_span: u32 = unsafe { ::std::mem::transmute(q_span) };
            q_span as u64
        });
        __bindgen_bitfield_unit.set(31usize, 1u8, {
            let flt: u32 = unsafe { ::std::mem::transmute(flt) };
            flt as u64
        });
        __bindgen_bitfield_unit.set(32usize, 31u8, {
            let seg_id: u32 = unsafe { ::std::mem::transmute(seg_id) };
            seg_id as u64
        });
        __bindgen_bitfield_unit.set(63usize, 1u8, {
            let is_tandem: u32 = unsafe { ::std::mem::transmute(is_tandem) };
            is_tandem as u64
        });
        __bindgen_bitfield_unit
    }
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mm_seg_t {
    pub n_u: ::std::os::raw::c_int,
    pub n_a: ::std::os::raw::c_int,
    pub u: *mut u64,
    pub a: *mut mm128_t,
}
#[test]
fn bindgen_test_layout_mm_seg_t() {
    const UNINIT: ::std::mem::MaybeUninit<mm_seg_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<mm_seg_t>(),
        24usize,
        concat!("Size of: ", stringify!(mm_seg_t))
    );
    assert_eq!(
        ::std::mem::align_of::<mm_seg_t>(),
        8usize,
        concat!("Alignment of ", stringify!(mm_seg_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).n_u) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_seg_t),
            "::",
            stringify!(n_u)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).n_a) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_seg_t),
            "::",
            stringify!(n_a)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_seg_t),
            "::",
            stringify!(u)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).a) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(mm_seg_t),
            "::",
            stringify!(a)
        )
    );
}
extern "C" {
    pub fn cputime() -> f64;
}
extern "C" {
    pub fn realtime() -> f64;
}
extern "C" {
    pub fn peakrss() -> ::std::os::raw::c_long;
}
extern "C" {
    pub fn radix_sort_128x(beg: *mut mm128_t, end: *mut mm128_t);
}
extern "C" {
    pub fn radix_sort_64(beg: *mut u64, end: *mut u64);
}
extern "C" {
    pub fn ks_ksmall_uint32_t(n: usize, arr: *mut u32, kk: usize) -> u32;
}
extern "C" {
    pub fn mm_sketch(
        km: *mut ::std::os::raw::c_void,
        str_: *const ::std::os::raw::c_char,
        len: ::std::os::raw::c_int,
        w: ::std::os::raw::c_int,
        k: ::std::os::raw::c_int,
        rid: u32,
        is_hpc: ::std::os::raw::c_int,
        p: *mut mm128_v,
    );
}
extern "C" {
    pub fn mm_collect_matches(
        km: *mut ::std::os::raw::c_void,
        _n_m: *mut ::std::os::raw::c_int,
        qlen: ::std::os::raw::c_int,
        max_occ: ::std::os::raw::c_int,
        max_max_occ: ::std::os::raw::c_int,
        dist: ::std::os::raw::c_int,
        mi: *const mm_idx_t,
        mv: *const mm128_v,
        n_a: *mut i64,
        rep_len: *mut ::std::os::raw::c_int,
        n_mini_pos: *mut ::std::os::raw::c_int,
        mini_pos: *mut *mut u64,
    ) -> *mut mm_seed_t;
}
extern "C" {
    pub fn mm_seed_mz_flt(
        km: *mut ::std::os::raw::c_void,
        mv: *mut mm128_v,
        q_occ_max: i32,
        q_occ_frac: f32,
    );
}
extern "C" {
    pub fn mm_event_identity(r: *const mm_reg1_t) -> f64;
}
extern "C" {
    pub fn mm_write_sam_hdr(
        mi: *const mm_idx_t,
        rg: *const ::std::os::raw::c_char,
        ver: *const ::std::os::raw::c_char,
        argc: ::std::os::raw::c_int,
        argv: *mut *mut ::std::os::raw::c_char,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mm_write_paf(
        s: *mut kstring_t,
        mi: *const mm_idx_t,
        t: *const mm_bseq1_t,
        r: *const mm_reg1_t,
        km: *mut ::std::os::raw::c_void,
        opt_flag: i64,
    );
}
extern "C" {
    pub fn mm_write_paf3(
        s: *mut kstring_t,
        mi: *const mm_idx_t,
        t: *const mm_bseq1_t,
        r: *const mm_reg1_t,
        km: *mut ::std::os::raw::c_void,
        opt_flag: i64,
        rep_len: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn mm_write_sam(
        s: *mut kstring_t,
        mi: *const mm_idx_t,
        t: *const mm_bseq1_t,
        r: *const mm_reg1_t,
        n_regs: ::std::os::raw::c_int,
        regs: *const mm_reg1_t,
    );
}
extern "C" {
    pub fn mm_write_sam2(
        s: *mut kstring_t,
        mi: *const mm_idx_t,
        t: *const mm_bseq1_t,
        seg_idx: ::std::os::raw::c_int,
        reg_idx: ::std::os::raw::c_int,
        n_seg: ::std::os::raw::c_int,
        n_regs: *const ::std::os::raw::c_int,
        regs: *const *const mm_reg1_t,
        km: *mut ::std::os::raw::c_void,
        opt_flag: i64,
    );
}
extern "C" {
    pub fn mm_write_sam3(
        s: *mut kstring_t,
        mi: *const mm_idx_t,
        t: *const mm_bseq1_t,
        seg_idx: ::std::os::raw::c_int,
        reg_idx: ::std::os::raw::c_int,
        n_seg: ::std::os::raw::c_int,
        n_regss: *const ::std::os::raw::c_int,
        regss: *const *const mm_reg1_t,
        km: *mut ::std::os::raw::c_void,
        opt_flag: i64,
        rep_len: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn mm_idxopt_init(opt: *mut mm_idxopt_t);
}
extern "C" {
    pub fn mm_idx_get(
        mi: *const mm_idx_t,
        minier: u64,
        n: *mut ::std::os::raw::c_int,
    ) -> *const u64;
}
extern "C" {
    pub fn mm_idx_cal_max_occ(mi: *const mm_idx_t, f: f32) -> i32;
}
extern "C" {
    pub fn mm_idx_getseq2(
        mi: *const mm_idx_t,
        is_rev: ::std::os::raw::c_int,
        rid: u32,
        st: u32,
        en: u32,
        seq: *mut u8,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mm_align_skeleton(
        km: *mut ::std::os::raw::c_void,
        opt: *const mm_mapopt_t,
        mi: *const mm_idx_t,
        qlen: ::std::os::raw::c_int,
        qstr: *const ::std::os::raw::c_char,
        n_regs_: *mut ::std::os::raw::c_int,
        regs: *mut mm_reg1_t,
        a: *mut mm128_t,
    ) -> *mut mm_reg1_t;
}
extern "C" {
    pub fn mm_gen_regs(
        km: *mut ::std::os::raw::c_void,
        hash: u32,
        qlen: ::std::os::raw::c_int,
        n_u: ::std::os::raw::c_int,
        u: *mut u64,
        a: *mut mm128_t,
        is_qstrand: ::std::os::raw::c_int,
    ) -> *mut mm_reg1_t;
}
extern "C" {
    pub fn mm_chain_dp(
        max_dist_x: ::std::os::raw::c_int,
        max_dist_y: ::std::os::raw::c_int,
        bw: ::std::os::raw::c_int,
        max_skip: ::std::os::raw::c_int,
        max_iter: ::std::os::raw::c_int,
        min_cnt: ::std::os::raw::c_int,
        min_sc: ::std::os::raw::c_int,
        gap_scale: f32,
        is_cdna: ::std::os::raw::c_int,
        n_segs: ::std::os::raw::c_int,
        n: i64,
        a: *mut mm128_t,
        n_u_: *mut ::std::os::raw::c_int,
        _u: *mut *mut u64,
        km: *mut ::std::os::raw::c_void,
    ) -> *mut mm128_t;
}
extern "C" {
    pub fn mg_lchain_dp(
        max_dist_x: ::std::os::raw::c_int,
        max_dist_y: ::std::os::raw::c_int,
        bw: ::std::os::raw::c_int,
        max_skip: ::std::os::raw::c_int,
        max_iter: ::std::os::raw::c_int,
        min_cnt: ::std::os::raw::c_int,
        min_sc: ::std::os::raw::c_int,
        chn_pen_gap: f32,
        chn_pen_skip: f32,
        is_cdna: ::std::os::raw::c_int,
        n_segs: ::std::os::raw::c_int,
        n: i64,
        a: *mut mm128_t,
        n_u_: *mut ::std::os::raw::c_int,
        _u: *mut *mut u64,
        km: *mut ::std::os::raw::c_void,
    ) -> *mut mm128_t;
}
extern "C" {
    pub fn mg_lchain_rmq(
        max_dist: ::std::os::raw::c_int,
        max_dist_inner: ::std::os::raw::c_int,
        bw: ::std::os::raw::c_int,
        max_chn_skip: ::std::os::raw::c_int,
        cap_rmq_size: ::std::os::raw::c_int,
        min_cnt: ::std::os::raw::c_int,
        min_sc: ::std::os::raw::c_int,
        chn_pen_gap: f32,
        chn_pen_skip: f32,
        n: i64,
        a: *mut mm128_t,
        n_u_: *mut ::std::os::raw::c_int,
        _u: *mut *mut u64,
        km: *mut ::std::os::raw::c_void,
    ) -> *mut mm128_t;
}
extern "C" {
    pub fn mm_mark_alt(mi: *const mm_idx_t, n: ::std::os::raw::c_int, r: *mut mm_reg1_t);
}
extern "C" {
    pub fn mm_split_reg(
        r: *mut mm_reg1_t,
        r2: *mut mm_reg1_t,
        n: ::std::os::raw::c_int,
        qlen: ::std::os::raw::c_int,
        a: *mut mm128_t,
        is_qstrand: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn mm_sync_regs(
        km: *mut ::std::os::raw::c_void,
        n_regs: ::std::os::raw::c_int,
        regs: *mut mm_reg1_t,
    );
}
extern "C" {
    pub fn mm_squeeze_a(
        km: *mut ::std::os::raw::c_void,
        n_regs: ::std::os::raw::c_int,
        regs: *mut mm_reg1_t,
        a: *mut mm128_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mm_set_sam_pri(n: ::std::os::raw::c_int, r: *mut mm_reg1_t) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mm_set_parent(
        km: *mut ::std::os::raw::c_void,
        mask_level: f32,
        mask_len: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        r: *mut mm_reg1_t,
        sub_diff: ::std::os::raw::c_int,
        hard_mask_level: ::std::os::raw::c_int,
        alt_diff_frac: f32,
    );
}
extern "C" {
    pub fn mm_select_sub(
        km: *mut ::std::os::raw::c_void,
        pri_ratio: f32,
        min_diff: ::std::os::raw::c_int,
        best_n: ::std::os::raw::c_int,
        check_strand: ::std::os::raw::c_int,
        min_strand_sc: ::std::os::raw::c_int,
        n_: *mut ::std::os::raw::c_int,
        r: *mut mm_reg1_t,
    );
}
extern "C" {
    pub fn mm_select_sub_multi(
        km: *mut ::std::os::raw::c_void,
        pri_ratio: f32,
        pri1: f32,
        pri2: f32,
        max_gap_ref: ::std::os::raw::c_int,
        min_diff: ::std::os::raw::c_int,
        best_n: ::std::os::raw::c_int,
        n_segs: ::std::os::raw::c_int,
        qlens: *const ::std::os::raw::c_int,
        n_: *mut ::std::os::raw::c_int,
        r: *mut mm_reg1_t,
    );
}
extern "C" {
    pub fn mm_filter_strand_retained(
        n_regs: ::std::os::raw::c_int,
        r: *mut mm_reg1_t,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mm_filter_regs(
        opt: *const mm_mapopt_t,
        qlen: ::std::os::raw::c_int,
        n_regs: *mut ::std::os::raw::c_int,
        regs: *mut mm_reg1_t,
    );
}
extern "C" {
    pub fn mm_hit_sort(
        km: *mut ::std::os::raw::c_void,
        n_regs: *mut ::std::os::raw::c_int,
        r: *mut mm_reg1_t,
        alt_diff_frac: f32,
    );
}
extern "C" {
    pub fn mm_set_mapq(
        km: *mut ::std::os::raw::c_void,
        n_regs: ::std::os::raw::c_int,
        regs: *mut mm_reg1_t,
        min_chain_sc: ::std::os::raw::c_int,
        match_sc: ::std::os::raw::c_int,
        rep_len: ::std::os::raw::c_int,
        is_sr: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn mm_update_dp_max(
        qlen: ::std::os::raw::c_int,
        n_regs: ::std::os::raw::c_int,
        regs: *mut mm_reg1_t,
        frac: f32,
        a: ::std::os::raw::c_int,
        b: ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn mm_est_err(
        mi: *const mm_idx_t,
        qlen: ::std::os::raw::c_int,
        n_regs: ::std::os::raw::c_int,
        regs: *mut mm_reg1_t,
        a: *const mm128_t,
        n: i32,
        mini_pos: *const u64,
    );
}
extern "C" {
    pub fn mm_seg_gen(
        km: *mut ::std::os::raw::c_void,
        hash: u32,
        n_segs: ::std::os::raw::c_int,
        qlens: *const ::std::os::raw::c_int,
        n_regs0: ::std::os::raw::c_int,
        regs0: *const mm_reg1_t,
        n_regs: *mut ::std::os::raw::c_int,
        regs: *mut *mut mm_reg1_t,
        a: *const mm128_t,
    ) -> *mut mm_seg_t;
}
extern "C" {
    pub fn mm_seg_free(
        km: *mut ::std::os::raw::c_void,
        n_segs: ::std::os::raw::c_int,
        segs: *mut mm_seg_t,
    );
}
extern "C" {
    pub fn mm_pair(
        km: *mut ::std::os::raw::c_void,
        max_gap_ref: ::std::os::raw::c_int,
        dp_bonus: ::std::os::raw::c_int,
        sub_diff: ::std::os::raw::c_int,
        match_sc: ::std::os::raw::c_int,
        qlens: *const ::std::os::raw::c_int,
        n_regs: *mut ::std::os::raw::c_int,
        regs: *mut *mut mm_reg1_t,
    );
}
extern "C" {
    pub fn mm_split_init(prefix: *const ::std::os::raw::c_char, mi: *const mm_idx_t) -> *mut FILE;
}
extern "C" {
    pub fn mm_split_merge_prep(
        prefix: *const ::std::os::raw::c_char,
        n_splits: ::std::os::raw::c_int,
        fp: *mut *mut FILE,
        n_seq_part: *mut u32,
    ) -> *mut mm_idx_t;
}
extern "C" {
    pub fn mm_split_merge(
        n_segs: ::std::os::raw::c_int,
        fn_: *mut *const ::std::os::raw::c_char,
        opt: *const mm_mapopt_t,
        n_split_idx: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn mm_split_rm_tmp(prefix: *const ::std::os::raw::c_char, n_splits: ::std::os::raw::c_int);
}
extern "C" {
    pub fn mm_err_puts(str_: *const ::std::os::raw::c_char);
}
extern "C" {
    pub fn mm_err_fwrite(
        p: *const ::std::os::raw::c_void,
        size: usize,
        nitems: usize,
        fp: *mut FILE,
    );
}
extern "C" {
    pub fn mm_err_fread(p: *mut ::std::os::raw::c_void, size: usize, nitems: usize, fp: *mut FILE);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ketopt_t {
    pub ind: ::std::os::raw::c_int,
    pub opt: ::std::os::raw::c_int,
    pub arg: *mut ::std::os::raw::c_char,
    pub longidx: ::std::os::raw::c_int,
    pub i: ::std::os::raw::c_int,
    pub pos: ::std::os::raw::c_int,
    pub n_args: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_ketopt_t() {
    const UNINIT: ::std::mem::MaybeUninit<ketopt_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ketopt_t>(),
        32usize,
        concat!("Size of: ", stringify!(ketopt_t))
    );
    assert_eq!(
        ::std::mem::align_of::<ketopt_t>(),
        8usize,
        concat!("Alignment of ", stringify!(ketopt_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).ind) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ketopt_t),
            "::",
            stringify!(ind)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).opt) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(ketopt_t),
            "::",
            stringify!(opt)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).arg) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ketopt_t),
            "::",
            stringify!(arg)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).longidx) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ketopt_t),
            "::",
            stringify!(longidx)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).i) as usize - ptr as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(ketopt_t),
            "::",
            stringify!(i)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).pos) as usize - ptr as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(ketopt_t),
            "::",
            stringify!(pos)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).n_args) as usize - ptr as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(ketopt_t),
            "::",
            stringify!(n_args)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ko_longopt_t {
    pub name: *mut ::std::os::raw::c_char,
    pub has_arg: ::std::os::raw::c_int,
    pub val: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_ko_longopt_t() {
    const UNINIT: ::std::mem::MaybeUninit<ko_longopt_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ko_longopt_t>(),
        16usize,
        concat!("Size of: ", stringify!(ko_longopt_t))
    );
    assert_eq!(
        ::std::mem::align_of::<ko_longopt_t>(),
        8usize,
        concat!("Alignment of ", stringify!(ko_longopt_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).name) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ko_longopt_t),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).has_arg) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ko_longopt_t),
            "::",
            stringify!(has_arg)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).val) as usize - ptr as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(ko_longopt_t),
            "::",
            stringify!(val)
        )
    );
}
extern "C" {
    pub static mut KETOPT_INIT: ketopt_t;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ks_isort_stack_t {
    pub left: *mut ::std::os::raw::c_void,
    pub right: *mut ::std::os::raw::c_void,
    pub depth: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_ks_isort_stack_t() {
    const UNINIT: ::std::mem::MaybeUninit<ks_isort_stack_t> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<ks_isort_stack_t>(),
        24usize,
        concat!("Size of: ", stringify!(ks_isort_stack_t))
    );
    assert_eq!(
        ::std::mem::align_of::<ks_isort_stack_t>(),
        8usize,
        concat!("Alignment of ", stringify!(ks_isort_stack_t))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).left) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(ks_isort_stack_t),
            "::",
            stringify!(left)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).right) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(ks_isort_stack_t),
            "::",
            stringify!(right)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).depth) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(ks_isort_stack_t),
            "::",
            stringify!(depth)
        )
    );
}
pub type ksstr_t = *const ::std::os::raw::c_char;
extern "C" {
    pub fn kt_for(
        n_threads: ::std::os::raw::c_int,
        func: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut ::std::os::raw::c_void,
                arg2: ::std::os::raw::c_long,
                arg3: ::std::os::raw::c_int,
            ),
        >,
        data: *mut ::std::os::raw::c_void,
        n: ::std::os::raw::c_long,
    );
}
extern "C" {
    pub fn kt_pipeline(
        n_threads: ::std::os::raw::c_int,
        func: ::std::option::Option<
            unsafe extern "C" fn(
                arg1: *mut ::std::os::raw::c_void,
                arg2: ::std::os::raw::c_int,
                arg3: *mut ::std::os::raw::c_void,
            ) -> *mut ::std::os::raw::c_void,
        >,
        shared_data: *mut ::std::os::raw::c_void,
        n_steps: ::std::os::raw::c_int,
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct sdust_buf_s {
    _unused: [u8; 0],
}
pub type sdust_buf_t = sdust_buf_s;
extern "C" {
    pub fn sdust(
        km: *mut ::std::os::raw::c_void,
        seq: *const u8,
        l_seq: ::std::os::raw::c_int,
        T: ::std::os::raw::c_int,
        W: ::std::os::raw::c_int,
        n: *mut ::std::os::raw::c_int,
    ) -> *mut u64;
}
extern "C" {
    pub fn sdust_buf_init(km: *mut ::std::os::raw::c_void) -> *mut sdust_buf_t;
}
extern "C" {
    pub fn sdust_buf_destroy(buf: *mut sdust_buf_t);
}
extern "C" {
    pub fn sdust_core(
        seq: *const u8,
        l_seq: ::std::os::raw::c_int,
        T: ::std::os::raw::c_int,
        W: ::std::os::raw::c_int,
        n: *mut ::std::os::raw::c_int,
        buf: *mut sdust_buf_t,
    ) -> *const u64;
}
pub type __builtin_va_list = [__va_list_tag; 1usize];
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __va_list_tag {
    pub gp_offset: ::std::os::raw::c_uint,
    pub fp_offset: ::std::os::raw::c_uint,
    pub overflow_arg_area: *mut ::std::os::raw::c_void,
    pub reg_save_area: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout___va_list_tag() {
    const UNINIT: ::std::mem::MaybeUninit<__va_list_tag> = ::std::mem::MaybeUninit::uninit();
    let ptr = UNINIT.as_ptr();
    assert_eq!(
        ::std::mem::size_of::<__va_list_tag>(),
        24usize,
        concat!("Size of: ", stringify!(__va_list_tag))
    );
    assert_eq!(
        ::std::mem::align_of::<__va_list_tag>(),
        8usize,
        concat!("Alignment of ", stringify!(__va_list_tag))
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).gp_offset) as usize - ptr as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(__va_list_tag),
            "::",
            stringify!(gp_offset)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).fp_offset) as usize - ptr as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(__va_list_tag),
            "::",
            stringify!(fp_offset)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).overflow_arg_area) as usize - ptr as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(__va_list_tag),
            "::",
            stringify!(overflow_arg_area)
        )
    );
    assert_eq!(
        unsafe { ::std::ptr::addr_of!((*ptr).reg_save_area) as usize - ptr as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(__va_list_tag),
            "::",
            stringify!(reg_save_area)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __locale_data {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mm_idx_bucket_s {
    pub _address: u8,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct mm_idx_intv_s {
    pub _address: u8,
}
