/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 4.0.1
 *
 * This file is not intended to be easily readable and contains a number of
 * coding conventions designed to improve portability and efficiency. Do not make
 * changes to this file unless you know what you are doing--modify the SWIG
 * interface file instead.
 * ----------------------------------------------------------------------------- */


#ifndef SWIGJAVA
#define SWIGJAVA
#endif



#ifdef __cplusplus
/* SwigValueWrapper is described in swig.swg */
template<typename T> class SwigValueWrapper {
  struct SwigMovePointer {
    T *ptr;
    SwigMovePointer(T *p) : ptr(p) { }
    ~SwigMovePointer() { delete ptr; }
    SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; }
  } pointer;
  SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
  SwigValueWrapper(const SwigValueWrapper<T>& rhs);
public:
  SwigValueWrapper() : pointer(0) { }
  SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; }
  operator T&() const { return *pointer.ptr; }
  T *operator&() { return pointer.ptr; }
};

template <typename T> T SwigValueInit() {
  return T();
}
#endif

/* -----------------------------------------------------------------------------
 *  This section contains generic SWIG labels for method/variable
 *  declarations/attributes, and other compiler dependent labels.
 * ----------------------------------------------------------------------------- */

/* template workaround for compilers that cannot correctly implement the C++ standard */
#ifndef SWIGTEMPLATEDISAMBIGUATOR
# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
#  define SWIGTEMPLATEDISAMBIGUATOR template
# elif defined(__HP_aCC)
/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
#  define SWIGTEMPLATEDISAMBIGUATOR template
# else
#  define SWIGTEMPLATEDISAMBIGUATOR
# endif
#endif

/* inline attribute */
#ifndef SWIGINLINE
# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
#   define SWIGINLINE inline
# else
#   define SWIGINLINE
# endif
#endif

/* attribute recognised by some compilers to avoid 'unused' warnings */
#ifndef SWIGUNUSED
# if defined(__GNUC__)
#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
#     define SWIGUNUSED __attribute__ ((__unused__))
#   else
#     define SWIGUNUSED
#   endif
# elif defined(__ICC)
#   define SWIGUNUSED __attribute__ ((__unused__))
# else
#   define SWIGUNUSED
# endif
#endif

#ifndef SWIG_MSC_UNSUPPRESS_4505
# if defined(_MSC_VER)
#   pragma warning(disable : 4505) /* unreferenced local function has been removed */
# endif
#endif

#ifndef SWIGUNUSEDPARM
# ifdef __cplusplus
#   define SWIGUNUSEDPARM(p)
# else
#   define SWIGUNUSEDPARM(p) p SWIGUNUSED
# endif
#endif

/* internal SWIG method */
#ifndef SWIGINTERN
# define SWIGINTERN static SWIGUNUSED
#endif

/* internal inline SWIG method */
#ifndef SWIGINTERNINLINE
# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
#endif

/* exporting methods */
#if defined(__GNUC__)
#  if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
#    ifndef GCC_HASCLASSVISIBILITY
#      define GCC_HASCLASSVISIBILITY
#    endif
#  endif
#endif

#ifndef SWIGEXPORT
# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
#   if defined(STATIC_LINKED)
#     define SWIGEXPORT
#   else
#     define SWIGEXPORT __declspec(dllexport)
#   endif
# else
#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
#     define SWIGEXPORT __attribute__ ((visibility("default")))
#   else
#     define SWIGEXPORT
#   endif
# endif
#endif

/* calling conventions for Windows */
#ifndef SWIGSTDCALL
# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
#   define SWIGSTDCALL __stdcall
# else
#   define SWIGSTDCALL
# endif
#endif

/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
# define _CRT_SECURE_NO_DEPRECATE
#endif

/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
# define _SCL_SECURE_NO_DEPRECATE
#endif

/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */
#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES)
# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0
#endif

/* Intel's compiler complains if a variable which was never initialised is
 * cast to void, which is a common idiom which we use to indicate that we
 * are aware a variable isn't used.  So we just silence that warning.
 * See: https://github.com/swig/swig/issues/192 for more discussion.
 */
#ifdef __INTEL_COMPILER
# pragma warning disable 592
#endif


/* Fix for jlong on some versions of gcc on Windows */
#if defined(__GNUC__) && !defined(__INTEL_COMPILER)
  typedef long long __int64;
#endif

/* Fix for jlong on 64-bit x86 Solaris */
#if defined(__x86_64)
# ifdef _LP64
#   undef _LP64
# endif
#endif

#include <jni.h>
#include <stdlib.h>
#include <string.h>


/* Support for throwing Java exceptions */
typedef enum {
  SWIG_JavaOutOfMemoryError = 1,
  SWIG_JavaIOException,
  SWIG_JavaRuntimeException,
  SWIG_JavaIndexOutOfBoundsException,
  SWIG_JavaArithmeticException,
  SWIG_JavaIllegalArgumentException,
  SWIG_JavaNullPointerException,
  SWIG_JavaDirectorPureVirtual,
  SWIG_JavaUnknownError,
  SWIG_JavaIllegalStateException,
} SWIG_JavaExceptionCodes;

typedef struct {
  SWIG_JavaExceptionCodes code;
  const char *java_exception;
} SWIG_JavaExceptions_t;


static void SWIGUNUSED SWIG_JavaThrowException(JNIEnv *jenv, SWIG_JavaExceptionCodes code, const char *msg) {
  jclass excep;
  static const SWIG_JavaExceptions_t java_exceptions[] = {
    { SWIG_JavaOutOfMemoryError, "java/lang/OutOfMemoryError" },
    { SWIG_JavaIOException, "java/io/IOException" },
    { SWIG_JavaRuntimeException, "java/lang/RuntimeException" },
    { SWIG_JavaIndexOutOfBoundsException, "java/lang/IndexOutOfBoundsException" },
    { SWIG_JavaArithmeticException, "java/lang/ArithmeticException" },
    { SWIG_JavaIllegalArgumentException, "java/lang/IllegalArgumentException" },
    { SWIG_JavaNullPointerException, "java/lang/NullPointerException" },
    { SWIG_JavaDirectorPureVirtual, "java/lang/RuntimeException" },
    { SWIG_JavaUnknownError,  "java/lang/UnknownError" },
    { SWIG_JavaIllegalStateException, "java/lang/IllegalStateException" },
    { (SWIG_JavaExceptionCodes)0,  "java/lang/UnknownError" }
  };
  const SWIG_JavaExceptions_t *except_ptr = java_exceptions;

  while (except_ptr->code != code && except_ptr->code)
    except_ptr++;

  jenv->ExceptionClear();
  excep = jenv->FindClass(except_ptr->java_exception);
  if (excep)
    jenv->ThrowNew(excep, msg);
}


/* Contract support */

#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_JavaThrowException(jenv, SWIG_JavaIllegalArgumentException, msg); return nullreturn; } else


#include "btllib/index_queue.hpp"
#include "btllib/seq_reader.hpp"
#include "btllib/nthash.hpp"
#include "btllib/data_stream.hpp"
#include "btllib/graph.hpp"
#include "btllib/util.hpp"
#include "btllib/status.hpp"
#include "btllib/seq_writer.hpp"
#include "btllib/seq.hpp"
#include "btllib/bloom_filter.hpp"


#include <string>


