/* Generated by Cython 3.1.2 */

#ifndef __PYX_HAVE__jni__cython__jni
#define __PYX_HAVE__jni__cython__jni

#include "Python.h"
union c_jvalue;
typedef union c_jvalue c_jvalue;
struct c_JNINativeMethod;
typedef struct c_JNINativeMethod c_JNINativeMethod;
struct JNINativeInterface_;
struct c_JavaVMOption;
typedef struct c_JavaVMOption c_JavaVMOption;
struct c_JavaVMInitArgs;
typedef struct c_JavaVMInitArgs c_JavaVMInitArgs;
struct c_JavaVMAttachArgs;
typedef struct c_JavaVMAttachArgs c_JavaVMAttachArgs;
struct JNIInvokeInterface_;

/* "jni/cython/jni.pxd":68
 *     # Return values from jobjectRefType
 * 
 *     cpdef enum:             # <<<<<<<<<<<<<<
 *         JNIInvalidRefType    = 0
 *         JNILocalRefType      = 1
*/
enum  {
  JNIInvalidRefType = 0,
  JNILocalRefType = 1,
  JNIGlobalRefType = 2,
  JNIWeakGlobalRefType = 3
};

/* "jni/cython/jni.pxd":79
 *     #
 * 
 *     cpdef enum:             # <<<<<<<<<<<<<<
 *         JNI_FALSE = 0
 *         JNI_TRUE  = 1
*/
enum  {
  JNI_FALSE = 0,
  JNI_TRUE = 1
};

/* "jni/cython/jni.pxd":87
 *     #
 * 
 *     cpdef enum:             # <<<<<<<<<<<<<<
 *         JNI_OK        =  0  # success
 *         JNI_ERR       = -1  # unknown error
*/
enum  {
  JNI_OK = 0,
  JNI_ERR = -1L,
  JNI_EDETACHED = -2L,
  JNI_EVERSION = -3L,
  JNI_ENOMEM = -4L,
  JNI_EEXIST = -5L,
  JNI_EINVAL = -6L
};

/* "jni/cython/jni.pxd":100
 *     #
 * 
 *     cpdef enum:             # <<<<<<<<<<<<<<
 *         JNI_COMMIT = 1
 *         JNI_ABORT  = 2
*/
enum  {
  JNI_COMMIT = 1,
  JNI_ABORT = 2
};

/* "jni/cython/jni.pxd":455
 *     # These will be VM-specific.
 * 
 *     cpdef enum:             # <<<<<<<<<<<<<<
 *         JDK1_2 = 1
 *         JDK1_4 = 1
*/
enum  {
  JDK1_2 = 1,
  JDK1_4 = 1
};

/* "jni/cython/jni.pxd":473
 *         c_jint (*AttachCurrentThreadAsDaemon)(c_JavaVM* vm, void** penv, void* args)  # nogil
 * 
 *     cpdef enum:             # <<<<<<<<<<<<<<
 *         JNI_VERSION_1_1 = 0x00010001
 *         JNI_VERSION_1_2 = 0x00010002
*/
enum  {
  JNI_VERSION_1_1 = 0x00010001,
  JNI_VERSION_1_2 = 0x00010002,
  JNI_VERSION_1_4 = 0x00010004,
  JNI_VERSION_1_6 = 0x00010006,
  JNI_VERSION_1_8 = 0x00010008,
  JNI_VERSION_9 = 0x00090000,
  JNI_VERSION_10 = 0x000a0000
};

/* "jni/cython/jni.pxd":49
 *     ctypedef c_jobject c_jweak
 * 
 *     ctypedef union c_jvalue:             # <<<<<<<<<<<<<<
 *         c_jboolean z
 *         c_jbyte    b
*/
union c_jvalue {
  __pyx_t_3jni_6cython_3jni_c_jboolean z;
  __pyx_t_3jni_6cython_3jni_c_jbyte b;
  __pyx_t_3jni_6cython_3jni_c_jchar c;
  __pyx_t_3jni_6cython_3jni_c_jshort s;
  __pyx_t_3jni_6cython_3jni_c_jint i;
  __pyx_t_3jni_6cython_3jni_c_jlong j;
  __pyx_t_3jni_6cython_3jni_c_jfloat f;
  __pyx_t_3jni_6cython_3jni_c_jdouble d;
  __pyx_t_3jni_6cython_3jni_c_jobject l;
};