#ifdef __cplusplus
extern "C" {
#endif

SWIGEXPORT jint JNICALL Java_btllib_btllibJNI_SeqReader_1FOLD_1CASE_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  btllib::SeqReader::Flag result;
  
  (void)jenv;
  (void)jcls;
  result = (btllib::SeqReader::Flag)btllib::SeqReader::FOLD_CASE;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_btllib_btllibJNI_SeqReader_1NO_1FOLD_1CASE_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  btllib::SeqReader::Flag result;
  
  (void)jenv;
  (void)jcls;
  result = (btllib::SeqReader::Flag)btllib::SeqReader::NO_FOLD_CASE;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_btllib_btllibJNI_SeqReader_1NO_1TRIM_1MASKED_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  btllib::SeqReader::Flag result;
  
  (void)jenv;
  (void)jcls;
  result = (btllib::SeqReader::Flag)btllib::SeqReader::NO_TRIM_MASKED;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_btllib_btllibJNI_SeqReader_1TRIM_1MASKED_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  btllib::SeqReader::Flag result;
  
  (void)jenv;
  (void)jcls;
  result = (btllib::SeqReader::Flag)btllib::SeqReader::TRIM_MASKED;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_new_1SeqReader_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2) {
  jlong jresult = 0 ;
  std::string *arg1 = 0 ;
  int arg2 ;
  btllib::SeqReader *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  if(!jarg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  }
  const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0); 
  if (!arg1_pstr) return 0;
  std::string arg1_str(arg1_pstr);
  arg1 = &arg1_str;
  jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
  arg2 = (int)jarg2; 
  result = (btllib::SeqReader *)new btllib::SeqReader((std::string const &)*arg1,arg2);
  *(btllib::SeqReader **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_new_1SeqReader_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1) {
  jlong jresult = 0 ;
  std::string *arg1 = 0 ;
  btllib::SeqReader *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  if(!jarg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  }
  const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0); 
  if (!arg1_pstr) return 0;
  std::string arg1_str(arg1_pstr);
  arg1 = &arg1_str;
  jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
  result = (btllib::SeqReader *)new btllib::SeqReader((std::string const &)*arg1);
  *(btllib::SeqReader **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_delete_1SeqReader(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  btllib::SeqReader *arg1 = (btllib::SeqReader *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(btllib::SeqReader **)&jarg1; 
  delete arg1;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_SeqReader_1close(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  btllib::SeqReader *arg1 = (btllib::SeqReader *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::SeqReader **)&jarg1; 
  (arg1)->close();
}


SWIGEXPORT jboolean JNICALL Java_btllib_btllibJNI_SeqReader_1flagFoldCase(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  btllib::SeqReader *arg1 = (btllib::SeqReader *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::SeqReader **)&jarg1; 
  result = (bool)((btllib::SeqReader const *)arg1)->flagFoldCase();
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_btllib_btllibJNI_SeqReader_1flagTrimMasked(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  btllib::SeqReader *arg1 = (btllib::SeqReader *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::SeqReader **)&jarg1; 
  result = (bool)((btllib::SeqReader const *)arg1)->flagTrimMasked();
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_btllib_btllibJNI_SeqReader_1get_1format(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  btllib::SeqReader *arg1 = (btllib::SeqReader *) 0 ;
  btllib::SeqReader::Format result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::SeqReader **)&jarg1; 
  result = (btllib::SeqReader::Format)((btllib::SeqReader const *)arg1)->get_format();
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_SeqReader_1Record_1num_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
  btllib::SeqReader::Record *arg1 = (btllib::SeqReader::Record *) 0 ;
  size_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::SeqReader::Record **)&jarg1; 
  arg2 = (size_t)jarg2; 
  if (arg1) (arg1)->num = arg2;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_SeqReader_1Record_1num_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  btllib::SeqReader::Record *arg1 = (btllib::SeqReader::Record *) 0 ;
  size_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::SeqReader::Record **)&jarg1; 
  result =  ((arg1)->num);
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_SeqReader_1Record_1name_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  btllib::SeqReader::Record *arg1 = (btllib::SeqReader::Record *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::SeqReader::Record **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->name = *arg2;
}


SWIGEXPORT jstring JNICALL Java_btllib_btllibJNI_SeqReader_1Record_1name_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  btllib::SeqReader::Record *arg1 = (btllib::SeqReader::Record *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::SeqReader::Record **)&jarg1; 
  result = (std::string *) & ((arg1)->name);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_SeqReader_1Record_1comment_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  btllib::SeqReader::Record *arg1 = (btllib::SeqReader::Record *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::SeqReader::Record **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->comment = *arg2;
}


SWIGEXPORT jstring JNICALL Java_btllib_btllibJNI_SeqReader_1Record_1comment_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  btllib::SeqReader::Record *arg1 = (btllib::SeqReader::Record *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::SeqReader::Record **)&jarg1; 
  result = (std::string *) & ((arg1)->comment);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_SeqReader_1Record_1seq_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  btllib::SeqReader::Record *arg1 = (btllib::SeqReader::Record *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::SeqReader::Record **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->seq = *arg2;
}


SWIGEXPORT jstring JNICALL Java_btllib_btllibJNI_SeqReader_1Record_1seq_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  btllib::SeqReader::Record *arg1 = (btllib::SeqReader::Record *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::SeqReader::Record **)&jarg1; 
  result = (std::string *) & ((arg1)->seq);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_SeqReader_1Record_1qual_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  btllib::SeqReader::Record *arg1 = (btllib::SeqReader::Record *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::SeqReader::Record **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if (arg1) (arg1)->qual = *arg2;
}


SWIGEXPORT jstring JNICALL Java_btllib_btllibJNI_SeqReader_1Record_1qual_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jstring jresult = 0 ;
  btllib::SeqReader::Record *arg1 = (btllib::SeqReader::Record *) 0 ;
  std::string *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::SeqReader::Record **)&jarg1; 
  result = (std::string *) & ((arg1)->qual);
  jresult = jenv->NewStringUTF(result->c_str()); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_new_1SeqReader_1Record(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  btllib::SeqReader::Record *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (btllib::SeqReader::Record *)new btllib::SeqReader::Record();
  *(btllib::SeqReader::Record **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_delete_1SeqReader_1Record(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  btllib::SeqReader::Record *arg1 = (btllib::SeqReader::Record *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(btllib::SeqReader::Record **)&jarg1; 
  delete arg1;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_SeqReader_1read(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  btllib::SeqReader *arg1 = (btllib::SeqReader *) 0 ;
  btllib::SeqReader::Record result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::SeqReader **)&jarg1; 
  result = (arg1)->read();
  *(btllib::SeqReader::Record **)&jresult = new btllib::SeqReader::Record((const btllib::SeqReader::Record &)result); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_cp_1off_1get(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  uint8_t result;
  
  (void)jenv;
  (void)jcls;
  result = (uint8_t)btllib::cp_off;
  *(uint8_t **)&jresult = new uint8_t((const uint8_t &)result); 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_btllib_btllibJNI_multishift_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  result = (int)(int)btllib::multishift;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_multiseed_1get(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  result = (uint64_t)btllib::multiseed;
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_seedA_1get(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  result = (uint64_t)btllib::seedA;
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_seedC_1get(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  result = (uint64_t)btllib::seedC;
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_seedG_1get(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  result = (uint64_t)btllib::seedG;
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_seedT_1get(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  result = (uint64_t)btllib::seedT;
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_seedN_1get(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  result = (uint64_t)btllib::seedN;
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_btllib_btllibJNI_ASCII_1SIZE_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  result = (int)(int)btllib::ASCII_SIZE;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_seed_1tab_1get(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  uint64_t *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (uint64_t *)(uint64_t *)btllib::seed_tab;
  *(uint64_t **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_A33r_1get(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  uint64_t *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (uint64_t *)(uint64_t *)btllib::A33r;
  *(uint64_t **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_A31l_1get(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  uint64_t *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (uint64_t *)(uint64_t *)btllib::A31l;
  *(uint64_t **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_C33r_1get(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  uint64_t *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (uint64_t *)(uint64_t *)btllib::C33r;
  *(uint64_t **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_C31l_1get(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  uint64_t *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (uint64_t *)(uint64_t *)btllib::C31l;
  *(uint64_t **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_G33r_1get(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  uint64_t *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (uint64_t *)(uint64_t *)btllib::G33r;
  *(uint64_t **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_G31l_1get(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  uint64_t *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (uint64_t *)(uint64_t *)btllib::G31l;
  *(uint64_t **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_T33r_1get(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  uint64_t *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (uint64_t *)(uint64_t *)btllib::T33r;
  *(uint64_t **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_T31l_1get(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  uint64_t *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (uint64_t *)(uint64_t *)btllib::T31l;
  *(uint64_t **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_N33r_1get(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  uint64_t *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (uint64_t *)(uint64_t *)btllib::N33r;
  *(uint64_t **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_N31l_1get(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  uint64_t *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (uint64_t *)(uint64_t *)btllib::N31l;
  *(uint64_t **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_ms_1tab_133r_1set(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  uint64_t **arg1 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(uint64_t ***)&jarg1; 
  {
    size_t ii;
    uint64_t const * *b = (uint64_t const * *) btllib::ms_tab_33r;
    for (ii = 0; ii < (size_t)btllib::ASCII_SIZE; ii++) b[ii] = *((uint64_t const * *) arg1 + ii);
  }
  
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_ms_1tab_133r_1get(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  uint64_t **result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (uint64_t **)(uint64_t **)btllib::ms_tab_33r;
  *(uint64_t ***)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_ms_1tab_131l_1set(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  uint64_t **arg1 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(uint64_t ***)&jarg1; 
  {
    size_t ii;
    uint64_t const * *b = (uint64_t const * *) btllib::ms_tab_31l;
    for (ii = 0; ii < (size_t)btllib::ASCII_SIZE; ii++) b[ii] = *((uint64_t const * *) arg1 + ii);
  }
  
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_ms_1tab_131l_1get(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  uint64_t **result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (uint64_t **)(uint64_t **)btllib::ms_tab_31l;
  *(uint64_t ***)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_rol1(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  uint64_t arg1 ;
  uint64_t const *argp1 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  argp1 = *(uint64_t **)&jarg1; 
  if (!argp1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null uint64_t const");
    return 0;
  }
  arg1 = *argp1; 
  result = btllib::rol1(arg1);
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_ror1(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  uint64_t arg1 ;
  uint64_t const *argp1 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  argp1 = *(uint64_t **)&jarg1; 
  if (!argp1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null uint64_t const");
    return 0;
  }
  arg1 = *argp1; 
  result = btllib::ror1(arg1);
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_rol31(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) {
  jlong jresult = 0 ;
  uint64_t arg1 ;
  unsigned int arg2 ;
  uint64_t const *argp1 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  argp1 = *(uint64_t **)&jarg1; 
  if (!argp1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null uint64_t const");
    return 0;
  }
  arg1 = *argp1; 
  arg2 = (unsigned int)jarg2; 
  result = btllib::rol31(arg1,arg2);
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_rol33(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) {
  jlong jresult = 0 ;
  uint64_t arg1 ;
  unsigned int arg2 ;
  uint64_t const *argp1 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  argp1 = *(uint64_t **)&jarg1; 
  if (!argp1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null uint64_t const");
    return 0;
  }
  arg1 = *argp1; 
  arg2 = (unsigned int)jarg2; 
  result = btllib::rol33(arg1,arg2);
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_swapbits033(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  uint64_t arg1 ;
  uint64_t const *argp1 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  argp1 = *(uint64_t **)&jarg1; 
  if (!argp1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null uint64_t const");
    return 0;
  }
  arg1 = *argp1; 
  result = btllib::swapbits033(arg1);
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_swapbits3263(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  uint64_t arg1 ;
  uint64_t const *argp1 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  argp1 = *(uint64_t **)&jarg1; 
  if (!argp1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null uint64_t const");
    return 0;
  }
  arg1 = *argp1; 
  result = btllib::swapbits3263(arg1);
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_NTF64_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2) {
  jlong jresult = 0 ;
  char *arg1 = (char *) 0 ;
  unsigned int arg2 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (unsigned int)jarg2; 
  result = btllib::NTF64((char const *)arg1,arg2);
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_NTR64_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2) {
  jlong jresult = 0 ;
  char *arg1 = (char *) 0 ;
  unsigned int arg2 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (unsigned int)jarg2; 
  result = btllib::NTR64((char const *)arg1,arg2);
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_NTF64_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jshort jarg3, jshort jarg4) {
  jlong jresult = 0 ;
  uint64_t arg1 ;
  unsigned int arg2 ;
  unsigned char arg3 ;
  unsigned char arg4 ;
  uint64_t const *argp1 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  argp1 = *(uint64_t **)&jarg1; 
  if (!argp1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null uint64_t const");
    return 0;
  }
  arg1 = *argp1; 
  arg2 = (unsigned int)jarg2; 
  arg3 = (unsigned char)jarg3; 
  arg4 = (unsigned char)jarg4; 
  result = btllib::NTF64(arg1,arg2,arg3,arg4);
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_NTR64_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jshort jarg3, jshort jarg4) {
  jlong jresult = 0 ;
  uint64_t arg1 ;
  unsigned int arg2 ;
  unsigned char arg3 ;
  unsigned char arg4 ;
  uint64_t const *argp1 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  argp1 = *(uint64_t **)&jarg1; 
  if (!argp1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null uint64_t const");
    return 0;
  }
  arg1 = *argp1; 
  arg2 = (unsigned int)jarg2; 
  arg3 = (unsigned char)jarg3; 
  arg4 = (unsigned char)jarg4; 
  result = btllib::NTR64(arg1,arg2,arg3,arg4);
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_NTC64_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2) {
  jlong jresult = 0 ;
  char *arg1 = (char *) 0 ;
  unsigned int arg2 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (unsigned int)jarg2; 
  result = btllib::NTC64((char const *)arg1,arg2);
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_NTC64_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2, jlong jarg3, jlong jarg4) {
  jlong jresult = 0 ;
  char *arg1 = (char *) 0 ;
  unsigned int arg2 ;
  uint64_t *arg3 = 0 ;
  uint64_t *arg4 = 0 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (unsigned int)jarg2; 
  arg3 = *(uint64_t **)&jarg3;
  if (!arg3) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return 0;
  } 
  arg4 = *(uint64_t **)&jarg4;
  if (!arg4) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return 0;
  } 
  result = btllib::NTC64((char const *)arg1,arg2,*arg3,*arg4);
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_NTC64_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jshort jarg1, jshort jarg2, jlong jarg3, jlong jarg4, jlong jarg5) {
  jlong jresult = 0 ;
  unsigned char arg1 ;
  unsigned char arg2 ;
  unsigned int arg3 ;
  uint64_t *arg4 = 0 ;
  uint64_t *arg5 = 0 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  arg1 = (unsigned char)jarg1; 
  arg2 = (unsigned char)jarg2; 
  arg3 = (unsigned int)jarg3; 
  arg4 = *(uint64_t **)&jarg4;
  if (!arg4) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return 0;
  } 
  arg5 = *(uint64_t **)&jarg5;
  if (!arg5) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return 0;
  } 
  result = btllib::NTC64(arg1,arg2,arg3,*arg4,*arg5);
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_NTF64L(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jshort jarg3, jshort jarg4) {
  jlong jresult = 0 ;
  uint64_t arg1 ;
  unsigned int arg2 ;
  unsigned char arg3 ;
  unsigned char arg4 ;
  uint64_t const *argp1 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  argp1 = *(uint64_t **)&jarg1; 
  if (!argp1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null uint64_t const");
    return 0;
  }
  arg1 = *argp1; 
  arg2 = (unsigned int)jarg2; 
  arg3 = (unsigned char)jarg3; 
  arg4 = (unsigned char)jarg4; 
  result = btllib::NTF64L(arg1,arg2,arg3,arg4);
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_NTR64L(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jshort jarg3, jshort jarg4) {
  jlong jresult = 0 ;
  uint64_t arg1 ;
  unsigned int arg2 ;
  unsigned char arg3 ;
  unsigned char arg4 ;
  uint64_t const *argp1 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  argp1 = *(uint64_t **)&jarg1; 
  if (!argp1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null uint64_t const");
    return 0;
  }
  arg1 = *argp1; 
  arg2 = (unsigned int)jarg2; 
  arg3 = (unsigned char)jarg3; 
  arg4 = (unsigned char)jarg4; 
  result = btllib::NTR64L(arg1,arg2,arg3,arg4);
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_NTC64L(JNIEnv *jenv, jclass jcls, jshort jarg1, jshort jarg2, jlong jarg3, jlong jarg4, jlong jarg5) {
  jlong jresult = 0 ;
  unsigned char arg1 ;
  unsigned char arg2 ;
  unsigned int arg3 ;
  uint64_t *arg4 = 0 ;
  uint64_t *arg5 = 0 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  arg1 = (unsigned char)jarg1; 
  arg2 = (unsigned char)jarg2; 
  arg3 = (unsigned int)jarg3; 
  arg4 = *(uint64_t **)&jarg4;
  if (!arg4) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return 0;
  } 
  arg5 = *(uint64_t **)&jarg5;
  if (!arg5) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return 0;
  } 
  result = btllib::NTC64L(arg1,arg2,arg3,*arg4,*arg5);
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_NTF64_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2, jlong jarg3) {
  jlong jresult = 0 ;
  char *arg1 = (char *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (unsigned int)jarg2; 
  arg3 = (unsigned int)jarg3; 
  result = btllib::NTF64((char const *)arg1,arg2,arg3);
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_NTC64_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2, jlong jarg3) {
  jlong jresult = 0 ;
  char *arg1 = (char *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (unsigned int)jarg2; 
  arg3 = (unsigned int)jarg3; 
  result = btllib::NTC64((char const *)arg1,arg2,arg3);
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_NTM64_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2, jlong jarg3, jlong jarg4) {
  char *arg1 = (char *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  uint64_t *arg4 = (uint64_t *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return ;
  }
  arg2 = (unsigned int)jarg2; 
  arg3 = (unsigned int)jarg3; 
  arg4 = *(uint64_t **)&jarg4; 
  btllib::NTM64((char const *)arg1,arg2,arg3,arg4);
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_NTE64(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jlong jarg3) {
  jlong jresult = 0 ;
  uint64_t arg1 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  uint64_t const *argp1 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  argp1 = *(uint64_t **)&jarg1; 
  if (!argp1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null uint64_t const");
    return 0;
  }
  arg1 = *argp1; 
  arg2 = (unsigned int)jarg2; 
  arg3 = (unsigned int)jarg3; 
  result = btllib::NTE64(arg1,arg2,arg3);
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_NTM64_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jshort jarg1, jshort jarg2, jlong jarg3, jlong jarg4, jlong jarg5) {
  unsigned char arg1 ;
  unsigned char arg2 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  uint64_t *arg5 = (uint64_t *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = (unsigned char)jarg1; 
  arg2 = (unsigned char)jarg2; 
  arg3 = (unsigned int)jarg3; 
  arg4 = (unsigned int)jarg4; 
  arg5 = *(uint64_t **)&jarg5; 
  btllib::NTM64(arg1,arg2,arg3,arg4,arg5);
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_NTMC64_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2, jlong jarg3, jlong jarg4) {
  char *arg1 = (char *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  uint64_t *arg4 = (uint64_t *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return ;
  }
  arg2 = (unsigned int)jarg2; 
  arg3 = (unsigned int)jarg3; 
  arg4 = *(uint64_t **)&jarg4; 
  btllib::NTMC64((char const *)arg1,arg2,arg3,arg4);
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_NTMC64_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2, jlong jarg3, jlong jarg4, jlong jarg5, jlong jarg6) {
  char *arg1 = (char *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  uint64_t *arg4 = 0 ;
  uint64_t *arg5 = 0 ;
  uint64_t *arg6 = (uint64_t *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return ;
  }
  arg2 = (unsigned int)jarg2; 
  arg3 = (unsigned int)jarg3; 
  arg4 = *(uint64_t **)&jarg4;
  if (!arg4) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return ;
  } 
  arg5 = *(uint64_t **)&jarg5;
  if (!arg5) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return ;
  } 
  arg6 = *(uint64_t **)&jarg6; 
  btllib::NTMC64((char const *)arg1,arg2,arg3,*arg4,*arg5,arg6);
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_NTMC64_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jshort jarg1, jshort jarg2, jlong jarg3, jlong jarg4, jlong jarg5, jlong jarg6, jlong jarg7) {
  unsigned char arg1 ;
  unsigned char arg2 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  uint64_t *arg5 = 0 ;
  uint64_t *arg6 = 0 ;
  uint64_t *arg7 = (uint64_t *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = (unsigned char)jarg1; 
  arg2 = (unsigned char)jarg2; 
  arg3 = (unsigned int)jarg3; 
  arg4 = (unsigned int)jarg4; 
  arg5 = *(uint64_t **)&jarg5;
  if (!arg5) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return ;
  } 
  arg6 = *(uint64_t **)&jarg6;
  if (!arg6) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return ;
  } 
  arg7 = *(uint64_t **)&jarg7; 
  btllib::NTMC64(arg1,arg2,arg3,arg4,*arg5,*arg6,arg7);
}


SWIGEXPORT jboolean JNICALL Java_btllib_btllibJNI_NTC64_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2, jlong jarg3, jlong jarg4) {
  jboolean jresult = 0 ;
  char *arg1 = (char *) 0 ;
  unsigned int arg2 ;
  uint64_t *arg3 = 0 ;
  unsigned int *arg4 = 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (unsigned int)jarg2; 
  arg3 = *(uint64_t **)&jarg3;
  if (!arg3) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return 0;
  } 
  arg4 = *(unsigned int **)&jarg4;
  if (!arg4) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "unsigned int & reference is null");
    return 0;
  } 
  result = (bool)btllib::NTC64((char const *)arg1,arg2,*arg3,*arg4);
  jresult = (jboolean)result; 
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_btllib_btllibJNI_NTMC64_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2, jlong jarg3, jlong jarg4, jlong jarg5) {
  jboolean jresult = 0 ;
  char *arg1 = (char *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  unsigned int *arg4 = 0 ;
  uint64_t *arg5 = (uint64_t *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (unsigned int)jarg2; 
  arg3 = (unsigned int)jarg3; 
  arg4 = *(unsigned int **)&jarg4;
  if (!arg4) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "unsigned int & reference is null");
    return 0;
  } 
  arg5 = *(uint64_t **)&jarg5; 
  result = (bool)btllib::NTMC64((char const *)arg1,arg2,arg3,*arg4,arg5);
  jresult = (jboolean)result; 
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_btllib_btllibJNI_NTC64_1_1SWIG_15(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2, jlong jarg3, jlong jarg4, jlong jarg5, jlong jarg6) {
  jboolean jresult = 0 ;
  char *arg1 = (char *) 0 ;
  unsigned int arg2 ;
  uint64_t *arg3 = 0 ;
  uint64_t *arg4 = 0 ;
  uint64_t *arg5 = 0 ;
  unsigned int *arg6 = 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (unsigned int)jarg2; 
  arg3 = *(uint64_t **)&jarg3;
  if (!arg3) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return 0;
  } 
  arg4 = *(uint64_t **)&jarg4;
  if (!arg4) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return 0;
  } 
  arg5 = *(uint64_t **)&jarg5;
  if (!arg5) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return 0;
  } 
  arg6 = *(unsigned int **)&jarg6;
  if (!arg6) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "unsigned int & reference is null");
    return 0;
  } 
  result = (bool)btllib::NTC64((char const *)arg1,arg2,*arg3,*arg4,*arg5,*arg6);
  jresult = (jboolean)result; 
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_btllib_btllibJNI_NTMC64_1_1SWIG_14(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2, jlong jarg3, jlong jarg4, jlong jarg5, jlong jarg6, jlong jarg7) {
  jboolean jresult = 0 ;
  char *arg1 = (char *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  uint64_t *arg4 = 0 ;
  uint64_t *arg5 = 0 ;
  unsigned int *arg6 = 0 ;
  uint64_t *arg7 = (uint64_t *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (unsigned int)jarg2; 
  arg3 = (unsigned int)jarg3; 
  arg4 = *(uint64_t **)&jarg4;
  if (!arg4) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return 0;
  } 
  arg5 = *(uint64_t **)&jarg5;
  if (!arg5) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return 0;
  } 
  arg6 = *(unsigned int **)&jarg6;
  if (!arg6) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "unsigned int & reference is null");
    return 0;
  } 
  arg7 = *(uint64_t **)&jarg7; 
  result = (bool)btllib::NTMC64((char const *)arg1,arg2,arg3,*arg4,*arg5,*arg6,arg7);
  jresult = (jboolean)result; 
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_btllib_btllibJNI_NTMC64_1_1SWIG_15(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2, jlong jarg3, jlong jarg4, jlong jarg5, jlong jarg6, jlong jarg7, jlong jarg8) {
  jboolean jresult = 0 ;
  char *arg1 = (char *) 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  uint64_t *arg4 = 0 ;
  uint64_t *arg5 = 0 ;
  unsigned int *arg6 = 0 ;
  uint64_t *arg7 = (uint64_t *) 0 ;
  bool *arg8 = 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (unsigned int)jarg2; 
  arg3 = (unsigned int)jarg3; 
  arg4 = *(uint64_t **)&jarg4;
  if (!arg4) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return 0;
  } 
  arg5 = *(uint64_t **)&jarg5;
  if (!arg5) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return 0;
  } 
  arg6 = *(unsigned int **)&jarg6;
  if (!arg6) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "unsigned int & reference is null");
    return 0;
  } 
  arg7 = *(uint64_t **)&jarg7; 
  arg8 = *(bool **)&jarg8;
  if (!arg8) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "bool & reference is null");
    return 0;
  } 
  result = (bool)btllib::NTMC64((char const *)arg1,arg2,arg3,*arg4,*arg5,*arg6,arg7,*arg8);
  jresult = (jboolean)result; 
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_NTMC64_1_1SWIG_16(JNIEnv *jenv, jclass jcls, jshort jarg1, jshort jarg2, jlong jarg3, jlong jarg4, jlong jarg5, jlong jarg6, jlong jarg7, jlong jarg8) {
  unsigned char arg1 ;
  unsigned char arg2 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  uint64_t *arg5 = 0 ;
  uint64_t *arg6 = 0 ;
  uint64_t *arg7 = (uint64_t *) 0 ;
  bool *arg8 = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = (unsigned char)jarg1; 
  arg2 = (unsigned char)jarg2; 
  arg3 = (unsigned int)jarg3; 
  arg4 = (unsigned int)jarg4; 
  arg5 = *(uint64_t **)&jarg5;
  if (!arg5) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return ;
  } 
  arg6 = *(uint64_t **)&jarg6;
  if (!arg6) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return ;
  } 
  arg7 = *(uint64_t **)&jarg7; 
  arg8 = *(bool **)&jarg8;
  if (!arg8) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "bool & reference is null");
    return ;
  } 
  btllib::NTMC64(arg1,arg2,arg3,arg4,*arg5,*arg6,arg7,*arg8);
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_maskHash(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jstring jarg3, jstring jarg4, jlong jarg5) {
  jlong jresult = 0 ;
  uint64_t *arg1 = 0 ;
  uint64_t *arg2 = 0 ;
  char *arg3 = (char *) 0 ;
  char *arg4 = (char *) 0 ;
  unsigned int arg5 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(uint64_t **)&jarg1;
  if (!arg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return 0;
  } 
  arg2 = *(uint64_t **)&jarg2;
  if (!arg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return 0;
  } 
  arg3 = 0;
  if (jarg3) {
    arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0);
    if (!arg3) return 0;
  }
  arg4 = 0;
  if (jarg4) {
    arg4 = (char *)jenv->GetStringUTFChars(jarg4, 0);
    if (!arg4) return 0;
  }
  arg5 = (unsigned int)jarg5; 
  result = btllib::maskHash(*arg1,*arg2,(char const *)arg3,(char const *)arg4,arg5);
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3);
  if (arg4) jenv->ReleaseStringUTFChars(jarg4, (const char *)arg4);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_NTS64_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2, jlong jarg3, jlong jarg4) {
  jlong jresult = 0 ;
  char *arg1 = (char *) 0 ;
  std::vector< bool > *arg2 = 0 ;
  unsigned int arg3 ;
  uint64_t *arg4 = 0 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = *(std::vector< bool > **)&jarg2;
  if (!arg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< bool > const & reference is null");
    return 0;
  } 
  arg3 = (unsigned int)jarg3; 
  arg4 = *(uint64_t **)&jarg4;
  if (!arg4) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return 0;
  } 
  result = btllib::NTS64((char const *)arg1,(std::vector< bool > const &)*arg2,arg3,*arg4);
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_NTS64_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2, jshort jarg3, jshort jarg4, jlong jarg5, jlong jarg6) {
  jlong jresult = 0 ;
  char *arg1 = (char *) 0 ;
  std::vector< bool > *arg2 = 0 ;
  unsigned char arg3 ;
  unsigned char arg4 ;
  unsigned int arg5 ;
  uint64_t *arg6 = 0 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = *(std::vector< bool > **)&jarg2;
  if (!arg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< bool > const & reference is null");
    return 0;
  } 
  arg3 = (unsigned char)jarg3; 
  arg4 = (unsigned char)jarg4; 
  arg5 = (unsigned int)jarg5; 
  arg6 = *(uint64_t **)&jarg6;
  if (!arg6) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return 0;
  } 
  result = btllib::NTS64((char const *)arg1,(std::vector< bool > const &)*arg2,arg3,arg4,arg5,*arg6);
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_btllib_btllibJNI_NTMS64_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2, jlong jarg3, jlong jarg4, jlong jarg5, jlong jarg6, jlong jarg7, jlong jarg8, jlong jarg9) {
  jboolean jresult = 0 ;
  char *arg1 = (char *) 0 ;
  std::vector< std::vector< unsigned int > > *arg2 = 0 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  uint64_t *arg5 = 0 ;
  uint64_t *arg6 = 0 ;
  unsigned int *arg7 = 0 ;
  uint64_t *arg8 = (uint64_t *) 0 ;
  bool *arg9 = (bool *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = *(std::vector< std::vector< unsigned int > > **)&jarg2;
  if (!arg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< std::vector< unsigned int > > const & reference is null");
    return 0;
  } 
  arg3 = (unsigned int)jarg3; 
  arg4 = (unsigned int)jarg4; 
  arg5 = *(uint64_t **)&jarg5;
  if (!arg5) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return 0;
  } 
  arg6 = *(uint64_t **)&jarg6;
  if (!arg6) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return 0;
  } 
  arg7 = *(unsigned int **)&jarg7;
  if (!arg7) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "unsigned int & reference is null");
    return 0;
  } 
  arg8 = *(uint64_t **)&jarg8; 
  arg9 = *(bool **)&jarg9; 
  result = (bool)btllib::NTMS64((char const *)arg1,(std::vector< std::vector< unsigned int > > const &)*arg2,arg3,arg4,*arg5,*arg6,*arg7,arg8,arg9);
  jresult = (jboolean)result; 
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_NTMS64_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2, jshort jarg3, jshort jarg4, jlong jarg5, jlong jarg6, jlong jarg7, jlong jarg8, jlong jarg9, jlong jarg10) {
  char *arg1 = (char *) 0 ;
  std::vector< std::vector< unsigned int > > *arg2 = 0 ;
  unsigned char arg3 ;
  unsigned char arg4 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  uint64_t *arg7 = 0 ;
  uint64_t *arg8 = 0 ;
  uint64_t *arg9 = (uint64_t *) 0 ;
  bool *arg10 = (bool *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return ;
  }
  arg2 = *(std::vector< std::vector< unsigned int > > **)&jarg2;
  if (!arg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< std::vector< unsigned int > > const & reference is null");
    return ;
  } 
  arg3 = (unsigned char)jarg3; 
  arg4 = (unsigned char)jarg4; 
  arg5 = (unsigned int)jarg5; 
  arg6 = (unsigned int)jarg6; 
  arg7 = *(uint64_t **)&jarg7;
  if (!arg7) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return ;
  } 
  arg8 = *(uint64_t **)&jarg8;
  if (!arg8) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return ;
  } 
  arg9 = *(uint64_t **)&jarg9; 
  arg10 = *(bool **)&jarg10; 
  btllib::NTMS64((char const *)arg1,(std::vector< std::vector< unsigned int > > const &)*arg2,arg3,arg4,arg5,arg6,*arg7,*arg8,arg9,arg10);
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
}


SWIGEXPORT jboolean JNICALL Java_btllib_btllibJNI_NTMSM64_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2, jlong jarg3, jlong jarg4, jlong jarg5, jlong jarg6, jlong jarg7, jlong jarg8, jlong jarg9) {
  jboolean jresult = 0 ;
  char *arg1 = (char *) 0 ;
  std::vector< std::vector< unsigned int > > *arg2 = 0 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  unsigned int arg5 ;
  uint64_t *arg6 = 0 ;
  uint64_t *arg7 = 0 ;
  unsigned int *arg8 = 0 ;
  uint64_t *arg9 = (uint64_t *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = *(std::vector< std::vector< unsigned int > > **)&jarg2;
  if (!arg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< std::vector< unsigned int > > const & reference is null");
    return 0;
  } 
  arg3 = (unsigned int)jarg3; 
  arg4 = (unsigned int)jarg4; 
  arg5 = (unsigned int)jarg5; 
  arg6 = *(uint64_t **)&jarg6;
  if (!arg6) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return 0;
  } 
  arg7 = *(uint64_t **)&jarg7;
  if (!arg7) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return 0;
  } 
  arg8 = *(unsigned int **)&jarg8;
  if (!arg8) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "unsigned int & reference is null");
    return 0;
  } 
  arg9 = *(uint64_t **)&jarg9; 
  result = (bool)btllib::NTMSM64((char const *)arg1,(std::vector< std::vector< unsigned int > > const &)*arg2,arg3,arg4,arg5,*arg6,*arg7,*arg8,arg9);
  jresult = (jboolean)result; 
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_NTMSM64_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2, jshort jarg3, jshort jarg4, jlong jarg5, jlong jarg6, jlong jarg7, jlong jarg8, jlong jarg9, jlong jarg10) {
  char *arg1 = (char *) 0 ;
  std::vector< std::vector< unsigned int > > *arg2 = 0 ;
  unsigned char arg3 ;
  unsigned char arg4 ;
  unsigned int arg5 ;
  unsigned int arg6 ;
  unsigned int arg7 ;
  uint64_t *arg8 = 0 ;
  uint64_t *arg9 = 0 ;
  uint64_t *arg10 = (uint64_t *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return ;
  }
  arg2 = *(std::vector< std::vector< unsigned int > > **)&jarg2;
  if (!arg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< std::vector< unsigned int > > const & reference is null");
    return ;
  } 
  arg3 = (unsigned char)jarg3; 
  arg4 = (unsigned char)jarg4; 
  arg5 = (unsigned int)jarg5; 
  arg6 = (unsigned int)jarg6; 
  arg7 = (unsigned int)jarg7; 
  arg8 = *(uint64_t **)&jarg8;
  if (!arg8) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return ;
  } 
  arg9 = *(uint64_t **)&jarg9;
  if (!arg9) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "uint64_t & reference is null");
    return ;
  } 
  arg10 = *(uint64_t **)&jarg10; 
  btllib::NTMSM64((char const *)arg1,(std::vector< std::vector< unsigned int > > const &)*arg2,arg3,arg4,arg5,arg6,arg7,*arg8,*arg9,arg10);
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_parse_1seeds(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jlong jresult = 0 ;
  std::vector< std::string > *arg1 = 0 ;
  std::vector< btllib::SpacedSeed > result;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(std::vector< std::string > **)&jarg1;
  if (!arg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< std::string > const & reference is null");
    return 0;
  } 
  result = btllib::parse_seeds((std::vector< std::string > const &)*arg1);
  *(std::vector< btllib::SpacedSeed > **)&jresult = new std::vector< btllib::SpacedSeed >((const std::vector< btllib::SpacedSeed > &)result); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_new_1NtHash_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2, jlong jarg3, jlong jarg4) {
  jlong jresult = 0 ;
  char *arg1 = (char *) 0 ;
  size_t arg2 ;
  unsigned int arg3 ;
  unsigned int arg4 ;
  btllib::NtHash *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (size_t)jarg2; 
  arg3 = (unsigned int)jarg3; 
  arg4 = (unsigned int)jarg4; 
  result = (btllib::NtHash *)new btllib::NtHash((char const *)arg1,arg2,arg3,arg4);
  *(btllib::NtHash **)&jresult = result; 
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_new_1NtHash_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2, jlong jarg3) {
  jlong jresult = 0 ;
  std::string *arg1 = 0 ;
  unsigned int arg2 ;
  unsigned int arg3 ;
  btllib::NtHash *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  if(!jarg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  }
  const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0); 
  if (!arg1_pstr) return 0;
  std::string arg1_str(arg1_pstr);
  arg1 = &arg1_str;
  jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
  arg2 = (unsigned int)jarg2; 
  arg3 = (unsigned int)jarg3; 
  result = (btllib::NtHash *)new btllib::NtHash((std::string const &)*arg1,arg2,arg3);
  *(btllib::NtHash **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_btllib_btllibJNI_NtHash_1roll(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  btllib::NtHash *arg1 = (btllib::NtHash *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::NtHash **)&jarg1; 
  result = (bool)(arg1)->roll();
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_NtHash_1hashes(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  btllib::NtHash *arg1 = (btllib::NtHash *) 0 ;
  uint64_t *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::NtHash **)&jarg1; 
  result = (uint64_t *)((btllib::NtHash const *)arg1)->hashes();
  *(uint64_t **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_NtHash_1get_1pos(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  btllib::NtHash *arg1 = (btllib::NtHash *) 0 ;
  size_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::NtHash **)&jarg1; 
  result = ((btllib::NtHash const *)arg1)->get_pos();
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_NtHash_1get_1k(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  btllib::NtHash *arg1 = (btllib::NtHash *) 0 ;
  unsigned int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::NtHash **)&jarg1; 
  result = (unsigned int)((btllib::NtHash const *)arg1)->get_k();
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_NtHash_1get_1hash_1num(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  btllib::NtHash *arg1 = (btllib::NtHash *) 0 ;
  unsigned int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::NtHash **)&jarg1; 
  result = (unsigned int)((btllib::NtHash const *)arg1)->get_hash_num();
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_delete_1NtHash(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  btllib::NtHash *arg1 = (btllib::NtHash *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(btllib::NtHash **)&jarg1; 
  delete arg1;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_new_1SeedNtHash_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2, jlong jarg3, jlong jarg4, jlong jarg5) {
  jlong jresult = 0 ;
  char *arg1 = (char *) 0 ;
  size_t arg2 ;
  unsigned int arg3 ;
  std::vector< btllib::SpacedSeed > *arg4 = 0 ;
  unsigned int arg5 ;
  btllib::SeedNtHash *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (size_t)jarg2; 
  arg3 = (unsigned int)jarg3; 
  arg4 = *(std::vector< btllib::SpacedSeed > **)&jarg4;
  if (!arg4) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< btllib::SpacedSeed > const & reference is null");
    return 0;
  } 
  arg5 = (unsigned int)jarg5; 
  result = (btllib::SeedNtHash *)new btllib::SeedNtHash((char const *)arg1,arg2,arg3,(std::vector< btllib::SpacedSeed > const &)*arg4,arg5);
  *(btllib::SeedNtHash **)&jresult = result; 
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_new_1SeedNtHash_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2, jlong jarg3, jlong jarg4) {
  jlong jresult = 0 ;
  std::string *arg1 = 0 ;
  unsigned int arg2 ;
  std::vector< btllib::SpacedSeed > *arg3 = 0 ;
  unsigned int arg4 ;
  btllib::SeedNtHash *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  if(!jarg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  }
  const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0); 
  if (!arg1_pstr) return 0;
  std::string arg1_str(arg1_pstr);
  arg1 = &arg1_str;
  jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
  arg2 = (unsigned int)jarg2; 
  arg3 = *(std::vector< btllib::SpacedSeed > **)&jarg3;
  if (!arg3) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< btllib::SpacedSeed > const & reference is null");
    return 0;
  } 
  arg4 = (unsigned int)jarg4; 
  result = (btllib::SeedNtHash *)new btllib::SeedNtHash((std::string const &)*arg1,arg2,(std::vector< btllib::SpacedSeed > const &)*arg3,arg4);
  *(btllib::SeedNtHash **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_new_1SeedNtHash_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2, jlong jarg3, jlong jarg4, jlong jarg5) {
  jlong jresult = 0 ;
  char *arg1 = (char *) 0 ;
  size_t arg2 ;
  unsigned int arg3 ;
  std::vector< std::string > *arg4 = 0 ;
  unsigned int arg5 ;
  btllib::SeedNtHash *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = 0;
  if (jarg1) {
    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
    if (!arg1) return 0;
  }
  arg2 = (size_t)jarg2; 
  arg3 = (unsigned int)jarg3; 
  arg4 = *(std::vector< std::string > **)&jarg4;
  if (!arg4) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< std::string > const & reference is null");
    return 0;
  } 
  arg5 = (unsigned int)jarg5; 
  result = (btllib::SeedNtHash *)new btllib::SeedNtHash((char const *)arg1,arg2,arg3,(std::vector< std::string > const &)*arg4,arg5);
  *(btllib::SeedNtHash **)&jresult = result; 
  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_new_1SeedNtHash_1_1SWIG_13(JNIEnv *jenv, jclass jcls, jstring jarg1, jlong jarg2, jlong jarg3, jlong jarg4) {
  jlong jresult = 0 ;
  std::string *arg1 = 0 ;
  unsigned int arg2 ;
  std::vector< std::string > *arg3 = 0 ;
  unsigned int arg4 ;
  btllib::SeedNtHash *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  if(!jarg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  }
  const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0); 
  if (!arg1_pstr) return 0;
  std::string arg1_str(arg1_pstr);
  arg1 = &arg1_str;
  jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
  arg2 = (unsigned int)jarg2; 
  arg3 = *(std::vector< std::string > **)&jarg3;
  if (!arg3) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< std::string > const & reference is null");
    return 0;
  } 
  arg4 = (unsigned int)jarg4; 
  result = (btllib::SeedNtHash *)new btllib::SeedNtHash((std::string const &)*arg1,arg2,(std::vector< std::string > const &)*arg3,arg4);
  *(btllib::SeedNtHash **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_SeedNtHash_1get_1hash_1num_1per_1seed(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  btllib::SeedNtHash *arg1 = (btllib::SeedNtHash *) 0 ;
  unsigned int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::SeedNtHash **)&jarg1; 
  result = (unsigned int)((btllib::SeedNtHash const *)arg1)->get_hash_num_per_seed();
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_btllib_btllibJNI_SeedNtHash_1roll(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  btllib::SeedNtHash *arg1 = (btllib::SeedNtHash *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::SeedNtHash **)&jarg1; 
  result = (bool)(arg1)->roll();
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_delete_1SeedNtHash(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  btllib::SeedNtHash *arg1 = (btllib::SeedNtHash *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(btllib::SeedNtHash **)&jarg1; 
  delete arg1;
}


SWIGEXPORT jint JNICALL Java_btllib_btllibJNI_PIPE_1READ_1END_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  result = (int)(int)btllib::PIPE_READ_END;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_btllib_btllibJNI_PIPE_1WRITE_1END_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  result = (int)(int)btllib::PIPE_WRITE_END;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jint JNICALL Java_btllib_btllibJNI_COMM_1BUFFER_1SIZE_1get(JNIEnv *jenv, jclass jcls) {
  jint jresult = 0 ;
  int result;
  
  (void)jenv;
  (void)jcls;
  result = (int)(int)btllib::COMM_BUFFER_SIZE;
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_PIPE_1PERMISSIONS_1get(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  mode_t result;
  
  (void)jenv;
  (void)jcls;
  result = (mode_t)btllib::PIPE_PERMISSIONS;
  *(mode_t **)&jresult = new mode_t((const mode_t &)result); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_process_1spawner_1initialized(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  bool *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (bool *) &btllib::process_spawner_initialized();
  *(bool **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_process_1spawner_1parent2child_1fd(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  int *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (int *)btllib::process_spawner_parent2child_fd();
  *(int **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_process_1spawner_1child2parent_1fd(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  int *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (int *)btllib::process_spawner_child2parent_fd();
  *(int **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_process_1spawner_1comm_1mutex(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  std::mutex *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (std::mutex *) &btllib::process_spawner_comm_mutex();
  *(std::mutex **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_new_1pipe_1id(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  btllib::PipeId result;
  
  (void)jenv;
  (void)jcls;
  result = (btllib::PipeId)btllib::new_pipe_id();
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_pipeline_1map(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  std::map< std::string,btllib::_Pipeline > *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (std::map< std::string,btllib::_Pipeline > *) &btllib::pipeline_map();
  *(std::map< std::string,btllib::_Pipeline > **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_btllib_btllibJNI_get_1pipepath(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  jstring jresult = 0 ;
  btllib::PipeId arg1 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  arg1 = (btllib::PipeId)jarg1; 
  result = btllib::get_pipepath(arg1);
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_read_1from_1child(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) {
  void *arg1 = (void *) 0 ;
  size_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(void **)&jarg1; 
  arg2 = (size_t)jarg2; 
  btllib::read_from_child(arg1,arg2);
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_write_1to_1child(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) {
  void *arg1 = (void *) 0 ;
  size_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(void **)&jarg1; 
  arg2 = (size_t)jarg2; 
  btllib::write_to_child((void const *)arg1,arg2);
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_check_1children_1failures(JNIEnv *jenv, jclass jcls) {
  (void)jenv;
  (void)jcls;
  btllib::check_children_failures();
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_end_1child(JNIEnv *jenv, jclass jcls) {
  (void)jenv;
  (void)jcls;
  btllib::end_child();
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_read_1from_1parent(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) {
  void *arg1 = (void *) 0 ;
  size_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(void **)&jarg1; 
  arg2 = (size_t)jarg2; 
  btllib::read_from_parent(arg1,arg2);
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_write_1to_1parent(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) {
  void *arg1 = (void *) 0 ;
  size_t arg2 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(void **)&jarg1; 
  arg2 = (size_t)jarg2; 
  btllib::write_to_parent((void const *)arg1,arg2);
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_new_1DataStream(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2) {
  jlong jresult = 0 ;
  std::string *arg1 = 0 ;
  btllib::DataStream::Operation arg2 ;
  btllib::DataStream *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  if(!jarg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  }
  const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0); 
  if (!arg1_pstr) return 0;
  std::string arg1_str(arg1_pstr);
  arg1 = &arg1_str;
  jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
  arg2 = (btllib::DataStream::Operation)jarg2; 
  result = (btllib::DataStream *)new btllib::DataStream((std::string const &)*arg1,arg2);
  *(btllib::DataStream **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_delete_1DataStream(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  btllib::DataStream *arg1 = (btllib::DataStream *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(btllib::DataStream **)&jarg1; 
  delete arg1;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_DataStream_1close(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  btllib::DataStream *arg1 = (btllib::DataStream *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::DataStream **)&jarg1; 
  (arg1)->close();
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_DataStream_1_1_1ref_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  btllib::DataStream *arg1 = (btllib::DataStream *) 0 ;
  FILE *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::DataStream **)&jarg1; 
  result = (FILE *)((btllib::DataStream const *)arg1)->operator *();
  *(FILE **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_DataStream_1_1_1deref_1_1(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  btllib::DataStream *arg1 = (btllib::DataStream *) 0 ;
  FILE *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::DataStream **)&jarg1; 
  result = (FILE *)((btllib::DataStream const *)arg1)->operator ->();
  *(FILE **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_new_1DataSource(JNIEnv *jenv, jclass jcls, jstring jarg1) {
  jlong jresult = 0 ;
  std::string *arg1 = 0 ;
  btllib::DataSource *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  if(!jarg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  }
  const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0); 
  if (!arg1_pstr) return 0;
  std::string arg1_str(arg1_pstr);
  arg1 = &arg1_str;
  jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
  result = (btllib::DataSource *)new btllib::DataSource((std::string const &)*arg1);
  *(btllib::DataSource **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_delete_1DataSource(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  btllib::DataSource *arg1 = (btllib::DataSource *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(btllib::DataSource **)&jarg1; 
  delete arg1;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_new_1DataSink_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jboolean jarg2) {
  jlong jresult = 0 ;
  std::string *arg1 = 0 ;
  bool arg2 ;
  btllib::DataSink *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  if(!jarg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  }
  const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0); 
  if (!arg1_pstr) return 0;
  std::string arg1_str(arg1_pstr);
  arg1 = &arg1_str;
  jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
  arg2 = jarg2 ? true : false; 
  result = (btllib::DataSink *)new btllib::DataSink((std::string const &)*arg1,arg2);
  *(btllib::DataSink **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_new_1DataSink_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1) {
  jlong jresult = 0 ;
  std::string *arg1 = 0 ;
  btllib::DataSink *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  if(!jarg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  }
  const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0); 
  if (!arg1_pstr) return 0;
  std::string arg1_str(arg1_pstr);
  arg1 = &arg1_str;
  jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
  result = (btllib::DataSink *)new btllib::DataSink((std::string const &)*arg1);
  *(btllib::DataSink **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_delete_1DataSink(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  btllib::DataSink *arg1 = (btllib::DataSink *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(btllib::DataSink **)&jarg1; 
  delete arg1;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_new_1_1Pipeline_1_1SWIG_10(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  btllib::_Pipeline *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (btllib::_Pipeline *)new btllib::_Pipeline();
  *(btllib::_Pipeline **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_new_1_1Pipeline_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jint jarg1, jlong jarg2, jlong jarg3) {
  jlong jresult = 0 ;
  btllib::_Pipeline::Direction arg1 ;
  pid_t arg2 ;
  pid_t arg3 ;
  pid_t *argp2 ;
  pid_t *argp3 ;
  btllib::_Pipeline *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = (btllib::_Pipeline::Direction)jarg1; 
  argp2 = *(pid_t **)&jarg2; 
  if (!argp2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null pid_t");
    return 0;
  }
  arg2 = *argp2; 
  argp3 = *(pid_t **)&jarg3; 
  if (!argp3) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null pid_t");
    return 0;
  }
  arg3 = *argp3; 
  result = (btllib::_Pipeline *)new btllib::_Pipeline(arg1,arg2,arg3);
  *(btllib::_Pipeline **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI__1Pipeline_1finish(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  btllib::_Pipeline *arg1 = (btllib::_Pipeline *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::_Pipeline **)&jarg1; 
  (arg1)->finish();
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI__1Pipeline_1direction_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
  btllib::_Pipeline *arg1 = (btllib::_Pipeline *) 0 ;
  btllib::_Pipeline::Direction arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::_Pipeline **)&jarg1; 
  arg2 = (btllib::_Pipeline::Direction)jarg2; 
  if (arg1) (arg1)->direction = arg2;
}


SWIGEXPORT jint JNICALL Java_btllib_btllibJNI__1Pipeline_1direction_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jint jresult = 0 ;
  btllib::_Pipeline *arg1 = (btllib::_Pipeline *) 0 ;
  btllib::_Pipeline::Direction result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::_Pipeline **)&jarg1; 
  result = (btllib::_Pipeline::Direction) ((arg1)->direction);
  jresult = (jint)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI__1Pipeline_1pid_1first_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
  btllib::_Pipeline *arg1 = (btllib::_Pipeline *) 0 ;
  pid_t arg2 ;
  pid_t *argp2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::_Pipeline **)&jarg1; 
  argp2 = *(pid_t **)&jarg2; 
  if (!argp2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null pid_t");
    return ;
  }
  arg2 = *argp2; 
  if (arg1) (arg1)->pid_first = arg2;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI__1Pipeline_1pid_1first_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  btllib::_Pipeline *arg1 = (btllib::_Pipeline *) 0 ;
  pid_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::_Pipeline **)&jarg1; 
  result =  ((arg1)->pid_first);
  *(pid_t **)&jresult = new pid_t((const pid_t &)result); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI__1Pipeline_1pid_1last_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
  btllib::_Pipeline *arg1 = (btllib::_Pipeline *) 0 ;
  pid_t arg2 ;
  pid_t *argp2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::_Pipeline **)&jarg1; 
  argp2 = *(pid_t **)&jarg2; 
  if (!argp2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null pid_t");
    return ;
  }
  arg2 = *argp2; 
  if (arg1) (arg1)->pid_last = arg2;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI__1Pipeline_1pid_1last_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  btllib::_Pipeline *arg1 = (btllib::_Pipeline *) 0 ;
  pid_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::_Pipeline **)&jarg1; 
  result =  ((arg1)->pid_last);
  *(pid_t **)&jresult = new pid_t((const pid_t &)result); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI__1Pipeline_1closed_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
  btllib::_Pipeline *arg1 = (btllib::_Pipeline *) 0 ;
  bool arg2 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::_Pipeline **)&jarg1; 
  arg2 = jarg2 ? true : false; 
  if (arg1) (arg1)->closed = arg2;
}


SWIGEXPORT jboolean JNICALL Java_btllib_btllibJNI__1Pipeline_1closed_1get(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jboolean jresult = 0 ;
  btllib::_Pipeline *arg1 = (btllib::_Pipeline *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::_Pipeline **)&jarg1; 
  result = (bool) ((arg1)->closed);
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_delete_1_1Pipeline(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  btllib::_Pipeline *arg1 = (btllib::_Pipeline *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(btllib::_Pipeline **)&jarg1; 
  delete arg1;
}


SWIGEXPORT jboolean JNICALL Java_btllib_btllibJNI_process_1spawner_1init(JNIEnv *jenv, jclass jcls) {
  jboolean jresult = 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  result = (bool)btllib::process_spawner_init();
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_btllib_btllibJNI_process_1spawner_1initializer_1get(JNIEnv *jenv, jclass jcls) {
  jboolean jresult = 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  result = (bool)(bool)btllib::process_spawner_initializer;
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_btllib_btllibJNI_get_1pipeline_1cmd(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2) {
  jstring jresult = 0 ;
  std::string *arg1 = 0 ;
  btllib::DataStream::Operation arg2 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  if(!jarg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  }
  const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0); 
  if (!arg1_pstr) return 0;
  std::string arg1_str(arg1_pstr);
  arg1 = &arg1_str;
  jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
  arg2 = (btllib::DataStream::Operation)jarg2; 
  result = btllib::get_pipeline_cmd((std::string const &)*arg1,arg2);
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_run_1pipeline_1cmd(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2, jint jarg3) {
  jlong jresult = 0 ;
  std::string *arg1 = 0 ;
  btllib::DataStream::Operation arg2 ;
  int arg3 ;
  btllib::_Pipeline result;
  
  (void)jenv;
  (void)jcls;
  if(!jarg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  }
  const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0); 
  if (!arg1_pstr) return 0;
  std::string arg1_str(arg1_pstr);
  arg1 = &arg1_str;
  jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
  arg2 = (btllib::DataStream::Operation)jarg2; 
  arg3 = (int)jarg3; 
  result = btllib::run_pipeline_cmd((std::string const &)*arg1,arg2,arg3);
  *(btllib::_Pipeline **)&jresult = new btllib::_Pipeline((const btllib::_Pipeline &)result); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_split(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2) {
  jlong jresult = 0 ;
  std::string *arg1 = 0 ;
  std::string *arg2 = 0 ;
  SwigValueWrapper< std::vector< std::string > > result;
  
  (void)jenv;
  (void)jcls;
  if(!jarg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  }
  const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0); 
  if (!arg1_pstr) return 0;
  std::string arg1_str(arg1_pstr);
  arg1 = &arg1_str;
  jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return 0;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  result = btllib::split((std::string const &)*arg1,(std::string const &)*arg2);
  *(std::vector< std::string > **)&jresult = new std::vector< std::string >((const std::vector< std::string > &)result); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_ltrim(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  std::string *arg1 = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(std::string **)&jarg1;
  if (!arg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::string & reference is null");
    return ;
  } 
  btllib::ltrim(*arg1);
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_rtrim(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  std::string *arg1 = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(std::string **)&jarg1;
  if (!arg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::string & reference is null");
    return ;
  } 
  btllib::rtrim(*arg1);
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_trim(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  std::string *arg1 = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(std::string **)&jarg1;
  if (!arg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::string & reference is null");
    return ;
  } 
  btllib::trim(*arg1);
}


SWIGEXPORT jboolean JNICALL Java_btllib_btllibJNI_starts_1with(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2) {
  jboolean jresult = 0 ;
  std::string arg1 ;
  std::string arg2 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  if(!jarg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  } 
  const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0); 
  if (!arg1_pstr) return 0;
  (&arg1)->assign(arg1_pstr);
  jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  } 
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return 0;
  (&arg2)->assign(arg2_pstr);
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  result = (bool)btllib::starts_with(arg1,arg2);
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_btllib_btllibJNI_ends_1with(JNIEnv *jenv, jclass jcls, jstring jarg1, jstring jarg2) {
  jboolean jresult = 0 ;
  std::string arg1 ;
  std::string arg2 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  if(!jarg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  } 
  const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0); 
  if (!arg1_pstr) return 0;
  (&arg1)->assign(arg1_pstr);
  jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  } 
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return 0;
  (&arg2)->assign(arg2_pstr);
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  result = (bool)btllib::ends_with(arg1,arg2);
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_btllib_btllibJNI_get_1time(JNIEnv *jenv, jclass jcls) {
  jstring jresult = 0 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  result = btllib::get_time();
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_log_1info(JNIEnv *jenv, jclass jcls, jstring jarg1) {
  std::string *arg1 = 0 ;
  
  (void)jenv;
  (void)jcls;
  if(!jarg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return ;
  }
  const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0); 
  if (!arg1_pstr) return ;
  std::string arg1_str(arg1_pstr);
  arg1 = &arg1_str;
  jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
  btllib::log_info((std::string const &)*arg1);
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_log_1warning(JNIEnv *jenv, jclass jcls, jstring jarg1) {
  std::string *arg1 = 0 ;
  
  (void)jenv;
  (void)jcls;
  if(!jarg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return ;
  }
  const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0); 
  if (!arg1_pstr) return ;
  std::string arg1_str(arg1_pstr);
  arg1 = &arg1_str;
  jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
  btllib::log_warning((std::string const &)*arg1);
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_log_1error(JNIEnv *jenv, jclass jcls, jstring jarg1) {
  std::string *arg1 = 0 ;
  
  (void)jenv;
  (void)jcls;
  if(!jarg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return ;
  }
  const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0); 
  if (!arg1_pstr) return ;
  std::string arg1_str(arg1_pstr);
  arg1 = &arg1_str;
  jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
  btllib::log_error((std::string const &)*arg1);
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_check_1error(JNIEnv *jenv, jclass jcls, jboolean jarg1, jstring jarg2) {
  bool arg1 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = jarg1 ? true : false; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  btllib::check_error(arg1,(std::string const &)*arg2);
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_check_1warning(JNIEnv *jenv, jclass jcls, jboolean jarg1, jstring jarg2) {
  bool arg1 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = jarg1 ? true : false; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  btllib::check_warning(arg1,(std::string const &)*arg2);
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_check_1stream(JNIEnv *jenv, jclass jcls, jlong jarg1, jstring jarg2) {
  std::ios *arg1 = 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(std::ios **)&jarg1;
  if (!arg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::ios const & reference is null");
    return ;
  } 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  btllib::check_stream((std::ios const &)*arg1,(std::string const &)*arg2);
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_new_1SeqWriter_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2, jboolean jarg3) {
  jlong jresult = 0 ;
  std::string *arg1 = 0 ;
  btllib::SeqWriter::Format arg2 ;
  bool arg3 ;
  btllib::SeqWriter *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  if(!jarg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  }
  const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0); 
  if (!arg1_pstr) return 0;
  std::string arg1_str(arg1_pstr);
  arg1 = &arg1_str;
  jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
  arg2 = (btllib::SeqWriter::Format)jarg2; 
  arg3 = jarg3 ? true : false; 
  result = (btllib::SeqWriter *)new btllib::SeqWriter((std::string const &)*arg1,arg2,arg3);
  *(btllib::SeqWriter **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_new_1SeqWriter_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jstring jarg1, jint jarg2) {
  jlong jresult = 0 ;
  std::string *arg1 = 0 ;
  btllib::SeqWriter::Format arg2 ;
  btllib::SeqWriter *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  if(!jarg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  }
  const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0); 
  if (!arg1_pstr) return 0;
  std::string arg1_str(arg1_pstr);
  arg1 = &arg1_str;
  jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
  arg2 = (btllib::SeqWriter::Format)jarg2; 
  result = (btllib::SeqWriter *)new btllib::SeqWriter((std::string const &)*arg1,arg2);
  *(btllib::SeqWriter **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_new_1SeqWriter_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jstring jarg1) {
  jlong jresult = 0 ;
  std::string *arg1 = 0 ;
  btllib::SeqWriter *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  if(!jarg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  }
  const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0); 
  if (!arg1_pstr) return 0;
  std::string arg1_str(arg1_pstr);
  arg1 = &arg1_str;
  jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
  result = (btllib::SeqWriter *)new btllib::SeqWriter((std::string const &)*arg1);
  *(btllib::SeqWriter **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_SeqWriter_1close(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  btllib::SeqWriter *arg1 = (btllib::SeqWriter *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::SeqWriter **)&jarg1; 
  (arg1)->close();
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_SeqWriter_1write(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3, jstring jarg4, jstring jarg5) {
  btllib::SeqWriter *arg1 = (btllib::SeqWriter *) 0 ;
  std::string *arg2 = 0 ;
  std::string *arg3 = 0 ;
  std::string *arg4 = 0 ;
  std::string *arg5 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::SeqWriter **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  if(!jarg3) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return ;
  }
  const char *arg3_pstr = (const char *)jenv->GetStringUTFChars(jarg3, 0); 
  if (!arg3_pstr) return ;
  std::string arg3_str(arg3_pstr);
  arg3 = &arg3_str;
  jenv->ReleaseStringUTFChars(jarg3, arg3_pstr); 
  if(!jarg4) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return ;
  }
  const char *arg4_pstr = (const char *)jenv->GetStringUTFChars(jarg4, 0); 
  if (!arg4_pstr) return ;
  std::string arg4_str(arg4_pstr);
  arg4 = &arg4_str;
  jenv->ReleaseStringUTFChars(jarg4, arg4_pstr); 
  if(!jarg5) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return ;
  }
  const char *arg5_pstr = (const char *)jenv->GetStringUTFChars(jarg5, 0); 
  if (!arg5_pstr) return ;
  std::string arg5_str(arg5_pstr);
  arg5 = &arg5_str;
  jenv->ReleaseStringUTFChars(jarg5, arg5_pstr); 
  (arg1)->write((std::string const &)*arg2,(std::string const &)*arg3,(std::string const &)*arg4,(std::string const &)*arg5);
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_delete_1SeqWriter(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  btllib::SeqWriter *arg1 = (btllib::SeqWriter *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(btllib::SeqWriter **)&jarg1; 
  delete arg1;
}


SWIGEXPORT jstring JNICALL Java_btllib_btllibJNI_COMPLEMENTS_1get(JNIEnv *jenv, jclass jcls) {
  jstring jresult = 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (char *)(char *)btllib::COMPLEMENTS;
  if (result) jresult = jenv->NewStringUTF((const char *)result);
  return jresult;
}


SWIGEXPORT jstring JNICALL Java_btllib_btllibJNI_CAPITALS_1get(JNIEnv *jenv, jclass jcls) {
  jstring jresult = 0 ;
  char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (char *)(char *)btllib::CAPITALS;
  if (result) jresult = jenv->NewStringUTF((const char *)result);
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_reverse_1complement(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  std::string *arg1 = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(std::string **)&jarg1;
  if (!arg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::string & reference is null");
    return ;
  } 
  btllib::reverse_complement(*arg1);
}


SWIGEXPORT jstring JNICALL Java_btllib_btllibJNI_get_1reverse_1complement(JNIEnv *jenv, jclass jcls, jstring jarg1) {
  jstring jresult = 0 ;
  std::string *arg1 = 0 ;
  std::string result;
  
  (void)jenv;
  (void)jcls;
  if(!jarg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  }
  const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0); 
  if (!arg1_pstr) return 0;
  std::string arg1_str(arg1_pstr);
  arg1 = &arg1_str;
  jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
  result = btllib::get_reverse_complement((std::string const &)*arg1);
  jresult = jenv->NewStringUTF((&result)->c_str()); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_new_1BloomFilter_1_1SWIG_10(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  btllib::BloomFilter *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (btllib::BloomFilter *)new btllib::BloomFilter();
  *(btllib::BloomFilter **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_new_1BloomFilter_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) {
  jlong jresult = 0 ;
  size_t arg1 ;
  unsigned int arg2 ;
  btllib::BloomFilter *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = (size_t)jarg1; 
  arg2 = (unsigned int)jarg2; 
  result = (btllib::BloomFilter *)new btllib::BloomFilter(arg1,arg2);
  *(btllib::BloomFilter **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_new_1BloomFilter_1_1SWIG_12(JNIEnv *jenv, jclass jcls, jstring jarg1) {
  jlong jresult = 0 ;
  std::string *arg1 = 0 ;
  btllib::BloomFilter *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  if(!jarg1) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  }
  const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0); 
  if (!arg1_pstr) return 0;
  std::string arg1_str(arg1_pstr);
  arg1 = &arg1_str;
  jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
  result = (btllib::BloomFilter *)new btllib::BloomFilter((std::string const &)*arg1);
  *(btllib::BloomFilter **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_BloomFilter_1insert_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
  btllib::BloomFilter *arg1 = (btllib::BloomFilter *) 0 ;
  std::vector< uint64_t > *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::BloomFilter **)&jarg1; 
  arg2 = *(std::vector< uint64_t > **)&jarg2;
  if (!arg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< uint64_t > const & reference is null");
    return ;
  } 
  (arg1)->insert((std::vector< uint64_t > const &)*arg2);
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_BloomFilter_1insert_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
  btllib::BloomFilter *arg1 = (btllib::BloomFilter *) 0 ;
  uint64_t *arg2 = (uint64_t *) 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::BloomFilter **)&jarg1; 
  arg2 = *(uint64_t **)&jarg2; 
  (arg1)->insert((uint64_t const *)arg2);
}


SWIGEXPORT jboolean JNICALL Java_btllib_btllibJNI_BloomFilter_1contains_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
  jboolean jresult = 0 ;
  btllib::BloomFilter *arg1 = (btllib::BloomFilter *) 0 ;
  std::vector< uint64_t > *arg2 = 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::BloomFilter **)&jarg1; 
  arg2 = *(std::vector< uint64_t > **)&jarg2;
  if (!arg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "std::vector< uint64_t > const & reference is null");
    return 0;
  } 
  result = (bool)(arg1)->contains((std::vector< uint64_t > const &)*arg2);
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jboolean JNICALL Java_btllib_btllibJNI_BloomFilter_1contains_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) {
  jboolean jresult = 0 ;
  btllib::BloomFilter *arg1 = (btllib::BloomFilter *) 0 ;
  uint64_t *arg2 = (uint64_t *) 0 ;
  bool result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::BloomFilter **)&jarg1; 
  arg2 = *(uint64_t **)&jarg2; 
  result = (bool)(arg1)->contains((uint64_t const *)arg2);
  jresult = (jboolean)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_BloomFilter_1get_1bytes(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  btllib::BloomFilter *arg1 = (btllib::BloomFilter *) 0 ;
  size_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::BloomFilter **)&jarg1; 
  result = ((btllib::BloomFilter const *)arg1)->get_bytes();
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_BloomFilter_1get_1pop_1cnt(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  btllib::BloomFilter *arg1 = (btllib::BloomFilter *) 0 ;
  uint64_t result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::BloomFilter **)&jarg1; 
  result = ((btllib::BloomFilter const *)arg1)->get_pop_cnt();
  *(uint64_t **)&jresult = new uint64_t((const uint64_t &)result); 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_BloomFilter_1get_1hash_1num(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jlong jresult = 0 ;
  btllib::BloomFilter *arg1 = (btllib::BloomFilter *) 0 ;
  unsigned int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::BloomFilter **)&jarg1; 
  result = (unsigned int)((btllib::BloomFilter const *)arg1)->get_hash_num();
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT jdouble JNICALL Java_btllib_btllibJNI_BloomFilter_1get_1fpr(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
  jdouble jresult = 0 ;
  btllib::BloomFilter *arg1 = (btllib::BloomFilter *) 0 ;
  double result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::BloomFilter **)&jarg1; 
  result = (double)((btllib::BloomFilter const *)arg1)->get_fpr();
  jresult = (jdouble)result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_BloomFilter_1write(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  btllib::BloomFilter *arg1 = (btllib::BloomFilter *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::BloomFilter **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  (arg1)->write((std::string const &)*arg2);
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_delete_1BloomFilter(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  btllib::BloomFilter *arg1 = (btllib::BloomFilter *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(btllib::BloomFilter **)&jarg1; 
  delete arg1;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_new_1KmerBloomFilter_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jlong jarg3) {
  jlong jresult = 0 ;
  unsigned int arg1 ;
  size_t arg2 ;
  unsigned int arg3 ;
  btllib::KmerBloomFilter *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = (unsigned int)jarg1; 
  arg2 = (size_t)jarg2; 
  arg3 = (unsigned int)jarg3; 
  result = (btllib::KmerBloomFilter *)new btllib::KmerBloomFilter(arg1,arg2,arg3);
  *(btllib::KmerBloomFilter **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_new_1KmerBloomFilter_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2) {
  jlong jresult = 0 ;
  unsigned int arg1 ;
  size_t arg2 ;
  btllib::KmerBloomFilter *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = (unsigned int)jarg1; 
  arg2 = (size_t)jarg2; 
  result = (btllib::KmerBloomFilter *)new btllib::KmerBloomFilter(arg1,arg2);
  *(btllib::KmerBloomFilter **)&jresult = result; 
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_KmerBloomFilter_1insert_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  btllib::KmerBloomFilter *arg1 = (btllib::KmerBloomFilter *) 0 ;
  std::string *arg2 = 0 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::KmerBloomFilter **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return ;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return ;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  (arg1)->insert((std::string const &)*arg2);
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_KmerBloomFilter_1insert_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3) {
  btllib::KmerBloomFilter *arg1 = (btllib::KmerBloomFilter *) 0 ;
  char *arg2 = (char *) 0 ;
  size_t arg3 ;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::KmerBloomFilter **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return ;
  }
  arg3 = (size_t)jarg3; 
  (arg1)->insert((char const *)arg2,arg3);
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_KmerBloomFilter_1contains_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
  jlong jresult = 0 ;
  btllib::KmerBloomFilter *arg1 = (btllib::KmerBloomFilter *) 0 ;
  std::string *arg2 = 0 ;
  unsigned int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::KmerBloomFilter **)&jarg1; 
  if(!jarg2) {
    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
    return 0;
  }
  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
  if (!arg2_pstr) return 0;
  std::string arg2_str(arg2_pstr);
  arg2 = &arg2_str;
  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
  result = (unsigned int)(arg1)->contains((std::string const &)*arg2);
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_KmerBloomFilter_1contains_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jlong jarg3) {
  jlong jresult = 0 ;
  btllib::KmerBloomFilter *arg1 = (btllib::KmerBloomFilter *) 0 ;
  char *arg2 = (char *) 0 ;
  size_t arg3 ;
  unsigned int result;
  
  (void)jenv;
  (void)jcls;
  (void)jarg1_;
  arg1 = *(btllib::KmerBloomFilter **)&jarg1; 
  arg2 = 0;
  if (jarg2) {
    arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0);
    if (!arg2) return 0;
  }
  arg3 = (size_t)jarg3; 
  result = (unsigned int)(arg1)->contains((char const *)arg2,arg3);
  jresult = (jlong)result; 
  if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2);
  return jresult;
}


SWIGEXPORT void JNICALL Java_btllib_btllibJNI_delete_1KmerBloomFilter(JNIEnv *jenv, jclass jcls, jlong jarg1) {
  btllib::KmerBloomFilter *arg1 = (btllib::KmerBloomFilter *) 0 ;
  
  (void)jenv;
  (void)jcls;
  arg1 = *(btllib::KmerBloomFilter **)&jarg1; 
  delete arg1;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_BIT_1MASKS_1get(JNIEnv *jenv, jclass jcls) {
  jlong jresult = 0 ;
  unsigned char *result = 0 ;
  
  (void)jenv;
  (void)jcls;
  result = (unsigned char *)(unsigned char *)btllib::BIT_MASKS;
  *(unsigned char **)&jresult = result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_pop_1cnt_1byte(JNIEnv *jenv, jclass jcls, jshort jarg1) {
  jlong jresult = 0 ;
  unsigned char arg1 ;
  unsigned int result;
  
  (void)jenv;
  (void)jcls;
  arg1 = (unsigned char)jarg1; 
  result = (unsigned int)btllib::pop_cnt_byte(arg1);
  jresult = (jlong)result; 
  return jresult;
}


SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_SeedNtHash_1SWIGUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {
    jlong baseptr = 0;
    (void)jenv;
    (void)jcls;
    *(btllib::NtHash **)&baseptr = *(btllib::SeedNtHash **)&jarg1;
    return baseptr;
}

SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_DataSource_1SWIGUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {
    jlong baseptr = 0;
    (void)jenv;
    (void)jcls;
    *(btllib::DataStream **)&baseptr = *(btllib::DataSource **)&jarg1;
    return baseptr;
}

SWIGEXPORT jlong JNICALL Java_btllib_btllibJNI_DataSink_1SWIGUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) {
    jlong baseptr = 0;
    (void)jenv;
    (void)jcls;
    *(btllib::DataStream **)&baseptr = *(btllib::DataSink **)&jarg1;
    return baseptr;
}

#ifdef __cplusplus
}
#endif