/* "jni/cython/jni.pxd":109
 *     #
 * 
 *     ctypedef struct c_JNINativeMethod:             # <<<<<<<<<<<<<<
 *         char* name       # Android and/or jnius: const char*
 *         char* signature  # Android and/or jnius: const char*
*/
struct c_JNINativeMethod {
  char *name;
  char *signature;
  void *fnPtr;
};

/* "jni/cython/jni.pxd":118
 *     #
 * 
 *     struct JNINativeInterface_             # <<<<<<<<<<<<<<
 *     ctypedef const JNINativeInterface_* c_JNIEnv
 * 
*/
struct JNINativeInterface_ {
  void *reserved0;
  void *reserved1;
  void *reserved2;
  void *reserved3;
  __pyx_t_3jni_6cython_3jni_c_jint (*GetVersion)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *);
  __pyx_t_3jni_6cython_3jni_c_jclass (*DefineClass)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, char const *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jbyte const *, __pyx_t_3jni_6cython_3jni_c_jsize);
  __pyx_t_3jni_6cython_3jni_c_jclass (*FindClass)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, char const *);
  __pyx_t_3jni_6cython_3jni_c_jmethodID (*FromReflectedMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject);
  __pyx_t_3jni_6cython_3jni_c_jfieldID (*FromReflectedField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject);
  __pyx_t_3jni_6cython_3jni_c_jobject (*ToReflectedMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, __pyx_t_3jni_6cython_3jni_c_jboolean);
  __pyx_t_3jni_6cython_3jni_c_jclass (*GetSuperclass)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass);
  __pyx_t_3jni_6cython_3jni_c_jboolean (*IsAssignableFrom)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jclass);
  __pyx_t_3jni_6cython_3jni_c_jobject (*ToReflectedField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jfieldID, __pyx_t_3jni_6cython_3jni_c_jboolean);
  __pyx_t_3jni_6cython_3jni_c_jint (*Throw)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jthrowable);
  __pyx_t_3jni_6cython_3jni_c_jint (*ThrowNew)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, char const *);
  __pyx_t_3jni_6cython_3jni_c_jthrowable (*ExceptionOccurred)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *);
  void (*ExceptionDescribe)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *);
  void (*ExceptionClear)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *);
  void (*FatalError)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, char const *);
  __pyx_t_3jni_6cython_3jni_c_jint (*PushLocalFrame)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jint);
  __pyx_t_3jni_6cython_3jni_c_jobject (*PopLocalFrame)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject);
  __pyx_t_3jni_6cython_3jni_c_jobject (*NewGlobalRef)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject);
  void (*DeleteGlobalRef)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject);
  void (*DeleteLocalRef)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject);
  __pyx_t_3jni_6cython_3jni_c_jboolean (*IsSameObject)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jobject);
  __pyx_t_3jni_6cython_3jni_c_jobject (*NewLocalRef)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject);
  __pyx_t_3jni_6cython_3jni_c_jint (*EnsureLocalCapacity)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jint);
  __pyx_t_3jni_6cython_3jni_c_jobject (*AllocObject)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass);
  __pyx_t_3jni_6cython_3jni_c_jobject (*NewObject)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jobject (*NewObjectV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jobject (*NewObjectA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jclass (*GetObjectClass)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject);
  __pyx_t_3jni_6cython_3jni_c_jboolean (*IsInstanceOf)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass);
  __pyx_t_3jni_6cython_3jni_c_jmethodID (*GetMethodID)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, char const *, char const *);
  __pyx_t_3jni_6cython_3jni_c_jobject (*CallObjectMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jobject (*CallObjectMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jobject (*CallObjectMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jboolean (*CallBooleanMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jboolean (*CallBooleanMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jboolean (*CallBooleanMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jbyte (*CallByteMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jbyte (*CallByteMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jbyte (*CallByteMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jchar (*CallCharMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jchar (*CallCharMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jchar (*CallCharMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jshort (*CallShortMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jshort (*CallShortMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jshort (*CallShortMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jint (*CallIntMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jint (*CallIntMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jint (*CallIntMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jlong (*CallLongMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jlong (*CallLongMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jlong (*CallLongMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jfloat (*CallFloatMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jfloat (*CallFloatMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jfloat (*CallFloatMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jdouble (*CallDoubleMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jdouble (*CallDoubleMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jdouble (*CallDoubleMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  void (*CallVoidMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  void (*CallVoidMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  void (*CallVoidMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jobject (*CallNonvirtualObjectMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jobject (*CallNonvirtualObjectMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jobject (*CallNonvirtualObjectMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jboolean (*CallNonvirtualBooleanMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jboolean (*CallNonvirtualBooleanMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jboolean (*CallNonvirtualBooleanMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jbyte (*CallNonvirtualByteMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jbyte (*CallNonvirtualByteMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jbyte (*CallNonvirtualByteMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jchar (*CallNonvirtualCharMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jchar (*CallNonvirtualCharMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jchar (*CallNonvirtualCharMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jshort (*CallNonvirtualShortMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jshort (*CallNonvirtualShortMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jshort (*CallNonvirtualShortMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jint (*CallNonvirtualIntMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jint (*CallNonvirtualIntMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jint (*CallNonvirtualIntMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jlong (*CallNonvirtualLongMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jlong (*CallNonvirtualLongMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jlong (*CallNonvirtualLongMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jfloat (*CallNonvirtualFloatMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jfloat (*CallNonvirtualFloatMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jfloat (*CallNonvirtualFloatMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jdouble (*CallNonvirtualDoubleMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jdouble (*CallNonvirtualDoubleMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jdouble (*CallNonvirtualDoubleMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  void (*CallNonvirtualVoidMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  void (*CallNonvirtualVoidMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  void (*CallNonvirtualVoidMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jfieldID (*GetFieldID)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, char const *, char const *);
  __pyx_t_3jni_6cython_3jni_c_jobject (*GetObjectField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jfieldID);
  __pyx_t_3jni_6cython_3jni_c_jboolean (*GetBooleanField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jfieldID);
  __pyx_t_3jni_6cython_3jni_c_jbyte (*GetByteField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jfieldID);
  __pyx_t_3jni_6cython_3jni_c_jchar (*GetCharField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jfieldID);
  __pyx_t_3jni_6cython_3jni_c_jshort (*GetShortField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jfieldID);
  __pyx_t_3jni_6cython_3jni_c_jint (*GetIntField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jfieldID);
  __pyx_t_3jni_6cython_3jni_c_jlong (*GetLongField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jfieldID);
  __pyx_t_3jni_6cython_3jni_c_jfloat (*GetFloatField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jfieldID);
  __pyx_t_3jni_6cython_3jni_c_jdouble (*GetDoubleField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jfieldID);
  void (*SetObjectField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jfieldID, __pyx_t_3jni_6cython_3jni_c_jobject);
  void (*SetBooleanField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jfieldID, __pyx_t_3jni_6cython_3jni_c_jboolean);
  void (*SetByteField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jfieldID, __pyx_t_3jni_6cython_3jni_c_jbyte);
  void (*SetCharField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jfieldID, __pyx_t_3jni_6cython_3jni_c_jchar);
  void (*SetShortField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jfieldID, __pyx_t_3jni_6cython_3jni_c_jshort);
  void (*SetIntField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jfieldID, __pyx_t_3jni_6cython_3jni_c_jint);
  void (*SetLongField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jfieldID, __pyx_t_3jni_6cython_3jni_c_jlong);
  void (*SetFloatField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jfieldID, __pyx_t_3jni_6cython_3jni_c_jfloat);
  void (*SetDoubleField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject, __pyx_t_3jni_6cython_3jni_c_jfieldID, __pyx_t_3jni_6cython_3jni_c_jdouble);
  __pyx_t_3jni_6cython_3jni_c_jmethodID (*GetStaticMethodID)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, char const *, char const *);
  __pyx_t_3jni_6cython_3jni_c_jobject (*CallStaticObjectMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jobject (*CallStaticObjectMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jobject (*CallStaticObjectMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jboolean (*CallStaticBooleanMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jboolean (*CallStaticBooleanMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jboolean (*CallStaticBooleanMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jbyte (*CallStaticByteMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jbyte (*CallStaticByteMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jbyte (*CallStaticByteMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jchar (*CallStaticCharMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jchar (*CallStaticCharMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jchar (*CallStaticCharMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jshort (*CallStaticShortMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jshort (*CallStaticShortMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jshort (*CallStaticShortMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jint (*CallStaticIntMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jint (*CallStaticIntMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jint (*CallStaticIntMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jlong (*CallStaticLongMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jlong (*CallStaticLongMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jlong (*CallStaticLongMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jfloat (*CallStaticFloatMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jfloat (*CallStaticFloatMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jfloat (*CallStaticFloatMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jdouble (*CallStaticDoubleMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  __pyx_t_3jni_6cython_3jni_c_jdouble (*CallStaticDoubleMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  __pyx_t_3jni_6cython_3jni_c_jdouble (*CallStaticDoubleMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  void (*CallStaticVoidMethod)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, ...);
  void (*CallStaticVoidMethodV)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, va_list);
  void (*CallStaticVoidMethodA)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jmethodID, c_jvalue const *);
  __pyx_t_3jni_6cython_3jni_c_jfieldID (*GetStaticFieldID)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, char const *, char const *);
  __pyx_t_3jni_6cython_3jni_c_jobject (*GetStaticObjectField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jfieldID);
  __pyx_t_3jni_6cython_3jni_c_jboolean (*GetStaticBooleanField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jfieldID);
  __pyx_t_3jni_6cython_3jni_c_jbyte (*GetStaticByteField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jfieldID);
  __pyx_t_3jni_6cython_3jni_c_jchar (*GetStaticCharField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jfieldID);
  __pyx_t_3jni_6cython_3jni_c_jshort (*GetStaticShortField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jfieldID);
  __pyx_t_3jni_6cython_3jni_c_jint (*GetStaticIntField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jfieldID);
  __pyx_t_3jni_6cython_3jni_c_jlong (*GetStaticLongField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jfieldID);
  __pyx_t_3jni_6cython_3jni_c_jfloat (*GetStaticFloatField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jfieldID);
  __pyx_t_3jni_6cython_3jni_c_jdouble (*GetStaticDoubleField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jfieldID);
  void (*SetStaticObjectField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jfieldID, __pyx_t_3jni_6cython_3jni_c_jobject);
  void (*SetStaticBooleanField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jfieldID, __pyx_t_3jni_6cython_3jni_c_jboolean);
  void (*SetStaticByteField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jfieldID, __pyx_t_3jni_6cython_3jni_c_jbyte);
  void (*SetStaticCharField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jfieldID, __pyx_t_3jni_6cython_3jni_c_jchar);
  void (*SetStaticShortField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jfieldID, __pyx_t_3jni_6cython_3jni_c_jshort);
  void (*SetStaticIntField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jfieldID, __pyx_t_3jni_6cython_3jni_c_jint);
  void (*SetStaticLongField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jfieldID, __pyx_t_3jni_6cython_3jni_c_jlong);
  void (*SetStaticFloatField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jfieldID, __pyx_t_3jni_6cython_3jni_c_jfloat);
  void (*SetStaticDoubleField)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jfieldID, __pyx_t_3jni_6cython_3jni_c_jdouble);
  __pyx_t_3jni_6cython_3jni_c_jstring (*NewString)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jchar const *, __pyx_t_3jni_6cython_3jni_c_jsize);
  __pyx_t_3jni_6cython_3jni_c_jsize (*GetStringLength)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jstring);
  __pyx_t_3jni_6cython_3jni_c_jchar const *(*GetStringChars)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jstring, __pyx_t_3jni_6cython_3jni_c_jboolean *);
  void (*ReleaseStringChars)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jstring, __pyx_t_3jni_6cython_3jni_c_jchar const *);
  __pyx_t_3jni_6cython_3jni_c_jstring (*NewStringUTF)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, char const *);
  __pyx_t_3jni_6cython_3jni_c_jsize (*GetStringUTFLength)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jstring);
  char const *(*GetStringUTFChars)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jstring, __pyx_t_3jni_6cython_3jni_c_jboolean *);
  void (*ReleaseStringUTFChars)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jstring, char const *);
  __pyx_t_3jni_6cython_3jni_c_jsize (*GetArrayLength)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jarray);
  __pyx_t_3jni_6cython_3jni_c_jobjectArray (*NewObjectArray)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jclass, __pyx_t_3jni_6cython_3jni_c_jobject);
  __pyx_t_3jni_6cython_3jni_c_jobject (*GetObjectArrayElement)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobjectArray, __pyx_t_3jni_6cython_3jni_c_jsize);
  void (*SetObjectArrayElement)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobjectArray, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jobject);
  __pyx_t_3jni_6cython_3jni_c_jbooleanArray (*NewBooleanArray)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jsize);
  __pyx_t_3jni_6cython_3jni_c_jbyteArray (*NewByteArray)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jsize);
  __pyx_t_3jni_6cython_3jni_c_jcharArray (*NewCharArray)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jsize);
  __pyx_t_3jni_6cython_3jni_c_jshortArray (*NewShortArray)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jsize);
  __pyx_t_3jni_6cython_3jni_c_jintArray (*NewIntArray)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jsize);
  __pyx_t_3jni_6cython_3jni_c_jlongArray (*NewLongArray)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jsize);
  __pyx_t_3jni_6cython_3jni_c_jfloatArray (*NewFloatArray)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jsize);
  __pyx_t_3jni_6cython_3jni_c_jdoubleArray (*NewDoubleArray)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jsize);
  __pyx_t_3jni_6cython_3jni_c_jboolean *(*GetBooleanArrayElements)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jbooleanArray, __pyx_t_3jni_6cython_3jni_c_jboolean *);
  __pyx_t_3jni_6cython_3jni_c_jbyte *(*GetByteArrayElements)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jbyteArray, __pyx_t_3jni_6cython_3jni_c_jboolean *);
  __pyx_t_3jni_6cython_3jni_c_jchar *(*GetCharArrayElements)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jcharArray, __pyx_t_3jni_6cython_3jni_c_jboolean *);
  __pyx_t_3jni_6cython_3jni_c_jshort *(*GetShortArrayElements)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jshortArray, __pyx_t_3jni_6cython_3jni_c_jboolean *);
  __pyx_t_3jni_6cython_3jni_c_jint *(*GetIntArrayElements)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jintArray, __pyx_t_3jni_6cython_3jni_c_jboolean *);
  __pyx_t_3jni_6cython_3jni_c_jlong *(*GetLongArrayElements)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jlongArray, __pyx_t_3jni_6cython_3jni_c_jboolean *);
  __pyx_t_3jni_6cython_3jni_c_jfloat *(*GetFloatArrayElements)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jfloatArray, __pyx_t_3jni_6cython_3jni_c_jboolean *);
  __pyx_t_3jni_6cython_3jni_c_jdouble *(*GetDoubleArrayElements)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jdoubleArray, __pyx_t_3jni_6cython_3jni_c_jboolean *);
  void (*ReleaseBooleanArrayElements)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jbooleanArray, __pyx_t_3jni_6cython_3jni_c_jboolean *, __pyx_t_3jni_6cython_3jni_c_jint);
  void (*ReleaseByteArrayElements)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jbyteArray, __pyx_t_3jni_6cython_3jni_c_jbyte *, __pyx_t_3jni_6cython_3jni_c_jint);
  void (*ReleaseCharArrayElements)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jcharArray, __pyx_t_3jni_6cython_3jni_c_jchar *, __pyx_t_3jni_6cython_3jni_c_jint);
  void (*ReleaseShortArrayElements)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jshortArray, __pyx_t_3jni_6cython_3jni_c_jshort *, __pyx_t_3jni_6cython_3jni_c_jint);
  void (*ReleaseIntArrayElements)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jintArray, __pyx_t_3jni_6cython_3jni_c_jint *, __pyx_t_3jni_6cython_3jni_c_jint);
  void (*ReleaseLongArrayElements)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jlongArray, __pyx_t_3jni_6cython_3jni_c_jlong *, __pyx_t_3jni_6cython_3jni_c_jint);
  void (*ReleaseFloatArrayElements)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jfloatArray, __pyx_t_3jni_6cython_3jni_c_jfloat *, __pyx_t_3jni_6cython_3jni_c_jint);
  void (*ReleaseDoubleArrayElements)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jdoubleArray, __pyx_t_3jni_6cython_3jni_c_jdouble *, __pyx_t_3jni_6cython_3jni_c_jint);
  void (*GetBooleanArrayRegion)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jbooleanArray, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jboolean *);
  void (*GetByteArrayRegion)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jbyteArray, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jbyte *);
  void (*GetCharArrayRegion)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jcharArray, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jchar *);
  void (*GetShortArrayRegion)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jshortArray, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jshort *);
  void (*GetIntArrayRegion)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jintArray, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jint *);
  void (*GetLongArrayRegion)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jlongArray, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jlong *);
  void (*GetFloatArrayRegion)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jfloatArray, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jfloat *);
  void (*GetDoubleArrayRegion)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jdoubleArray, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jdouble *);
  void (*SetBooleanArrayRegion)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jbooleanArray, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jboolean const *);
  void (*SetByteArrayRegion)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jbyteArray, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jbyte const *);
  void (*SetCharArrayRegion)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jcharArray, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jchar const *);
  void (*SetShortArrayRegion)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jshortArray, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jshort const *);
  void (*SetIntArrayRegion)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jintArray, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jint const *);
  void (*SetLongArrayRegion)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jlongArray, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jlong const *);
  void (*SetFloatArrayRegion)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jfloatArray, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jfloat const *);
  void (*SetDoubleArrayRegion)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jdoubleArray, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jdouble const *);
  __pyx_t_3jni_6cython_3jni_c_jint (*RegisterNatives)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass, c_JNINativeMethod const *, __pyx_t_3jni_6cython_3jni_c_jint);
  __pyx_t_3jni_6cython_3jni_c_jint (*UnregisterNatives)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jclass);
  __pyx_t_3jni_6cython_3jni_c_jint (*MonitorEnter)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject);
  __pyx_t_3jni_6cython_3jni_c_jint (*MonitorExit)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject);
  __pyx_t_3jni_6cython_3jni_c_jint (*GetJavaVM)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_JavaVM **);
  void (*GetStringRegion)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jstring, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jchar *);
  void (*GetStringUTFRegion)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jstring, __pyx_t_3jni_6cython_3jni_c_jsize, __pyx_t_3jni_6cython_3jni_c_jsize, char *);
  void *(*GetPrimitiveArrayCritical)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jarray, __pyx_t_3jni_6cython_3jni_c_jboolean *);
  void (*ReleasePrimitiveArrayCritical)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jarray, void *, __pyx_t_3jni_6cython_3jni_c_jint);
  __pyx_t_3jni_6cython_3jni_c_jchar const *(*GetStringCritical)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jstring, __pyx_t_3jni_6cython_3jni_c_jboolean *);
  void (*ReleaseStringCritical)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jstring, __pyx_t_3jni_6cython_3jni_c_jchar const *);
  __pyx_t_3jni_6cython_3jni_c_jweak (*NewWeakGlobalRef)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject);
  void (*DeleteWeakGlobalRef)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jweak);
  __pyx_t_3jni_6cython_3jni_c_jboolean (*ExceptionCheck)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *);
  __pyx_t_3jni_6cython_3jni_c_jobject (*NewDirectByteBuffer)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, void *, __pyx_t_3jni_6cython_3jni_c_jlong);
  void *(*GetDirectBufferAddress)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject);
  __pyx_t_3jni_6cython_3jni_c_jlong (*GetDirectBufferCapacity)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject);
  __pyx_t_3jni_6cython_3jni_c_jobjectRefType (*GetObjectRefType)(__pyx_t_3jni_6cython_3jni_c_JNIEnv *, __pyx_t_3jni_6cython_3jni_c_jobject);
};

/* "jni/cython/jni.pxd":438
 *     # JNI Invocation Interface.
 * 
 *     ctypedef struct c_JavaVMOption:             # <<<<<<<<<<<<<<
 *         char* optionString
 *         void* extraInfo
*/
struct c_JavaVMOption {
  char *optionString;
  void *extraInfo;
};

/* "jni/cython/jni.pxd":442
 *         void* extraInfo
 * 
 *     ctypedef struct c_JavaVMInitArgs:             # <<<<<<<<<<<<<<
 *         c_jint          version
 *         c_jint          nOptions
*/
struct c_JavaVMInitArgs {
  __pyx_t_3jni_6cython_3jni_c_jint version;
  __pyx_t_3jni_6cython_3jni_c_jint nOptions;
  c_JavaVMOption *options;
  __pyx_t_3jni_6cython_3jni_c_jboolean ignoreUnrecognized;
};

/* "jni/cython/jni.pxd":448
 *         c_jboolean      ignoreUnrecognized
 * 
 *     ctypedef struct c_JavaVMAttachArgs:             # <<<<<<<<<<<<<<
 *         c_jint    version
 *         char*     name
*/
struct c_JavaVMAttachArgs {
  __pyx_t_3jni_6cython_3jni_c_jint version;
  char *name;
  __pyx_t_3jni_6cython_3jni_c_jobject group;
};

/* "jni/cython/jni.pxd":125
 *     #
 * 
 *     struct JNIInvokeInterface_             # <<<<<<<<<<<<<<
 *     ctypedef const JNIInvokeInterface_* c_JavaVM
 * 
*/
struct JNIInvokeInterface_ {
  void *reserved0;
  void *reserved1;
  void *reserved2;
  __pyx_t_3jni_6cython_3jni_c_jint (*DestroyJavaVM)(__pyx_t_3jni_6cython_3jni_c_JavaVM *);
  __pyx_t_3jni_6cython_3jni_c_jint (*AttachCurrentThread)(__pyx_t_3jni_6cython_3jni_c_JavaVM *, void **, void *);
  __pyx_t_3jni_6cython_3jni_c_jint (*DetachCurrentThread)(__pyx_t_3jni_6cython_3jni_c_JavaVM *);
  __pyx_t_3jni_6cython_3jni_c_jint (*GetEnv)(__pyx_t_3jni_6cython_3jni_c_JavaVM *, void **, __pyx_t_3jni_6cython_3jni_c_jint);
  __pyx_t_3jni_6cython_3jni_c_jint (*AttachCurrentThreadAsDaemon)(__pyx_t_3jni_6cython_3jni_c_JavaVM *, void **, void *);
};

#ifndef __PYX_HAVE_API__jni__cython__jni

#ifdef CYTHON_EXTERN_C
    #undef __PYX_EXTERN_C
    #define __PYX_EXTERN_C CYTHON_EXTERN_C
#elif defined(__PYX_EXTERN_C)
    #ifdef _MSC_VER
    #pragma message ("Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.")
    #else
    #warning Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.
    #endif
#else
  #ifdef __cplusplus
    #define __PYX_EXTERN_C extern "C"
  #else
    #define __PYX_EXTERN_C extern
  #endif
#endif

#ifndef DL_IMPORT
  #define DL_IMPORT(_T) _T
#endif

#endif /* !__PYX_HAVE_API__jni__cython__jni */

/* WARNING: the interface of the module init function changed in CPython 3.5. */
/* It now returns a PyModuleDef instance instead of a PyModule instance. */

/* WARNING: Use PyImport_AppendInittab("jni", PyInit_jni) instead of calling PyInit_jni directly from Python 3.5 */
PyMODINIT_FUNC PyInit_jni(void);

#if PY_VERSION_HEX >= 0x03050000 && (defined(__GNUC__) || defined(__clang__) || defined(_MSC_VER) || (defined(__cplusplus) && __cplusplus >= 201402L))
#if defined(__cplusplus) && __cplusplus >= 201402L
[[deprecated("Use PyImport_AppendInittab(\"jni\", PyInit_jni) instead of calling PyInit_jni directly.")]] inline
#elif defined(__GNUC__) || defined(__clang__)
__attribute__ ((__deprecated__("Use PyImport_AppendInittab(\"jni\", PyInit_jni) instead of calling PyInit_jni directly."), __unused__)) __inline__
#elif defined(_MSC_VER)
__declspec(deprecated("Use PyImport_AppendInittab(\"jni\", PyInit_jni) instead of calling PyInit_jni directly.")) __inline
#endif
static PyObject* __PYX_WARN_IF_PyInit_jni_INIT_CALLED(PyObject* res) {
  return res;
}
#define PyInit_jni() __PYX_WARN_IF_PyInit_jni_INIT_CALLED(PyInit_jni())
#endif

#endif /* !__PYX_HAVE__jni__cython__jni */
