text: /* ----------------------------------------------------------------------------
   * This file was automatically generated by SWIG (http://www.swig.org).
   * Version 2.0.12
   *
   * 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.
   * ----------------------------------------------------------------------------- */
  
  #define SWIGCSHARP
  #define SWIG_DIRECTORS
  
  
  #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 (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
  #  ifndef GCC_HASCLASSVISIBILITY
  #    define GCC_HASCLASSVISIBILITY
  #  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
  
  
  
  #include <stdlib.h>
  #include <string.h>
  #include <stdio.h>
  
  
  /* Support for throwing C# exceptions from C/C++. There are two types: 
   * Exceptions that take a message and ArgumentExceptions that take a message and a parameter name. */
  typedef enum {
    SWIG_CSharpApplicationException,
    SWIG_CSharpArithmeticException,
    SWIG_CSharpDivideByZeroException,
    SWIG_CSharpIndexOutOfRangeException,
    SWIG_CSharpInvalidCastException,
    SWIG_CSharpInvalidOperationException,
    SWIG_CSharpIOException,
    SWIG_CSharpNullReferenceException,
    SWIG_CSharpOutOfMemoryException,
    SWIG_CSharpOverflowException,
    SWIG_CSharpSystemException
  } SWIG_CSharpExceptionCodes;
  
  typedef enum {
    SWIG_CSharpArgumentException,
    SWIG_CSharpArgumentNullException,
    SWIG_CSharpArgumentOutOfRangeException
  } SWIG_CSharpExceptionArgumentCodes;
  
  typedef void (SWIGSTDCALL* SWIG_CSharpExceptionCallback_t)(const char *);
  typedef void (SWIGSTDCALL* SWIG_CSharpExceptionArgumentCallback_t)(const char *, const char *);
  
  typedef struct {
    SWIG_CSharpExceptionCodes code;
    SWIG_CSharpExceptionCallback_t callback;
  } SWIG_CSharpException_t;
  
  typedef struct {
    SWIG_CSharpExceptionArgumentCodes code;
    SWIG_CSharpExceptionArgumentCallback_t callback;
  } SWIG_CSharpExceptionArgument_t;
  
  static SWIG_CSharpException_t SWIG_csharp_exceptions[] = {
    { SWIG_CSharpApplicationException, NULL },
    { SWIG_CSharpArithmeticException, NULL },
    { SWIG_CSharpDivideByZeroException, NULL },
    { SWIG_CSharpIndexOutOfRangeException, NULL },
    { SWIG_CSharpInvalidCastException, NULL },
    { SWIG_CSharpInvalidOperationException, NULL },
    { SWIG_CSharpIOException, NULL },
    { SWIG_CSharpNullReferenceException, NULL },
    { SWIG_CSharpOutOfMemoryException, NULL },
    { SWIG_CSharpOverflowException, NULL },
    { SWIG_CSharpSystemException, NULL }
  };
  
  static SWIG_CSharpExceptionArgument_t SWIG_csharp_exceptions_argument[] = {
    { SWIG_CSharpArgumentException, NULL },
    { SWIG_CSharpArgumentNullException, NULL },
    { SWIG_CSharpArgumentOutOfRangeException, NULL }
  };
  
  static void SWIGUNUSED SWIG_CSharpSetPendingException(SWIG_CSharpExceptionCodes code, const char *msg) {
    SWIG_CSharpExceptionCallback_t callback = SWIG_csharp_exceptions[SWIG_CSharpApplicationException].callback;
    if ((size_t)code < sizeof(SWIG_csharp_exceptions)/sizeof(SWIG_CSharpException_t)) {
      callback = SWIG_csharp_exceptions[code].callback;
    }
    callback(msg);
  }
  
  static void SWIGUNUSED SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpExceptionArgumentCodes code, const char *msg, const char *param_name) {
    SWIG_CSharpExceptionArgumentCallback_t callback = SWIG_csharp_exceptions_argument[SWIG_CSharpArgumentException].callback;
    if ((size_t)code < sizeof(SWIG_csharp_exceptions_argument)/sizeof(SWIG_CSharpExceptionArgument_t)) {
      callback = SWIG_csharp_exceptions_argument[code].callback;
    }
    callback(msg, param_name);
  }
  
  
  #ifdef __cplusplus
  extern "C" 
  #endif
  SWIGEXPORT void SWIGSTDCALL SWIGRegisterExceptionCallbacks_RakNet(
                                                  SWIG_CSharpExceptionCallback_t applicationCallback,
                                                  SWIG_CSharpExceptionCallback_t arithmeticCallback,
                                                  SWIG_CSharpExceptionCallback_t divideByZeroCallback, 
                                                  SWIG_CSharpExceptionCallback_t indexOutOfRangeCallback, 
                                                  SWIG_CSharpExceptionCallback_t invalidCastCallback,
                                                  SWIG_CSharpExceptionCallback_t invalidOperationCallback,
                                                  SWIG_CSharpExceptionCallback_t ioCallback,
                                                  SWIG_CSharpExceptionCallback_t nullReferenceCallback,
                                                  SWIG_CSharpExceptionCallback_t outOfMemoryCallback, 
                                                  SWIG_CSharpExceptionCallback_t overflowCallback, 
                                                  SWIG_CSharpExceptionCallback_t systemCallback) {
    SWIG_csharp_exceptions[SWIG_CSharpApplicationException].callback = applicationCallback;
    SWIG_csharp_exceptions[SWIG_CSharpArithmeticException].callback = arithmeticCallback;
    SWIG_csharp_exceptions[SWIG_CSharpDivideByZeroException].callback = divideByZeroCallback;
    SWIG_csharp_exceptions[SWIG_CSharpIndexOutOfRangeException].callback = indexOutOfRangeCallback;
    SWIG_csharp_exceptions[SWIG_CSharpInvalidCastException].callback = invalidCastCallback;
    SWIG_csharp_exceptions[SWIG_CSharpInvalidOperationException].callback = invalidOperationCallback;
    SWIG_csharp_exceptions[SWIG_CSharpIOException].callback = ioCallback;
    SWIG_csharp_exceptions[SWIG_CSharpNullReferenceException].callback = nullReferenceCallback;
    SWIG_csharp_exceptions[SWIG_CSharpOutOfMemoryException].callback = outOfMemoryCallback;
    SWIG_csharp_exceptions[SWIG_CSharpOverflowException].callback = overflowCallback;
    SWIG_csharp_exceptions[SWIG_CSharpSystemException].callback = systemCallback;
  }
  
  #ifdef __cplusplus
  extern "C" 
  #endif
  SWIGEXPORT void SWIGSTDCALL SWIGRegisterExceptionArgumentCallbacks_RakNet(
                                                  SWIG_CSharpExceptionArgumentCallback_t argumentCallback,
                                                  SWIG_CSharpExceptionArgumentCallback_t argumentNullCallback,
                                                  SWIG_CSharpExceptionArgumentCallback_t argumentOutOfRangeCallback) {
    SWIG_csharp_exceptions_argument[SWIG_CSharpArgumentException].callback = argumentCallback;
    SWIG_csharp_exceptions_argument[SWIG_CSharpArgumentNullException].callback = argumentNullCallback;
    SWIG_csharp_exceptions_argument[SWIG_CSharpArgumentOutOfRangeException].callback = argumentOutOfRangeCallback;
  }
  
  
  /* Callback for returning strings to C# without leaking memory */
  typedef char * (SWIGSTDCALL* SWIG_CSharpStringHelperCallback)(const char *);
  static SWIG_CSharpStringHelperCallback SWIG_csharp_string_callback = NULL;
  
  
  #ifdef __cplusplus
  extern "C" 
  #endif
  SWIGEXPORT void SWIGSTDCALL SWIGRegisterStringCallback_RakNet(SWIG_CSharpStringHelperCallback callback) {
    SWIG_csharp_string_callback = callback;
  }
  
  
  /* Contract support */
  
  #define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, msg, ""); return nullreturn; } else
  
  /* -----------------------------------------------------------------------------
   * director.swg
   *
   * This file contains support for director classes so that C# proxy 
   * methods can be called from C++.
   * ----------------------------------------------------------------------------- */
  
  #ifdef __cplusplus
  
  #if defined(DEBUG_DIRECTOR_OWNED)
  #include <iostream>
  #endif
  #include <string>
  
  namespace Swig {
    /* Director base class - not currently used in C# directors */
    class Director {
    };
  
    /* Base class for director exceptions */
    class DirectorException {
    protected:
      std::string swig_msg;
  
    public:
      DirectorException(const char* msg) : swig_msg(msg) {
      }
      DirectorException(const std::string &msg) : swig_msg(msg) {
      }
      const std::string& what() const {
        return swig_msg;
      }
      virtual ~DirectorException() {
      }
    };
  
    /* Pure virtual method exception */
    class DirectorPureVirtualException : public Swig::DirectorException {
    public:
      DirectorPureVirtualException(const char* msg) : DirectorException(std::string("Attempt to invoke pure virtual method ") + msg) {
      }
    };
  }
  
  #endif /* __cplusplus */
  
  
  
   /* Includes the header in the wrapper code */
  //Defines
  #ifdef SWIGWIN
  #define _MSC_VER 10000
  #define WIN32
  #define _WIN32
  #define _DEBUG
  #define _RAKNET_DLL
  #endif
  //TypeDefs
  typedef int int32_t;
  typedef unsigned int uint32_t;
  typedef uint32_t DefaultIndexType;
  #ifdef SWIGWIN
  typedef unsigned int SOCKET;
  #endif
  //Includes
  #include "slikenet/smartptr.h"
  #include "slikenet/defines.h"
  #include "slikenet/MessageIdentifiers.h"
  #include "slikenet/Export.h"
  #include "slikenet/SimpleMutex.h"
  #include "slikenet/string.h"
  #include "slikenet/wstring.h"
  #include "slikenet/BitStream.h"
  #include "slikenet/DS_List.h"	
  #include "slikenet/DS_ByteQueue.h"
  #include "slikenet/assert.h"
  #include "slikenet/NativeTypes.h"
  #include "slikenet/SocketIncludes.h"
  #include "slikenet/time.h"
  #include "slikenet/Export.h"
  #include "slikenet/memoryoverride.h"
  #include "slikenet/types.h"
  #include "slikenet/socket.h"
  #include "slikenet/statistics.h"
  #include "slikenet/NetworkIDObject.h"
  #include "slikenet/NetworkIDManager.h"
  //The below three classes have been removed from interface, if PluginInterface2 is fully exposed again
  //or another class needs them uncomment them and the related typemaps
  //#include "slikenet/TCPInterface.h"
  //#include "slikenet/PacketizedTCP.h"
  //#include "slikenet/InternalPacket.h"
  #include "slikenet/PluginInterface2.h"
  #include "slikenet/peerinterface.h"
  #include "slikenet/peer.h"
  #include "slikenet/PacketPriority.h"
  #include "slikenet/PacketLogger.h"
  #include "slikenet/PacketFileLogger.h"
  #include "slikenet/NatTypeDetectionClient.h"
  #include "slikenet/NatPunchthroughClient.h"
  #include "slikenet/Router2.h"
  #include "slikenet/UDPProxyClient.h"
  #include "slikenet/FullyConnectedMesh2.h"
  #include "slikenet/ReadyEvent.h"
  //#include "slikenet/TeamBalancer.h"
  #include "slikenet/TeamManager.h"
  #include "slikenet/NatPunchthroughServer.h"
  #include "slikenet/UDPForwarder.h"
  #include "slikenet/UDPProxyServer.h"
  #include "slikenet/UDPProxyCoordinator.h"
  #include "slikenet/NatTypeDetectionServer.h"
  #include "slikenet/DS_BPlusTree.h"
  #include "slikenet/DS_Table.h"
  #include "slikenet/FileListTransferCBInterface.h"//
  #include "slikenet/IncrementalReadInterface.h"//
  #include "slikenet/FileListNodeContext.h"//
  #include "slikenet/FileList.h"//
  #include "slikenet/TransportInterface.h"//
  #include "slikenet/CommandParserInterface.h"//
  #include "slikenet/LogCommandParser.h"//
  #include "slikenet/MessageFilter.h"//
  #include "slikenet/DirectoryDeltaTransfer.h"//
  #include "slikenet/FileListTransfer.h"//
  #include "slikenet/ThreadsafePacketLogger.h"//
  #include "slikenet/PacketConsoleLogger.h"//
  #include "slikenet/PacketFileLogger.h"//
  #include "slikenet/DS_Multilist.h"
  #include "slikenet/ConnectionGraph2.h"
  #include "slikenet/GetTime.h"
  //#include "slikenet/transport2.h"
  //#include "slikenet/RoomsPlugin.h"
  //Macros
  //Swig C++ code only TypeDefs
  //Most of these are nested structs/classes that swig needs to understand as global
  //They will reference the nested struct/class while appearing global
  typedef SLNet::RakString::SharedString SharedString;
  typedef DataStructures::Table::Row Row;
  typedef DataStructures::Table::Cell Cell; 
  typedef DataStructures::Table::FilterQuery FilterQuery;
  typedef DataStructures::Table::ColumnDescriptor ColumnDescriptor;
  typedef DataStructures::Table::SortQuery SortQuery;
  typedef SLNet::FileListTransferCBInterface::OnFileStruct OnFileStruct;
  typedef SLNet::FileListTransferCBInterface::FileProgressStruct FileProgressStruct;
  typedef SLNet::FileListTransferCBInterface::DownloadCompleteStruct DownloadCompleteStruct;
  
   
  
  using namespace RakNet;
  
  SWIGINTERN void Cell_Set__SWIG_4(Cell *self,unsigned char *inByteArray,int inputLength){
   		self->Set((const char *)inByteArray,inputLength);
   	}
  SWIGINTERN void Cell_Get__SWIG_2(Cell *self,unsigned char *inOutByteArray,int *outputLength){
   		self->Get((char *)inOutByteArray,outputLength);
   	}
  SWIGINTERN char *Cell_GetHelper(Cell *self,char *output){
   		self->Get(output);
   		return output;
   	}
  SWIGINTERN void Row_UpdateCell__SWIG_2(Row *self,unsigned int columnIndex,int byteLength,unsigned char *inByteArray){
   		self->UpdateCell(columnIndex, byteLength, (const char *)inByteArray);
   	}
  SWIGINTERN OnFileStruct *new_OnFileStruct(){
  		OnFileStruct * returnVal= new OnFileStruct();
  		returnVal->fileData=NULL;
  		return returnVal;
  	}
  SWIGINTERN void OnFileStruct_SetFileData(OnFileStruct *self,unsigned char *inByteArray,int numBytes){
  		if(self->fileData!=NULL)
  		{
  			rakFree_Ex(self->fileData, "SwigInterfaceFiles\\RakNetCSharpExtends.i", 357);
  		}
  		//create new with size
  		self->fileData=(char*) rakMalloc_Ex(numBytes, "SwigInterfaceFiles\\RakNetCSharpExtends.i", 360);
  		//copy
  		memcpy( self->fileData,inByteArray, numBytes );
  	}
  SWIGINTERN FileProgressStruct *new_FileProgressStruct(){
  		FileProgressStruct * returnVal= new FileProgressStruct();
  		returnVal->firstDataChunk=NULL;
  		returnVal->iriDataChunk=NULL;
  		return returnVal;
  	}
  SWIGINTERN void FileProgressStruct_SetFirstDataChunk(FileProgressStruct *self,unsigned char *inByteArray,int numBytes){
  		if (self->firstDataChunk!=NULL)
  		{
  			rakFree_Ex(self->firstDataChunk, "SwigInterfaceFiles\\RakNetCSharpExtends.i", 323);
  		}
  		//create new with size
  		self->firstDataChunk=(char*) rakMalloc_Ex(numBytes, "SwigInterfaceFiles\\RakNetCSharpExtends.i", 326);
  		//copy
  		memcpy( self->firstDataChunk,inByteArray, numBytes );
  	}
  SWIGINTERN void FileProgressStruct_SetIriDataChunk(FileProgressStruct *self,unsigned char *inByteArray,int numBytes){
  		if (self->iriDataChunk!=NULL)
  		{
  			rakFree_Ex(self->iriDataChunk, "SwigInterfaceFiles\\RakNetCSharpExtends.i", 335);
  		}	
  		//create new with size
  		self->iriDataChunk=(char*) rakMalloc_Ex(numBytes, "SwigInterfaceFiles\\RakNetCSharpExtends.i", 338);
  		//copy
  		memcpy( self->iriDataChunk,inByteArray, numBytes );
  	}
  
  char * StatisticsToStringHelper( SLNet::RakNetStatistics *s,char * buffer,int verbosityLevel )
  {
  	StatisticsToString( s, buffer, verbosityLevel );
  	return buffer;
  }
  
  
  SWIGINTERN RakNet::Packet *new_RakNet_Packet(){
  		Packet * newPacket = new Packet();
  		newPacket->data=NULL;
  		return newPacket;
  	}
  SWIGINTERN void RakNet_Packet_SetPacketData(RakNet::Packet *self,unsigned char *inByteArray,int numBytes){
  		if (self->data!=NULL)
  		{
  			rakFree_Ex(self->data, "SwigInterfaceFiles\\RakNetCSharpExtends.i", 255);
  		}
  		//create new with size
  		self->data=(unsigned char*) rakMalloc_Ex(numBytes, "SwigInterfaceFiles\\RakNetCSharpExtends.i", 255);
  		//copy
  		memcpy( self->data,inByteArray, numBytes );
  		self->length=numBytes;
  	}
  SWIGINTERN void RakNet_RakString_AppendBytes__SWIG_1(RakNet::RakString *self,unsigned char *inByteArray,unsigned int count){
  			self->AppendBytes((const char *)inByteArray,count);
  
  	}
  SWIGINTERN char const *RakNet_BitStream_CSharpStringReader(RakNet::BitStream *self,char const *inString){
  		self->Read((char *)inString);
  		return inString;
  	}
  SWIGINTERN bool RakNet_BitStream_CSharpByteReader(RakNet::BitStream *self,unsigned char *inOutByteArray,unsigned int numberOfBytes){
  		return self->Read((char *)inOutByteArray,numberOfBytes);
  	}
  SWIGINTERN char *RakNet_BitStream_CSharpStringReaderCompressedDelta(RakNet::BitStream *self,char *inString){
  		self->ReadCompressedDelta(inString);
  		return inString;
  	}
  SWIGINTERN char *RakNet_BitStream_CSharpStringReaderDelta(RakNet::BitStream *self,char *inString){
  		self->ReadDelta(inString);
  		return inString;
  	}
  SWIGINTERN char *RakNet_BitStream_CSharpStringReaderCompressed(RakNet::BitStream *self,char *inString){
  		self->ReadCompressed(inString);
  		return inString;
  	}
  SWIGINTERN void RakNet_BitStream_Write__SWIG_6(RakNet::BitStream *self,unsigned char *inputByteArray,unsigned int const numberOfBytes){
  		self->Write((const char*)inputByteArray,numberOfBytes);
  	}
  SWIGINTERN RakNet::BitSize_t RakNet_BitStream_CSharpCopyDataHelper(RakNet::BitStream *self,unsigned char *inOutByteArray){
  		BitSize_t returnVal;
  		returnVal=self->GetNumberOfBitsAllocated();
  		memcpy(inOutByteArray, self->GetData(), sizeof(unsigned char) * (size_t) ( BITS_TO_BYTES( returnVal ) ) );
  		return returnVal;
  	}
  SWIGINTERN char *RakNet_BitStream_CSharpPrintBitsHelper(RakNet::BitStream *self,char *inString){
  		self->PrintBits(inString);
  		return inString;
  
          }
  SWIGINTERN char *RakNet_BitStream_CSharpPrintHexHelper(RakNet::BitStream *self,char *inString){
  		self->PrintHex(inString);
  		return inString;
          }
  SWIGINTERN void RakNet_BitStream_Serialize__SWIG_1(RakNet::BitStream *self,bool writeToBitstream,unsigned char *inputByteArray,unsigned int const numberOfBytes){
  		self->Serialize(writeToBitstream,(char*)inputByteArray,numberOfBytes);
  	}
  SWIGINTERN bool RakNet_BitStream_ReadAlignedBytesSafe__SWIG_0(RakNet::BitStream *self,unsigned char *inOutByteArray,int inputLength,int const maxBytesToRead){
  
  		return self->ReadAlignedBytesSafe( (char *)inOutByteArray,inputLength,  maxBytesToRead );
  	}
  SWIGINTERN bool RakNet_BitStream_ReadAlignedBytesSafe__SWIG_1(RakNet::BitStream *self,unsigned char *inOutByteArray,unsigned int inputLength,unsigned int const maxBytesToRead){
  		return self->ReadAlignedBytesSafe((char *)inOutByteArray,inputLength,  maxBytesToRead );
  	}
  SWIGINTERN void RakNet_BitStream_WriteAlignedVar8(RakNet::BitStream *self,unsigned char *inByteArray){
  		self->WriteAlignedVar8((const char *)inByteArray);
  	}
  SWIGINTERN bool RakNet_BitStream_ReadAlignedVar8(RakNet::BitStream *self,unsigned char *inOutByteArray){
  		return self->ReadAlignedVar8((char *)inOutByteArray);
  	}
  SWIGINTERN void RakNet_BitStream_WriteAlignedVar16(RakNet::BitStream *self,unsigned char *inByteArray){
  		self->WriteAlignedVar16((const char *)inByteArray);
  	}
  SWIGINTERN bool RakNet_BitStream_ReadAlignedVar16(RakNet::BitStream *self,unsigned char *inOutByteArray){
  		return self->ReadAlignedVar16((char *)inOutByteArray);
  	}
  SWIGINTERN void RakNet_BitStream_WriteAlignedVar32(RakNet::BitStream *self,unsigned char *inByteArray){
  		self->WriteAlignedVar32((const char *)inByteArray);
  	}
  SWIGINTERN bool RakNet_BitStream_ReadAlignedVar32(RakNet::BitStream *self,unsigned char *inOutByteArray){
  		return self->ReadAlignedVar32((char *)inOutByteArray);
  	}
  SWIGINTERN void RakNet_BitStream_WriteAlignedBytesSafe(RakNet::BitStream *self,unsigned char *inByteArray,unsigned int const inputLength,unsigned int const maxBytesToWrite){
  		self->WriteAlignedBytesSafe((const char *)inByteArray, inputLength,  maxBytesToWrite );
  	}
  SWIGINTERN void DataStructures_ByteQueue_WriteBytes(DataStructures::ByteQueue *self,unsigned char *inByteArray,unsigned int length,char const *file,unsigned int line){
  		self->WriteBytes((const char *)inByteArray,  length, file,  line);
  	}
  SWIGINTERN bool DataStructures_ByteQueue_ReadBytes(DataStructures::ByteQueue *self,unsigned char *inOutByteArray,unsigned int maxLengthToRead,bool peek){		
  		return self->ReadBytes((char *)inOutByteArray,  maxLengthToRead,  peek);
  	}
  SWIGINTERN unsigned char *DataStructures_ByteQueue_PeekContiguousBytesHelper(DataStructures::ByteQueue const *self,unsigned int *outLength){
  		unsigned char* returnVal=(unsigned char* ) self->PeekContiguousBytes(outLength);
  		return returnVal;	
  	}
  SWIGINTERN void RakNet_RakNetStatistics_SetBytesInSendBuffer(RakNet::RakNetStatistics *self,double *inDoubleArray,int numDoubles){
  	for (int i=0;i<numDoubles;i++)
  	{
  		if (i>=NUMBER_OF_PRIORITIES)
  		{break;}
  		self->bytesInSendBuffer[i]=inDoubleArray[i];
  	}
  	}
  SWIGINTERN void RakNet_RakNetStatistics_SetMessageInSendBuffer(RakNet::RakNetStatistics *self,unsigned int *inUnsignedIntArray,int numInts){
  	for (int i=0;i<numInts;i++)
  	{
  		if (i>=NUMBER_OF_PRIORITIES)
  		{break;}
  		self->messageInSendBuffer[i]=inUnsignedIntArray[i];
  	}
  	}
  SWIGINTERN void RakNet_RakNetStatistics_SetRunningTotal(RakNet::RakNetStatistics *self,unsigned long long *inUint64Array,int numUint64){
  	for (int i=0;i<numUint64;i++)
  	{
  		if (i>=RNS_PER_SECOND_METRICS_COUNT)
  		{break;}
  		self->runningTotal[i]=inUint64Array[i];
  	}
  	}
  SWIGINTERN void RakNet_RakNetStatistics_SetValueOverLastSecond(RakNet::RakNetStatistics *self,unsigned long long *inUint64Array,int numUint64){
  	for (int i=0;i<numUint64;i++)
  	{
  		if (i>=RNS_PER_SECOND_METRICS_COUNT)
  		{break;}
  		self->valueOverLastSecond[i]=inUint64Array[i];
  	}
  	}
  SWIGINTERN uint32_t RakNet_RakPeerInterface_Send__SWIG_4(RakNet::RakPeerInterface *self,unsigned char *inByteArray,int const length,PacketPriority priority,PacketReliability reliability,char orderingChannel,RakNet::AddressOrGUID const systemIdentifier,bool broadcast){
  		return self->Send((const char*)inByteArray,length,priority,reliability,orderingChannel,systemIdentifier,broadcast);
  
  	}
  SWIGINTERN void RakNet_RakPeerInterface_SendLoopback__SWIG_1(RakNet::RakPeerInterface *self,unsigned char *inByteArray,int const length){
  		self->SendLoopback( (const char *)inByteArray, length );
  
  	}
  SWIGINTERN void RakNet_RakPeerInterface_SetOfflinePingResponse__SWIG_1(RakNet::RakPeerInterface *self,unsigned char *inByteArray,unsigned int const length){
  		self->SetOfflinePingResponse((const char *) inByteArray,length);
  
  	}
  SWIGINTERN bool RakNet_RakPeerInterface_AdvertiseSystem__SWIG_2(RakNet::RakPeerInterface *self,char const *host,unsigned short remotePort,unsigned char *inByteArray,int dataLength,unsigned int connectionSocketIndex=0){
  		return self->AdvertiseSystem(host,remotePort,(const char *) inByteArray,dataLength,connectionSocketIndex);
  
  	}
  SWIGINTERN char const *RakNet_RakPeerInterface_CSharpGetIncomingPasswordHelper(RakNet::RakPeerInterface *self,char const *passwordData,int *passwordDataLength){
  		self->GetIncomingPassword((char*)passwordData,passwordDataLength);
  		return passwordData;
  	}
  SWIGINTERN void RakNet_RakPeerInterface_SetIncomingPassword__SWIG_1(RakNet::RakPeerInterface *self,unsigned char *passwordDataByteArray,int passwordDataLength){
  		self->SetIncomingPassword((char*)passwordDataByteArray,passwordDataLength);
  	}
  SWIGINTERN void RakNet_RakPeerInterface_GetIncomingPassword(RakNet::RakPeerInterface *self,unsigned char *passwordDataByteArray,int *passwordDataLength){
  		self->GetIncomingPassword((char*)passwordDataByteArray,passwordDataLength);
  	}
  SWIGINTERN void RakNet_RakPeerInterface_CSharpGetOfflinePingResponseHelper(RakNet::RakPeerInterface *self,unsigned char *inOutByteArray,unsigned int *outLength){
  		char * tmp=(char *)inOutByteArray;
  		self->GetOfflinePingResponse(&tmp,outLength);
  		memcpy(inOutByteArray,tmp,(size_t)*outLength);
  	}
  SWIGINTERN bool RakNet_RakPeerInterface_GetConnectionList(RakNet::RakPeerInterface const *self,DataStructures::List< RakNet::SystemAddress > *remoteSystems,unsigned short *numberOfSystems){
  		SystemAddress inSys[256];
  		bool returnVal = self->GetConnectionList(inSys,numberOfSystems);
  		if(remoteSystems!=NULL)
  		{
  			for (int i=0;i<*numberOfSystems;i++)
  			{
  				remoteSystems->Insert(inSys[i],"SwigInterfaceFiles\\RakNetCSharpExtends.i",192);
  			}
  		}
  		return returnVal;
  	}
  SWIGINTERN uint32_t RakNet_RakPeer_Send__SWIG_4(RakNet::RakPeer *self,unsigned char *inByteArray,int const length,PacketPriority priority,PacketReliability reliability,char orderingChannel,RakNet::AddressOrGUID const systemIdentifier,bool broadcast){
  		return self->Send((const char*)inByteArray,length,priority,reliability,orderingChannel,systemIdentifier,broadcast);
  
  	}
  SWIGINTERN void RakNet_RakPeer_SendLoopback__SWIG_1(RakNet::RakPeer *self,unsigned char *inByteArray,int const length){
  		self->SendLoopback( (const char *)inByteArray, length );
  
  	}
  SWIGINTERN void RakNet_RakPeer_SetOfflinePingResponse__SWIG_1(RakNet::RakPeer *self,unsigned char *inByteArray,unsigned int const length){
  		self->SetOfflinePingResponse((const char *) inByteArray,length);
  
  	}
  SWIGINTERN bool RakNet_RakPeer_AdvertiseSystem__SWIG_2(RakNet::RakPeer *self,char const *host,unsigned short remotePort,unsigned char *inByteArray,int dataLength,unsigned int connectionSocketIndex=0){
  		return self->AdvertiseSystem(host,remotePort,(const char *) inByteArray,dataLength,connectionSocketIndex);
  
  	}
  SWIGINTERN char const *RakNet_RakPeer_CSharpGetIncomingPasswordHelper(RakNet::RakPeer *self,char const *passwordData,int *passwordDataLength){
  		self->GetIncomingPassword((char*)passwordData,passwordDataLength);
  		return passwordData;
  	}
  SWIGINTERN void RakNet_RakPeer_SetIncomingPassword__SWIG_1(RakNet::RakPeer *self,unsigned char *passwordDataByteArray,int passwordDataLength){
  		self->SetIncomingPassword((char*)passwordDataByteArray,passwordDataLength);
  	}
  SWIGINTERN void RakNet_RakPeer_GetIncomingPassword(RakNet::RakPeer *self,unsigned char *passwordDataByteArray,int *passwordDataLength){
  		self->GetIncomingPassword((char*)passwordDataByteArray,passwordDataLength);
  	}
  SWIGINTERN void RakNet_RakPeer_CSharpGetOfflinePingResponseHelper(RakNet::RakPeer *self,unsigned char *inOutByteArray,unsigned int *outLength){
  		char * tmp=(char *)inOutByteArray;
  		self->GetOfflinePingResponse(&tmp,outLength);
  		memcpy(inOutByteArray,tmp,(size_t)*outLength);
  	}
  SWIGINTERN bool RakNet_RakPeer_GetConnectionList(RakNet::RakPeer const *self,DataStructures::List< RakNet::SystemAddress > *remoteSystems,unsigned short *numberOfSystems){
  		SystemAddress inSys[256];
  		bool returnVal = self->GetConnectionList(inSys,numberOfSystems);
  		if(remoteSystems!=NULL)
  		{
  			for (int i=0;i<*numberOfSystems;i++)
  			{
  				remoteSystems->Insert(inSys[i],"SwigInterfaceFiles\\RakNetCSharpExtends.i",196);
  			}
  		}
  		return returnVal;
  	}
  SWIGINTERN char const *RakNet_PacketLogger_FormatLineHelper__SWIG_0(RakNet::PacketLogger *self,char *into,char const *dir,char const *type,unsigned int packet,unsigned int frame,unsigned char messageIdentifier,RakNet::BitSize_t const bitLen,unsigned long long time,RakNet::SystemAddress const &local,RakNet::SystemAddress const &remote,unsigned int splitPacketId,unsigned int splitPacketIndex,unsigned int splitPacketCount,unsigned int orderingIndex){
  		self->FormatLine(into,dir,type,packet, frame,messageIdentifier, bitLen,time, local,  remote,splitPacketId, splitPacketIndex, splitPacketCount,  orderingIndex);
  		return into;
  	}
  SWIGINTERN char const *RakNet_PacketLogger_FormatLineHelper__SWIG_1(RakNet::PacketLogger *self,char *into,char const *dir,char const *type,unsigned int packet,unsigned int frame,char const *idToPrint,RakNet::BitSize_t const bitLen,unsigned long long time,RakNet::SystemAddress const &local,RakNet::SystemAddress const &remote,unsigned int splitPacketId,unsigned int splitPacketIndex,unsigned int splitPacketCount,unsigned int orderingIndex){
  		self->FormatLine(into,dir,type,packet,frame, idToPrint, bitLen, time, local,  remote, splitPacketId,  splitPacketIndex, splitPacketCount,  orderingIndex);
  		return into;
  	}
  SWIGINTERN DataStructures::Page< unsigned int,Row *,16 > *DataStructures_Table_GetListHeadHelper(DataStructures::Table *self){//Bypass of strange bug reprted by user
  		return self->GetListHead();
  	}
  SWIGINTERN void DataStructures_Table_SortTableHelper(DataStructures::Table *self,DataStructures::List< SortQuery > *sortQueries,unsigned int numSortQueries,DataStructures::List< Row > *out){
   		SortQuery * passedArray=NULL;
   		if (sortQueries!=NULL)
   		{
   		passedArray=&((*sortQueries)[0]); /*The memory should be contigous since this is a vector class copy. It was last time I checked the implementation. So this will efficiently pass the array without needing to copy it*/
   		}
   
   		int numRows = self->GetRowCount();
  		Row **tempIn = NULL;
   		tempIn = new Row*[numRows];
   		self->SortTable(passedArray,numSortQueries, tempIn);
   
   		for (int i=0;i<numRows;i++)
   		{
   			out->Insert(*(tempIn[i]),"SwigInterfaceFiles\\RakNet.i",139);
   		}
   		delete [] tempIn;
   		
   	}
  SWIGINTERN void DataStructures_Table_GetCellValueByIndexHelper__SWIG_0(DataStructures::Table *self,unsigned int rowIndex,unsigned int columnIndex,unsigned char *inOutByteArray,int *outputLength){
   		self->GetCellValueByIndex(rowIndex, columnIndex,  (char *)inOutByteArray, outputLength);
   	}
  SWIGINTERN char *DataStructures_Table_GetCellValueByIndexHelper__SWIG_1(DataStructures::Table *self,unsigned int rowIndex,unsigned int columnIndex,char *output){
   		self->GetCellValueByIndex(rowIndex,columnIndex,output);
   		return output;
   	}
  SWIGINTERN void DataStructures_Table_PrintColumnHeaders(DataStructures::Table const *self,unsigned char *inOutByteArray,int byteArrayLength,char columnDelineator){
   		 self->PrintColumnHeaders((char *) inOutByteArray,byteArrayLength, columnDelineator);
   	}
  SWIGINTERN void DataStructures_Table_PrintRow(DataStructures::Table const *self,unsigned char *inOutByteArray,int byteArrayLength,char columnDelineator,bool printDelineatorForBinary,DataStructures::Table::Row *inputRow){
   		self->PrintRow((char *)inOutByteArray,byteArrayLength,columnDelineator,printDelineatorForBinary,inputRow);
   	}
  SWIGINTERN void DataStructures_Table_QueryTableHelper(DataStructures::Table *self,unsigned int *columnIndicesSubset,unsigned int numColumnSubset,DataStructures::List< FilterQuery > *inclusionFilters,unsigned int numInclusionFilters,unsigned int *rowIds,unsigned int numRowIDs,DataStructures::Table *result){
   		FilterQuery * passedArray=NULL;
  		if (inclusionFilters!=NULL)
   		{
   		passedArray=&((*inclusionFilters)[0]); /*The memory should be contigous since this is a vector class copy. It was last time I checked the implementation. So this will efficiently pass the array without needing to copy it*/
   		}
   		self->QueryTable(columnIndicesSubset, numColumnSubset, passedArray,  numInclusionFilters, rowIds, numRowIDs, result);
   		
   	}
  SWIGINTERN bool DataStructures_Table_UpdateCell__SWIG_2(DataStructures::Table *self,unsigned int rowId,unsigned int columnIndex,int byteLength,unsigned char *inByteArray){
   		return self->UpdateCell( rowId,  columnIndex,  byteLength,  (char *) inByteArray);
   	}
  SWIGINTERN bool DataStructures_Table_UpdateCellByIndex__SWIG_2(DataStructures::Table *self,unsigned int rowIndex,unsigned int columnIndex,int byteLength,unsigned char *inByteArray){
   		return self->UpdateCellByIndex( rowIndex,  columnIndex,  byteLength, (char *) inByteArray);
   	}
  SWIGINTERN unsigned int DataStructures_Table_ColumnIndexHelper(DataStructures::Table const *self,char const *columnName){
   		return self->ColumnIndex(columnName);
   	}
  SWIGINTERN unsigned int RakNet_IncrementalReadInterface_GetFilePart(RakNet::IncrementalReadInterface *self,char const *filename,unsigned int startReadBytes,unsigned int numBytesToRead,unsigned char *inOutByteArray,FileListNodeContext context){
  		return self->GetFilePart( filename,  startReadBytes,  numBytesToRead, (void *)inOutByteArray,  context);
  	}
  SWIGINTERN RakNet::FileListNode *new_RakNet_FileListNode(){
  		FileListNode *returnVal = new FileListNode();
  		returnVal->data=NULL;
  		return returnVal;
  	}
  SWIGINTERN void RakNet_FileListNode_SetData(RakNet::FileListNode *self,unsigned char *inByteArray,int numBytes){
  		if (self->data!=NULL)
  		{
  			rakFree_Ex(self->data, "SwigInterfaceFiles\\RakNetCSharpExtends.i", 468);
  		}	
  	
  		//create new with size
  		self->data=(char *) rakMalloc_Ex(numBytes, "SwigInterfaceFiles\\RakNetCSharpExtends.i", 468);
  		//copy
  		memcpy( self->data,inByteArray, numBytes );
  		self->dataLengthBytes=numBytes;
  	}
  SWIGINTERN void RakNet_FileList_AddFile__SWIG_1(RakNet::FileList *self,char const *filename,char const *fullPathToFile,unsigned char *inByteArray,unsigned int const dataLength,unsigned int const fileLength,FileListNodeContext context,bool isAReference=false){
  		self->AddFile(filename,fullPathToFile, (const char *)inByteArray, dataLength,  fileLength,  context,isAReference);
  	}
  SWIGINTERN void RakNet_TransportInterface_Send(RakNet::TransportInterface *self,RakNet::SystemAddress systemAddress,unsigned char *inByteArray){
  		self->Send( systemAddress, (const char *)inByteArray);
  	}
  SWIGINTERN bool RakNet_ConnectionGraph2_GetConnectionListForRemoteSystemHelper(RakNet::ConnectionGraph2 *self,RakNet::RakNetGUID remoteSystemGuid,DataStructures::List< RakNet::SystemAddress > *saOut,DataStructures::List< RakNet::RakNetGUID > *guidOut,unsigned int *inOutLength){
  		SystemAddress * tempInSystemAddress;
  		RakNetGUID * tempInRakNetGUID;
  		tempInSystemAddress = new SystemAddress[*inOutLength];
  		tempInRakNetGUID = new RakNetGUID[*inOutLength];
  
  		bool returnVal = self->GetConnectionListForRemoteSystem(remoteSystemGuid,tempInSystemAddress,tempInRakNetGUID,inOutLength);
  
  		for (unsigned int i=0;i<*inOutLength;i++)
  		{
  			saOut->Insert(tempInSystemAddress[i],"SwigInterfaceFiles\\RakNetCSharpExtends.i",502);
  			guidOut->Insert(tempInRakNetGUID[i],"SwigInterfaceFiles\\RakNetCSharpExtends.i",503);
  		}
  		delete [] tempInSystemAddress;
  		delete [] tempInRakNetGUID;
  
  		return returnVal;
  	}
  SWIGINTERN void RakNet_ConnectionGraph2_GetParticipantListHelper(RakNet::ConnectionGraph2 *self,DataStructures::List< RakNet::RakNetGUID > *guidOut){
  		DataStructures::OrderedList<RakNetGUID, RakNetGUID> participantList;
  		self->GetParticipantList(participantList);
  		for (unsigned int i=0; i < participantList.Size(); i++)
  			guidOut->Insert(participantList[i],"SwigInterfaceFiles\\RakNetCSharpExtends.i",516);
  	}
  SWIGINTERN Cell *DataStructures_List_Sl_Cell_Sm__Sg__GetHelper(DataStructures::List< Cell * > const *self,unsigned int const position){
  		return self->Get(position);
          }
  SWIGINTERN Cell *DataStructures_List_Sl_Cell_Sm__Sg__PopHelper(DataStructures::List< Cell * > *self){
  		return self->Pop();
          }
  
  typedef unsigned short UnsignedShortPointer;
  
  SWIGINTERN UnsignedShortPointer *new_UnsignedShortPointer(){
    return new unsigned short();
  }
  SWIGINTERN void delete_UnsignedShortPointer(UnsignedShortPointer *self){
    if (self) delete self;
  }
  SWIGINTERN void UnsignedShortPointer_assign(UnsignedShortPointer *self,unsigned short value){
    *self = value;
  }
  SWIGINTERN unsigned short UnsignedShortPointer_value(UnsignedShortPointer *self){
    return *self;
  }
  SWIGINTERN unsigned short *UnsignedShortPointer_cast(UnsignedShortPointer *self){
    return self;
  }
  SWIGINTERN UnsignedShortPointer *UnsignedShortPointer_frompointer(unsigned short *t){
    return (UnsignedShortPointer *) t;
  }
  
  typedef unsigned UnsignedIntPointer;
  
  SWIGINTERN UnsignedIntPointer *new_UnsignedIntPointer(){
    return new unsigned();
  }
  SWIGINTERN void delete_UnsignedIntPointer(UnsignedIntPointer *self){
    if (self) delete self;
  }
  SWIGINTERN void UnsignedIntPointer_assign(UnsignedIntPointer *self,unsigned int value){
    *self = value;
  }
  SWIGINTERN unsigned int UnsignedIntPointer_value(UnsignedIntPointer *self){
    return *self;
  }
  SWIGINTERN unsigned int *UnsignedIntPointer_cast(UnsignedIntPointer *self){
    return self;
  }
  SWIGINTERN UnsignedIntPointer *UnsignedIntPointer_frompointer(unsigned int *t){
    return (UnsignedIntPointer *) t;
  }
  
  
  /* ---------------------------------------------------
   * C++ director class methods
   * --------------------------------------------------- */
  
  #include "RakNet_wrap.h"
  
  SwigDirector_NetworkIDObject::SwigDirector_NetworkIDObject() : RakNet::NetworkIDObject(), Swig::Director() {
    swig_init_callbacks();
  }
  
  SwigDirector_NetworkIDObject::~SwigDirector_NetworkIDObject() {
    
  }
  
  
  void SwigDirector_NetworkIDObject::SetNetworkIDManager(RakNet::NetworkIDManager *manager) {
    void * jmanager = 0 ;
    
    if (!swig_callbackSetNetworkIDManagerOrig) {
      RakNet::NetworkIDObject::SetNetworkIDManager(manager);
      return;
    } else {
      jmanager = (void *) manager; 
      swig_callbackSetNetworkIDManagerOrig(jmanager);
    }
  }
  
  RakNet::NetworkIDManager *SwigDirector_NetworkIDObject::GetNetworkIDManager() const {
    RakNet::NetworkIDManager *c_result = 0 ;
    void * jresult = 0 ;
    
    if (!swig_callbackGetNetworkIDManager) {
      return RakNet::NetworkIDObject::GetNetworkIDManager();
    } else {
      jresult = (void *) swig_callbackGetNetworkIDManager();
      c_result = (RakNet::NetworkIDManager *)jresult; 
    }
    return c_result;
  }
  
  RakNet::NetworkID SwigDirector_NetworkIDObject::GetNetworkID() {
    RakNet::NetworkID c_result = SwigValueInit< RakNet::NetworkID >() ;
    unsigned long long jresult = 0 ;
    
    if (!swig_callbackGetNetworkID) {
      return RakNet::NetworkIDObject::GetNetworkID();
    } else {
      jresult = (unsigned long long) swig_callbackGetNetworkID();
      c_result = (RakNet::NetworkID)jresult; 
    }
    return c_result;
  }
  
  void SwigDirector_NetworkIDObject::SetNetworkID(RakNet::NetworkID id) {
    unsigned long long jid  ;
    
    if (!swig_callbackSetNetworkID) {
      RakNet::NetworkIDObject::SetNetworkID(id);
      return;
    } else {
      jid = id;
      swig_callbackSetNetworkID(jid);
    }
  }
  
  void SwigDirector_NetworkIDObject::SetParent(void *_parent) {
    RakNet::NetworkIDObject::SetParent(_parent);
  }
  
  void *SwigDirector_NetworkIDObject::GetParent() const {
    return RakNet::NetworkIDObject::GetParent();
  }
  
  void SwigDirector_NetworkIDObject::swig_connect_director(SWIG_Callback0_t callbackSetNetworkIDManagerOrig, SWIG_Callback1_t callbackGetNetworkIDManager, SWIG_Callback2_t callbackGetNetworkID, SWIG_Callback3_t callbackSetNetworkID) {
    swig_callbackSetNetworkIDManagerOrig = callbackSetNetworkIDManagerOrig;
    swig_callbackGetNetworkIDManager = callbackGetNetworkIDManager;
    swig_callbackGetNetworkID = callbackGetNetworkID;
    swig_callbackSetNetworkID = callbackSetNetworkID;
  }
  
  void SwigDirector_NetworkIDObject::swig_init_callbacks() {
    swig_callbackSetNetworkIDManagerOrig = 0;
    swig_callbackGetNetworkIDManager = 0;
    swig_callbackGetNetworkID = 0;
    swig_callbackSetNetworkID = 0;
  }
  
  SwigDirector_NatPunchthroughDebugInterface::SwigDirector_NatPunchthroughDebugInterface() : RakNet::NatPunchthroughDebugInterface(), Swig::Director() {
    swig_init_callbacks();
  }
  
  SwigDirector_NatPunchthroughDebugInterface::~SwigDirector_NatPunchthroughDebugInterface() {
    
  }
  
  
  void SwigDirector_NatPunchthroughDebugInterface::OnClientMessage(char const *msg) {
    char * jmsg = 0 ;
    
    if (!swig_callbackOnClientMessage) {
      throw Swig::DirectorPureVirtualException("RakNet::NatPunchthroughDebugInterface::OnClientMessage");
    } else {
      jmsg = SWIG_csharp_string_callback((const char *)msg); 
      swig_callbackOnClientMessage(jmsg);
    }
  }
  
  void SwigDirector_NatPunchthroughDebugInterface::swig_connect_director(SWIG_Callback0_t callbackOnClientMessage) {
    swig_callbackOnClientMessage = callbackOnClientMessage;
  }
  
  void SwigDirector_NatPunchthroughDebugInterface::swig_init_callbacks() {
    swig_callbackOnClientMessage = 0;
  }
  
  SwigDirector_UDPProxyClientResultHandler::SwigDirector_UDPProxyClientResultHandler() : RakNet::UDPProxyClientResultHandler(), Swig::Director() {
    swig_init_callbacks();
  }
  
  SwigDirector_UDPProxyClientResultHandler::~SwigDirector_UDPProxyClientResultHandler() {
    
  }
  
  
  void SwigDirector_UDPProxyClientResultHandler::OnForwardingSuccess(char const *proxyIPAddress, unsigned short proxyPort, RakNet::SystemAddress proxyCoordinator, RakNet::SystemAddress sourceAddress, RakNet::SystemAddress targetAddress, RakNet::RakNetGUID targetGuid, RakNet::UDPProxyClient *proxyClientPlugin) {
    char * jproxyIPAddress = 0 ;
    unsigned short jproxyPort  ;
    void * jproxyCoordinator  ;
    void * jsourceAddress  ;
    void * jtargetAddress  ;
    void * jtargetGuid  ;
    void * jproxyClientPlugin = 0 ;
    
    if (!swig_callbackOnForwardingSuccess) {
      throw Swig::DirectorPureVirtualException("RakNet::UDPProxyClientResultHandler::OnForwardingSuccess");
    } else {
      jproxyIPAddress = SWIG_csharp_string_callback((const char *)proxyIPAddress); 
      jproxyPort = proxyPort;
      jproxyCoordinator = (void *)&proxyCoordinator; 
      jsourceAddress = (void *)&sourceAddress; 
      jtargetAddress = (void *)&targetAddress; 
      jtargetGuid = (void *)&targetGuid; 
      jproxyClientPlugin = (void *) proxyClientPlugin; 
      swig_callbackOnForwardingSuccess(jproxyIPAddress, jproxyPort, jproxyCoordinator, jsourceAddress, jtargetAddress, jtargetGuid, jproxyClientPlugin);
    }
  }
  
  void SwigDirector_UDPProxyClientResultHandler::OnForwardingNotification(char const *proxyIPAddress, unsigned short proxyPort, RakNet::SystemAddress proxyCoordinator, RakNet::SystemAddress sourceAddress, RakNet::SystemAddress targetAddress, RakNet::RakNetGUID targetGuid, RakNet::UDPProxyClient *proxyClientPlugin) {
    char * jproxyIPAddress = 0 ;
    unsigned short jproxyPort  ;
    void * jproxyCoordinator  ;
    void * jsourceAddress  ;
    void * jtargetAddress  ;
    void * jtargetGuid  ;
    void * jproxyClientPlugin = 0 ;
    
    if (!swig_callbackOnForwardingNotification) {
      throw Swig::DirectorPureVirtualException("RakNet::UDPProxyClientResultHandler::OnForwardingNotification");
    } else {
      jproxyIPAddress = SWIG_csharp_string_callback((const char *)proxyIPAddress); 
      jproxyPort = proxyPort;
      jproxyCoordinator = (void *)&proxyCoordinator; 
      jsourceAddress = (void *)&sourceAddress; 
      jtargetAddress = (void *)&targetAddress; 
      jtargetGuid = (void *)&targetGuid; 
      jproxyClientPlugin = (void *) proxyClientPlugin; 
      swig_callbackOnForwardingNotification(jproxyIPAddress, jproxyPort, jproxyCoordinator, jsourceAddress, jtargetAddress, jtargetGuid, jproxyClientPlugin);
    }
  }
  
  void SwigDirector_UDPProxyClientResultHandler::OnNoServersOnline(RakNet::SystemAddress proxyCoordinator, RakNet::SystemAddress sourceAddress, RakNet::SystemAddress targetAddress, RakNet::RakNetGUID targetGuid, RakNet::UDPProxyClient *proxyClientPlugin) {
    void * jproxyCoordinator  ;
    void * jsourceAddress  ;
    void * jtargetAddress  ;
    void * jtargetGuid  ;
    void * jproxyClientPlugin = 0 ;
    
    if (!swig_callbackOnNoServersOnline) {
      throw Swig::DirectorPureVirtualException("RakNet::UDPProxyClientResultHandler::OnNoServersOnline");
    } else {
      jproxyCoordinator = (void *)&proxyCoordinator; 
      jsourceAddress = (void *)&sourceAddress; 
      jtargetAddress = (void *)&targetAddress; 
      jtargetGuid = (void *)&targetGuid; 
      jproxyClientPlugin = (void *) proxyClientPlugin; 
      swig_callbackOnNoServersOnline(jproxyCoordinator, jsourceAddress, jtargetAddress, jtargetGuid, jproxyClientPlugin);
    }
  }
  
  void SwigDirector_UDPProxyClientResultHandler::OnRecipientNotConnected(RakNet::SystemAddress proxyCoordinator, RakNet::SystemAddress sourceAddress, RakNet::SystemAddress targetAddress, RakNet::RakNetGUID targetGuid, RakNet::UDPProxyClient *proxyClientPlugin) {
    void * jproxyCoordinator  ;
    void * jsourceAddress  ;
    void * jtargetAddress  ;
    void * jtargetGuid  ;
    void * jproxyClientPlugin = 0 ;
    
    if (!swig_callbackOnRecipientNotConnected) {
      throw Swig::DirectorPureVirtualException("RakNet::UDPProxyClientResultHandler::OnRecipientNotConnected");
    } else {
      jproxyCoordinator = (void *)&proxyCoordinator; 
      jsourceAddress = (void *)&sourceAddress; 
      jtargetAddress = (void *)&targetAddress; 
      jtargetGuid = (void *)&targetGuid; 
      jproxyClientPlugin = (void *) proxyClientPlugin; 
      swig_callbackOnRecipientNotConnected(jproxyCoordinator, jsourceAddress, jtargetAddress, jtargetGuid, jproxyClientPlugin);
    }
  }
  
  void SwigDirector_UDPProxyClientResultHandler::OnAllServersBusy(RakNet::SystemAddress proxyCoordinator, RakNet::SystemAddress sourceAddress, RakNet::SystemAddress targetAddress, RakNet::RakNetGUID targetGuid, RakNet::UDPProxyClient *proxyClientPlugin) {
    void * jproxyCoordinator  ;
    void * jsourceAddress  ;
    void * jtargetAddress  ;
    void * jtargetGuid  ;
    void * jproxyClientPlugin = 0 ;
    
    if (!swig_callbackOnAllServersBusy) {
      throw Swig::DirectorPureVirtualException("RakNet::UDPProxyClientResultHandler::OnAllServersBusy");
    } else {
      jproxyCoordinator = (void *)&proxyCoordinator; 
      jsourceAddress = (void *)&sourceAddress; 
      jtargetAddress = (void *)&targetAddress; 
      jtargetGuid = (void *)&targetGuid; 
      jproxyClientPlugin = (void *) proxyClientPlugin; 
      swig_callbackOnAllServersBusy(jproxyCoordinator, jsourceAddress, jtargetAddress, jtargetGuid, jproxyClientPlugin);
    }
  }
  
  void SwigDirector_UDPProxyClientResultHandler::OnForwardingInProgress(char const *proxyIPAddress, unsigned short proxyPort, RakNet::SystemAddress proxyCoordinator, RakNet::SystemAddress sourceAddress, RakNet::SystemAddress targetAddress, RakNet::RakNetGUID targetGuid, RakNet::UDPProxyClient *proxyClientPlugin) {
    char * jproxyIPAddress = 0 ;
    unsigned short jproxyPort  ;
    void * jproxyCoordinator  ;
    void * jsourceAddress  ;
    void * jtargetAddress  ;
    void * jtargetGuid  ;
    void * jproxyClientPlugin = 0 ;
    
    if (!swig_callbackOnForwardingInProgress) {
      throw Swig::DirectorPureVirtualException("RakNet::UDPProxyClientResultHandler::OnForwardingInProgress");
    } else {
      jproxyIPAddress = SWIG_csharp_string_callback((const char *)proxyIPAddress); 
      jproxyPort = proxyPort;
      jproxyCoordinator = (void *)&proxyCoordinator; 
      jsourceAddress = (void *)&sourceAddress; 
      jtargetAddress = (void *)&targetAddress; 
      jtargetGuid = (void *)&targetGuid; 
      jproxyClientPlugin = (void *) proxyClientPlugin; 
      swig_callbackOnForwardingInProgress(jproxyIPAddress, jproxyPort, jproxyCoordinator, jsourceAddress, jtargetAddress, jtargetGuid, jproxyClientPlugin);
    }
  }
  
  void SwigDirector_UDPProxyClientResultHandler::swig_connect_director(SWIG_Callback0_t callbackOnForwardingSuccess, SWIG_Callback1_t callbackOnForwardingNotification, SWIG_Callback2_t callbackOnNoServersOnline, SWIG_Callback3_t callbackOnRecipientNotConnected, SWIG_Callback4_t callbackOnAllServersBusy, SWIG_Callback5_t callbackOnForwardingInProgress) {
    swig_callbackOnForwardingSuccess = callbackOnForwardingSuccess;
    swig_callbackOnForwardingNotification = callbackOnForwardingNotification;
    swig_callbackOnNoServersOnline = callbackOnNoServersOnline;
    swig_callbackOnRecipientNotConnected = callbackOnRecipientNotConnected;
    swig_callbackOnAllServersBusy = callbackOnAllServersBusy;
    swig_callbackOnForwardingInProgress = callbackOnForwardingInProgress;
  }
  
  void SwigDirector_UDPProxyClientResultHandler::swig_init_callbacks() {
    swig_callbackOnForwardingSuccess = 0;
    swig_callbackOnForwardingNotification = 0;
    swig_callbackOnNoServersOnline = 0;
    swig_callbackOnRecipientNotConnected = 0;
    swig_callbackOnAllServersBusy = 0;
    swig_callbackOnForwardingInProgress = 0;
  }
  
  SwigDirector_UDPProxyServerResultHandler::SwigDirector_UDPProxyServerResultHandler() : RakNet::UDPProxyServerResultHandler(), Swig::Director() {
    swig_init_callbacks();
  }
  
  SwigDirector_UDPProxyServerResultHandler::~SwigDirector_UDPProxyServerResultHandler() {
    
  }
  
  
  void SwigDirector_UDPProxyServerResultHandler::OnLoginSuccess(RakNet::RakString usedPassword, RakNet::UDPProxyServer *proxyServerPlugin) {
    void * jusedPassword  ;
    void * jproxyServerPlugin = 0 ;
    
    if (!swig_callbackOnLoginSuccess) {
      throw Swig::DirectorPureVirtualException("RakNet::UDPProxyServerResultHandler::OnLoginSuccess");
    } else {
      jusedPassword = (void *)&usedPassword; 
      jproxyServerPlugin = (void *) proxyServerPlugin; 
      swig_callbackOnLoginSuccess(jusedPassword, jproxyServerPlugin);
    }
  }
  
  void SwigDirector_UDPProxyServerResultHandler::OnAlreadyLoggedIn(RakNet::RakString usedPassword, RakNet::UDPProxyServer *proxyServerPlugin) {
    void * jusedPassword  ;
    void * jproxyServerPlugin = 0 ;
    
    if (!swig_callbackOnAlreadyLoggedIn) {
      throw Swig::DirectorPureVirtualException("RakNet::UDPProxyServerResultHandler::OnAlreadyLoggedIn");
    } else {
      jusedPassword = (void *)&usedPassword; 
      jproxyServerPlugin = (void *) proxyServerPlugin; 
      swig_callbackOnAlreadyLoggedIn(jusedPassword, jproxyServerPlugin);
    }
  }
  
  void SwigDirector_UDPProxyServerResultHandler::OnNoPasswordSet(RakNet::RakString usedPassword, RakNet::UDPProxyServer *proxyServerPlugin) {
    void * jusedPassword  ;
    void * jproxyServerPlugin = 0 ;
    
    if (!swig_callbackOnNoPasswordSet) {
      throw Swig::DirectorPureVirtualException("RakNet::UDPProxyServerResultHandler::OnNoPasswordSet");
    } else {
      jusedPassword = (void *)&usedPassword; 
      jproxyServerPlugin = (void *) proxyServerPlugin; 
      swig_callbackOnNoPasswordSet(jusedPassword, jproxyServerPlugin);
    }
  }
  
  void SwigDirector_UDPProxyServerResultHandler::OnWrongPassword(RakNet::RakString usedPassword, RakNet::UDPProxyServer *proxyServerPlugin) {
    void * jusedPassword  ;
    void * jproxyServerPlugin = 0 ;
    
    if (!swig_callbackOnWrongPassword) {
      throw Swig::DirectorPureVirtualException("RakNet::UDPProxyServerResultHandler::OnWrongPassword");
    } else {
      jusedPassword = (void *)&usedPassword; 
      jproxyServerPlugin = (void *) proxyServerPlugin; 
      swig_callbackOnWrongPassword(jusedPassword, jproxyServerPlugin);
    }
  }
  
  void SwigDirector_UDPProxyServerResultHandler::swig_connect_director(SWIG_Callback0_t callbackOnLoginSuccess, SWIG_Callback1_t callbackOnAlreadyLoggedIn, SWIG_Callback2_t callbackOnNoPasswordSet, SWIG_Callback3_t callbackOnWrongPassword) {
    swig_callbackOnLoginSuccess = callbackOnLoginSuccess;
    swig_callbackOnAlreadyLoggedIn = callbackOnAlreadyLoggedIn;
    swig_callbackOnNoPasswordSet = callbackOnNoPasswordSet;
    swig_callbackOnWrongPassword = callbackOnWrongPassword;
  }
  
  void SwigDirector_UDPProxyServerResultHandler::swig_init_callbacks() {
    swig_callbackOnLoginSuccess = 0;
    swig_callbackOnAlreadyLoggedIn = 0;
    swig_callbackOnNoPasswordSet = 0;
    swig_callbackOnWrongPassword = 0;
  }
  
  SwigDirector_FileListTransferCBInterface::SwigDirector_FileListTransferCBInterface() : RakNet::FileListTransferCBInterface(), Swig::Director() {
    swig_init_callbacks();
  }
  
  SwigDirector_FileListTransferCBInterface::~SwigDirector_FileListTransferCBInterface() {
    
  }
  
  
  bool SwigDirector_FileListTransferCBInterface::OnFile(OnFileStruct *onFileStruct) {
    bool c_result = SwigValueInit< bool >() ;
    unsigned int jresult = 0 ;
    void * jonFileStruct = 0 ;
    
    if (!swig_callbackOnFile) {
      throw Swig::DirectorPureVirtualException("RakNet::FileListTransferCBInterface::OnFile");
    } else {
      jonFileStruct = (void *) onFileStruct; 
      jresult = (unsigned int) swig_callbackOnFile(jonFileStruct);
      c_result = jresult ? true : false; 
    }
    return c_result;
  }
  
  void SwigDirector_FileListTransferCBInterface::OnFileProgress(FileProgressStruct *fps) {
    void * jfps = 0 ;
    
    if (!swig_callbackOnFileProgress) {
      throw Swig::DirectorPureVirtualException("RakNet::FileListTransferCBInterface::OnFileProgress");
    } else {
      jfps = (void *) fps; 
      swig_callbackOnFileProgress(jfps);
    }
  }
  
  bool SwigDirector_FileListTransferCBInterface::Update() {
    bool c_result = SwigValueInit< bool >() ;
    unsigned int jresult = 0 ;
    
    if (!swig_callbackUpdate) {
      return RakNet::FileListTransferCBInterface::Update();
    } else {
      jresult = (unsigned int) swig_callbackUpdate();
      c_result = jresult ? true : false; 
    }
    return c_result;
  }
  
  bool SwigDirector_FileListTransferCBInterface::OnDownloadComplete(DownloadCompleteStruct *dcs) {
    bool c_result = SwigValueInit< bool >() ;
    unsigned int jresult = 0 ;
    void * jdcs = 0 ;
    
    if (!swig_callbackOnDownloadComplete) {
      return RakNet::FileListTransferCBInterface::OnDownloadComplete(dcs);
    } else {
      jdcs = (void *) dcs; 
      jresult = (unsigned int) swig_callbackOnDownloadComplete(jdcs);
      c_result = jresult ? true : false; 
    }
    return c_result;
  }
  
  void SwigDirector_FileListTransferCBInterface::OnDereference() {
    if (!swig_callbackOnDereference) {
      RakNet::FileListTransferCBInterface::OnDereference();
      return;
    } else {
      swig_callbackOnDereference();
    }
  }
  
  void SwigDirector_FileListTransferCBInterface::swig_connect_director(SWIG_Callback0_t callbackOnFile, SWIG_Callback1_t callbackOnFileProgress, SWIG_Callback2_t callbackUpdate, SWIG_Callback3_t callbackOnDownloadComplete, SWIG_Callback4_t callbackOnDereference) {
    swig_callbackOnFile = callbackOnFile;
    swig_callbackOnFileProgress = callbackOnFileProgress;
    swig_callbackUpdate = callbackUpdate;
    swig_callbackOnDownloadComplete = callbackOnDownloadComplete;
    swig_callbackOnDereference = callbackOnDereference;
  }
  
  void SwigDirector_FileListTransferCBInterface::swig_init_callbacks() {
    swig_callbackOnFile = 0;
    swig_callbackOnFileProgress = 0;
    swig_callbackUpdate = 0;
    swig_callbackOnDownloadComplete = 0;
    swig_callbackOnDereference = 0;
  }
  
  
  #ifdef __cplusplus
  extern "C" {
  #endif
  
  SWIGEXPORT int SWIGSTDCALL CSharp_SWIG_CSHARP_NO_IMCLASS_STATIC_CONSTRUCTOR_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_ColumnDescriptor__SWIG_0() {
    void * jresult ;
    ColumnDescriptor *result = 0 ;
    
    result = (ColumnDescriptor *)new ColumnDescriptor();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_ColumnDescriptor(void * jarg1) {
    ColumnDescriptor *arg1 = (ColumnDescriptor *) 0 ;
    
    arg1 = (ColumnDescriptor *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_ColumnDescriptor__SWIG_1(char * jarg1, int jarg2) {
    void * jresult ;
    char *arg1 ;
    DataStructures::Table::ColumnType arg2 ;
    ColumnDescriptor *result = 0 ;
    
    arg1 = (char *)jarg1; 
    arg2 = (DataStructures::Table::ColumnType)jarg2; 
    result = (ColumnDescriptor *)new ColumnDescriptor((char const (*))arg1,arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_ColumnDescriptor_columnName_set(void * jarg1, char * jarg2) {
    ColumnDescriptor *arg1 = (ColumnDescriptor *) 0 ;
    char *arg2 ;
    
    arg1 = (ColumnDescriptor *)jarg1; 
    arg2 = (char *)jarg2; 
    {
      if(arg2) {
        strncpy((char*)arg1->columnName, (const char *)arg2, _TABLE_MAX_COLUMN_NAME_LENGTH-1);
        arg1->columnName[_TABLE_MAX_COLUMN_NAME_LENGTH-1] = 0;
      } else {
        arg1->columnName[0] = 0;
      }
    }
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_ColumnDescriptor_columnName_get(void * jarg1) {
    char * jresult ;
    ColumnDescriptor *arg1 = (ColumnDescriptor *) 0 ;
    char *result = 0 ;
    
    arg1 = (ColumnDescriptor *)jarg1; 
    result = (char *)(char *) ((arg1)->columnName);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_ColumnDescriptor_columnType_set(void * jarg1, int jarg2) {
    ColumnDescriptor *arg1 = (ColumnDescriptor *) 0 ;
    DataStructures::Table::ColumnType arg2 ;
    
    arg1 = (ColumnDescriptor *)jarg1; 
    arg2 = (DataStructures::Table::ColumnType)jarg2; 
    if (arg1) (arg1)->columnType = arg2;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_ColumnDescriptor_columnType_get(void * jarg1) {
    int jresult ;
    ColumnDescriptor *arg1 = (ColumnDescriptor *) 0 ;
    DataStructures::Table::ColumnType result;
    
    arg1 = (ColumnDescriptor *)jarg1; 
    result = (DataStructures::Table::ColumnType) ((arg1)->columnType);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_Cell__SWIG_0() {
    void * jresult ;
    Cell *result = 0 ;
    
    result = (Cell *)new Cell();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_Cell(void * jarg1) {
    Cell *arg1 = (Cell *) 0 ;
    
    arg1 = (Cell *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Cell_Clear(void * jarg1) {
    Cell *arg1 = (Cell *) 0 ;
    
    arg1 = (Cell *)jarg1; 
    (arg1)->Clear();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Cell_Set__SWIG_0(void * jarg1, int jarg2) {
    Cell *arg1 = (Cell *) 0 ;
    int arg2 ;
    
    arg1 = (Cell *)jarg1; 
    arg2 = (int)jarg2; 
    (arg1)->Set(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Cell_Set__SWIG_1(void * jarg1, unsigned int jarg2) {
    Cell *arg1 = (Cell *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (Cell *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->Set(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Cell_Set__SWIG_2(void * jarg1, double jarg2) {
    Cell *arg1 = (Cell *) 0 ;
    double arg2 ;
    
    arg1 = (Cell *)jarg1; 
    arg2 = (double)jarg2; 
    (arg1)->Set(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Cell_Set__SWIG_3(void * jarg1, char * jarg2) {
    Cell *arg1 = (Cell *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (Cell *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->Set((char const *)arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Cell_Get__SWIG_0(void * jarg1, int * jarg2) {
    Cell *arg1 = (Cell *) 0 ;
    int *arg2 = (int *) 0 ;
    
    arg1 = (Cell *)jarg1; 
    arg2 = (int *)jarg2; 
    (arg1)->Get(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Cell_Get__SWIG_1(void * jarg1, double * jarg2) {
    Cell *arg1 = (Cell *) 0 ;
    double *arg2 = (double *) 0 ;
    
    arg1 = (Cell *)jarg1; 
    arg2 = (double *)jarg2; 
    (arg1)->Get(arg2);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_Cell_ToString(void * jarg1, int jarg2) {
    void * jresult ;
    Cell *arg1 = (Cell *) 0 ;
    DataStructures::Table::ColumnType arg2 ;
    RakNet::RakString result;
    
    arg1 = (Cell *)jarg1; 
    arg2 = (DataStructures::Table::ColumnType)jarg2; 
    result = (arg1)->ToString(arg2);
    jresult = new RakNet::RakString((const RakNet::RakString &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_Cell_CopyData(void * jarg1, void * jarg2) {
    void * jresult ;
    Cell *arg1 = (Cell *) 0 ;
    Cell *arg2 = 0 ;
    Cell *result = 0 ;
    
    arg1 = (Cell *)jarg1; 
    arg2 = (Cell *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Cell const & type is null", 0);
      return 0;
    } 
    result = (Cell *) &(arg1)->operator =((Cell const &)*arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_Cell__SWIG_1(void * jarg1) {
    void * jresult ;
    Cell *arg1 = 0 ;
    Cell *result = 0 ;
    
    arg1 = (Cell *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Cell const & type is null", 0);
      return 0;
    } 
    result = (Cell *)new Cell((Cell const &)*arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_Cell_EstimateColumnType(void * jarg1) {
    int jresult ;
    Cell *arg1 = (Cell *) 0 ;
    DataStructures::Table::ColumnType result;
    
    arg1 = (Cell *)jarg1; 
    result = (DataStructures::Table::ColumnType)((Cell const *)arg1)->EstimateColumnType();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Cell_isEmpty_set(void * jarg1, unsigned int jarg2) {
    Cell *arg1 = (Cell *) 0 ;
    bool arg2 ;
    
    arg1 = (Cell *)jarg1; 
    arg2 = jarg2 ? true : false; 
    if (arg1) (arg1)->isEmpty = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Cell_isEmpty_get(void * jarg1) {
    unsigned int jresult ;
    Cell *arg1 = (Cell *) 0 ;
    bool result;
    
    arg1 = (Cell *)jarg1; 
    result = (bool) ((arg1)->isEmpty);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Cell_i_set(void * jarg1, double jarg2) {
    Cell *arg1 = (Cell *) 0 ;
    double arg2 ;
    
    arg1 = (Cell *)jarg1; 
    arg2 = (double)jarg2; 
    if (arg1) (arg1)->i = arg2;
  }
  
  
  SWIGEXPORT double SWIGSTDCALL CSharp_Cell_i_get(void * jarg1) {
    double jresult ;
    Cell *arg1 = (Cell *) 0 ;
    double result;
    
    arg1 = (Cell *)jarg1; 
    result = (double) ((arg1)->i);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Cell_Set__SWIG_4(void * jarg1, unsigned char* jarg2, int jarg3) {
    Cell *arg1 = (Cell *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    int arg3 ;
    
    arg1 = (Cell *)jarg1; 
    arg2 = jarg2;
    arg3 = (int)jarg3; 
    Cell_Set__SWIG_4(arg1,arg2,arg3);
    
    
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Cell_Get__SWIG_2(void * jarg1, unsigned char* jarg2, int * jarg3) {
    Cell *arg1 = (Cell *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    int *arg3 = (int *) 0 ;
    
    arg1 = (Cell *)jarg1; 
    arg2 = jarg2;
    arg3 = (int *)jarg3; 
    Cell_Get__SWIG_2(arg1,arg2,arg3);
    
    
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_Cell_GetHelper(void * jarg1, char * jarg2) {
    char * jresult ;
    Cell *arg1 = (Cell *) 0 ;
    char *arg2 = (char *) 0 ;
    char *result = 0 ;
    
    arg1 = (Cell *)jarg1; 
    arg2 = (char *)jarg2; 
    result = (char *)Cell_GetHelper(arg1,arg2);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Row_cells_set(void * jarg1, void * jarg2) {
    Row *arg1 = (Row *) 0 ;
    DataStructures::List< Cell * > *arg2 = (DataStructures::List< Cell * > *) 0 ;
    
    arg1 = (Row *)jarg1; 
    arg2 = (DataStructures::List< Cell * > *)jarg2; 
    if (arg1) (arg1)->cells = *arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_Row_cells_get(void * jarg1) {
    void * jresult ;
    Row *arg1 = (Row *) 0 ;
    DataStructures::List< Cell * > *result = 0 ;
    
    arg1 = (Row *)jarg1; 
    result = (DataStructures::List< Cell * > *)& ((arg1)->cells);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Row_UpdateCell__SWIG_0(void * jarg1, unsigned int jarg2, double jarg3) {
    Row *arg1 = (Row *) 0 ;
    unsigned int arg2 ;
    double arg3 ;
    
    arg1 = (Row *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (double)jarg3; 
    (arg1)->UpdateCell(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Row_UpdateCell__SWIG_1(void * jarg1, unsigned int jarg2, char * jarg3) {
    Row *arg1 = (Row *) 0 ;
    unsigned int arg2 ;
    char *arg3 = (char *) 0 ;
    
    arg1 = (Row *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (char *)jarg3; 
    (arg1)->UpdateCell(arg2,(char const *)arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Row_UpdateCell__SWIG_2(void * jarg1, unsigned int jarg2, int jarg3, unsigned char* jarg4) {
    Row *arg1 = (Row *) 0 ;
    unsigned int arg2 ;
    int arg3 ;
    unsigned char *arg4 = (unsigned char *) 0 ;
    
    arg1 = (Row *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (int)jarg3; 
    arg4 = jarg4;
    Row_UpdateCell__SWIG_2(arg1,arg2,arg3,arg4);
    
    
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_Row() {
    void * jresult ;
    Row *result = 0 ;
    
    result = (Row *)new Row();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_Row(void * jarg1) {
    Row *arg1 = (Row *) 0 ;
    
    arg1 = (Row *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_FilterQuery__SWIG_0() {
    void * jresult ;
    FilterQuery *result = 0 ;
    
    result = (FilterQuery *)new FilterQuery();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_FilterQuery(void * jarg1) {
    FilterQuery *arg1 = (FilterQuery *) 0 ;
    
    arg1 = (FilterQuery *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_FilterQuery__SWIG_1(unsigned int jarg1, void * jarg2, int jarg3) {
    void * jresult ;
    unsigned int arg1 ;
    Cell *arg2 = (Cell *) 0 ;
    DataStructures::Table::FilterQueryType arg3 ;
    FilterQuery *result = 0 ;
    
    arg1 = (unsigned int)jarg1; 
    arg2 = (Cell *)jarg2; 
    arg3 = (DataStructures::Table::FilterQueryType)jarg3; 
    result = (FilterQuery *)new FilterQuery(arg1,arg2,arg3);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FilterQuery_columnName_set(void * jarg1, char * jarg2) {
    FilterQuery *arg1 = (FilterQuery *) 0 ;
    char *arg2 ;
    
    arg1 = (FilterQuery *)jarg1; 
    arg2 = (char *)jarg2; 
    {
      if(arg2) {
        strncpy((char*)arg1->columnName, (const char *)arg2, _TABLE_MAX_COLUMN_NAME_LENGTH-1);
        arg1->columnName[_TABLE_MAX_COLUMN_NAME_LENGTH-1] = 0;
      } else {
        arg1->columnName[0] = 0;
      }
    }
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_FilterQuery_columnName_get(void * jarg1) {
    char * jresult ;
    FilterQuery *arg1 = (FilterQuery *) 0 ;
    char *result = 0 ;
    
    arg1 = (FilterQuery *)jarg1; 
    result = (char *)(char *) ((arg1)->columnName);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FilterQuery_columnIndex_set(void * jarg1, unsigned int jarg2) {
    FilterQuery *arg1 = (FilterQuery *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (FilterQuery *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    if (arg1) (arg1)->columnIndex = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FilterQuery_columnIndex_get(void * jarg1) {
    unsigned int jresult ;
    FilterQuery *arg1 = (FilterQuery *) 0 ;
    unsigned int result;
    
    arg1 = (FilterQuery *)jarg1; 
    result = (unsigned int) ((arg1)->columnIndex);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FilterQuery_cellValue_set(void * jarg1, void * jarg2) {
    FilterQuery *arg1 = (FilterQuery *) 0 ;
    Cell *arg2 = (Cell *) 0 ;
    
    arg1 = (FilterQuery *)jarg1; 
    arg2 = (Cell *)jarg2; 
    if (arg1) (arg1)->cellValue = arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_FilterQuery_cellValue_get(void * jarg1) {
    void * jresult ;
    FilterQuery *arg1 = (FilterQuery *) 0 ;
    Cell *result = 0 ;
    
    arg1 = (FilterQuery *)jarg1; 
    result = (Cell *) ((arg1)->cellValue);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FilterQuery_operation_set(void * jarg1, int jarg2) {
    FilterQuery *arg1 = (FilterQuery *) 0 ;
    DataStructures::Table::FilterQueryType arg2 ;
    
    arg1 = (FilterQuery *)jarg1; 
    arg2 = (DataStructures::Table::FilterQueryType)jarg2; 
    if (arg1) (arg1)->operation = arg2;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_FilterQuery_operation_get(void * jarg1) {
    int jresult ;
    FilterQuery *arg1 = (FilterQuery *) 0 ;
    DataStructures::Table::FilterQueryType result;
    
    arg1 = (FilterQuery *)jarg1; 
    result = (DataStructures::Table::FilterQueryType) ((arg1)->operation);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_SortQuery_columnIndex_set(void * jarg1, unsigned int jarg2) {
    SortQuery *arg1 = (SortQuery *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (SortQuery *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    if (arg1) (arg1)->columnIndex = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SortQuery_columnIndex_get(void * jarg1) {
    unsigned int jresult ;
    SortQuery *arg1 = (SortQuery *) 0 ;
    unsigned int result;
    
    arg1 = (SortQuery *)jarg1; 
    result = (unsigned int) ((arg1)->columnIndex);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_SortQuery_operation_set(void * jarg1, int jarg2) {
    SortQuery *arg1 = (SortQuery *) 0 ;
    DataStructures::Table::SortQueryType arg2 ;
    
    arg1 = (SortQuery *)jarg1; 
    arg2 = (DataStructures::Table::SortQueryType)jarg2; 
    if (arg1) (arg1)->operation = arg2;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_SortQuery_operation_get(void * jarg1) {
    int jresult ;
    SortQuery *arg1 = (SortQuery *) 0 ;
    DataStructures::Table::SortQueryType result;
    
    arg1 = (SortQuery *)jarg1; 
    result = (DataStructures::Table::SortQueryType) ((arg1)->operation);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_SortQuery() {
    void * jresult ;
    SortQuery *result = 0 ;
    
    result = (SortQuery *)new SortQuery();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_SortQuery(void * jarg1) {
    SortQuery *arg1 = (SortQuery *) 0 ;
    
    arg1 = (SortQuery *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_OnFileStruct_fileIndex_set(void * jarg1, unsigned int jarg2) {
    OnFileStruct *arg1 = (OnFileStruct *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (OnFileStruct *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    if (arg1) (arg1)->fileIndex = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_OnFileStruct_fileIndex_get(void * jarg1) {
    unsigned int jresult ;
    OnFileStruct *arg1 = (OnFileStruct *) 0 ;
    unsigned int result;
    
    arg1 = (OnFileStruct *)jarg1; 
    result = (unsigned int) ((arg1)->fileIndex);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_OnFileStruct_fileName_set(void * jarg1, char * jarg2) {
    OnFileStruct *arg1 = (OnFileStruct *) 0 ;
    char *arg2 ;
    
    arg1 = (OnFileStruct *)jarg1; 
    arg2 = (char *)jarg2; 
    {
      if(arg2) {
        strncpy((char*)arg1->fileName, (const char *)arg2, 512-1);
        arg1->fileName[512-1] = 0;
      } else {
        arg1->fileName[0] = 0;
      }
    }
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_OnFileStruct_fileName_get(void * jarg1) {
    char * jresult ;
    OnFileStruct *arg1 = (OnFileStruct *) 0 ;
    char *result = 0 ;
    
    arg1 = (OnFileStruct *)jarg1; 
    result = (char *)(char *) ((arg1)->fileName);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_OnFileStruct_fileData_set(void * jarg1, char * jarg2) {
    OnFileStruct *arg1 = (OnFileStruct *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (OnFileStruct *)jarg1; 
    arg2 = (char *)jarg2; 
    {
      delete [] arg1->fileData;
      if (arg2) {
        arg1->fileData = (char *) (new char[strlen((const char *)arg2)+1]);
        strcpy((char *)arg1->fileData, (const char *)arg2);
      } else {
        arg1->fileData = 0;
      }
    }
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_OnFileStruct_fileData_get(void * jarg1) {
    char * jresult ;
    OnFileStruct *arg1 = (OnFileStruct *) 0 ;
    char *result = 0 ;
    
    arg1 = (OnFileStruct *)jarg1; 
    result = (char *) ((arg1)->fileData);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_OnFileStruct_byteLengthOfThisFile_set(void * jarg1, unsigned int jarg2) {
    OnFileStruct *arg1 = (OnFileStruct *) 0 ;
    BitSize_t arg2 ;
    
    arg1 = (OnFileStruct *)jarg1; 
    arg2 = (BitSize_t)jarg2; 
    if (arg1) (arg1)->byteLengthOfThisFile = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_OnFileStruct_byteLengthOfThisFile_get(void * jarg1) {
    unsigned int jresult ;
    OnFileStruct *arg1 = (OnFileStruct *) 0 ;
    BitSize_t result;
    
    arg1 = (OnFileStruct *)jarg1; 
    result = (BitSize_t) ((arg1)->byteLengthOfThisFile);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_OnFileStruct_bytesDownloadedForThisFile_set(void * jarg1, unsigned int jarg2) {
    OnFileStruct *arg1 = (OnFileStruct *) 0 ;
    BitSize_t arg2 ;
    
    arg1 = (OnFileStruct *)jarg1; 
    arg2 = (BitSize_t)jarg2; 
    if (arg1) (arg1)->bytesDownloadedForThisFile = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_OnFileStruct_bytesDownloadedForThisFile_get(void * jarg1) {
    unsigned int jresult ;
    OnFileStruct *arg1 = (OnFileStruct *) 0 ;
    BitSize_t result;
    
    arg1 = (OnFileStruct *)jarg1; 
    result = (BitSize_t) ((arg1)->bytesDownloadedForThisFile);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_OnFileStruct_setID_set(void * jarg1, unsigned short jarg2) {
    OnFileStruct *arg1 = (OnFileStruct *) 0 ;
    unsigned short arg2 ;
    
    arg1 = (OnFileStruct *)jarg1; 
    arg2 = (unsigned short)jarg2; 
    if (arg1) (arg1)->setID = arg2;
  }
  
  
  SWIGEXPORT unsigned short SWIGSTDCALL CSharp_OnFileStruct_setID_get(void * jarg1) {
    unsigned short jresult ;
    OnFileStruct *arg1 = (OnFileStruct *) 0 ;
    unsigned short result;
    
    arg1 = (OnFileStruct *)jarg1; 
    result = (unsigned short) ((arg1)->setID);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_OnFileStruct_numberOfFilesInThisSet_set(void * jarg1, unsigned int jarg2) {
    OnFileStruct *arg1 = (OnFileStruct *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (OnFileStruct *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    if (arg1) (arg1)->numberOfFilesInThisSet = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_OnFileStruct_numberOfFilesInThisSet_get(void * jarg1) {
    unsigned int jresult ;
    OnFileStruct *arg1 = (OnFileStruct *) 0 ;
    unsigned int result;
    
    arg1 = (OnFileStruct *)jarg1; 
    result = (unsigned int) ((arg1)->numberOfFilesInThisSet);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_OnFileStruct_byteLengthOfThisSet_set(void * jarg1, unsigned int jarg2) {
    OnFileStruct *arg1 = (OnFileStruct *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (OnFileStruct *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    if (arg1) (arg1)->byteLengthOfThisSet = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_OnFileStruct_byteLengthOfThisSet_get(void * jarg1) {
    unsigned int jresult ;
    OnFileStruct *arg1 = (OnFileStruct *) 0 ;
    unsigned int result;
    
    arg1 = (OnFileStruct *)jarg1; 
    result = (unsigned int) ((arg1)->byteLengthOfThisSet);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_OnFileStruct_bytesDownloadedForThisSet_set(void * jarg1, unsigned int jarg2) {
    OnFileStruct *arg1 = (OnFileStruct *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (OnFileStruct *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    if (arg1) (arg1)->bytesDownloadedForThisSet = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_OnFileStruct_bytesDownloadedForThisSet_get(void * jarg1) {
    unsigned int jresult ;
    OnFileStruct *arg1 = (OnFileStruct *) 0 ;
    unsigned int result;
    
    arg1 = (OnFileStruct *)jarg1; 
    result = (unsigned int) ((arg1)->bytesDownloadedForThisSet);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_OnFileStruct_context_set(void * jarg1, void * jarg2) {
    OnFileStruct *arg1 = (OnFileStruct *) 0 ;
    FileListNodeContext *arg2 = (FileListNodeContext *) 0 ;
    
    arg1 = (OnFileStruct *)jarg1; 
    arg2 = (FileListNodeContext *)jarg2; 
    if (arg1) (arg1)->context = *arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_OnFileStruct_context_get(void * jarg1) {
    void * jresult ;
    OnFileStruct *arg1 = (OnFileStruct *) 0 ;
    FileListNodeContext *result = 0 ;
    
    arg1 = (OnFileStruct *)jarg1; 
    result = (FileListNodeContext *)& ((arg1)->context);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_OnFileStruct_senderSystemAddress_set(void * jarg1, void * jarg2) {
    OnFileStruct *arg1 = (OnFileStruct *) 0 ;
    SystemAddress *arg2 = (SystemAddress *) 0 ;
    
    arg1 = (OnFileStruct *)jarg1; 
    arg2 = (SystemAddress *)jarg2; 
    if (arg1) (arg1)->senderSystemAddress = *arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_OnFileStruct_senderSystemAddress_get(void * jarg1) {
    void * jresult ;
    OnFileStruct *arg1 = (OnFileStruct *) 0 ;
    SystemAddress *result = 0 ;
    
    arg1 = (OnFileStruct *)jarg1; 
    result = (SystemAddress *)& ((arg1)->senderSystemAddress);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_OnFileStruct_senderGuid_set(void * jarg1, void * jarg2) {
    OnFileStruct *arg1 = (OnFileStruct *) 0 ;
    RakNetGUID *arg2 = (RakNetGUID *) 0 ;
    
    arg1 = (OnFileStruct *)jarg1; 
    arg2 = (RakNetGUID *)jarg2; 
    if (arg1) (arg1)->senderGuid = *arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_OnFileStruct_senderGuid_get(void * jarg1) {
    void * jresult ;
    OnFileStruct *arg1 = (OnFileStruct *) 0 ;
    RakNetGUID *result = 0 ;
    
    arg1 = (OnFileStruct *)jarg1; 
    result = (RakNetGUID *)& ((arg1)->senderGuid);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_OnFileStruct() {
    void * jresult ;
    OnFileStruct *result = 0 ;
    
    result = (OnFileStruct *)new_OnFileStruct();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_OnFileStruct_SetFileData(void * jarg1, unsigned char* jarg2, int jarg3) {
    OnFileStruct *arg1 = (OnFileStruct *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    int arg3 ;
    
    arg1 = (OnFileStruct *)jarg1; 
    arg2 = jarg2;
    arg3 = (int)jarg3; 
    OnFileStruct_SetFileData(arg1,arg2,arg3);
    
    
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_OnFileStruct(void * jarg1) {
    OnFileStruct *arg1 = (OnFileStruct *) 0 ;
    
    arg1 = (OnFileStruct *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileProgressStruct_onFileStruct_set(void * jarg1, void * jarg2) {
    FileProgressStruct *arg1 = (FileProgressStruct *) 0 ;
    OnFileStruct *arg2 = (OnFileStruct *) 0 ;
    
    arg1 = (FileProgressStruct *)jarg1; 
    arg2 = (OnFileStruct *)jarg2; 
    if (arg1) (arg1)->onFileStruct = arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_FileProgressStruct_onFileStruct_get(void * jarg1) {
    void * jresult ;
    FileProgressStruct *arg1 = (FileProgressStruct *) 0 ;
    OnFileStruct *result = 0 ;
    
    arg1 = (FileProgressStruct *)jarg1; 
    result = (OnFileStruct *) ((arg1)->onFileStruct);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileProgressStruct_partCount_set(void * jarg1, unsigned int jarg2) {
    FileProgressStruct *arg1 = (FileProgressStruct *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (FileProgressStruct *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    if (arg1) (arg1)->partCount = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FileProgressStruct_partCount_get(void * jarg1) {
    unsigned int jresult ;
    FileProgressStruct *arg1 = (FileProgressStruct *) 0 ;
    unsigned int result;
    
    arg1 = (FileProgressStruct *)jarg1; 
    result = (unsigned int) ((arg1)->partCount);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileProgressStruct_partTotal_set(void * jarg1, unsigned int jarg2) {
    FileProgressStruct *arg1 = (FileProgressStruct *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (FileProgressStruct *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    if (arg1) (arg1)->partTotal = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FileProgressStruct_partTotal_get(void * jarg1) {
    unsigned int jresult ;
    FileProgressStruct *arg1 = (FileProgressStruct *) 0 ;
    unsigned int result;
    
    arg1 = (FileProgressStruct *)jarg1; 
    result = (unsigned int) ((arg1)->partTotal);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileProgressStruct_dataChunkLength_set(void * jarg1, unsigned int jarg2) {
    FileProgressStruct *arg1 = (FileProgressStruct *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (FileProgressStruct *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    if (arg1) (arg1)->dataChunkLength = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FileProgressStruct_dataChunkLength_get(void * jarg1) {
    unsigned int jresult ;
    FileProgressStruct *arg1 = (FileProgressStruct *) 0 ;
    unsigned int result;
    
    arg1 = (FileProgressStruct *)jarg1; 
    result = (unsigned int) ((arg1)->dataChunkLength);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileProgressStruct_firstDataChunk_set(void * jarg1, char * jarg2) {
    FileProgressStruct *arg1 = (FileProgressStruct *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (FileProgressStruct *)jarg1; 
    arg2 = (char *)jarg2; 
    {
      delete [] arg1->firstDataChunk;
      if (arg2) {
        arg1->firstDataChunk = (char *) (new char[strlen((const char *)arg2)+1]);
        strcpy((char *)arg1->firstDataChunk, (const char *)arg2);
      } else {
        arg1->firstDataChunk = 0;
      }
    }
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_FileProgressStruct_firstDataChunk_get(void * jarg1) {
    char * jresult ;
    FileProgressStruct *arg1 = (FileProgressStruct *) 0 ;
    char *result = 0 ;
    
    arg1 = (FileProgressStruct *)jarg1; 
    result = (char *) ((arg1)->firstDataChunk);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileProgressStruct_iriDataChunk_set(void * jarg1, char * jarg2) {
    FileProgressStruct *arg1 = (FileProgressStruct *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (FileProgressStruct *)jarg1; 
    arg2 = (char *)jarg2; 
    {
      delete [] arg1->iriDataChunk;
      if (arg2) {
        arg1->iriDataChunk = (char *) (new char[strlen((const char *)arg2)+1]);
        strcpy((char *)arg1->iriDataChunk, (const char *)arg2);
      } else {
        arg1->iriDataChunk = 0;
      }
    }
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_FileProgressStruct_iriDataChunk_get(void * jarg1) {
    char * jresult ;
    FileProgressStruct *arg1 = (FileProgressStruct *) 0 ;
    char *result = 0 ;
    
    arg1 = (FileProgressStruct *)jarg1; 
    result = (char *) ((arg1)->iriDataChunk);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileProgressStruct_iriWriteOffset_set(void * jarg1, unsigned int jarg2) {
    FileProgressStruct *arg1 = (FileProgressStruct *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (FileProgressStruct *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    if (arg1) (arg1)->iriWriteOffset = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FileProgressStruct_iriWriteOffset_get(void * jarg1) {
    unsigned int jresult ;
    FileProgressStruct *arg1 = (FileProgressStruct *) 0 ;
    unsigned int result;
    
    arg1 = (FileProgressStruct *)jarg1; 
    result = (unsigned int) ((arg1)->iriWriteOffset);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileProgressStruct_senderSystemAddress_set(void * jarg1, void * jarg2) {
    FileProgressStruct *arg1 = (FileProgressStruct *) 0 ;
    SystemAddress *arg2 = (SystemAddress *) 0 ;
    
    arg1 = (FileProgressStruct *)jarg1; 
    arg2 = (SystemAddress *)jarg2; 
    if (arg1) (arg1)->senderSystemAddress = *arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_FileProgressStruct_senderSystemAddress_get(void * jarg1) {
    void * jresult ;
    FileProgressStruct *arg1 = (FileProgressStruct *) 0 ;
    SystemAddress *result = 0 ;
    
    arg1 = (FileProgressStruct *)jarg1; 
    result = (SystemAddress *)& ((arg1)->senderSystemAddress);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileProgressStruct_senderGuid_set(void * jarg1, void * jarg2) {
    FileProgressStruct *arg1 = (FileProgressStruct *) 0 ;
    RakNetGUID *arg2 = (RakNetGUID *) 0 ;
    
    arg1 = (FileProgressStruct *)jarg1; 
    arg2 = (RakNetGUID *)jarg2; 
    if (arg1) (arg1)->senderGuid = *arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_FileProgressStruct_senderGuid_get(void * jarg1) {
    void * jresult ;
    FileProgressStruct *arg1 = (FileProgressStruct *) 0 ;
    RakNetGUID *result = 0 ;
    
    arg1 = (FileProgressStruct *)jarg1; 
    result = (RakNetGUID *)& ((arg1)->senderGuid);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileProgressStruct_allocateIrIDataChunkAutomatically_set(void * jarg1, unsigned int jarg2) {
    FileProgressStruct *arg1 = (FileProgressStruct *) 0 ;
    bool arg2 ;
    
    arg1 = (FileProgressStruct *)jarg1; 
    arg2 = jarg2 ? true : false; 
    if (arg1) (arg1)->allocateIrIDataChunkAutomatically = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FileProgressStruct_allocateIrIDataChunkAutomatically_get(void * jarg1) {
    unsigned int jresult ;
    FileProgressStruct *arg1 = (FileProgressStruct *) 0 ;
    bool result;
    
    arg1 = (FileProgressStruct *)jarg1; 
    result = (bool) ((arg1)->allocateIrIDataChunkAutomatically);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_FileProgressStruct() {
    void * jresult ;
    FileProgressStruct *result = 0 ;
    
    result = (FileProgressStruct *)new_FileProgressStruct();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileProgressStruct_SetFirstDataChunk(void * jarg1, unsigned char* jarg2, int jarg3) {
    FileProgressStruct *arg1 = (FileProgressStruct *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    int arg3 ;
    
    arg1 = (FileProgressStruct *)jarg1; 
    arg2 = jarg2;
    arg3 = (int)jarg3; 
    FileProgressStruct_SetFirstDataChunk(arg1,arg2,arg3);
    
    
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileProgressStruct_SetIriDataChunk(void * jarg1, unsigned char* jarg2, int jarg3) {
    FileProgressStruct *arg1 = (FileProgressStruct *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    int arg3 ;
    
    arg1 = (FileProgressStruct *)jarg1; 
    arg2 = jarg2;
    arg3 = (int)jarg3; 
    FileProgressStruct_SetIriDataChunk(arg1,arg2,arg3);
    
    
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_FileProgressStruct(void * jarg1) {
    FileProgressStruct *arg1 = (FileProgressStruct *) 0 ;
    
    arg1 = (FileProgressStruct *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_DownloadCompleteStruct_setID_set(void * jarg1, unsigned short jarg2) {
    DownloadCompleteStruct *arg1 = (DownloadCompleteStruct *) 0 ;
    unsigned short arg2 ;
    
    arg1 = (DownloadCompleteStruct *)jarg1; 
    arg2 = (unsigned short)jarg2; 
    if (arg1) (arg1)->setID = arg2;
  }
  
  
  SWIGEXPORT unsigned short SWIGSTDCALL CSharp_DownloadCompleteStruct_setID_get(void * jarg1) {
    unsigned short jresult ;
    DownloadCompleteStruct *arg1 = (DownloadCompleteStruct *) 0 ;
    unsigned short result;
    
    arg1 = (DownloadCompleteStruct *)jarg1; 
    result = (unsigned short) ((arg1)->setID);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_DownloadCompleteStruct_numberOfFilesInThisSet_set(void * jarg1, unsigned int jarg2) {
    DownloadCompleteStruct *arg1 = (DownloadCompleteStruct *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DownloadCompleteStruct *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    if (arg1) (arg1)->numberOfFilesInThisSet = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_DownloadCompleteStruct_numberOfFilesInThisSet_get(void * jarg1) {
    unsigned int jresult ;
    DownloadCompleteStruct *arg1 = (DownloadCompleteStruct *) 0 ;
    unsigned int result;
    
    arg1 = (DownloadCompleteStruct *)jarg1; 
    result = (unsigned int) ((arg1)->numberOfFilesInThisSet);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_DownloadCompleteStruct_byteLengthOfThisSet_set(void * jarg1, unsigned int jarg2) {
    DownloadCompleteStruct *arg1 = (DownloadCompleteStruct *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DownloadCompleteStruct *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    if (arg1) (arg1)->byteLengthOfThisSet = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_DownloadCompleteStruct_byteLengthOfThisSet_get(void * jarg1) {
    unsigned int jresult ;
    DownloadCompleteStruct *arg1 = (DownloadCompleteStruct *) 0 ;
    unsigned int result;
    
    arg1 = (DownloadCompleteStruct *)jarg1; 
    result = (unsigned int) ((arg1)->byteLengthOfThisSet);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_DownloadCompleteStruct_senderSystemAddress_set(void * jarg1, void * jarg2) {
    DownloadCompleteStruct *arg1 = (DownloadCompleteStruct *) 0 ;
    SystemAddress *arg2 = (SystemAddress *) 0 ;
    
    arg1 = (DownloadCompleteStruct *)jarg1; 
    arg2 = (SystemAddress *)jarg2; 
    if (arg1) (arg1)->senderSystemAddress = *arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_DownloadCompleteStruct_senderSystemAddress_get(void * jarg1) {
    void * jresult ;
    DownloadCompleteStruct *arg1 = (DownloadCompleteStruct *) 0 ;
    SystemAddress *result = 0 ;
    
    arg1 = (DownloadCompleteStruct *)jarg1; 
    result = (SystemAddress *)& ((arg1)->senderSystemAddress);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_DownloadCompleteStruct_senderGuid_set(void * jarg1, void * jarg2) {
    DownloadCompleteStruct *arg1 = (DownloadCompleteStruct *) 0 ;
    RakNetGUID *arg2 = (RakNetGUID *) 0 ;
    
    arg1 = (DownloadCompleteStruct *)jarg1; 
    arg2 = (RakNetGUID *)jarg2; 
    if (arg1) (arg1)->senderGuid = *arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_DownloadCompleteStruct_senderGuid_get(void * jarg1) {
    void * jresult ;
    DownloadCompleteStruct *arg1 = (DownloadCompleteStruct *) 0 ;
    RakNetGUID *result = 0 ;
    
    arg1 = (DownloadCompleteStruct *)jarg1; 
    result = (RakNetGUID *)& ((arg1)->senderGuid);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_DownloadCompleteStruct() {
    void * jresult ;
    DownloadCompleteStruct *result = 0 ;
    
    result = (DownloadCompleteStruct *)new DownloadCompleteStruct();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_DownloadCompleteStruct(void * jarg1) {
    DownloadCompleteStruct *arg1 = (DownloadCompleteStruct *) 0 ;
    
    arg1 = (DownloadCompleteStruct *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_StatisticsToStringHelper(void * jarg1, char * jarg2, int jarg3) {
    char * jresult ;
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    char *arg2 = (char *) 0 ;
    int arg3 ;
    char *result = 0 ;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (int)jarg3; 
    result = (char *)StatisticsToStringHelper(arg1,arg2,arg3);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp___GET_TIME_64BIT_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_MAX_ALLOCA_STACK_ALLOCATION_get() {
    int jresult ;
    int result;
    
    result = (int)(1048576);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__USE_RAK_MEMORY_OVERRIDE_get() {
    int jresult ;
    int result;
    
    result = (int)(0);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_OPEN_SSL_CLIENT_SUPPORT_get() {
    int jresult ;
    int result;
    
    result = (int)(0);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_BITSTREAM_STACK_ALLOCATION_SIZE_get() {
    int jresult ;
    int result;
    
    result = (int)(256);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_MAXIMUM_NUMBER_OF_INTERNAL_IDS_get() {
    int jresult ;
    int result;
    
    result = (int)(10);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_DATAGRAM_MESSAGE_ID_ARRAY_LENGTH_get() {
    int jresult ;
    int result;
    
    result = (int)(512);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RESEND_BUFFER_ARRAY_LENGTH_get() {
    int jresult ;
    int result;
    
    result = (int)(512);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RESEND_BUFFER_ARRAY_MASK_get() {
    int jresult ;
    int result;
    
    result = (int)(511);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_GET_TIME_SPIKE_LIMIT_get() {
    int jresult ;
    int result;
    
    result = (int)(0);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_USE_SLIDING_WINDOW_CONGESTION_CONTROL_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_PREALLOCATE_LARGE_MESSAGES_get() {
    int jresult ;
    int result;
    
    result = (int)(0);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RAKNET_SUPPORT_IPV6_get() {
    int jresult ;
    int result;
    
    result = (int)(0);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RAKSTRING_TYPE_IS_UNICODE_get() {
    int jresult ;
    int result;
    
    result = (int)(0);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RPC4_GLOBAL_REGISTRATION_MAX_FUNCTIONS_get() {
    int jresult ;
    int result;
    
    result = (int)(48);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RPC4_GLOBAL_REGISTRATION_MAX_FUNCTION_NAME_LENGTH_get() {
    int jresult ;
    int result;
    
    result = (int)(48);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_XBOX_BYPASS_SECURITY_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_BUFFERED_PACKETS_PAGE_SIZE_get() {
    int jresult ;
    int result;
    
    result = (int)(8);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_INTERNAL_PACKET_PAGE_SIZE_get() {
    int jresult ;
    int result;
    
    result = (int)(8);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RAKPEER_USER_THREADED_get() {
    int jresult ;
    int result;
    
    result = (int)(0);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_USE_ALLOCA_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_SLNET_MAX_RETRIEVABLE_FILESIZE_get() {
    int jresult ;
    int result;
    
    result = (int)((0xFFFFFFFF));
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_LIBCAT_SECURITY_get() {
    int jresult ;
    int result;
    
    result = (int)(0);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_ConnectionGraph2_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_DirectoryDeltaTransfer_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_FileListTransfer_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_FullyConnectedMesh_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_FullyConnectedMesh2_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_MessageFilter_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_NatPunchthroughClient_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_NatPunchthroughServer_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_NatTypeDetectionClient_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_NatTypeDetectionServer_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_PacketLogger_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_ReadyEvent_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_ReplicaManager3_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_Router2_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_RPC4Plugin_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_TeamBalancer_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_TeamManager_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_UDPProxyClient_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_UDPProxyCoordinator_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_UDPProxyServer_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_ConsoleServer_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_RakNetTransport_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_TelnetTransport_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_TCPInterface_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_LogCommandParser_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_RakNetCommandParser_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_EmailSender_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_HTTPConnection_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_HTTPConnection2_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_PacketizedTCP_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_TwoWayAuthentication_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_CloudClient_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_CloudServer_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_DynDNS_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_Rackspace_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_FileOperations_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_UDPForwarder_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_StatisticsHistory_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_LibVoice_get() {
    int jresult ;
    int result;
    
    result = (int)(0);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__RAKNET_SUPPORT_RelayPlugin_get() {
    int jresult ;
    int result;
    
    result = (int)(1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_SimpleMutex() {
    void * jresult ;
    RakNet::SimpleMutex *result = 0 ;
    
    result = (RakNet::SimpleMutex *)new RakNet::SimpleMutex();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_SimpleMutex(void * jarg1) {
    RakNet::SimpleMutex *arg1 = (RakNet::SimpleMutex *) 0 ;
    
    arg1 = (RakNet::SimpleMutex *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_SimpleMutex_Lock(void * jarg1) {
    RakNet::SimpleMutex *arg1 = (RakNet::SimpleMutex *) 0 ;
    
    arg1 = (RakNet::SimpleMutex *)jarg1; 
    (arg1)->Lock();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_SimpleMutex_Unlock(void * jarg1) {
    RakNet::SimpleMutex *arg1 = (RakNet::SimpleMutex *) 0 ;
    
    arg1 = (RakNet::SimpleMutex *)jarg1; 
    (arg1)->Unlock();
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_MAX_RPC_MAP_SIZE_get() {
    int jresult ;
    int result;
    
    result = (int)(int)RakNet::MAX_RPC_MAP_SIZE;
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_UNDEFINED_RPC_INDEX_get() {
    int jresult ;
    int result;
    
    result = (int)(int)RakNet::UNDEFINED_RPC_INDEX;
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_PRINTF_64_BIT_MODIFIER_get() {
    char * jresult ;
    char *result = 0 ;
    
    result = (char *)("ll");
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PublicKey_publicKeyMode_set(void * jarg1, int jarg2) {
    RakNet::PublicKey *arg1 = (RakNet::PublicKey *) 0 ;
    RakNet::PublicKeyMode arg2 ;
    
    arg1 = (RakNet::PublicKey *)jarg1; 
    arg2 = (RakNet::PublicKeyMode)jarg2; 
    if (arg1) (arg1)->publicKeyMode = arg2;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_PublicKey_publicKeyMode_get(void * jarg1) {
    int jresult ;
    RakNet::PublicKey *arg1 = (RakNet::PublicKey *) 0 ;
    RakNet::PublicKeyMode result;
    
    arg1 = (RakNet::PublicKey *)jarg1; 
    result = (RakNet::PublicKeyMode) ((arg1)->publicKeyMode);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PublicKey_remoteServerPublicKey_set(void * jarg1, char * jarg2) {
    RakNet::PublicKey *arg1 = (RakNet::PublicKey *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::PublicKey *)jarg1; 
    arg2 = (char *)jarg2; 
    {
      delete [] arg1->remoteServerPublicKey;
      if (arg2) {
        arg1->remoteServerPublicKey = (char *) (new char[strlen((const char *)arg2)+1]);
        strcpy((char *)arg1->remoteServerPublicKey, (const char *)arg2);
      } else {
        arg1->remoteServerPublicKey = 0;
      }
    }
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_PublicKey_remoteServerPublicKey_get(void * jarg1) {
    char * jresult ;
    RakNet::PublicKey *arg1 = (RakNet::PublicKey *) 0 ;
    char *result = 0 ;
    
    arg1 = (RakNet::PublicKey *)jarg1; 
    result = (char *) ((arg1)->remoteServerPublicKey);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PublicKey_myPublicKey_set(void * jarg1, char * jarg2) {
    RakNet::PublicKey *arg1 = (RakNet::PublicKey *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::PublicKey *)jarg1; 
    arg2 = (char *)jarg2; 
    {
      delete [] arg1->myPublicKey;
      if (arg2) {
        arg1->myPublicKey = (char *) (new char[strlen((const char *)arg2)+1]);
        strcpy((char *)arg1->myPublicKey, (const char *)arg2);
      } else {
        arg1->myPublicKey = 0;
      }
    }
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_PublicKey_myPublicKey_get(void * jarg1) {
    char * jresult ;
    RakNet::PublicKey *arg1 = (RakNet::PublicKey *) 0 ;
    char *result = 0 ;
    
    arg1 = (RakNet::PublicKey *)jarg1; 
    result = (char *) ((arg1)->myPublicKey);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PublicKey_myPrivateKey_set(void * jarg1, char * jarg2) {
    RakNet::PublicKey *arg1 = (RakNet::PublicKey *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::PublicKey *)jarg1; 
    arg2 = (char *)jarg2; 
    {
      delete [] arg1->myPrivateKey;
      if (arg2) {
        arg1->myPrivateKey = (char *) (new char[strlen((const char *)arg2)+1]);
        strcpy((char *)arg1->myPrivateKey, (const char *)arg2);
      } else {
        arg1->myPrivateKey = 0;
      }
    }
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_PublicKey_myPrivateKey_get(void * jarg1) {
    char * jresult ;
    RakNet::PublicKey *arg1 = (RakNet::PublicKey *) 0 ;
    char *result = 0 ;
    
    arg1 = (RakNet::PublicKey *)jarg1; 
    result = (char *) ((arg1)->myPrivateKey);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_PublicKey() {
    void * jresult ;
    RakNet::PublicKey *result = 0 ;
    
    result = (RakNet::PublicKey *)new RakNet::PublicKey();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_PublicKey(void * jarg1) {
    RakNet::PublicKey *arg1 = (RakNet::PublicKey *) 0 ;
    
    arg1 = (RakNet::PublicKey *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_SocketDescriptor__SWIG_0() {
    void * jresult ;
    RakNet::SocketDescriptor *result = 0 ;
    
    result = (RakNet::SocketDescriptor *)new RakNet::SocketDescriptor();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_SocketDescriptor__SWIG_1(unsigned short jarg1, char * jarg2) {
    void * jresult ;
    unsigned short arg1 ;
    char *arg2 = (char *) 0 ;
    RakNet::SocketDescriptor *result = 0 ;
    
    arg1 = (unsigned short)jarg1; 
    arg2 = (char *)jarg2; 
    result = (RakNet::SocketDescriptor *)new RakNet::SocketDescriptor(arg1,(char const *)arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_SocketDescriptor_port_set(void * jarg1, unsigned short jarg2) {
    RakNet::SocketDescriptor *arg1 = (RakNet::SocketDescriptor *) 0 ;
    unsigned short arg2 ;
    
    arg1 = (RakNet::SocketDescriptor *)jarg1; 
    arg2 = (unsigned short)jarg2; 
    if (arg1) (arg1)->port = arg2;
  }
  
  
  SWIGEXPORT unsigned short SWIGSTDCALL CSharp_SocketDescriptor_port_get(void * jarg1) {
    unsigned short jresult ;
    RakNet::SocketDescriptor *arg1 = (RakNet::SocketDescriptor *) 0 ;
    unsigned short result;
    
    arg1 = (RakNet::SocketDescriptor *)jarg1; 
    result = (unsigned short) ((arg1)->port);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_SocketDescriptor_hostAddress_set(void * jarg1, char * jarg2) {
    RakNet::SocketDescriptor *arg1 = (RakNet::SocketDescriptor *) 0 ;
    char *arg2 ;
    
    arg1 = (RakNet::SocketDescriptor *)jarg1; 
    arg2 = (char *)jarg2; 
    {
      if(arg2) {
        strncpy((char*)arg1->hostAddress, (const char *)arg2, 32-1);
        arg1->hostAddress[32-1] = 0;
      } else {
        arg1->hostAddress[0] = 0;
      }
    }
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_SocketDescriptor_hostAddress_get(void * jarg1) {
    char * jresult ;
    RakNet::SocketDescriptor *arg1 = (RakNet::SocketDescriptor *) 0 ;
    char *result = 0 ;
    
    arg1 = (RakNet::SocketDescriptor *)jarg1; 
    result = (char *)(char *) ((arg1)->hostAddress);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_SocketDescriptor_socketFamily_set(void * jarg1, short jarg2) {
    RakNet::SocketDescriptor *arg1 = (RakNet::SocketDescriptor *) 0 ;
    short arg2 ;
    
    arg1 = (RakNet::SocketDescriptor *)jarg1; 
    arg2 = (short)jarg2; 
    if (arg1) (arg1)->socketFamily = arg2;
  }
  
  
  SWIGEXPORT short SWIGSTDCALL CSharp_SocketDescriptor_socketFamily_get(void * jarg1) {
    short jresult ;
    RakNet::SocketDescriptor *arg1 = (RakNet::SocketDescriptor *) 0 ;
    short result;
    
    arg1 = (RakNet::SocketDescriptor *)jarg1; 
    result = (short) ((arg1)->socketFamily);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_SocketDescriptor_remotePortRakNetWasStartedOn_PS3_PSP2_set(void * jarg1, unsigned short jarg2) {
    RakNet::SocketDescriptor *arg1 = (RakNet::SocketDescriptor *) 0 ;
    unsigned short arg2 ;
    
    arg1 = (RakNet::SocketDescriptor *)jarg1; 
    arg2 = (unsigned short)jarg2; 
    if (arg1) (arg1)->remotePortRakNetWasStartedOn_PS3_PSP2 = arg2;
  }
  
  
  SWIGEXPORT unsigned short SWIGSTDCALL CSharp_SocketDescriptor_remotePortRakNetWasStartedOn_PS3_PSP2_get(void * jarg1) {
    unsigned short jresult ;
    RakNet::SocketDescriptor *arg1 = (RakNet::SocketDescriptor *) 0 ;
    unsigned short result;
    
    arg1 = (RakNet::SocketDescriptor *)jarg1; 
    result = (unsigned short) ((arg1)->remotePortRakNetWasStartedOn_PS3_PSP2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_SocketDescriptor_chromeInstance_set(void * jarg1, int jarg2) {
    RakNet::SocketDescriptor *arg1 = (RakNet::SocketDescriptor *) 0 ;
    int arg2 ;
    
    arg1 = (RakNet::SocketDescriptor *)jarg1; 
    arg2 = (int)jarg2; 
    if (arg1) (arg1)->chromeInstance = arg2;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_SocketDescriptor_chromeInstance_get(void * jarg1) {
    int jresult ;
    RakNet::SocketDescriptor *arg1 = (RakNet::SocketDescriptor *) 0 ;
    int result;
    
    arg1 = (RakNet::SocketDescriptor *)jarg1; 
    result = (int) ((arg1)->chromeInstance);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_SocketDescriptor_blockingSocket_set(void * jarg1, unsigned int jarg2) {
    RakNet::SocketDescriptor *arg1 = (RakNet::SocketDescriptor *) 0 ;
    bool arg2 ;
    
    arg1 = (RakNet::SocketDescriptor *)jarg1; 
    arg2 = jarg2 ? true : false; 
    if (arg1) (arg1)->blockingSocket = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SocketDescriptor_blockingSocket_get(void * jarg1) {
    unsigned int jresult ;
    RakNet::SocketDescriptor *arg1 = (RakNet::SocketDescriptor *) 0 ;
    bool result;
    
    arg1 = (RakNet::SocketDescriptor *)jarg1; 
    result = (bool) ((arg1)->blockingSocket);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_SocketDescriptor_extraSocketOptions_set(void * jarg1, unsigned int jarg2) {
    RakNet::SocketDescriptor *arg1 = (RakNet::SocketDescriptor *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (RakNet::SocketDescriptor *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    if (arg1) (arg1)->extraSocketOptions = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SocketDescriptor_extraSocketOptions_get(void * jarg1) {
    unsigned int jresult ;
    RakNet::SocketDescriptor *arg1 = (RakNet::SocketDescriptor *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::SocketDescriptor *)jarg1; 
    result = (unsigned int) ((arg1)->extraSocketOptions);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_SocketDescriptor(void * jarg1) {
    RakNet::SocketDescriptor *arg1 = (RakNet::SocketDescriptor *) 0 ;
    
    arg1 = (RakNet::SocketDescriptor *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_NonNumericHostString(char * jarg1) {
    unsigned int jresult ;
    char *arg1 = (char *) 0 ;
    bool result;
    
    arg1 = (char *)jarg1; 
    result = (bool)RakNet::NonNumericHostString((char const *)arg1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_SystemAddress__SWIG_0() {
    void * jresult ;
    RakNet::SystemAddress *result = 0 ;
    
    result = (RakNet::SystemAddress *)new RakNet::SystemAddress();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_SystemAddress__SWIG_1(char * jarg1) {
    void * jresult ;
    char *arg1 = (char *) 0 ;
    RakNet::SystemAddress *result = 0 ;
    
    arg1 = (char *)jarg1; 
    result = (RakNet::SystemAddress *)new RakNet::SystemAddress((char const *)arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_SystemAddress__SWIG_2(char * jarg1, unsigned short jarg2) {
    void * jresult ;
    char *arg1 = (char *) 0 ;
    unsigned short arg2 ;
    RakNet::SystemAddress *result = 0 ;
    
    arg1 = (char *)jarg1; 
    arg2 = (unsigned short)jarg2; 
    result = (RakNet::SystemAddress *)new RakNet::SystemAddress((char const *)arg1,arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_SystemAddress_debugPort_set(void * jarg1, unsigned short jarg2) {
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    unsigned short arg2 ;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = (unsigned short)jarg2; 
    if (arg1) (arg1)->debugPort = arg2;
  }
  
  
  SWIGEXPORT unsigned short SWIGSTDCALL CSharp_SystemAddress_debugPort_get(void * jarg1) {
    unsigned short jresult ;
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    unsigned short result;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    result = (unsigned short) ((arg1)->debugPort);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_SystemAddress_size() {
    int jresult ;
    int result;
    
    result = (int)RakNet::SystemAddress::size();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned long SWIGSTDCALL CSharp_SystemAddress_ToInteger(void * jarg1) {
    unsigned long jresult ;
    RakNet::SystemAddress *arg1 = 0 ;
    unsigned long result;
    
    arg1 = (RakNet::SystemAddress *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return 0;
    } 
    result = (unsigned long)RakNet::SystemAddress::ToInteger((RakNet::SystemAddress const &)*arg1);
    jresult = (unsigned long)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned char SWIGSTDCALL CSharp_SystemAddress_GetIPVersion(void * jarg1) {
    unsigned char jresult ;
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    unsigned char result;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    result = (unsigned char)((RakNet::SystemAddress const *)arg1)->GetIPVersion();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SystemAddress_GetIPPROTO(void * jarg1) {
    unsigned int jresult ;
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    result = (unsigned int)((RakNet::SystemAddress const *)arg1)->GetIPPROTO();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_SystemAddress_SetToLoopback__SWIG_0(void * jarg1) {
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    (arg1)->SetToLoopback();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_SystemAddress_SetToLoopback__SWIG_1(void * jarg1, unsigned char jarg2) {
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    unsigned char arg2 ;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = (unsigned char)jarg2; 
    (arg1)->SetToLoopback(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SystemAddress_IsLoopback(void * jarg1) {
    unsigned int jresult ;
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    bool result;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    result = (bool)((RakNet::SystemAddress const *)arg1)->IsLoopback();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_SystemAddress_ToString__SWIG_0(void * jarg1, unsigned int jarg2, char jarg3) {
    char * jresult ;
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    bool arg2 ;
    char arg3 ;
    char *result = 0 ;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (char)jarg3; 
    result = (char *)((RakNet::SystemAddress const *)arg1)->ToString(arg2,arg3);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_SystemAddress_ToString__SWIG_1(void * jarg1, unsigned int jarg2) {
    char * jresult ;
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    bool arg2 ;
    char *result = 0 ;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = jarg2 ? true : false; 
    result = (char *)((RakNet::SystemAddress const *)arg1)->ToString(arg2);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_SystemAddress_ToString__SWIG_2(void * jarg1, unsigned int jarg2, char * jarg3, char jarg4) {
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    bool arg2 ;
    char *arg3 = (char *) 0 ;
    char arg4 ;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (char *)jarg3; 
    arg4 = (char)jarg4; 
    ((RakNet::SystemAddress const *)arg1)->ToString(arg2,arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_SystemAddress_ToString__SWIG_3(void * jarg1, unsigned int jarg2, char * jarg3, unsigned long jarg4, char jarg5) {
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    bool arg2 ;
    char *arg3 = (char *) 0 ;
    size_t arg4 ;
    char arg5 ;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (char *)jarg3; 
    arg4 = (size_t)jarg4; 
    arg5 = (char)jarg5; 
    ((RakNet::SystemAddress const *)arg1)->ToString(arg2,arg3,arg4,arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_SystemAddress_ToString__SWIG_4(void * jarg1, unsigned int jarg2, char * jarg3, unsigned long jarg4) {
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    bool arg2 ;
    char *arg3 = (char *) 0 ;
    size_t arg4 ;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (char *)jarg3; 
    arg4 = (size_t)jarg4; 
    ((RakNet::SystemAddress const *)arg1)->ToString(arg2,arg3,arg4);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SystemAddress_FromString__SWIG_0(void * jarg1, char * jarg2, char jarg3, int jarg4) {
    unsigned int jresult ;
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    char *arg2 = (char *) 0 ;
    char arg3 ;
    int arg4 ;
    bool result;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (char)jarg3; 
    arg4 = (int)jarg4; 
    result = (bool)(arg1)->FromString((char const *)arg2,arg3,arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SystemAddress_FromString__SWIG_1(void * jarg1, char * jarg2, char jarg3) {
    unsigned int jresult ;
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    char *arg2 = (char *) 0 ;
    char arg3 ;
    bool result;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (char)jarg3; 
    result = (bool)(arg1)->FromString((char const *)arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SystemAddress_FromString__SWIG_2(void * jarg1, char * jarg2) {
    unsigned int jresult ;
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    char *arg2 = (char *) 0 ;
    bool result;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = (char *)jarg2; 
    result = (bool)(arg1)->FromString((char const *)arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SystemAddress_FromStringExplicitPort__SWIG_0(void * jarg1, char * jarg2, unsigned short jarg3, int jarg4) {
    unsigned int jresult ;
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    int arg4 ;
    bool result;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (int)jarg4; 
    result = (bool)(arg1)->FromStringExplicitPort((char const *)arg2,arg3,arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SystemAddress_FromStringExplicitPort__SWIG_1(void * jarg1, char * jarg2, unsigned short jarg3) {
    unsigned int jresult ;
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    bool result;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    result = (bool)(arg1)->FromStringExplicitPort((char const *)arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_SystemAddress_CopyPort(void * jarg1, void * jarg2) {
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    RakNet::SystemAddress *arg2 = 0 ;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = (RakNet::SystemAddress *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return ;
    } 
    (arg1)->CopyPort((RakNet::SystemAddress const &)*arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SystemAddress_EqualsExcludingPort(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    RakNet::SystemAddress *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = (RakNet::SystemAddress *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return 0;
    } 
    result = (bool)((RakNet::SystemAddress const *)arg1)->EqualsExcludingPort((RakNet::SystemAddress const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned short SWIGSTDCALL CSharp_SystemAddress_GetPort(void * jarg1) {
    unsigned short jresult ;
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    unsigned short result;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    result = (unsigned short)((RakNet::SystemAddress const *)arg1)->GetPort();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned short SWIGSTDCALL CSharp_SystemAddress_GetPortNetworkOrder(void * jarg1) {
    unsigned short jresult ;
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    unsigned short result;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    result = (unsigned short)((RakNet::SystemAddress const *)arg1)->GetPortNetworkOrder();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_SystemAddress_SetPortHostOrder(void * jarg1, unsigned short jarg2) {
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    unsigned short arg2 ;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = (unsigned short)jarg2; 
    (arg1)->SetPortHostOrder(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_SystemAddress_SetPortNetworkOrder(void * jarg1, unsigned short jarg2) {
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    unsigned short arg2 ;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = (unsigned short)jarg2; 
    (arg1)->SetPortNetworkOrder(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SystemAddress_SetBinaryAddress__SWIG_0(void * jarg1, char * jarg2, char jarg3) {
    unsigned int jresult ;
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    char *arg2 = (char *) 0 ;
    char arg3 ;
    bool result;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (char)jarg3; 
    result = (bool)(arg1)->SetBinaryAddress((char const *)arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SystemAddress_SetBinaryAddress__SWIG_1(void * jarg1, char * jarg2) {
    unsigned int jresult ;
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    char *arg2 = (char *) 0 ;
    bool result;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = (char *)jarg2; 
    result = (bool)(arg1)->SetBinaryAddress((char const *)arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_SystemAddress_ToString_Old__SWIG_0(void * jarg1, unsigned int jarg2, char * jarg3, char jarg4) {
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    bool arg2 ;
    char *arg3 = (char *) 0 ;
    char arg4 ;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (char *)jarg3; 
    arg4 = (char)jarg4; 
    ((RakNet::SystemAddress const *)arg1)->ToString_Old(arg2,arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_SystemAddress_ToString_Old__SWIG_1(void * jarg1, unsigned int jarg2, char * jarg3) {
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    bool arg2 ;
    char *arg3 = (char *) 0 ;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (char *)jarg3; 
    ((RakNet::SystemAddress const *)arg1)->ToString_Old(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_SystemAddress_ToString_Old__SWIG_2(void * jarg1, unsigned int jarg2, char * jarg3, unsigned long jarg4, char jarg5) {
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    bool arg2 ;
    char *arg3 = (char *) 0 ;
    size_t arg4 ;
    char arg5 ;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (char *)jarg3; 
    arg4 = (size_t)jarg4; 
    arg5 = (char)jarg5; 
    ((RakNet::SystemAddress const *)arg1)->ToString_Old(arg2,arg3,arg4,arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_SystemAddress_ToString_Old__SWIG_3(void * jarg1, unsigned int jarg2, char * jarg3, unsigned long jarg4) {
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    bool arg2 ;
    char *arg3 = (char *) 0 ;
    size_t arg4 ;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (char *)jarg3; 
    arg4 = (size_t)jarg4; 
    ((RakNet::SystemAddress const *)arg1)->ToString_Old(arg2,arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_SystemAddress_FixForIPVersion(void * jarg1, void * jarg2) {
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    RakNet::SystemAddress *arg2 = 0 ;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = (RakNet::SystemAddress *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return ;
    } 
    (arg1)->FixForIPVersion((RakNet::SystemAddress const &)*arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SystemAddress_IsLANAddress(void * jarg1) {
    unsigned int jresult ;
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    bool result;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    result = (bool)(arg1)->IsLANAddress();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_SystemAddress_CopyData(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    RakNet::SystemAddress *arg2 = 0 ;
    RakNet::SystemAddress *result = 0 ;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = (RakNet::SystemAddress *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return 0;
    } 
    result = (RakNet::SystemAddress *) &(arg1)->operator =((RakNet::SystemAddress const &)*arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SystemAddress_Equals(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    RakNet::SystemAddress *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = (RakNet::SystemAddress *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return 0;
    } 
    result = (bool)((RakNet::SystemAddress const *)arg1)->operator ==((RakNet::SystemAddress const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SystemAddress_OpNotEqual(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    RakNet::SystemAddress *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = (RakNet::SystemAddress *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return 0;
    } 
    result = (bool)((RakNet::SystemAddress const *)arg1)->operator !=((RakNet::SystemAddress const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SystemAddress_OpGreater(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    RakNet::SystemAddress *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = (RakNet::SystemAddress *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return 0;
    } 
    result = (bool)((RakNet::SystemAddress const *)arg1)->operator >((RakNet::SystemAddress const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SystemAddress_OpLess(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    RakNet::SystemAddress *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = (RakNet::SystemAddress *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return 0;
    } 
    result = (bool)((RakNet::SystemAddress const *)arg1)->operator <((RakNet::SystemAddress const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_SystemAddress_systemIndex_set(void * jarg1, unsigned short jarg2) {
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    RakNet::SystemIndex arg2 ;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    arg2 = (RakNet::SystemIndex)jarg2; 
    if (arg1) (arg1)->systemIndex = arg2;
  }
  
  
  SWIGEXPORT unsigned short SWIGSTDCALL CSharp_SystemAddress_systemIndex_get(void * jarg1) {
    unsigned short jresult ;
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    RakNet::SystemIndex result;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    result = (RakNet::SystemIndex) ((arg1)->systemIndex);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_SystemAddress(void * jarg1) {
    RakNet::SystemAddress *arg1 = (RakNet::SystemAddress *) 0 ;
    
    arg1 = (RakNet::SystemAddress *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetGUID__SWIG_0() {
    void * jresult ;
    RakNet::RakNetGUID *result = 0 ;
    
    result = (RakNet::RakNetGUID *)new RakNet::RakNetGUID();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetGUID__SWIG_1(unsigned long long jarg1) {
    void * jresult ;
    uint64_t arg1 ;
    RakNet::RakNetGUID *result = 0 ;
    
    arg1 = (uint64_t)jarg1; 
    result = (RakNet::RakNetGUID *)new RakNet::RakNetGUID(arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetGUID_g_set(void * jarg1, unsigned long long jarg2) {
    RakNet::RakNetGUID *arg1 = (RakNet::RakNetGUID *) 0 ;
    uint64_t arg2 ;
    
    arg1 = (RakNet::RakNetGUID *)jarg1; 
    arg2 = (uint64_t)jarg2; 
    if (arg1) (arg1)->g = arg2;
  }
  
  
  SWIGEXPORT unsigned long long SWIGSTDCALL CSharp_RakNetGUID_g_get(void * jarg1) {
    unsigned long long jresult ;
    RakNet::RakNetGUID *arg1 = (RakNet::RakNetGUID *) 0 ;
    uint64_t result;
    
    arg1 = (RakNet::RakNetGUID *)jarg1; 
    result = (uint64_t) ((arg1)->g);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_RakNetGUID_ToString__SWIG_0(void * jarg1) {
    char * jresult ;
    RakNet::RakNetGUID *arg1 = (RakNet::RakNetGUID *) 0 ;
    char *result = 0 ;
    
    arg1 = (RakNet::RakNetGUID *)jarg1; 
    result = (char *)((RakNet::RakNetGUID const *)arg1)->ToString();
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetGUID_ToString__SWIG_1(void * jarg1, char * jarg2, unsigned long jarg3) {
    RakNet::RakNetGUID *arg1 = (RakNet::RakNetGUID *) 0 ;
    char *arg2 = (char *) 0 ;
    size_t arg3 ;
    
    arg1 = (RakNet::RakNetGUID *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (size_t)jarg3; 
    ((RakNet::RakNetGUID const *)arg1)->ToString(arg2,arg3);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetGUID_FromString(void * jarg1, char * jarg2) {
    unsigned int jresult ;
    RakNet::RakNetGUID *arg1 = (RakNet::RakNetGUID *) 0 ;
    char *arg2 = (char *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakNetGUID *)jarg1; 
    arg2 = (char *)jarg2; 
    result = (bool)(arg1)->FromString((char const *)arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned long SWIGSTDCALL CSharp_RakNetGUID_ToUint32(void * jarg1) {
    unsigned long jresult ;
    RakNet::RakNetGUID *arg1 = 0 ;
    unsigned long result;
    
    arg1 = (RakNet::RakNetGUID *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID const & type is null", 0);
      return 0;
    } 
    result = (unsigned long)RakNet::RakNetGUID::ToUint32((RakNet::RakNetGUID const &)*arg1);
    jresult = (unsigned long)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetGUID_CopyData(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::RakNetGUID *arg1 = (RakNet::RakNetGUID *) 0 ;
    RakNet::RakNetGUID *arg2 = 0 ;
    RakNet::RakNetGUID *result = 0 ;
    
    arg1 = (RakNet::RakNetGUID *)jarg1; 
    arg2 = (RakNet::RakNetGUID *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID const & type is null", 0);
      return 0;
    } 
    result = (RakNet::RakNetGUID *) &(arg1)->operator =((RakNet::RakNetGUID const &)*arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetGUID_systemIndex_set(void * jarg1, unsigned short jarg2) {
    RakNet::RakNetGUID *arg1 = (RakNet::RakNetGUID *) 0 ;
    RakNet::SystemIndex arg2 ;
    
    arg1 = (RakNet::RakNetGUID *)jarg1; 
    arg2 = (RakNet::SystemIndex)jarg2; 
    if (arg1) (arg1)->systemIndex = arg2;
  }
  
  
  SWIGEXPORT unsigned short SWIGSTDCALL CSharp_RakNetGUID_systemIndex_get(void * jarg1) {
    unsigned short jresult ;
    RakNet::RakNetGUID *arg1 = (RakNet::RakNetGUID *) 0 ;
    RakNet::SystemIndex result;
    
    arg1 = (RakNet::RakNetGUID *)jarg1; 
    result = (RakNet::SystemIndex) ((arg1)->systemIndex);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakNetGUID_size() {
    int jresult ;
    int result;
    
    result = (int)RakNet::RakNetGUID::size();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetGUID_Equals(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::RakNetGUID *arg1 = (RakNet::RakNetGUID *) 0 ;
    RakNet::RakNetGUID *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::RakNetGUID *)jarg1; 
    arg2 = (RakNet::RakNetGUID *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID const & type is null", 0);
      return 0;
    } 
    result = (bool)((RakNet::RakNetGUID const *)arg1)->operator ==((RakNet::RakNetGUID const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetGUID_OpNotEqual(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::RakNetGUID *arg1 = (RakNet::RakNetGUID *) 0 ;
    RakNet::RakNetGUID *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::RakNetGUID *)jarg1; 
    arg2 = (RakNet::RakNetGUID *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID const & type is null", 0);
      return 0;
    } 
    result = (bool)((RakNet::RakNetGUID const *)arg1)->operator !=((RakNet::RakNetGUID const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetGUID_OpGreater(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::RakNetGUID *arg1 = (RakNet::RakNetGUID *) 0 ;
    RakNet::RakNetGUID *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::RakNetGUID *)jarg1; 
    arg2 = (RakNet::RakNetGUID *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID const & type is null", 0);
      return 0;
    } 
    result = (bool)((RakNet::RakNetGUID const *)arg1)->operator >((RakNet::RakNetGUID const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetGUID_OpLess(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::RakNetGUID *arg1 = (RakNet::RakNetGUID *) 0 ;
    RakNet::RakNetGUID *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::RakNetGUID *)jarg1; 
    arg2 = (RakNet::RakNetGUID *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID const & type is null", 0);
      return 0;
    } 
    result = (bool)((RakNet::RakNetGUID const *)arg1)->operator <((RakNet::RakNetGUID const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_RakNetGUID(void * jarg1) {
    RakNet::RakNetGUID *arg1 = (RakNet::RakNetGUID *) 0 ;
    
    arg1 = (RakNet::RakNetGUID *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_AddressOrGUID_rakNetGuid_set(void * jarg1, void * jarg2) {
    RakNet::AddressOrGUID *arg1 = (RakNet::AddressOrGUID *) 0 ;
    RakNet::RakNetGUID *arg2 = (RakNet::RakNetGUID *) 0 ;
    
    arg1 = (RakNet::AddressOrGUID *)jarg1; 
    arg2 = (RakNet::RakNetGUID *)jarg2; 
    if (arg1) (arg1)->rakNetGuid = *arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_AddressOrGUID_rakNetGuid_get(void * jarg1) {
    void * jresult ;
    RakNet::AddressOrGUID *arg1 = (RakNet::AddressOrGUID *) 0 ;
    RakNet::RakNetGUID *result = 0 ;
    
    arg1 = (RakNet::AddressOrGUID *)jarg1; 
    result = (RakNet::RakNetGUID *)& ((arg1)->rakNetGuid);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_AddressOrGUID_systemAddress_set(void * jarg1, void * jarg2) {
    RakNet::AddressOrGUID *arg1 = (RakNet::AddressOrGUID *) 0 ;
    RakNet::SystemAddress *arg2 = (RakNet::SystemAddress *) 0 ;
    
    arg1 = (RakNet::AddressOrGUID *)jarg1; 
    arg2 = (RakNet::SystemAddress *)jarg2; 
    if (arg1) (arg1)->systemAddress = *arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_AddressOrGUID_systemAddress_get(void * jarg1) {
    void * jresult ;
    RakNet::AddressOrGUID *arg1 = (RakNet::AddressOrGUID *) 0 ;
    RakNet::SystemAddress *result = 0 ;
    
    arg1 = (RakNet::AddressOrGUID *)jarg1; 
    result = (RakNet::SystemAddress *)& ((arg1)->systemAddress);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned short SWIGSTDCALL CSharp_AddressOrGUID_GetSystemIndex(void * jarg1) {
    unsigned short jresult ;
    RakNet::AddressOrGUID *arg1 = (RakNet::AddressOrGUID *) 0 ;
    RakNet::SystemIndex result;
    
    arg1 = (RakNet::AddressOrGUID *)jarg1; 
    result = (RakNet::SystemIndex)((RakNet::AddressOrGUID const *)arg1)->GetSystemIndex();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_AddressOrGUID_IsUndefined(void * jarg1) {
    unsigned int jresult ;
    RakNet::AddressOrGUID *arg1 = (RakNet::AddressOrGUID *) 0 ;
    bool result;
    
    arg1 = (RakNet::AddressOrGUID *)jarg1; 
    result = (bool)((RakNet::AddressOrGUID const *)arg1)->IsUndefined();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_AddressOrGUID_SetUndefined(void * jarg1) {
    RakNet::AddressOrGUID *arg1 = (RakNet::AddressOrGUID *) 0 ;
    
    arg1 = (RakNet::AddressOrGUID *)jarg1; 
    (arg1)->SetUndefined();
  }
  
  
  SWIGEXPORT unsigned long SWIGSTDCALL CSharp_AddressOrGUID_ToInteger(void * jarg1) {
    unsigned long jresult ;
    RakNet::AddressOrGUID *arg1 = 0 ;
    unsigned long result;
    
    arg1 = (RakNet::AddressOrGUID *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::AddressOrGUID const & type is null", 0);
      return 0;
    } 
    result = (unsigned long)RakNet::AddressOrGUID::ToInteger((RakNet::AddressOrGUID const &)*arg1);
    jresult = (unsigned long)result; 
    return jresult;
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_AddressOrGUID_ToString__SWIG_0(void * jarg1, unsigned int jarg2) {
    char * jresult ;
    RakNet::AddressOrGUID *arg1 = (RakNet::AddressOrGUID *) 0 ;
    bool arg2 ;
    char *result = 0 ;
    
    arg1 = (RakNet::AddressOrGUID *)jarg1; 
    arg2 = jarg2 ? true : false; 
    result = (char *)((RakNet::AddressOrGUID const *)arg1)->ToString(arg2);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_AddressOrGUID_ToString__SWIG_1(void * jarg1, unsigned int jarg2, char * jarg3, unsigned long jarg4) {
    RakNet::AddressOrGUID *arg1 = (RakNet::AddressOrGUID *) 0 ;
    bool arg2 ;
    char *arg3 = (char *) 0 ;
    size_t arg4 ;
    
    arg1 = (RakNet::AddressOrGUID *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (char *)jarg3; 
    arg4 = (size_t)jarg4; 
    ((RakNet::AddressOrGUID const *)arg1)->ToString(arg2,arg3,arg4);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_AddressOrGUID__SWIG_0() {
    void * jresult ;
    RakNet::AddressOrGUID *result = 0 ;
    
    result = (RakNet::AddressOrGUID *)new RakNet::AddressOrGUID();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_AddressOrGUID__SWIG_1(void * jarg1) {
    void * jresult ;
    RakNet::AddressOrGUID *arg1 = 0 ;
    RakNet::AddressOrGUID *result = 0 ;
    
    arg1 = (RakNet::AddressOrGUID *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::AddressOrGUID const & type is null", 0);
      return 0;
    } 
    result = (RakNet::AddressOrGUID *)new RakNet::AddressOrGUID((RakNet::AddressOrGUID const &)*arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_AddressOrGUID__SWIG_2(void * jarg1) {
    void * jresult ;
    RakNet::SystemAddress *arg1 = 0 ;
    RakNet::AddressOrGUID *result = 0 ;
    
    arg1 = (RakNet::SystemAddress *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return 0;
    } 
    result = (RakNet::AddressOrGUID *)new RakNet::AddressOrGUID((RakNet::SystemAddress const &)*arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_AddressOrGUID__SWIG_3(void * jarg1) {
    void * jresult ;
    RakNet::Packet *arg1 = (RakNet::Packet *) 0 ;
    RakNet::AddressOrGUID *result = 0 ;
    
    arg1 = (RakNet::Packet *)jarg1; 
    result = (RakNet::AddressOrGUID *)new RakNet::AddressOrGUID(arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_AddressOrGUID__SWIG_4(void * jarg1) {
    void * jresult ;
    RakNet::RakNetGUID *arg1 = 0 ;
    RakNet::AddressOrGUID *result = 0 ;
    
    arg1 = (RakNet::RakNetGUID *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID const & type is null", 0);
      return 0;
    } 
    result = (RakNet::AddressOrGUID *)new RakNet::AddressOrGUID((RakNet::RakNetGUID const &)*arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_AddressOrGUID_CopyData__SWIG_0(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::AddressOrGUID *arg1 = (RakNet::AddressOrGUID *) 0 ;
    RakNet::AddressOrGUID *arg2 = 0 ;
    RakNet::AddressOrGUID *result = 0 ;
    
    arg1 = (RakNet::AddressOrGUID *)jarg1; 
    arg2 = (RakNet::AddressOrGUID *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::AddressOrGUID const & type is null", 0);
      return 0;
    } 
    result = (RakNet::AddressOrGUID *) &(arg1)->operator =((RakNet::AddressOrGUID const &)*arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_AddressOrGUID_CopyData__SWIG_1(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::AddressOrGUID *arg1 = (RakNet::AddressOrGUID *) 0 ;
    RakNet::SystemAddress *arg2 = 0 ;
    RakNet::AddressOrGUID *result = 0 ;
    
    arg1 = (RakNet::AddressOrGUID *)jarg1; 
    arg2 = (RakNet::SystemAddress *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return 0;
    } 
    result = (RakNet::AddressOrGUID *) &(arg1)->operator =((RakNet::SystemAddress const &)*arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_AddressOrGUID_CopyData__SWIG_2(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::AddressOrGUID *arg1 = (RakNet::AddressOrGUID *) 0 ;
    RakNet::RakNetGUID *arg2 = 0 ;
    RakNet::AddressOrGUID *result = 0 ;
    
    arg1 = (RakNet::AddressOrGUID *)jarg1; 
    arg2 = (RakNet::RakNetGUID *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID const & type is null", 0);
      return 0;
    } 
    result = (RakNet::AddressOrGUID *) &(arg1)->operator =((RakNet::RakNetGUID const &)*arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_AddressOrGUID_Equals(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::AddressOrGUID *arg1 = (RakNet::AddressOrGUID *) 0 ;
    RakNet::AddressOrGUID *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::AddressOrGUID *)jarg1; 
    arg2 = (RakNet::AddressOrGUID *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::AddressOrGUID const & type is null", 0);
      return 0;
    } 
    result = (bool)((RakNet::AddressOrGUID const *)arg1)->operator ==((RakNet::AddressOrGUID const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_AddressOrGUID(void * jarg1) {
    RakNet::AddressOrGUID *arg1 = (RakNet::AddressOrGUID *) 0 ;
    
    arg1 = (RakNet::AddressOrGUID *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Packet_systemAddress_set(void * jarg1, void * jarg2) {
    RakNet::Packet *arg1 = (RakNet::Packet *) 0 ;
    RakNet::SystemAddress *arg2 = (RakNet::SystemAddress *) 0 ;
    
    arg1 = (RakNet::Packet *)jarg1; 
    arg2 = (RakNet::SystemAddress *)jarg2; 
    if (arg1) (arg1)->systemAddress = *arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_Packet_systemAddress_get(void * jarg1) {
    void * jresult ;
    RakNet::Packet *arg1 = (RakNet::Packet *) 0 ;
    RakNet::SystemAddress *result = 0 ;
    
    arg1 = (RakNet::Packet *)jarg1; 
    result = (RakNet::SystemAddress *)& ((arg1)->systemAddress);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Packet_guid_set(void * jarg1, void * jarg2) {
    RakNet::Packet *arg1 = (RakNet::Packet *) 0 ;
    RakNet::RakNetGUID *arg2 = (RakNet::RakNetGUID *) 0 ;
    
    arg1 = (RakNet::Packet *)jarg1; 
    arg2 = (RakNet::RakNetGUID *)jarg2; 
    if (arg1) (arg1)->guid = *arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_Packet_guid_get(void * jarg1) {
    void * jresult ;
    RakNet::Packet *arg1 = (RakNet::Packet *) 0 ;
    RakNet::RakNetGUID *result = 0 ;
    
    arg1 = (RakNet::Packet *)jarg1; 
    result = (RakNet::RakNetGUID *)& ((arg1)->guid);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Packet_length_set(void * jarg1, unsigned int jarg2) {
    RakNet::Packet *arg1 = (RakNet::Packet *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (RakNet::Packet *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    if (arg1) (arg1)->length = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Packet_length_get(void * jarg1) {
    unsigned int jresult ;
    RakNet::Packet *arg1 = (RakNet::Packet *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::Packet *)jarg1; 
    result = (unsigned int) ((arg1)->length);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Packet_bitSize_set(void * jarg1, unsigned int jarg2) {
    RakNet::Packet *arg1 = (RakNet::Packet *) 0 ;
    RakNet::BitSize_t arg2 ;
    
    arg1 = (RakNet::Packet *)jarg1; 
    arg2 = (RakNet::BitSize_t)jarg2; 
    if (arg1) (arg1)->bitSize = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Packet_bitSize_get(void * jarg1) {
    unsigned int jresult ;
    RakNet::Packet *arg1 = (RakNet::Packet *) 0 ;
    RakNet::BitSize_t result;
    
    arg1 = (RakNet::Packet *)jarg1; 
    result = (RakNet::BitSize_t) ((arg1)->bitSize);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Packet_data_set(void * jarg1, void * jarg2) {
    RakNet::Packet *arg1 = (RakNet::Packet *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    
    arg1 = (RakNet::Packet *)jarg1; 
    arg2 = (unsigned char *)jarg2; 
    if (arg1) (arg1)->data = arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_Packet_data_get(void * jarg1) {
    void * jresult ;
    RakNet::Packet *arg1 = (RakNet::Packet *) 0 ;
    unsigned char *result = 0 ;
    
    arg1 = (RakNet::Packet *)jarg1; 
    result = (unsigned char *) ((arg1)->data);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Packet_deleteData_set(void * jarg1, unsigned int jarg2) {
    RakNet::Packet *arg1 = (RakNet::Packet *) 0 ;
    bool arg2 ;
    
    arg1 = (RakNet::Packet *)jarg1; 
    arg2 = jarg2 ? true : false; 
    if (arg1) (arg1)->deleteData = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Packet_deleteData_get(void * jarg1) {
    unsigned int jresult ;
    RakNet::Packet *arg1 = (RakNet::Packet *) 0 ;
    bool result;
    
    arg1 = (RakNet::Packet *)jarg1; 
    result = (bool) ((arg1)->deleteData);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Packet_wasGeneratedLocally_set(void * jarg1, unsigned int jarg2) {
    RakNet::Packet *arg1 = (RakNet::Packet *) 0 ;
    bool arg2 ;
    
    arg1 = (RakNet::Packet *)jarg1; 
    arg2 = jarg2 ? true : false; 
    if (arg1) (arg1)->wasGeneratedLocally = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Packet_wasGeneratedLocally_get(void * jarg1) {
    unsigned int jresult ;
    RakNet::Packet *arg1 = (RakNet::Packet *) 0 ;
    bool result;
    
    arg1 = (RakNet::Packet *)jarg1; 
    result = (bool) ((arg1)->wasGeneratedLocally);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_Packet() {
    void * jresult ;
    RakNet::Packet *result = 0 ;
    
    result = (RakNet::Packet *)new_RakNet_Packet();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Packet_SetPacketData(void * jarg1, unsigned char* jarg2, int jarg3) {
    RakNet::Packet *arg1 = (RakNet::Packet *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    int arg3 ;
    
    arg1 = (RakNet::Packet *)jarg1; 
    arg2 = jarg2;
    arg3 = (int)jarg3; 
    RakNet_Packet_SetPacketData(arg1,arg2,arg3);
    
    
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_Packet(void * jarg1) {
    RakNet::Packet *arg1 = (RakNet::Packet *) 0 ;
    
    arg1 = (RakNet::Packet *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT unsigned short SWIGSTDCALL CSharp_UNASSIGNED_PLAYER_INDEX_get() {
    unsigned short jresult ;
    RakNet::SystemIndex result;
    
    result = (RakNet::SystemIndex)(RakNet::SystemIndex)RakNet::UNASSIGNED_PLAYER_INDEX;
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned long long SWIGSTDCALL CSharp_UNASSIGNED_NETWORK_ID_get() {
    unsigned long long jresult ;
    RakNet::NetworkID result;
    
    result = (RakNet::NetworkID)(RakNet::NetworkID)RakNet::UNASSIGNED_NETWORK_ID;
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_PING_TIMES_ARRAY_SIZE_get() {
    int jresult ;
    int result;
    
    result = (int)(int)RakNet::PING_TIMES_ARRAY_SIZE;
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_uint24_t_val_set(void * jarg1, unsigned int jarg2) {
    RakNet::uint24_t *arg1 = (RakNet::uint24_t *) 0 ;
    uint32_t arg2 ;
    
    arg1 = (RakNet::uint24_t *)jarg1; 
    arg2 = (uint32_t)jarg2; 
    if (arg1) (arg1)->val = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_uint24_t_val_get(void * jarg1) {
    unsigned int jresult ;
    RakNet::uint24_t *arg1 = (RakNet::uint24_t *) 0 ;
    uint32_t result;
    
    arg1 = (RakNet::uint24_t *)jarg1; 
    result = (uint32_t) ((arg1)->val);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_uint24_t__SWIG_0() {
    void * jresult ;
    RakNet::uint24_t *result = 0 ;
    
    result = (RakNet::uint24_t *)new RakNet::uint24_t();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_uint24_t__SWIG_1(void * jarg1) {
    void * jresult ;
    RakNet::uint24_t *arg1 = 0 ;
    RakNet::uint24_t *result = 0 ;
    
    arg1 = (RakNet::uint24_t *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t const & type is null", 0);
      return 0;
    } 
    result = (RakNet::uint24_t *)new RakNet::uint24_t((RakNet::uint24_t const &)*arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_uint24_t_OpPlusPlus(void * jarg1) {
    void * jresult ;
    RakNet::uint24_t *arg1 = (RakNet::uint24_t *) 0 ;
    RakNet::uint24_t result;
    
    arg1 = (RakNet::uint24_t *)jarg1; 
    result = (arg1)->operator ++();
    jresult = new RakNet::uint24_t((const RakNet::uint24_t &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_uint24_t_OpMinusMinus(void * jarg1) {
    void * jresult ;
    RakNet::uint24_t *arg1 = (RakNet::uint24_t *) 0 ;
    RakNet::uint24_t result;
    
    arg1 = (RakNet::uint24_t *)jarg1; 
    result = (arg1)->operator --();
    jresult = new RakNet::uint24_t((const RakNet::uint24_t &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_uint24_t_CopyData__SWIG_0(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::uint24_t *arg1 = (RakNet::uint24_t *) 0 ;
    RakNet::uint24_t *arg2 = 0 ;
    RakNet::uint24_t *result = 0 ;
    
    arg1 = (RakNet::uint24_t *)jarg1; 
    arg2 = (RakNet::uint24_t *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t const & type is null", 0);
      return 0;
    } 
    result = (RakNet::uint24_t *) &(arg1)->operator =((RakNet::uint24_t const &)*arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_uint24_t_Equals__SWIG_0(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::uint24_t *arg1 = (RakNet::uint24_t *) 0 ;
    RakNet::uint24_t *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::uint24_t *)jarg1; 
    arg2 = (RakNet::uint24_t *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t const & type is null", 0);
      return 0;
    } 
    result = (bool)((RakNet::uint24_t const *)arg1)->operator ==((RakNet::uint24_t const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_uint24_t_OpNotEqual__SWIG_0(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::uint24_t *arg1 = (RakNet::uint24_t *) 0 ;
    RakNet::uint24_t *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::uint24_t *)jarg1; 
    arg2 = (RakNet::uint24_t *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t const & type is null", 0);
      return 0;
    } 
    result = (bool)((RakNet::uint24_t const *)arg1)->operator !=((RakNet::uint24_t const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_uint24_t_OpGreater__SWIG_0(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::uint24_t *arg1 = (RakNet::uint24_t *) 0 ;
    RakNet::uint24_t *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::uint24_t *)jarg1; 
    arg2 = (RakNet::uint24_t *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t const & type is null", 0);
      return 0;
    } 
    result = (bool)((RakNet::uint24_t const *)arg1)->operator >((RakNet::uint24_t const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_uint24_t_OpLess__SWIG_0(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::uint24_t *arg1 = (RakNet::uint24_t *) 0 ;
    RakNet::uint24_t *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::uint24_t *)jarg1; 
    arg2 = (RakNet::uint24_t *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t const & type is null", 0);
      return 0;
    } 
    result = (bool)((RakNet::uint24_t const *)arg1)->operator <((RakNet::uint24_t const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_uint24_t_OpPlus__SWIG_0(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::uint24_t *arg1 = (RakNet::uint24_t *) 0 ;
    RakNet::uint24_t *arg2 = 0 ;
    RakNet::uint24_t result;
    
    arg1 = (RakNet::uint24_t *)jarg1; 
    arg2 = (RakNet::uint24_t *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t const & type is null", 0);
      return 0;
    } 
    result = ((RakNet::uint24_t const *)arg1)->operator +((RakNet::uint24_t const &)*arg2);
    jresult = new RakNet::uint24_t((const RakNet::uint24_t &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_uint24_t_OpMinus__SWIG_0(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::uint24_t *arg1 = (RakNet::uint24_t *) 0 ;
    RakNet::uint24_t *arg2 = 0 ;
    RakNet::uint24_t result;
    
    arg1 = (RakNet::uint24_t *)jarg1; 
    arg2 = (RakNet::uint24_t *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t const & type is null", 0);
      return 0;
    } 
    result = ((RakNet::uint24_t const *)arg1)->operator -((RakNet::uint24_t const &)*arg2);
    jresult = new RakNet::uint24_t((const RakNet::uint24_t &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_uint24_t_OpDivide__SWIG_0(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::uint24_t *arg1 = (RakNet::uint24_t *) 0 ;
    RakNet::uint24_t *arg2 = 0 ;
    RakNet::uint24_t result;
    
    arg1 = (RakNet::uint24_t *)jarg1; 
    arg2 = (RakNet::uint24_t *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t const & type is null", 0);
      return 0;
    } 
    result = ((RakNet::uint24_t const *)arg1)->operator /((RakNet::uint24_t const &)*arg2);
    jresult = new RakNet::uint24_t((const RakNet::uint24_t &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_uint24_t_OpMultiply__SWIG_0(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::uint24_t *arg1 = (RakNet::uint24_t *) 0 ;
    RakNet::uint24_t *arg2 = 0 ;
    RakNet::uint24_t result;
    
    arg1 = (RakNet::uint24_t *)jarg1; 
    arg2 = (RakNet::uint24_t *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t const & type is null", 0);
      return 0;
    } 
    result = ((RakNet::uint24_t const *)arg1)->operator *((RakNet::uint24_t const &)*arg2);
    jresult = new RakNet::uint24_t((const RakNet::uint24_t &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_uint24_t__SWIG_2(unsigned int jarg1) {
    void * jresult ;
    uint32_t *arg1 = 0 ;
    uint32_t temp1 ;
    RakNet::uint24_t *result = 0 ;
    
    temp1 = (uint32_t)jarg1; 
    arg1 = &temp1; 
    result = (RakNet::uint24_t *)new RakNet::uint24_t((uint32_t const &)*arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_uint24_t_CopyData__SWIG_1(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    RakNet::uint24_t *arg1 = (RakNet::uint24_t *) 0 ;
    uint32_t *arg2 = 0 ;
    uint32_t temp2 ;
    RakNet::uint24_t *result = 0 ;
    
    arg1 = (RakNet::uint24_t *)jarg1; 
    temp2 = (uint32_t)jarg2; 
    arg2 = &temp2; 
    result = (RakNet::uint24_t *) &(arg1)->operator =((uint32_t const &)*arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_uint24_t_Equals__SWIG_1(void * jarg1, unsigned int jarg2) {
    unsigned int jresult ;
    RakNet::uint24_t *arg1 = (RakNet::uint24_t *) 0 ;
    uint32_t *arg2 = 0 ;
    uint32_t temp2 ;
    bool result;
    
    arg1 = (RakNet::uint24_t *)jarg1; 
    temp2 = (uint32_t)jarg2; 
    arg2 = &temp2; 
    result = (bool)((RakNet::uint24_t const *)arg1)->operator ==((uint32_t const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_uint24_t_OpNotEqual__SWIG_1(void * jarg1, unsigned int jarg2) {
    unsigned int jresult ;
    RakNet::uint24_t *arg1 = (RakNet::uint24_t *) 0 ;
    uint32_t *arg2 = 0 ;
    uint32_t temp2 ;
    bool result;
    
    arg1 = (RakNet::uint24_t *)jarg1; 
    temp2 = (uint32_t)jarg2; 
    arg2 = &temp2; 
    result = (bool)((RakNet::uint24_t const *)arg1)->operator !=((uint32_t const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_uint24_t_OpGreater__SWIG_1(void * jarg1, unsigned int jarg2) {
    unsigned int jresult ;
    RakNet::uint24_t *arg1 = (RakNet::uint24_t *) 0 ;
    uint32_t *arg2 = 0 ;
    uint32_t temp2 ;
    bool result;
    
    arg1 = (RakNet::uint24_t *)jarg1; 
    temp2 = (uint32_t)jarg2; 
    arg2 = &temp2; 
    result = (bool)((RakNet::uint24_t const *)arg1)->operator >((uint32_t const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_uint24_t_OpLess__SWIG_1(void * jarg1, unsigned int jarg2) {
    unsigned int jresult ;
    RakNet::uint24_t *arg1 = (RakNet::uint24_t *) 0 ;
    uint32_t *arg2 = 0 ;
    uint32_t temp2 ;
    bool result;
    
    arg1 = (RakNet::uint24_t *)jarg1; 
    temp2 = (uint32_t)jarg2; 
    arg2 = &temp2; 
    result = (bool)((RakNet::uint24_t const *)arg1)->operator <((uint32_t const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_uint24_t_OpPlus__SWIG_1(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    RakNet::uint24_t *arg1 = (RakNet::uint24_t *) 0 ;
    uint32_t *arg2 = 0 ;
    uint32_t temp2 ;
    RakNet::uint24_t result;
    
    arg1 = (RakNet::uint24_t *)jarg1; 
    temp2 = (uint32_t)jarg2; 
    arg2 = &temp2; 
    result = ((RakNet::uint24_t const *)arg1)->operator +((uint32_t const &)*arg2);
    jresult = new RakNet::uint24_t((const RakNet::uint24_t &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_uint24_t_OpMinus__SWIG_1(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    RakNet::uint24_t *arg1 = (RakNet::uint24_t *) 0 ;
    uint32_t *arg2 = 0 ;
    uint32_t temp2 ;
    RakNet::uint24_t result;
    
    arg1 = (RakNet::uint24_t *)jarg1; 
    temp2 = (uint32_t)jarg2; 
    arg2 = &temp2; 
    result = ((RakNet::uint24_t const *)arg1)->operator -((uint32_t const &)*arg2);
    jresult = new RakNet::uint24_t((const RakNet::uint24_t &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_uint24_t_OpDivide__SWIG_1(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    RakNet::uint24_t *arg1 = (RakNet::uint24_t *) 0 ;
    uint32_t *arg2 = 0 ;
    uint32_t temp2 ;
    RakNet::uint24_t result;
    
    arg1 = (RakNet::uint24_t *)jarg1; 
    temp2 = (uint32_t)jarg2; 
    arg2 = &temp2; 
    result = ((RakNet::uint24_t const *)arg1)->operator /((uint32_t const &)*arg2);
    jresult = new RakNet::uint24_t((const RakNet::uint24_t &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_uint24_t_OpMultiply__SWIG_1(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    RakNet::uint24_t *arg1 = (RakNet::uint24_t *) 0 ;
    uint32_t *arg2 = 0 ;
    uint32_t temp2 ;
    RakNet::uint24_t result;
    
    arg1 = (RakNet::uint24_t *)jarg1; 
    temp2 = (uint32_t)jarg2; 
    arg2 = &temp2; 
    result = ((RakNet::uint24_t const *)arg1)->operator *((uint32_t const &)*arg2);
    jresult = new RakNet::uint24_t((const RakNet::uint24_t &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_uint24_t(void * jarg1) {
    RakNet::uint24_t *arg1 = (RakNet::uint24_t *) 0 ;
    
    arg1 = (RakNet::uint24_t *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakString__SWIG_0() {
    void * jresult ;
    RakNet::RakString *result = 0 ;
    
    result = (RakNet::RakString *)new RakNet::RakString();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakString__SWIG_1(char jarg1) {
    void * jresult ;
    char arg1 ;
    RakNet::RakString *result = 0 ;
    
    arg1 = (char)jarg1; 
    result = (RakNet::RakString *)new RakNet::RakString(arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakString__SWIG_2(unsigned char jarg1) {
    void * jresult ;
    unsigned char arg1 ;
    RakNet::RakString *result = 0 ;
    
    arg1 = (unsigned char)jarg1; 
    result = (RakNet::RakString *)new RakNet::RakString(arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakString__SWIG_3(char * jarg1) {
    void * jresult ;
    char *arg1 = (char *) 0 ;
    void *arg2 = 0 ;
    RakNet::RakString *result = 0 ;
    
    arg1 = (char *)jarg1; 
    result = (RakNet::RakString *)new RakNet::RakString((char const *)arg1,arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_RakString(void * jarg1) {
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakString__SWIG_4(void * jarg1) {
    void * jresult ;
    RakNet::RakString *arg1 = 0 ;
    RakNet::RakString *result = 0 ;
    
    arg1 = (RakNet::RakString *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return 0;
    } 
    result = (RakNet::RakString *)new RakNet::RakString((RakNet::RakString const &)*arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_RakString_C_String(void * jarg1) {
    char * jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    char *result = 0 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    result = (char *)((RakNet::RakString const *)arg1)->C_String();
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_RakString_C_StringUnsafe(void * jarg1) {
    char * jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    char *result = 0 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    result = (char *)(arg1)->C_StringUnsafe();
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakString_CopyData__SWIG_0(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    RakNet::RakString *result = 0 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return 0;
    } 
    result = (RakNet::RakString *) &(arg1)->operator =((RakNet::RakString const &)*arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakString_CopyData__SWIG_1(void * jarg1, char * jarg2) {
    void * jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    char *arg2 = (char *) 0 ;
    RakNet::RakString *result = 0 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (char *)jarg2; 
    result = (RakNet::RakString *) &(arg1)->operator =((char const *)arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakString_CopyData__SWIG_2(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    RakNet::RakString *result = 0 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (unsigned char *)jarg2; 
    result = (RakNet::RakString *) &(arg1)->operator =((unsigned char const *)arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakString_CopyData__SWIG_4(void * jarg1, char jarg2) {
    void * jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    char arg2 ;
    RakNet::RakString *result = 0 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (char)jarg2; 
    result = (RakNet::RakString *) &(arg1)->operator =(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned char SWIGSTDCALL CSharp_RakString_OpArray(void * jarg1, unsigned int jarg2) {
    unsigned char jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    unsigned int arg2 ;
    unsigned char result;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (unsigned char)((RakNet::RakString const *)arg1)->operator [](arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned long SWIGSTDCALL CSharp_RakString_Find__SWIG_0(void * jarg1, char * jarg2, unsigned long jarg3) {
    unsigned long jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    char *arg2 = (char *) 0 ;
    size_t arg3 ;
    size_t result;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (size_t)jarg3; 
    result = (arg1)->Find((char const *)arg2,arg3);
    jresult = (unsigned long)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned long SWIGSTDCALL CSharp_RakString_Find__SWIG_1(void * jarg1, char * jarg2) {
    unsigned long jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    char *arg2 = (char *) 0 ;
    size_t result;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (char *)jarg2; 
    result = (arg1)->Find((char const *)arg2);
    jresult = (unsigned long)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakString_Equals__SWIG_0(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return 0;
    } 
    result = (bool)((RakNet::RakString const *)arg1)->operator ==((RakNet::RakString const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakString_Equals__SWIG_1(void * jarg1, char * jarg2) {
    unsigned int jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    char *arg2 = (char *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (char *)jarg2; 
    result = (bool)((RakNet::RakString const *)arg1)->operator ==((char const *)arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakString_OpLess(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return 0;
    } 
    result = (bool)((RakNet::RakString const *)arg1)->operator <((RakNet::RakString const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakString_OpLessEquals(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return 0;
    } 
    result = (bool)((RakNet::RakString const *)arg1)->operator <=((RakNet::RakString const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakString_OpGreater(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return 0;
    } 
    result = (bool)((RakNet::RakString const *)arg1)->operator >((RakNet::RakString const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakString_OpGreaterEquals(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return 0;
    } 
    result = (bool)((RakNet::RakString const *)arg1)->operator >=((RakNet::RakString const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakString_OpNotEqual__SWIG_0(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return 0;
    } 
    result = (bool)((RakNet::RakString const *)arg1)->operator !=((RakNet::RakString const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakString_OpNotEqual__SWIG_1(void * jarg1, char * jarg2) {
    unsigned int jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    char *arg2 = (char *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (char *)jarg2; 
    result = (bool)((RakNet::RakString const *)arg1)->operator !=((char const *)arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_RakString_ToLower(void * jarg1) {
    char * jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    char *result = 0 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    result = (char *)(arg1)->ToLower();
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_RakString_ToUpper(void * jarg1) {
    char * jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    char *result = 0 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    result = (char *)(arg1)->ToUpper();
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_Set(void * jarg1, char * jarg2) {
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    char *arg2 = (char *) 0 ;
    void *arg3 = 0 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->Set((char const *)arg2,arg3);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakString_Assign(void * jarg1, char * jarg2, unsigned long jarg3, unsigned long jarg4) {
    void * jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    char *arg2 = (char *) 0 ;
    size_t arg3 ;
    size_t arg4 ;
    RakNet::RakString result;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (size_t)jarg3; 
    arg4 = (size_t)jarg4; 
    result = (arg1)->Assign((char const *)arg2,arg3,arg4);
    jresult = new RakNet::RakString((const RakNet::RakString &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakString_IsEmpty(void * jarg1) {
    unsigned int jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakString *)jarg1; 
    result = (bool)((RakNet::RakString const *)arg1)->IsEmpty();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned long SWIGSTDCALL CSharp_RakString_GetLength(void * jarg1) {
    unsigned long jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    size_t result;
    
    arg1 = (RakNet::RakString *)jarg1; 
    result = ((RakNet::RakString const *)arg1)->GetLength();
    jresult = (unsigned long)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned long SWIGSTDCALL CSharp_RakString_GetLengthUTF8(void * jarg1) {
    unsigned long jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    size_t result;
    
    arg1 = (RakNet::RakString *)jarg1; 
    result = ((RakNet::RakString const *)arg1)->GetLengthUTF8();
    jresult = (unsigned long)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_Replace(void * jarg1, unsigned int jarg2, unsigned int jarg3, unsigned char jarg4) {
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    unsigned int arg2 ;
    unsigned int arg3 ;
    unsigned char arg4 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (unsigned int)jarg3; 
    arg4 = (unsigned char)jarg4; 
    (arg1)->Replace(arg2,arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_SetChar__SWIG_0(void * jarg1, unsigned int jarg2, unsigned char jarg3) {
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    unsigned int arg2 ;
    unsigned char arg3 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (unsigned char)jarg3; 
    (arg1)->SetChar(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_SetChar__SWIG_1(void * jarg1, unsigned int jarg2, void * jarg3) {
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    unsigned int arg2 ;
    RakNet::RakString arg3 ;
    RakNet::RakString *argp3 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    argp3 = (RakNet::RakString *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakString", 0);
      return ;
    }
    arg3 = *argp3; 
    (arg1)->SetChar(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_Truncate(void * jarg1, unsigned int jarg2) {
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->Truncate(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_TruncateUTF8(void * jarg1, unsigned int jarg2) {
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->TruncateUTF8(arg2);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakString_SubStr(void * jarg1, unsigned int jarg2, unsigned long jarg3) {
    void * jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    unsigned int arg2 ;
    size_t arg3 ;
    RakNet::RakString result;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (size_t)jarg3; 
    result = ((RakNet::RakString const *)arg1)->SubStr(arg2,arg3);
    jresult = new RakNet::RakString((const RakNet::RakString &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_Erase(void * jarg1, unsigned int jarg2, unsigned int jarg3) {
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    unsigned int arg2 ;
    unsigned int arg3 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (unsigned int)jarg3; 
    (arg1)->Erase(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_TerminateAtFirstCharacter(void * jarg1, char jarg2) {
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    char arg2 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (char)jarg2; 
    (arg1)->TerminateAtFirstCharacter(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_TerminateAtLastCharacter(void * jarg1, char jarg2) {
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    char arg2 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (char)jarg2; 
    (arg1)->TerminateAtLastCharacter(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_StartAfterFirstCharacter(void * jarg1, char jarg2) {
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    char arg2 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (char)jarg2; 
    (arg1)->StartAfterFirstCharacter(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_StartAfterLastCharacter(void * jarg1, char jarg2) {
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    char arg2 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (char)jarg2; 
    (arg1)->StartAfterLastCharacter(arg2);
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakString_GetCharacterCount(void * jarg1, char jarg2) {
    int jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    char arg2 ;
    int result;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (char)jarg2; 
    result = (int)(arg1)->GetCharacterCount(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_RemoveCharacter(void * jarg1, char jarg2) {
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    char arg2 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (char)jarg2; 
    (arg1)->RemoveCharacter(arg2);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakString_NonVariadic(char * jarg1) {
    void * jresult ;
    char *arg1 = (char *) 0 ;
    RakNet::RakString result;
    
    arg1 = (char *)jarg1; 
    result = RakNet::RakString::NonVariadic((char const *)arg1);
    jresult = new RakNet::RakString((const RakNet::RakString &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned long SWIGSTDCALL CSharp_RakString_ToInteger__SWIG_0(char * jarg1) {
    unsigned long jresult ;
    char *arg1 = (char *) 0 ;
    unsigned long result;
    
    arg1 = (char *)jarg1; 
    result = (unsigned long)RakNet::RakString::ToInteger((char const *)arg1);
    jresult = (unsigned long)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned long SWIGSTDCALL CSharp_RakString_ToInteger__SWIG_1(void * jarg1) {
    unsigned long jresult ;
    RakNet::RakString *arg1 = 0 ;
    unsigned long result;
    
    arg1 = (RakNet::RakString *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return 0;
    } 
    result = (unsigned long)RakNet::RakString::ToInteger((RakNet::RakString const &)*arg1);
    jresult = (unsigned long)result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakString_ReadIntFromSubstring(char * jarg1, unsigned long jarg2, unsigned long jarg3) {
    int jresult ;
    char *arg1 = (char *) 0 ;
    size_t arg2 ;
    size_t arg3 ;
    int result;
    
    arg1 = (char *)jarg1; 
    arg2 = (size_t)jarg2; 
    arg3 = (size_t)jarg3; 
    result = (int)RakNet::RakString::ReadIntFromSubstring((char const *)arg1,arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_AppendBytes__SWIG_0(void * jarg1, char * jarg2, unsigned long jarg3) {
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    char *arg2 = (char *) 0 ;
    size_t arg3 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (size_t)jarg3; 
    (arg1)->AppendBytes((char const *)arg2,arg3);
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakString_StrCmp(void * jarg1, void * jarg2) {
    int jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    int result;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return 0;
    } 
    result = (int)((RakNet::RakString const *)arg1)->StrCmp((RakNet::RakString const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakString_StrNCmp(void * jarg1, void * jarg2, unsigned long jarg3) {
    int jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    size_t arg3 ;
    int result;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return 0;
    } 
    arg3 = (size_t)jarg3; 
    result = (int)((RakNet::RakString const *)arg1)->StrNCmp((RakNet::RakString const &)*arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakString_StrICmp(void * jarg1, void * jarg2) {
    int jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    int result;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return 0;
    } 
    result = (int)((RakNet::RakString const *)arg1)->StrICmp((RakNet::RakString const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_Clear(void * jarg1) {
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    (arg1)->Clear();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_Printf(void * jarg1) {
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    (arg1)->Printf();
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakString_IPAddressMatch(void * jarg1, char * jarg2) {
    unsigned int jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    char *arg2 = (char *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (char *)jarg2; 
    result = (bool)(arg1)->IPAddressMatch((char const *)arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakString_ContainsNonprintableExceptSpaces(void * jarg1) {
    unsigned int jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakString *)jarg1; 
    result = (bool)((RakNet::RakString const *)arg1)->ContainsNonprintableExceptSpaces();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakString_IsEmailAddress(void * jarg1) {
    unsigned int jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakString *)jarg1; 
    result = (bool)((RakNet::RakString const *)arg1)->IsEmailAddress();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakString_URLEncode(void * jarg1) {
    void * jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    RakNet::RakString *result = 0 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    result = (RakNet::RakString *) &(arg1)->URLEncode();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakString_URLDecode(void * jarg1) {
    void * jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    RakNet::RakString *result = 0 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    result = (RakNet::RakString *) &(arg1)->URLDecode();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_SplitURI(void * jarg1, void * jarg2, void * jarg3, void * jarg4) {
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    RakNet::RakString *arg3 = 0 ;
    RakNet::RakString *arg4 = 0 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString & type is null", 0);
      return ;
    } 
    arg3 = (RakNet::RakString *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString & type is null", 0);
      return ;
    } 
    arg4 = (RakNet::RakString *)jarg4;
    if (!arg4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString & type is null", 0);
      return ;
    } 
    (arg1)->SplitURI(*arg2,*arg3,*arg4);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakString_SQLEscape(void * jarg1) {
    void * jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    RakNet::RakString *result = 0 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    result = (RakNet::RakString *) &(arg1)->SQLEscape();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakString_FormatForPOST__SWIG_0(char * jarg1, char * jarg2, char * jarg3, char * jarg4) {
    void * jresult ;
    char *arg1 = (char *) 0 ;
    char *arg2 = (char *) 0 ;
    char *arg3 = (char *) 0 ;
    char *arg4 = (char *) 0 ;
    RakNet::RakString result;
    
    arg1 = (char *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = (char *)jarg4; 
    result = RakNet::RakString::FormatForPOST((char const *)arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4);
    jresult = new RakNet::RakString((const RakNet::RakString &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakString_FormatForPOST__SWIG_1(char * jarg1, char * jarg2, char * jarg3) {
    void * jresult ;
    char *arg1 = (char *) 0 ;
    char *arg2 = (char *) 0 ;
    char *arg3 = (char *) 0 ;
    RakNet::RakString result;
    
    arg1 = (char *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (char *)jarg3; 
    result = RakNet::RakString::FormatForPOST((char const *)arg1,(char const *)arg2,(char const *)arg3);
    jresult = new RakNet::RakString((const RakNet::RakString &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakString_FormatForPUT__SWIG_0(char * jarg1, char * jarg2, char * jarg3, char * jarg4) {
    void * jresult ;
    char *arg1 = (char *) 0 ;
    char *arg2 = (char *) 0 ;
    char *arg3 = (char *) 0 ;
    char *arg4 = (char *) 0 ;
    RakNet::RakString result;
    
    arg1 = (char *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = (char *)jarg4; 
    result = RakNet::RakString::FormatForPUT((char const *)arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4);
    jresult = new RakNet::RakString((const RakNet::RakString &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakString_FormatForPUT__SWIG_1(char * jarg1, char * jarg2, char * jarg3) {
    void * jresult ;
    char *arg1 = (char *) 0 ;
    char *arg2 = (char *) 0 ;
    char *arg3 = (char *) 0 ;
    RakNet::RakString result;
    
    arg1 = (char *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (char *)jarg3; 
    result = RakNet::RakString::FormatForPUT((char const *)arg1,(char const *)arg2,(char const *)arg3);
    jresult = new RakNet::RakString((const RakNet::RakString &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakString_FormatForGET__SWIG_0(char * jarg1, char * jarg2) {
    void * jresult ;
    char *arg1 = (char *) 0 ;
    char *arg2 = (char *) 0 ;
    RakNet::RakString result;
    
    arg1 = (char *)jarg1; 
    arg2 = (char *)jarg2; 
    result = RakNet::RakString::FormatForGET((char const *)arg1,(char const *)arg2);
    jresult = new RakNet::RakString((const RakNet::RakString &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakString_FormatForGET__SWIG_1(char * jarg1) {
    void * jresult ;
    char *arg1 = (char *) 0 ;
    RakNet::RakString result;
    
    arg1 = (char *)jarg1; 
    result = RakNet::RakString::FormatForGET((char const *)arg1);
    jresult = new RakNet::RakString((const RakNet::RakString &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakString_FormatForDELETE__SWIG_0(char * jarg1, char * jarg2) {
    void * jresult ;
    char *arg1 = (char *) 0 ;
    char *arg2 = (char *) 0 ;
    RakNet::RakString result;
    
    arg1 = (char *)jarg1; 
    arg2 = (char *)jarg2; 
    result = RakNet::RakString::FormatForDELETE((char const *)arg1,(char const *)arg2);
    jresult = new RakNet::RakString((const RakNet::RakString &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakString_FormatForDELETE__SWIG_1(char * jarg1) {
    void * jresult ;
    char *arg1 = (char *) 0 ;
    RakNet::RakString result;
    
    arg1 = (char *)jarg1; 
    result = RakNet::RakString::FormatForDELETE((char const *)arg1);
    jresult = new RakNet::RakString((const RakNet::RakString &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakString_MakeFilePath(void * jarg1) {
    void * jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    RakNet::RakString *result = 0 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    result = (RakNet::RakString *) &(arg1)->MakeFilePath();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_FreeMemory() {
    RakNet::RakString::FreeMemory();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_FreeMemoryNoMutex() {
    RakNet::RakString::FreeMemoryNoMutex();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_Serialize__SWIG_0(void * jarg1, void * jarg2) {
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    ((RakNet::RakString const *)arg1)->Serialize(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_Serialize__SWIG_1(char * jarg1, void * jarg2) {
    char *arg1 = (char *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    
    arg1 = (char *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    RakNet::RakString::Serialize((char const *)arg1,arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_SerializeCompressed__SWIG_0(void * jarg1, void * jarg2, unsigned char jarg3, unsigned int jarg4) {
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    uint8_t arg3 ;
    bool arg4 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    arg3 = (uint8_t)jarg3; 
    arg4 = jarg4 ? true : false; 
    ((RakNet::RakString const *)arg1)->SerializeCompressed(arg2,arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_SerializeCompressed__SWIG_1(void * jarg1, void * jarg2, unsigned char jarg3) {
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    uint8_t arg3 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    arg3 = (uint8_t)jarg3; 
    ((RakNet::RakString const *)arg1)->SerializeCompressed(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_SerializeCompressed__SWIG_2(void * jarg1, void * jarg2) {
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    ((RakNet::RakString const *)arg1)->SerializeCompressed(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_SerializeCompressed__SWIG_3(char * jarg1, void * jarg2, unsigned char jarg3, unsigned int jarg4) {
    char *arg1 = (char *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    uint8_t arg3 ;
    bool arg4 ;
    
    arg1 = (char *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    arg3 = (uint8_t)jarg3; 
    arg4 = jarg4 ? true : false; 
    RakNet::RakString::SerializeCompressed((char const *)arg1,arg2,arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_SerializeCompressed__SWIG_4(char * jarg1, void * jarg2, unsigned char jarg3) {
    char *arg1 = (char *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    uint8_t arg3 ;
    
    arg1 = (char *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    arg3 = (uint8_t)jarg3; 
    RakNet::RakString::SerializeCompressed((char const *)arg1,arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_SerializeCompressed__SWIG_5(char * jarg1, void * jarg2) {
    char *arg1 = (char *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    
    arg1 = (char *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    RakNet::RakString::SerializeCompressed((char const *)arg1,arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakString_Deserialize__SWIG_0(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    result = (bool)(arg1)->Deserialize(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakString_Deserialize__SWIG_1(char * jarg1, void * jarg2) {
    unsigned int jresult ;
    char *arg1 = (char *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    bool result;
    
    arg1 = (char *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    result = (bool)RakNet::RakString::Deserialize(arg1,arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakString_DeserializeCompressed__SWIG_0(void * jarg1, void * jarg2, unsigned int jarg3) {
    unsigned int jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    bool arg3 ;
    bool result;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    arg3 = jarg3 ? true : false; 
    result = (bool)(arg1)->DeserializeCompressed(arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakString_DeserializeCompressed__SWIG_1(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    result = (bool)(arg1)->DeserializeCompressed(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakString_DeserializeCompressed__SWIG_2(char * jarg1, void * jarg2, unsigned int jarg3) {
    unsigned int jresult ;
    char *arg1 = (char *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    bool arg3 ;
    bool result;
    
    arg1 = (char *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    arg3 = jarg3 ? true : false; 
    result = (bool)RakNet::RakString::DeserializeCompressed(arg1,arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakString_DeserializeCompressed__SWIG_3(char * jarg1, void * jarg2) {
    unsigned int jresult ;
    char *arg1 = (char *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    bool result;
    
    arg1 = (char *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    result = (bool)RakNet::RakString::DeserializeCompressed(arg1,arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_RakString_ToString__SWIG_0(long long jarg1) {
    char * jresult ;
    int64_t arg1 ;
    char *result = 0 ;
    
    arg1 = (int64_t)jarg1; 
    result = (char *)RakNet::RakString::ToString(arg1);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_RakString_ToString__SWIG_1(unsigned long long jarg1) {
    char * jresult ;
    uint64_t arg1 ;
    char *result = 0 ;
    
    arg1 = (uint64_t)jarg1; 
    result = (char *)RakNet::RakString::ToString(arg1);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned long SWIGSTDCALL CSharp_RakString_GetSizeToAllocate(unsigned long jarg1) {
    unsigned long jresult ;
    size_t arg1 ;
    size_t result;
    
    arg1 = (size_t)jarg1; 
    result = RakNet::RakString::GetSizeToAllocate(arg1);
    jresult = (unsigned long)result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakString_RakStringComp(void * jarg1, void * jarg2) {
    int jresult ;
    RakNet::RakString *arg1 = 0 ;
    RakNet::RakString *arg2 = 0 ;
    int result;
    
    arg1 = (RakNet::RakString *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return 0;
    } 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return 0;
    } 
    result = (int)RakNet::RakString::RakStringComp((RakNet::RakString const &)*arg1,(RakNet::RakString const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_LockMutex() {
    RakNet::RakString::LockMutex();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_UnlockMutex() {
    RakNet::RakString::UnlockMutex();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakString_AppendBytes__SWIG_1(void * jarg1, unsigned char* jarg2, unsigned int jarg3) {
    RakNet::RakString *arg1 = (RakNet::RakString *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    unsigned int arg3 ;
    
    arg1 = (RakNet::RakString *)jarg1; 
    arg2 = jarg2;
    arg3 = (unsigned int)jarg3; 
    RakNet_RakString_AppendBytes__SWIG_1(arg1,arg2,arg3);
    
    
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_OpPlus__SWIG_0(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::RakString *arg1 = 0 ;
    RakNet::RakString *arg2 = 0 ;
    RakNet::RakString result;
    
    arg1 = (RakNet::RakString *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return 0;
    } 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return 0;
    } 
    result = operator +((RakNet::RakString const &)*arg1,(RakNet::RakString const &)*arg2);
    jresult = new RakNet::RakString((const RakNet::RakString &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakWString__SWIG_0() {
    void * jresult ;
    RakNet::RakWString *result = 0 ;
    
    result = (RakNet::RakWString *)new RakNet::RakWString();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakWString__SWIG_1(void * jarg1) {
    void * jresult ;
    RakNet::RakString *arg1 = 0 ;
    RakNet::RakWString *result = 0 ;
    
    arg1 = (RakNet::RakString *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return 0;
    } 
    result = (RakNet::RakWString *)new RakNet::RakWString((RakNet::RakString const &)*arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakWString__SWIG_2(void * jarg1) {
    void * jresult ;
    wchar_t *arg1 = (wchar_t *) 0 ;
    RakNet::RakWString *result = 0 ;
    
    arg1 = (wchar_t *)jarg1; 
    result = (RakNet::RakWString *)new RakNet::RakWString((wchar_t const *)arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakWString__SWIG_3(void * jarg1) {
    void * jresult ;
    RakNet::RakWString *arg1 = 0 ;
    RakNet::RakWString *result = 0 ;
    
    arg1 = (RakNet::RakWString *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakWString const & type is null", 0);
      return 0;
    } 
    result = (RakNet::RakWString *)new RakNet::RakWString((RakNet::RakWString const &)*arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakWString__SWIG_4(char * jarg1) {
    void * jresult ;
    char *arg1 = (char *) 0 ;
    RakNet::RakWString *result = 0 ;
    
    arg1 = (char *)jarg1; 
    result = (RakNet::RakWString *)new RakNet::RakWString((char const *)arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_RakWString(void * jarg1) {
    RakNet::RakWString *arg1 = (RakNet::RakWString *) 0 ;
    
    arg1 = (RakNet::RakWString *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakWString_C_String(void * jarg1) {
    void * jresult ;
    RakNet::RakWString *arg1 = (RakNet::RakWString *) 0 ;
    wchar_t *result = 0 ;
    
    arg1 = (RakNet::RakWString *)jarg1; 
    result = (wchar_t *)((RakNet::RakWString const *)arg1)->C_String();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakWString_CopyData__SWIG_0(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::RakWString *arg1 = (RakNet::RakWString *) 0 ;
    RakNet::RakWString *arg2 = 0 ;
    RakNet::RakWString *result = 0 ;
    
    arg1 = (RakNet::RakWString *)jarg1; 
    arg2 = (RakNet::RakWString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakWString const & type is null", 0);
      return 0;
    } 
    result = (RakNet::RakWString *) &(arg1)->operator =((RakNet::RakWString const &)*arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakWString_CopyData__SWIG_1(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::RakWString *arg1 = (RakNet::RakWString *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    RakNet::RakWString *result = 0 ;
    
    arg1 = (RakNet::RakWString *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return 0;
    } 
    result = (RakNet::RakWString *) &(arg1)->operator =((RakNet::RakString const &)*arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakWString_CopyData__SWIG_2(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::RakWString *arg1 = (RakNet::RakWString *) 0 ;
    wchar_t *arg2 = (wchar_t *) (wchar_t *)0 ;
    RakNet::RakWString *result = 0 ;
    
    arg1 = (RakNet::RakWString *)jarg1; 
    arg2 = (wchar_t *)jarg2; 
    result = (RakNet::RakWString *) &(arg1)->operator =((wchar_t const *)arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakWString_CopyData__SWIG_4(void * jarg1, char * jarg2) {
    void * jresult ;
    RakNet::RakWString *arg1 = (RakNet::RakWString *) 0 ;
    char *arg2 = (char *) (char *)0 ;
    RakNet::RakWString *result = 0 ;
    
    arg1 = (RakNet::RakWString *)jarg1; 
    arg2 = (char *)jarg2; 
    result = (RakNet::RakWString *) &(arg1)->operator =((char const *)arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakWString_Equals(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::RakWString *arg1 = (RakNet::RakWString *) 0 ;
    RakNet::RakWString *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::RakWString *)jarg1; 
    arg2 = (RakNet::RakWString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakWString const & type is null", 0);
      return 0;
    } 
    result = (bool)((RakNet::RakWString const *)arg1)->operator ==((RakNet::RakWString const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakWString_OpLess(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::RakWString *arg1 = (RakNet::RakWString *) 0 ;
    RakNet::RakWString *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::RakWString *)jarg1; 
    arg2 = (RakNet::RakWString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakWString const & type is null", 0);
      return 0;
    } 
    result = (bool)((RakNet::RakWString const *)arg1)->operator <((RakNet::RakWString const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakWString_OpLessEquals(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::RakWString *arg1 = (RakNet::RakWString *) 0 ;
    RakNet::RakWString *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::RakWString *)jarg1; 
    arg2 = (RakNet::RakWString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakWString const & type is null", 0);
      return 0;
    } 
    result = (bool)((RakNet::RakWString const *)arg1)->operator <=((RakNet::RakWString const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakWString_OpGreater(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::RakWString *arg1 = (RakNet::RakWString *) 0 ;
    RakNet::RakWString *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::RakWString *)jarg1; 
    arg2 = (RakNet::RakWString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakWString const & type is null", 0);
      return 0;
    } 
    result = (bool)((RakNet::RakWString const *)arg1)->operator >((RakNet::RakWString const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakWString_OpGreaterEquals(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::RakWString *arg1 = (RakNet::RakWString *) 0 ;
    RakNet::RakWString *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::RakWString *)jarg1; 
    arg2 = (RakNet::RakWString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakWString const & type is null", 0);
      return 0;
    } 
    result = (bool)((RakNet::RakWString const *)arg1)->operator >=((RakNet::RakWString const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakWString_OpNotEqual(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::RakWString *arg1 = (RakNet::RakWString *) 0 ;
    RakNet::RakWString *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::RakWString *)jarg1; 
    arg2 = (RakNet::RakWString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakWString const & type is null", 0);
      return 0;
    } 
    result = (bool)((RakNet::RakWString const *)arg1)->operator !=((RakNet::RakWString const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakWString_Set(void * jarg1, void * jarg2) {
    RakNet::RakWString *arg1 = (RakNet::RakWString *) 0 ;
    wchar_t *arg2 = (wchar_t *) 0 ;
    
    arg1 = (RakNet::RakWString *)jarg1; 
    arg2 = (wchar_t *)jarg2; 
    (arg1)->Set(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakWString_IsEmpty(void * jarg1) {
    unsigned int jresult ;
    RakNet::RakWString *arg1 = (RakNet::RakWString *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakWString *)jarg1; 
    result = (bool)((RakNet::RakWString const *)arg1)->IsEmpty();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned long SWIGSTDCALL CSharp_RakWString_GetLength(void * jarg1) {
    unsigned long jresult ;
    RakNet::RakWString *arg1 = (RakNet::RakWString *) 0 ;
    size_t result;
    
    arg1 = (RakNet::RakWString *)jarg1; 
    result = ((RakNet::RakWString const *)arg1)->GetLength();
    jresult = (unsigned long)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned long SWIGSTDCALL CSharp_RakWString_ToInteger(void * jarg1) {
    unsigned long jresult ;
    RakNet::RakWString *arg1 = 0 ;
    unsigned long result;
    
    arg1 = (RakNet::RakWString *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakWString const & type is null", 0);
      return 0;
    } 
    result = (unsigned long)RakNet::RakWString::ToInteger((RakNet::RakWString const &)*arg1);
    jresult = (unsigned long)result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakWString_StrCmp(void * jarg1, void * jarg2) {
    int jresult ;
    RakNet::RakWString *arg1 = (RakNet::RakWString *) 0 ;
    RakNet::RakWString *arg2 = 0 ;
    int result;
    
    arg1 = (RakNet::RakWString *)jarg1; 
    arg2 = (RakNet::RakWString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakWString const & type is null", 0);
      return 0;
    } 
    result = (int)((RakNet::RakWString const *)arg1)->StrCmp((RakNet::RakWString const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakWString_StrICmp(void * jarg1, void * jarg2) {
    int jresult ;
    RakNet::RakWString *arg1 = (RakNet::RakWString *) 0 ;
    RakNet::RakWString *arg2 = 0 ;
    int result;
    
    arg1 = (RakNet::RakWString *)jarg1; 
    arg2 = (RakNet::RakWString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakWString const & type is null", 0);
      return 0;
    } 
    result = (int)((RakNet::RakWString const *)arg1)->StrICmp((RakNet::RakWString const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakWString_Clear(void * jarg1) {
    RakNet::RakWString *arg1 = (RakNet::RakWString *) 0 ;
    
    arg1 = (RakNet::RakWString *)jarg1; 
    (arg1)->Clear();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakWString_Printf(void * jarg1) {
    RakNet::RakWString *arg1 = (RakNet::RakWString *) 0 ;
    
    arg1 = (RakNet::RakWString *)jarg1; 
    (arg1)->Printf();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakWString_FPrintf(void * jarg1, void * jarg2) {
    RakNet::RakWString *arg1 = (RakNet::RakWString *) 0 ;
    FILE *arg2 = (FILE *) 0 ;
    
    arg1 = (RakNet::RakWString *)jarg1; 
    arg2 = (FILE *)jarg2; 
    (arg1)->FPrintf(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakWString_Serialize__SWIG_0(void * jarg1, void * jarg2) {
    RakNet::RakWString *arg1 = (RakNet::RakWString *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::RakWString *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    ((RakNet::RakWString const *)arg1)->Serialize(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakWString_Serialize__SWIG_1(void * jarg1, void * jarg2) {
    wchar_t *arg1 = (wchar_t *) (wchar_t *)0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    
    arg1 = (wchar_t *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    RakNet::RakWString::Serialize((wchar_t const *)arg1,arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakWString_Deserialize__SWIG_0(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::RakWString *arg1 = (RakNet::RakWString *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakWString *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    result = (bool)(arg1)->Deserialize(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakWString_Deserialize__SWIG_1(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    wchar_t *arg1 = (wchar_t *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    bool result;
    
    arg1 = (wchar_t *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    result = (bool)RakNet::RakWString::Deserialize(arg1,arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakWString_Deserialize__SWIG_2(void * jarg1, unsigned long jarg2, void * jarg3) {
    unsigned int jresult ;
    wchar_t *arg1 = (wchar_t *) 0 ;
    size_t arg2 ;
    RakNet::BitStream *arg3 = (RakNet::BitStream *) 0 ;
    bool result;
    
    arg1 = (wchar_t *)jarg1; 
    arg2 = (size_t)jarg2; 
    arg3 = (RakNet::BitStream *)jarg3; 
    result = (bool)RakNet::RakWString::Deserialize(arg1,arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_OpPlus__SWIG_1(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::RakWString *arg1 = 0 ;
    RakNet::RakWString *arg2 = 0 ;
    RakNet::RakWString result;
    
    arg1 = (RakNet::RakWString *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakWString const & type is null", 0);
      return 0;
    } 
    arg2 = (RakNet::RakWString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakWString const & type is null", 0);
      return 0;
    } 
    result = operator +((RakNet::RakWString const &)*arg1,(RakNet::RakWString const &)*arg2);
    jresult = new RakNet::RakWString((const RakNet::RakWString &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_BitStream_GetInstance() {
    void * jresult ;
    RakNet::BitStream *result = 0 ;
    
    result = (RakNet::BitStream *)RakNet::BitStream::GetInstance();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_DestroyInstance(void * jarg1) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    RakNet::BitStream::DestroyInstance(arg1);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_BitStream__SWIG_0() {
    void * jresult ;
    RakNet::BitStream *result = 0 ;
    
    result = (RakNet::BitStream *)new RakNet::BitStream();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_BitStream__SWIG_1(unsigned int jarg1) {
    void * jresult ;
    unsigned int arg1 ;
    RakNet::BitStream *result = 0 ;
    
    arg1 = (unsigned int)jarg1; 
    result = (RakNet::BitStream *)new RakNet::BitStream(arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_BitStream__SWIG_2(unsigned char* jarg1, unsigned int jarg2, unsigned int jarg3) {
    void * jresult ;
    unsigned char *arg1 = (unsigned char *) 0 ;
    unsigned int arg2 ;
    bool arg3 ;
    RakNet::BitStream *result = 0 ;
    
    arg1 = jarg1;
    arg2 = (unsigned int)jarg2; 
    arg3 = jarg3 ? true : false; 
    result = (RakNet::BitStream *)new RakNet::BitStream(arg1,arg2,arg3);
    jresult = (void *)result; 
    
    
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_BitStream(void * jarg1) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_Reset(void * jarg1) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    (arg1)->Reset();
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeFloat16(void * jarg1, unsigned int jarg2, float * jarg3, float jarg4, float jarg5) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    float *arg3 = 0 ;
    float arg4 ;
    float arg5 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (float *)jarg3; 
    arg4 = (float)jarg4; 
    arg5 = (float)jarg5; 
    result = (bool)(arg1)->SerializeFloat16(arg2,*arg3,arg4,arg5);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeBits__SWIG_0(void * jarg1, unsigned int jarg2, unsigned char* jarg3, unsigned int jarg4, unsigned int jarg5) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    unsigned char *arg3 = (unsigned char *) 0 ;
    RakNet::BitSize_t arg4 ;
    bool arg5 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = jarg3;
    arg4 = (RakNet::BitSize_t)jarg4; 
    arg5 = jarg5 ? true : false; 
    result = (bool)(arg1)->SerializeBits(arg2,arg3,arg4,arg5);
    jresult = result; 
    
    
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeBits__SWIG_1(void * jarg1, unsigned int jarg2, unsigned char* jarg3, unsigned int jarg4) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    unsigned char *arg3 = (unsigned char *) 0 ;
    RakNet::BitSize_t arg4 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = jarg3;
    arg4 = (RakNet::BitSize_t)jarg4; 
    result = (bool)(arg1)->SerializeBits(arg2,arg3,arg4);
    jresult = result; 
    
    
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_Read__SWIG_1(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    wchar_t **arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (wchar_t **)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "wchar_t *& type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->Read(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_Read__SWIG_2(void * jarg1, void * jarg2, unsigned long jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    wchar_t **arg2 = 0 ;
    size_t arg3 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (wchar_t **)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "wchar_t *& type is null", 0);
      return 0;
    } 
    arg3 = (size_t)jarg3; 
    result = (bool)(arg1)->Read(*arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadCompressed__SWIG_1(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    wchar_t **arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (wchar_t **)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "wchar_t *& type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->ReadCompressed(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadCompressed__SWIG_2(void * jarg1, void * jarg2, unsigned long jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    wchar_t **arg2 = 0 ;
    size_t arg3 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (wchar_t **)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "wchar_t *& type is null", 0);
      return 0;
    } 
    arg3 = (size_t)jarg3; 
    result = (bool)(arg1)->ReadCompressed(*arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_Read__SWIG_3(void * jarg1, void * jarg2, unsigned int jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    RakNet::BitSize_t arg3 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    arg3 = (RakNet::BitSize_t)jarg3; 
    result = (bool)(arg1)->Read(arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_Read__SWIG_4(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    result = (bool)(arg1)->Read(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_Write__SWIG_1(void * jarg1, void * jarg2, unsigned int jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    RakNet::BitSize_t arg3 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    arg3 = (RakNet::BitSize_t)jarg3; 
    (arg1)->Write(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_Write__SWIG_2(void * jarg1, void * jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    (arg1)->Write(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteFloat16(void * jarg1, float jarg2, float jarg3, float jarg4) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    float arg2 ;
    float arg3 ;
    float arg4 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (float)jarg2; 
    arg3 = (float)jarg3; 
    arg4 = (float)jarg4; 
    (arg1)->WriteFloat16(arg2,arg3,arg4);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadFloat16(void * jarg1, float * jarg2, float jarg3, float jarg4) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    float *arg2 = 0 ;
    float arg3 ;
    float arg4 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (float *)jarg2; 
    arg3 = (float)jarg3; 
    arg4 = (float)jarg4; 
    result = (bool)(arg1)->ReadFloat16(*arg2,arg3,arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_ResetReadPointer(void * jarg1) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    (arg1)->ResetReadPointer();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_ResetWritePointer(void * jarg1) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    (arg1)->ResetWritePointer();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_AssertStreamEmpty(void * jarg1) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    (arg1)->AssertStreamEmpty();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_PrintBits__SWIG_0(void * jarg1, char * jarg2, unsigned long jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    char *arg2 = (char *) 0 ;
    size_t arg3 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (size_t)jarg3; 
    ((RakNet::BitStream const *)arg1)->PrintBits(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_PrintBits__SWIG_1(void * jarg1) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    ((RakNet::BitStream const *)arg1)->PrintBits();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_PrintHex__SWIG_0(void * jarg1, char * jarg2, unsigned long jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    char *arg2 = (char *) 0 ;
    size_t arg3 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (size_t)jarg3; 
    ((RakNet::BitStream const *)arg1)->PrintHex(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_PrintHex__SWIG_1(void * jarg1) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    ((RakNet::BitStream const *)arg1)->PrintHex();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_IgnoreBits(void * jarg1, unsigned int jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::BitSize_t arg2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::BitSize_t)jarg2; 
    (arg1)->IgnoreBits(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_IgnoreBytes(void * jarg1, unsigned int jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->IgnoreBytes(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_SetWriteOffset(void * jarg1, unsigned int jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::BitSize_t arg2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::BitSize_t)jarg2; 
    (arg1)->SetWriteOffset(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_GetNumberOfBitsUsed(void * jarg1) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::BitSize_t result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    result = (RakNet::BitSize_t)((RakNet::BitStream const *)arg1)->GetNumberOfBitsUsed();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_GetWriteOffset(void * jarg1) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::BitSize_t result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    result = (RakNet::BitSize_t)((RakNet::BitStream const *)arg1)->GetWriteOffset();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_GetNumberOfBytesUsed(void * jarg1) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::BitSize_t result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    result = (RakNet::BitSize_t)((RakNet::BitStream const *)arg1)->GetNumberOfBytesUsed();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_GetReadOffset(void * jarg1) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::BitSize_t result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    result = (RakNet::BitSize_t)((RakNet::BitStream const *)arg1)->GetReadOffset();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_SetReadOffset(void * jarg1, unsigned int jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::BitSize_t arg2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::BitSize_t)jarg2; 
    (arg1)->SetReadOffset(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_GetNumberOfUnreadBits(void * jarg1) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::BitSize_t result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    result = (RakNet::BitSize_t)((RakNet::BitStream const *)arg1)->GetNumberOfUnreadBits();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_SetData(void * jarg1, unsigned char* jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2;
    (arg1)->SetData(arg2);
    
    
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteBits__SWIG_0(void * jarg1, unsigned char* jarg2, unsigned int jarg3, unsigned int jarg4) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    RakNet::BitSize_t arg3 ;
    bool arg4 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2;
    arg3 = (RakNet::BitSize_t)jarg3; 
    arg4 = jarg4 ? true : false; 
    (arg1)->WriteBits((unsigned char const *)arg2,arg3,arg4);
    
    
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteBits__SWIG_1(void * jarg1, unsigned char* jarg2, unsigned int jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    RakNet::BitSize_t arg3 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2;
    arg3 = (RakNet::BitSize_t)jarg3; 
    (arg1)->WriteBits((unsigned char const *)arg2,arg3);
    
    
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteAlignedBytes(void * jarg1, unsigned char* jarg2, unsigned int jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    unsigned int arg3 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2;
    arg3 = (unsigned int)jarg3; 
    (arg1)->WriteAlignedBytes((unsigned char const *)arg2,arg3);
    
    
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_EndianSwapBytes(void * jarg1, int jarg2, int jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    int arg2 ;
    int arg3 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (int)jarg2; 
    arg3 = (int)jarg3; 
    (arg1)->EndianSwapBytes(arg2,arg3);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadAlignedBytes(void * jarg1, unsigned char* jarg2, unsigned int jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    unsigned int arg3 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2;
    arg3 = (unsigned int)jarg3; 
    result = (bool)(arg1)->ReadAlignedBytes(arg2,arg3);
    jresult = result; 
    
    
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_AlignWriteToByteBoundary(void * jarg1) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    (arg1)->AlignWriteToByteBoundary();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_AlignReadToByteBoundary(void * jarg1) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    (arg1)->AlignReadToByteBoundary();
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadBits__SWIG_0(void * jarg1, unsigned char* jarg2, unsigned int jarg3, unsigned int jarg4) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    RakNet::BitSize_t arg3 ;
    bool arg4 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2;
    arg3 = (RakNet::BitSize_t)jarg3; 
    arg4 = jarg4 ? true : false; 
    result = (bool)(arg1)->ReadBits(arg2,arg3,arg4);
    jresult = result; 
    
    
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadBits__SWIG_1(void * jarg1, unsigned char* jarg2, unsigned int jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    RakNet::BitSize_t arg3 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2;
    arg3 = (RakNet::BitSize_t)jarg3; 
    result = (bool)(arg1)->ReadBits(arg2,arg3);
    jresult = result; 
    
    
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_Write0(void * jarg1) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    (arg1)->Write0();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_Write1(void * jarg1) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    (arg1)->Write1();
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadBit(void * jarg1) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    result = (bool)(arg1)->ReadBit();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_AssertCopyData(void * jarg1) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    (arg1)->AssertCopyData();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_SetNumberOfBitsAllocated(void * jarg1, unsigned int jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::BitSize_t arg2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::BitSize_t)jarg2; 
    (arg1)->SetNumberOfBitsAllocated(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_AddBitsAndReallocate(void * jarg1, unsigned int jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::BitSize_t arg2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::BitSize_t)jarg2; 
    (arg1)->AddBitsAndReallocate(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_GetNumberOfBitsAllocated(void * jarg1) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::BitSize_t result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    result = (RakNet::BitSize_t)((RakNet::BitStream const *)arg1)->GetNumberOfBitsAllocated();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_PadWithZeroToByteLength(void * jarg1, unsigned int jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->PadWithZeroToByteLength(arg2);
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_BitStream_NumberOfLeadingZeroes__SWIG_0(unsigned char jarg1) {
    int jresult ;
    uint8_t arg1 ;
    int result;
    
    arg1 = (uint8_t)jarg1; 
    result = (int)RakNet::BitStream::NumberOfLeadingZeroes(arg1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_BitStream_NumberOfLeadingZeroes__SWIG_1(unsigned short jarg1) {
    int jresult ;
    uint16_t arg1 ;
    int result;
    
    arg1 = (uint16_t)jarg1; 
    result = (int)RakNet::BitStream::NumberOfLeadingZeroes(arg1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_BitStream_NumberOfLeadingZeroes__SWIG_2(unsigned int jarg1) {
    int jresult ;
    uint32_t arg1 ;
    int result;
    
    arg1 = (uint32_t)jarg1; 
    result = (int)RakNet::BitStream::NumberOfLeadingZeroes(arg1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_BitStream_NumberOfLeadingZeroes__SWIG_3(unsigned long long jarg1) {
    int jresult ;
    uint64_t arg1 ;
    int result;
    
    arg1 = (uint64_t)jarg1; 
    result = (int)RakNet::BitStream::NumberOfLeadingZeroes(arg1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_BitStream_NumberOfLeadingZeroes__SWIG_4(signed char jarg1) {
    int jresult ;
    int8_t arg1 ;
    int result;
    
    arg1 = (int8_t)jarg1; 
    result = (int)RakNet::BitStream::NumberOfLeadingZeroes(arg1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_BitStream_NumberOfLeadingZeroes__SWIG_5(short jarg1) {
    int jresult ;
    int16_t arg1 ;
    int result;
    
    arg1 = (int16_t)jarg1; 
    result = (int)RakNet::BitStream::NumberOfLeadingZeroes(arg1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_BitStream_NumberOfLeadingZeroes__SWIG_6(int jarg1) {
    int jresult ;
    int32_t arg1 ;
    int result;
    
    arg1 = (int32_t)jarg1; 
    result = (int)RakNet::BitStream::NumberOfLeadingZeroes(arg1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_BitStream_NumberOfLeadingZeroes__SWIG_7(long long jarg1) {
    int jresult ;
    int64_t arg1 ;
    int result;
    
    arg1 = (int64_t)jarg1; 
    result = (int)RakNet::BitStream::NumberOfLeadingZeroes(arg1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_Write__SWIG_3(void * jarg1, char * jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    char *arg2 = (char *) (char *)0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->Write((char const *)arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_Write__SWIG_4(void * jarg1, void * jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    wchar_t *arg2 = (wchar_t *) (wchar_t *)0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (wchar_t *)jarg2; 
    (arg1)->Write((wchar_t const *)arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressed__SWIG_1(void * jarg1, char * jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    char *arg2 = (char *) (char *)0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->WriteCompressed((char const *)arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressed__SWIG_2(void * jarg1, void * jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    wchar_t *arg2 = (wchar_t *) (wchar_t *)0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (wchar_t *)jarg2; 
    (arg1)->WriteCompressed((wchar_t const *)arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_DoEndianSwap() {
    unsigned int jresult ;
    bool result;
    
    result = (bool)RakNet::BitStream::DoEndianSwap();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_IsBigEndian() {
    unsigned int jresult ;
    bool result;
    
    result = (bool)RakNet::BitStream::IsBigEndian();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_IsNetworkOrder() {
    unsigned int jresult ;
    bool result;
    
    result = (bool)RakNet::BitStream::IsNetworkOrder();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_IsNetworkOrderInternal() {
    unsigned int jresult ;
    bool result;
    
    result = (bool)RakNet::BitStream::IsNetworkOrderInternal();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_ReverseBytes(unsigned char* jarg1, unsigned char* jarg2, unsigned int jarg3) {
    unsigned char *arg1 = (unsigned char *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    unsigned int arg3 ;
    
    arg1 = jarg1;
    arg2 = jarg2;
    arg3 = (unsigned int)jarg3; 
    RakNet::BitStream::ReverseBytes(arg1,arg2,arg3);
    
    
    
    
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_ReverseBytesInPlace(unsigned char* jarg1, unsigned int jarg2) {
    unsigned char *arg1 = (unsigned char *) 0 ;
    unsigned int arg2 ;
    
    arg1 = jarg1;
    arg2 = (unsigned int)jarg2; 
    RakNet::BitStream::ReverseBytesInPlace(arg1,arg2);
    
    
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_BitStream_CSharpStringReader(void * jarg1, char * jarg2) {
    char * jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    char *arg2 = (char *) 0 ;
    char *result = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (char *)jarg2; 
    result = (char *)RakNet_BitStream_CSharpStringReader(arg1,(char const *)arg2);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_CSharpByteReader(void * jarg1, unsigned char* jarg2, unsigned int jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    unsigned int arg3 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2;
    arg3 = (unsigned int)jarg3; 
    result = (bool)RakNet_BitStream_CSharpByteReader(arg1,arg2,arg3);
    jresult = result; 
    
    
    return jresult;
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_BitStream_CSharpStringReaderCompressedDelta(void * jarg1, char * jarg2) {
    char * jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    char *arg2 = (char *) 0 ;
    char *result = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (char *)jarg2; 
    result = (char *)RakNet_BitStream_CSharpStringReaderCompressedDelta(arg1,arg2);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_BitStream_CSharpStringReaderDelta(void * jarg1, char * jarg2) {
    char * jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    char *arg2 = (char *) 0 ;
    char *result = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (char *)jarg2; 
    result = (char *)RakNet_BitStream_CSharpStringReaderDelta(arg1,arg2);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_BitStream_CSharpStringReaderCompressed(void * jarg1, char * jarg2) {
    char * jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    char *arg2 = (char *) 0 ;
    char *result = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (char *)jarg2; 
    result = (char *)RakNet_BitStream_CSharpStringReaderCompressed(arg1,arg2);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_Write__SWIG_6(void * jarg1, unsigned char* jarg2, unsigned int jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    unsigned int arg3 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2;
    arg3 = (unsigned int)jarg3; 
    RakNet_BitStream_Write__SWIG_6(arg1,arg2,arg3);
    
    
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_CSharpCopyDataHelper(void * jarg1, unsigned char* jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    RakNet::BitSize_t result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2;
    result = (RakNet::BitSize_t)RakNet_BitStream_CSharpCopyDataHelper(arg1,arg2);
    jresult = result; 
    
    
    return jresult;
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_BitStream_CSharpPrintBitsHelper(void * jarg1, char * jarg2) {
    char * jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    char *arg2 = (char *) 0 ;
    char *result = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (char *)jarg2; 
    result = (char *)RakNet_BitStream_CSharpPrintBitsHelper(arg1,arg2);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_BitStream_CSharpPrintHexHelper(void * jarg1, char * jarg2) {
    char * jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    char *arg2 = (char *) 0 ;
    char *result = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (char *)jarg2; 
    result = (char *)RakNet_BitStream_CSharpPrintHexHelper(arg1,arg2);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_Serialize__SWIG_1(void * jarg1, unsigned int jarg2, unsigned char* jarg3, unsigned int jarg4) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    unsigned char *arg3 = (unsigned char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = jarg3;
    arg4 = (unsigned int)jarg4; 
    RakNet_BitStream_Serialize__SWIG_1(arg1,arg2,arg3,arg4);
    
    
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadAlignedBytesSafe__SWIG_0(void * jarg1, unsigned char* jarg2, int jarg3, int jarg4) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    int arg3 ;
    int arg4 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2;
    arg3 = (int)jarg3; 
    arg4 = (int)jarg4; 
    result = (bool)RakNet_BitStream_ReadAlignedBytesSafe__SWIG_0(arg1,arg2,arg3,arg4);
    jresult = result; 
    
    
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadAlignedBytesSafe__SWIG_1(void * jarg1, unsigned char* jarg2, unsigned int jarg3, unsigned int jarg4) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    unsigned int arg3 ;
    unsigned int arg4 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2;
    arg3 = (unsigned int)jarg3; 
    arg4 = (unsigned int)jarg4; 
    result = (bool)RakNet_BitStream_ReadAlignedBytesSafe__SWIG_1(arg1,arg2,arg3,arg4);
    jresult = result; 
    
    
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteAlignedVar8(void * jarg1, unsigned char* jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2;
    RakNet_BitStream_WriteAlignedVar8(arg1,arg2);
    
    
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadAlignedVar8(void * jarg1, unsigned char* jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2;
    result = (bool)RakNet_BitStream_ReadAlignedVar8(arg1,arg2);
    jresult = result; 
    
    
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteAlignedVar16(void * jarg1, unsigned char* jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2;
    RakNet_BitStream_WriteAlignedVar16(arg1,arg2);
    
    
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadAlignedVar16(void * jarg1, unsigned char* jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2;
    result = (bool)RakNet_BitStream_ReadAlignedVar16(arg1,arg2);
    jresult = result; 
    
    
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteAlignedVar32(void * jarg1, unsigned char* jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2;
    RakNet_BitStream_WriteAlignedVar32(arg1,arg2);
    
    
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadAlignedVar32(void * jarg1, unsigned char* jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2;
    result = (bool)RakNet_BitStream_ReadAlignedVar32(arg1,arg2);
    jresult = result; 
    
    
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteAlignedBytesSafe(void * jarg1, unsigned char* jarg2, unsigned int jarg3, unsigned int jarg4) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    unsigned int arg3 ;
    unsigned int arg4 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2;
    arg3 = (unsigned int)jarg3; 
    arg4 = (unsigned int)jarg4; 
    RakNet_BitStream_WriteAlignedBytesSafe(arg1,arg2,arg3,arg4);
    
    
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_Serialize__SWIG_2(void * jarg1, unsigned int jarg2, unsigned int * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    bool *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (bool *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR Serialize< bool >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_Serialize__SWIG_3(void * jarg1, unsigned int jarg2, unsigned char * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    unsigned char *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (unsigned char *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR Serialize< unsigned char >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_Serialize__SWIG_4(void * jarg1, unsigned int jarg2, short * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    short *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (short *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR Serialize< short >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_Serialize__SWIG_5(void * jarg1, unsigned int jarg2, unsigned short * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    unsigned short *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (unsigned short *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR Serialize< unsigned short >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_Serialize__SWIG_6(void * jarg1, unsigned int jarg2, long * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    long *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (long *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR Serialize< long >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_Serialize__SWIG_7(void * jarg1, unsigned int jarg2, long long * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    long long *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (long long *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR Serialize< long long >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_Serialize__SWIG_8(void * jarg1, unsigned int jarg2, float * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    float *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (float *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR Serialize< float >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_Serialize__SWIG_9(void * jarg1, unsigned int jarg2, void * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    RakNet::RakString *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (RakNet::RakString *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR Serialize< RakNet::RakString >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_Serialize__SWIG_10(void * jarg1, unsigned int jarg2, void * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    RakNet::RakNetGUID *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (RakNet::RakNetGUID *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR Serialize< RakNet::RakNetGUID >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_Serialize__SWIG_11(void * jarg1, unsigned int jarg2, void * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    RakNet::uint24_t *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (RakNet::uint24_t *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR Serialize< RakNet::uint24_t >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeDelta__SWIG_2(void * jarg1, unsigned int jarg2, unsigned int * jarg3, unsigned int jarg4) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    bool *arg3 = 0 ;
    bool *arg4 = 0 ;
    bool temp4 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (bool *)jarg3; 
    temp4 = jarg4 ? true : false; 
    arg4 = &temp4; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeDelta< bool >(arg2,*arg3,(bool const &)*arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeDelta__SWIG_3(void * jarg1, unsigned int jarg2, unsigned int * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    bool *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (bool *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeDelta< bool >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeDelta__SWIG_4(void * jarg1, unsigned int jarg2, unsigned char * jarg3, unsigned char jarg4) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    unsigned char *arg3 = 0 ;
    unsigned char *arg4 = 0 ;
    unsigned char temp4 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (unsigned char *)jarg3; 
    temp4 = (unsigned char)jarg4; 
    arg4 = &temp4; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeDelta< unsigned char >(arg2,*arg3,(unsigned char const &)*arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeDelta__SWIG_5(void * jarg1, unsigned int jarg2, unsigned char * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    unsigned char *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (unsigned char *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeDelta< unsigned char >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeDelta__SWIG_6(void * jarg1, unsigned int jarg2, short * jarg3, short jarg4) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    short *arg3 = 0 ;
    short *arg4 = 0 ;
    short temp4 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (short *)jarg3; 
    temp4 = (short)jarg4; 
    arg4 = &temp4; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeDelta< short >(arg2,*arg3,(short const &)*arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeDelta__SWIG_7(void * jarg1, unsigned int jarg2, short * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    short *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (short *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeDelta< short >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeDelta__SWIG_8(void * jarg1, unsigned int jarg2, unsigned short * jarg3, unsigned short jarg4) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    unsigned short *arg3 = 0 ;
    unsigned short *arg4 = 0 ;
    unsigned short temp4 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (unsigned short *)jarg3; 
    temp4 = (unsigned short)jarg4; 
    arg4 = &temp4; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeDelta< unsigned short >(arg2,*arg3,(unsigned short const &)*arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeDelta__SWIG_9(void * jarg1, unsigned int jarg2, unsigned short * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    unsigned short *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (unsigned short *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeDelta< unsigned short >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeDelta__SWIG_10(void * jarg1, unsigned int jarg2, long * jarg3, long jarg4) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    long *arg3 = 0 ;
    long *arg4 = 0 ;
    long temp4 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (long *)jarg3; 
    temp4 = (long)jarg4; 
    arg4 = &temp4; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeDelta< long >(arg2,*arg3,(long const &)*arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeDelta__SWIG_11(void * jarg1, unsigned int jarg2, long * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    long *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (long *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeDelta< long >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeDelta__SWIG_12(void * jarg1, unsigned int jarg2, long long * jarg3, long long jarg4) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    long long *arg3 = 0 ;
    long long *arg4 = 0 ;
    long long temp4 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (long long *)jarg3; 
    temp4 = (long long)jarg4; 
    arg4 = &temp4; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeDelta< long long >(arg2,*arg3,(long long const &)*arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeDelta__SWIG_13(void * jarg1, unsigned int jarg2, long long * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    long long *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (long long *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeDelta< long long >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeDelta__SWIG_14(void * jarg1, unsigned int jarg2, float * jarg3, float jarg4) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    float *arg3 = 0 ;
    float *arg4 = 0 ;
    float temp4 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (float *)jarg3; 
    temp4 = (float)jarg4; 
    arg4 = &temp4; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeDelta< float >(arg2,*arg3,(float const &)*arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeDelta__SWIG_15(void * jarg1, unsigned int jarg2, float * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    float *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (float *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeDelta< float >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeDelta__SWIG_16(void * jarg1, unsigned int jarg2, void * jarg3, void * jarg4) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    RakNet::RakString *arg3 = 0 ;
    RakNet::RakString *arg4 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (RakNet::RakString *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString & type is null", 0);
      return 0;
    } 
    arg4 = (RakNet::RakString *)jarg4;
    if (!arg4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeDelta< RakNet::RakString >(arg2,*arg3,(RakNet::RakString const &)*arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeDelta__SWIG_17(void * jarg1, unsigned int jarg2, void * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    RakNet::RakString *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (RakNet::RakString *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeDelta< RakNet::RakString >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeDelta__SWIG_18(void * jarg1, unsigned int jarg2, void * jarg3, void * jarg4) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    RakNet::RakNetGUID *arg3 = 0 ;
    RakNet::RakNetGUID *arg4 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (RakNet::RakNetGUID *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID & type is null", 0);
      return 0;
    } 
    arg4 = (RakNet::RakNetGUID *)jarg4;
    if (!arg4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID const & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeDelta< RakNet::RakNetGUID >(arg2,*arg3,(RakNet::RakNetGUID const &)*arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeDelta__SWIG_19(void * jarg1, unsigned int jarg2, void * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    RakNet::RakNetGUID *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (RakNet::RakNetGUID *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeDelta< RakNet::RakNetGUID >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeDelta__SWIG_20(void * jarg1, unsigned int jarg2, void * jarg3, void * jarg4) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    RakNet::uint24_t *arg3 = 0 ;
    RakNet::uint24_t *arg4 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (RakNet::uint24_t *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t & type is null", 0);
      return 0;
    } 
    arg4 = (RakNet::uint24_t *)jarg4;
    if (!arg4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t const & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeDelta< RakNet::uint24_t >(arg2,*arg3,(RakNet::uint24_t const &)*arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeDelta__SWIG_21(void * jarg1, unsigned int jarg2, void * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    RakNet::uint24_t *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (RakNet::uint24_t *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeDelta< RakNet::uint24_t >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressed__SWIG_1(void * jarg1, unsigned int jarg2, unsigned int * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    bool *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (bool *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressed< bool >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressed__SWIG_2(void * jarg1, unsigned int jarg2, unsigned char * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    unsigned char *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (unsigned char *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressed< unsigned char >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressed__SWIG_3(void * jarg1, unsigned int jarg2, short * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    short *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (short *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressed< short >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressed__SWIG_4(void * jarg1, unsigned int jarg2, unsigned short * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    unsigned short *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (unsigned short *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressed< unsigned short >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressed__SWIG_5(void * jarg1, unsigned int jarg2, long * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    long *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (long *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressed< long >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressed__SWIG_6(void * jarg1, unsigned int jarg2, long long * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    long long *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (long long *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressed< long long >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressed__SWIG_7(void * jarg1, unsigned int jarg2, float * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    float *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (float *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressed< float >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressed__SWIG_8(void * jarg1, unsigned int jarg2, void * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    RakNet::RakString *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (RakNet::RakString *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressed< RakNet::RakString >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressed__SWIG_9(void * jarg1, unsigned int jarg2, void * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    RakNet::RakNetGUID *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (RakNet::RakNetGUID *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressed< RakNet::RakNetGUID >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressed__SWIG_10(void * jarg1, unsigned int jarg2, void * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    RakNet::uint24_t *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (RakNet::uint24_t *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressed< RakNet::uint24_t >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressedDelta__SWIG_2(void * jarg1, unsigned int jarg2, unsigned int * jarg3, unsigned int jarg4) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    bool *arg3 = 0 ;
    bool *arg4 = 0 ;
    bool temp4 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (bool *)jarg3; 
    temp4 = jarg4 ? true : false; 
    arg4 = &temp4; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressedDelta< bool >(arg2,*arg3,(bool const &)*arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressedDelta__SWIG_3(void * jarg1, unsigned int jarg2, unsigned int * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    bool *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (bool *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressedDelta< bool >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressedDelta__SWIG_4(void * jarg1, unsigned int jarg2, unsigned char * jarg3, unsigned char jarg4) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    unsigned char *arg3 = 0 ;
    unsigned char *arg4 = 0 ;
    unsigned char temp4 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (unsigned char *)jarg3; 
    temp4 = (unsigned char)jarg4; 
    arg4 = &temp4; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressedDelta< unsigned char >(arg2,*arg3,(unsigned char const &)*arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressedDelta__SWIG_5(void * jarg1, unsigned int jarg2, unsigned char * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    unsigned char *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (unsigned char *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressedDelta< unsigned char >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressedDelta__SWIG_6(void * jarg1, unsigned int jarg2, short * jarg3, short jarg4) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    short *arg3 = 0 ;
    short *arg4 = 0 ;
    short temp4 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (short *)jarg3; 
    temp4 = (short)jarg4; 
    arg4 = &temp4; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressedDelta< short >(arg2,*arg3,(short const &)*arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressedDelta__SWIG_7(void * jarg1, unsigned int jarg2, short * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    short *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (short *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressedDelta< short >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressedDelta__SWIG_8(void * jarg1, unsigned int jarg2, unsigned short * jarg3, unsigned short jarg4) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    unsigned short *arg3 = 0 ;
    unsigned short *arg4 = 0 ;
    unsigned short temp4 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (unsigned short *)jarg3; 
    temp4 = (unsigned short)jarg4; 
    arg4 = &temp4; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressedDelta< unsigned short >(arg2,*arg3,(unsigned short const &)*arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressedDelta__SWIG_9(void * jarg1, unsigned int jarg2, unsigned short * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    unsigned short *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (unsigned short *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressedDelta< unsigned short >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressedDelta__SWIG_10(void * jarg1, unsigned int jarg2, long * jarg3, long jarg4) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    long *arg3 = 0 ;
    long *arg4 = 0 ;
    long temp4 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (long *)jarg3; 
    temp4 = (long)jarg4; 
    arg4 = &temp4; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressedDelta< long >(arg2,*arg3,(long const &)*arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressedDelta__SWIG_11(void * jarg1, unsigned int jarg2, long * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    long *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (long *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressedDelta< long >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressedDelta__SWIG_12(void * jarg1, unsigned int jarg2, long long * jarg3, long long jarg4) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    long long *arg3 = 0 ;
    long long *arg4 = 0 ;
    long long temp4 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (long long *)jarg3; 
    temp4 = (long long)jarg4; 
    arg4 = &temp4; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressedDelta< long long >(arg2,*arg3,(long long const &)*arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressedDelta__SWIG_13(void * jarg1, unsigned int jarg2, long long * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    long long *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (long long *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressedDelta< long long >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressedDelta__SWIG_14(void * jarg1, unsigned int jarg2, float * jarg3, float jarg4) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    float *arg3 = 0 ;
    float *arg4 = 0 ;
    float temp4 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (float *)jarg3; 
    temp4 = (float)jarg4; 
    arg4 = &temp4; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressedDelta< float >(arg2,*arg3,(float const &)*arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressedDelta__SWIG_15(void * jarg1, unsigned int jarg2, float * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    float *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (float *)jarg3; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressedDelta< float >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressedDelta__SWIG_16(void * jarg1, unsigned int jarg2, void * jarg3, void * jarg4) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    RakNet::RakString *arg3 = 0 ;
    RakNet::RakString *arg4 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (RakNet::RakString *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString & type is null", 0);
      return 0;
    } 
    arg4 = (RakNet::RakString *)jarg4;
    if (!arg4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressedDelta< RakNet::RakString >(arg2,*arg3,(RakNet::RakString const &)*arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressedDelta__SWIG_17(void * jarg1, unsigned int jarg2, void * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    RakNet::RakString *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (RakNet::RakString *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressedDelta< RakNet::RakString >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressedDelta__SWIG_18(void * jarg1, unsigned int jarg2, void * jarg3, void * jarg4) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    RakNet::RakNetGUID *arg3 = 0 ;
    RakNet::RakNetGUID *arg4 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (RakNet::RakNetGUID *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID & type is null", 0);
      return 0;
    } 
    arg4 = (RakNet::RakNetGUID *)jarg4;
    if (!arg4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID const & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressedDelta< RakNet::RakNetGUID >(arg2,*arg3,(RakNet::RakNetGUID const &)*arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressedDelta__SWIG_19(void * jarg1, unsigned int jarg2, void * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    RakNet::RakNetGUID *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (RakNet::RakNetGUID *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressedDelta< RakNet::RakNetGUID >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressedDelta__SWIG_20(void * jarg1, unsigned int jarg2, void * jarg3, void * jarg4) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    RakNet::uint24_t *arg3 = 0 ;
    RakNet::uint24_t *arg4 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (RakNet::uint24_t *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t & type is null", 0);
      return 0;
    } 
    arg4 = (RakNet::uint24_t *)jarg4;
    if (!arg4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t const & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressedDelta< RakNet::uint24_t >(arg2,*arg3,(RakNet::uint24_t const &)*arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_SerializeCompressedDelta__SWIG_21(void * jarg1, unsigned int jarg2, void * jarg3) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool arg2 ;
    RakNet::uint24_t *arg3 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (RakNet::uint24_t *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR SerializeCompressedDelta< RakNet::uint24_t >(arg2,*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_Write__SWIG_8(void * jarg1, unsigned int jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool *arg2 = 0 ;
    bool temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = jarg2 ? true : false; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR Write< bool >((bool const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_Write__SWIG_9(void * jarg1, unsigned char jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = 0 ;
    unsigned char temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (unsigned char)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR Write< unsigned char >((unsigned char const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_Write__SWIG_10(void * jarg1, char jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    char *arg2 = 0 ;
    char temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (char)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR Write< char >((char const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_Write__SWIG_11(void * jarg1, short jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    short *arg2 = 0 ;
    short temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (short)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR Write< short >((short const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_Write__SWIG_12(void * jarg1, unsigned short jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned short *arg2 = 0 ;
    unsigned short temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (unsigned short)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR Write< unsigned short >((unsigned short const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_Write__SWIG_13(void * jarg1, long jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    long *arg2 = 0 ;
    long temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (long)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR Write< long >((long const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_Write__SWIG_14(void * jarg1, long long jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    long long *arg2 = 0 ;
    long long temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (long long)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR Write< long long >((long long const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_Write__SWIG_15(void * jarg1, float jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    float *arg2 = 0 ;
    float temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (float)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR Write< float >((float const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_Write__SWIG_16(void * jarg1, void * jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return ;
    } 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR Write< RakNet::RakString >((RakNet::RakString const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_Write__SWIG_17(void * jarg1, void * jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::RakNetGUID *arg2 = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::RakNetGUID *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID const & type is null", 0);
      return ;
    } 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR Write< RakNet::RakNetGUID >((RakNet::RakNetGUID const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_Write__SWIG_18(void * jarg1, void * jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::uint24_t *arg2 = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::uint24_t *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t const & type is null", 0);
      return ;
    } 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR Write< RakNet::uint24_t >((RakNet::uint24_t const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteDelta__SWIG_2(void * jarg1, char * jarg2, char * jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    char **arg2 = 0 ;
    char **arg3 = 0 ;
    char *temp2 = 0 ;
    char *temp3 = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    
    temp2 = (char *)jarg2;
    arg2 = &temp2;
    
    
    temp3 = (char *)jarg3;
    arg3 = &temp3;
    
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteDelta< char const * >((char const *const &)*arg2,(char const *const &)*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteDelta__SWIG_3(void * jarg1, char * jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    char **arg2 = 0 ;
    char *temp2 = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    
    temp2 = (char *)jarg2;
    arg2 = &temp2;
    
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteDelta< char const * >((char const *const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteDelta__SWIG_4(void * jarg1, unsigned int jarg2, unsigned int jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool *arg2 = 0 ;
    bool *arg3 = 0 ;
    bool temp2 ;
    bool temp3 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = jarg2 ? true : false; 
    arg2 = &temp2; 
    temp3 = jarg3 ? true : false; 
    arg3 = &temp3; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteDelta< bool >((bool const &)*arg2,(bool const &)*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteDelta__SWIG_5(void * jarg1, unsigned int jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool *arg2 = 0 ;
    bool temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = jarg2 ? true : false; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteDelta< bool >((bool const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteDelta__SWIG_6(void * jarg1, unsigned char jarg2, unsigned char jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = 0 ;
    unsigned char *arg3 = 0 ;
    unsigned char temp2 ;
    unsigned char temp3 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (unsigned char)jarg2; 
    arg2 = &temp2; 
    temp3 = (unsigned char)jarg3; 
    arg3 = &temp3; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteDelta< unsigned char >((unsigned char const &)*arg2,(unsigned char const &)*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteDelta__SWIG_7(void * jarg1, unsigned char jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = 0 ;
    unsigned char temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (unsigned char)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteDelta< unsigned char >((unsigned char const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteDelta__SWIG_8(void * jarg1, char jarg2, char jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    char *arg2 = 0 ;
    char *arg3 = 0 ;
    char temp2 ;
    char temp3 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (char)jarg2; 
    arg2 = &temp2; 
    temp3 = (char)jarg3; 
    arg3 = &temp3; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteDelta< char >((char const &)*arg2,(char const &)*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteDelta__SWIG_9(void * jarg1, char jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    char *arg2 = 0 ;
    char temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (char)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteDelta< char >((char const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteDelta__SWIG_10(void * jarg1, short jarg2, short jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    short *arg2 = 0 ;
    short *arg3 = 0 ;
    short temp2 ;
    short temp3 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (short)jarg2; 
    arg2 = &temp2; 
    temp3 = (short)jarg3; 
    arg3 = &temp3; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteDelta< short >((short const &)*arg2,(short const &)*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteDelta__SWIG_11(void * jarg1, short jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    short *arg2 = 0 ;
    short temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (short)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteDelta< short >((short const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteDelta__SWIG_12(void * jarg1, unsigned short jarg2, unsigned short jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned short *arg2 = 0 ;
    unsigned short *arg3 = 0 ;
    unsigned short temp2 ;
    unsigned short temp3 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (unsigned short)jarg2; 
    arg2 = &temp2; 
    temp3 = (unsigned short)jarg3; 
    arg3 = &temp3; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteDelta< unsigned short >((unsigned short const &)*arg2,(unsigned short const &)*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteDelta__SWIG_13(void * jarg1, unsigned short jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned short *arg2 = 0 ;
    unsigned short temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (unsigned short)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteDelta< unsigned short >((unsigned short const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteDelta__SWIG_14(void * jarg1, long jarg2, long jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    long *arg2 = 0 ;
    long *arg3 = 0 ;
    long temp2 ;
    long temp3 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (long)jarg2; 
    arg2 = &temp2; 
    temp3 = (long)jarg3; 
    arg3 = &temp3; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteDelta< long >((long const &)*arg2,(long const &)*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteDelta__SWIG_15(void * jarg1, long jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    long *arg2 = 0 ;
    long temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (long)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteDelta< long >((long const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteDelta__SWIG_16(void * jarg1, long long jarg2, long long jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    long long *arg2 = 0 ;
    long long *arg3 = 0 ;
    long long temp2 ;
    long long temp3 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (long long)jarg2; 
    arg2 = &temp2; 
    temp3 = (long long)jarg3; 
    arg3 = &temp3; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteDelta< long long >((long long const &)*arg2,(long long const &)*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteDelta__SWIG_17(void * jarg1, long long jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    long long *arg2 = 0 ;
    long long temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (long long)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteDelta< long long >((long long const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteDelta__SWIG_18(void * jarg1, float jarg2, float jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    float *arg2 = 0 ;
    float *arg3 = 0 ;
    float temp2 ;
    float temp3 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (float)jarg2; 
    arg2 = &temp2; 
    temp3 = (float)jarg3; 
    arg3 = &temp3; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteDelta< float >((float const &)*arg2,(float const &)*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteDelta__SWIG_19(void * jarg1, float jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    float *arg2 = 0 ;
    float temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (float)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteDelta< float >((float const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteDelta__SWIG_20(void * jarg1, void * jarg2, void * jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    RakNet::RakString *arg3 = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return ;
    } 
    arg3 = (RakNet::RakString *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return ;
    } 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteDelta< RakNet::RakString >((RakNet::RakString const &)*arg2,(RakNet::RakString const &)*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteDelta__SWIG_21(void * jarg1, void * jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return ;
    } 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteDelta< RakNet::RakString >((RakNet::RakString const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteDelta__SWIG_22(void * jarg1, void * jarg2, void * jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::RakNetGUID *arg2 = 0 ;
    RakNet::RakNetGUID *arg3 = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::RakNetGUID *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID const & type is null", 0);
      return ;
    } 
    arg3 = (RakNet::RakNetGUID *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID const & type is null", 0);
      return ;
    } 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteDelta< RakNet::RakNetGUID >((RakNet::RakNetGUID const &)*arg2,(RakNet::RakNetGUID const &)*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteDelta__SWIG_23(void * jarg1, void * jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::RakNetGUID *arg2 = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::RakNetGUID *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID const & type is null", 0);
      return ;
    } 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteDelta< RakNet::RakNetGUID >((RakNet::RakNetGUID const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteDelta__SWIG_24(void * jarg1, void * jarg2, void * jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::uint24_t *arg2 = 0 ;
    RakNet::uint24_t *arg3 = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::uint24_t *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t const & type is null", 0);
      return ;
    } 
    arg3 = (RakNet::uint24_t *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t const & type is null", 0);
      return ;
    } 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteDelta< RakNet::uint24_t >((RakNet::uint24_t const &)*arg2,(RakNet::uint24_t const &)*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteDelta__SWIG_25(void * jarg1, void * jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::uint24_t *arg2 = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::uint24_t *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t const & type is null", 0);
      return ;
    } 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteDelta< RakNet::uint24_t >((RakNet::uint24_t const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressed__SWIG_5(void * jarg1, unsigned int jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool *arg2 = 0 ;
    bool temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = jarg2 ? true : false; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressed< bool >((bool const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressed__SWIG_6(void * jarg1, unsigned char jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = 0 ;
    unsigned char temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (unsigned char)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressed< unsigned char >((unsigned char const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressed__SWIG_7(void * jarg1, char jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    char *arg2 = 0 ;
    char temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (char)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressed< char >((char const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressed__SWIG_8(void * jarg1, short jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    short *arg2 = 0 ;
    short temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (short)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressed< short >((short const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressed__SWIG_9(void * jarg1, unsigned short jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned short *arg2 = 0 ;
    unsigned short temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (unsigned short)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressed< unsigned short >((unsigned short const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressed__SWIG_10(void * jarg1, long jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    long *arg2 = 0 ;
    long temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (long)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressed< long >((long const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressed__SWIG_11(void * jarg1, long long jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    long long *arg2 = 0 ;
    long long temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (long long)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressed< long long >((long long const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressed__SWIG_12(void * jarg1, float jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    float *arg2 = 0 ;
    float temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (float)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressed< float >((float const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressed__SWIG_13(void * jarg1, void * jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return ;
    } 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressed< RakNet::RakString >((RakNet::RakString const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressed__SWIG_14(void * jarg1, void * jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::RakNetGUID *arg2 = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::RakNetGUID *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID const & type is null", 0);
      return ;
    } 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressed< RakNet::RakNetGUID >((RakNet::RakNetGUID const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressed__SWIG_15(void * jarg1, void * jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::uint24_t *arg2 = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::uint24_t *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t const & type is null", 0);
      return ;
    } 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressed< RakNet::uint24_t >((RakNet::uint24_t const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressedDelta__SWIG_2(void * jarg1, char * jarg2, char * jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    char **arg2 = 0 ;
    char **arg3 = 0 ;
    char *temp2 = 0 ;
    char *temp3 = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    
    temp2 = (char *)jarg2;
    arg2 = &temp2;
    
    
    temp3 = (char *)jarg3;
    arg3 = &temp3;
    
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressedDelta< char const * >((char const *const &)*arg2,(char const *const &)*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressedDelta__SWIG_3(void * jarg1, char * jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    char **arg2 = 0 ;
    char *temp2 = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    
    temp2 = (char *)jarg2;
    arg2 = &temp2;
    
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressedDelta< char const * >((char const *const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressedDelta__SWIG_4(void * jarg1, unsigned int jarg2, unsigned int jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool *arg2 = 0 ;
    bool *arg3 = 0 ;
    bool temp2 ;
    bool temp3 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = jarg2 ? true : false; 
    arg2 = &temp2; 
    temp3 = jarg3 ? true : false; 
    arg3 = &temp3; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressedDelta< bool >((bool const &)*arg2,(bool const &)*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressedDelta__SWIG_5(void * jarg1, unsigned int jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool *arg2 = 0 ;
    bool temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = jarg2 ? true : false; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressedDelta< bool >((bool const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressedDelta__SWIG_6(void * jarg1, unsigned char jarg2, unsigned char jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = 0 ;
    unsigned char *arg3 = 0 ;
    unsigned char temp2 ;
    unsigned char temp3 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (unsigned char)jarg2; 
    arg2 = &temp2; 
    temp3 = (unsigned char)jarg3; 
    arg3 = &temp3; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressedDelta< unsigned char >((unsigned char const &)*arg2,(unsigned char const &)*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressedDelta__SWIG_7(void * jarg1, unsigned char jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = 0 ;
    unsigned char temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (unsigned char)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressedDelta< unsigned char >((unsigned char const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressedDelta__SWIG_8(void * jarg1, char jarg2, char jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    char *arg2 = 0 ;
    char *arg3 = 0 ;
    char temp2 ;
    char temp3 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (char)jarg2; 
    arg2 = &temp2; 
    temp3 = (char)jarg3; 
    arg3 = &temp3; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressedDelta< char >((char const &)*arg2,(char const &)*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressedDelta__SWIG_9(void * jarg1, char jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    char *arg2 = 0 ;
    char temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (char)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressedDelta< char >((char const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressedDelta__SWIG_10(void * jarg1, short jarg2, short jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    short *arg2 = 0 ;
    short *arg3 = 0 ;
    short temp2 ;
    short temp3 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (short)jarg2; 
    arg2 = &temp2; 
    temp3 = (short)jarg3; 
    arg3 = &temp3; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressedDelta< short >((short const &)*arg2,(short const &)*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressedDelta__SWIG_11(void * jarg1, short jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    short *arg2 = 0 ;
    short temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (short)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressedDelta< short >((short const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressedDelta__SWIG_12(void * jarg1, unsigned short jarg2, unsigned short jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned short *arg2 = 0 ;
    unsigned short *arg3 = 0 ;
    unsigned short temp2 ;
    unsigned short temp3 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (unsigned short)jarg2; 
    arg2 = &temp2; 
    temp3 = (unsigned short)jarg3; 
    arg3 = &temp3; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressedDelta< unsigned short >((unsigned short const &)*arg2,(unsigned short const &)*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressedDelta__SWIG_13(void * jarg1, unsigned short jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned short *arg2 = 0 ;
    unsigned short temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (unsigned short)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressedDelta< unsigned short >((unsigned short const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressedDelta__SWIG_14(void * jarg1, long jarg2, long jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    long *arg2 = 0 ;
    long *arg3 = 0 ;
    long temp2 ;
    long temp3 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (long)jarg2; 
    arg2 = &temp2; 
    temp3 = (long)jarg3; 
    arg3 = &temp3; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressedDelta< long >((long const &)*arg2,(long const &)*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressedDelta__SWIG_15(void * jarg1, long jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    long *arg2 = 0 ;
    long temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (long)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressedDelta< long >((long const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressedDelta__SWIG_16(void * jarg1, long long jarg2, long long jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    long long *arg2 = 0 ;
    long long *arg3 = 0 ;
    long long temp2 ;
    long long temp3 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (long long)jarg2; 
    arg2 = &temp2; 
    temp3 = (long long)jarg3; 
    arg3 = &temp3; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressedDelta< long long >((long long const &)*arg2,(long long const &)*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressedDelta__SWIG_17(void * jarg1, long long jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    long long *arg2 = 0 ;
    long long temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (long long)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressedDelta< long long >((long long const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressedDelta__SWIG_18(void * jarg1, float jarg2, float jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    float *arg2 = 0 ;
    float *arg3 = 0 ;
    float temp2 ;
    float temp3 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (float)jarg2; 
    arg2 = &temp2; 
    temp3 = (float)jarg3; 
    arg3 = &temp3; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressedDelta< float >((float const &)*arg2,(float const &)*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressedDelta__SWIG_19(void * jarg1, float jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    float *arg2 = 0 ;
    float temp2 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    temp2 = (float)jarg2; 
    arg2 = &temp2; 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressedDelta< float >((float const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressedDelta__SWIG_20(void * jarg1, void * jarg2, void * jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    RakNet::RakString *arg3 = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return ;
    } 
    arg3 = (RakNet::RakString *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return ;
    } 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressedDelta< RakNet::RakString >((RakNet::RakString const &)*arg2,(RakNet::RakString const &)*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressedDelta__SWIG_21(void * jarg1, void * jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return ;
    } 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressedDelta< RakNet::RakString >((RakNet::RakString const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressedDelta__SWIG_22(void * jarg1, void * jarg2, void * jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::RakNetGUID *arg2 = 0 ;
    RakNet::RakNetGUID *arg3 = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::RakNetGUID *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID const & type is null", 0);
      return ;
    } 
    arg3 = (RakNet::RakNetGUID *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID const & type is null", 0);
      return ;
    } 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressedDelta< RakNet::RakNetGUID >((RakNet::RakNetGUID const &)*arg2,(RakNet::RakNetGUID const &)*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressedDelta__SWIG_23(void * jarg1, void * jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::RakNetGUID *arg2 = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::RakNetGUID *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID const & type is null", 0);
      return ;
    } 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressedDelta< RakNet::RakNetGUID >((RakNet::RakNetGUID const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressedDelta__SWIG_24(void * jarg1, void * jarg2, void * jarg3) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::uint24_t *arg2 = 0 ;
    RakNet::uint24_t *arg3 = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::uint24_t *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t const & type is null", 0);
      return ;
    } 
    arg3 = (RakNet::uint24_t *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t const & type is null", 0);
      return ;
    } 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressedDelta< RakNet::uint24_t >((RakNet::uint24_t const &)*arg2,(RakNet::uint24_t const &)*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_BitStream_WriteCompressedDelta__SWIG_25(void * jarg1, void * jarg2) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::uint24_t *arg2 = 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::uint24_t *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t const & type is null", 0);
      return ;
    } 
    (arg1)->SWIGTEMPLATEDISAMBIGUATOR WriteCompressedDelta< RakNet::uint24_t >((RakNet::uint24_t const &)*arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_Read__SWIG_5(void * jarg1, unsigned int * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    *jarg2 = 0; 
    arg2 = (bool *)jarg2; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR Read< bool >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_Read__SWIG_6(void * jarg1, unsigned char * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (unsigned char *)jarg2; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR Read< unsigned char >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_Read__SWIG_7(void * jarg1, short * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    short *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (short *)jarg2; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR Read< short >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_Read__SWIG_8(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned short *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (unsigned short *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "unsigned short & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR Read< unsigned short >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_Read__SWIG_9(void * jarg1, long * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    long *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (long *)jarg2; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR Read< long >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_Read__SWIG_10(void * jarg1, long long * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    long long *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (long long *)jarg2; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR Read< long long >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_Read__SWIG_11(void * jarg1, float * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    float *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (float *)jarg2; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR Read< float >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_Read__SWIG_12(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR Read< RakNet::RakString >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_Read__SWIG_13(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::RakNetGUID *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::RakNetGUID *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR Read< RakNet::RakNetGUID >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_Read__SWIG_14(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::uint24_t *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::uint24_t *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR Read< RakNet::uint24_t >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadDelta__SWIG_1(void * jarg1, unsigned int * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    *jarg2 = 0; 
    arg2 = (bool *)jarg2; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadDelta< bool >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadDelta__SWIG_2(void * jarg1, unsigned char * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (unsigned char *)jarg2; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadDelta< unsigned char >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadDelta__SWIG_3(void * jarg1, short * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    short *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (short *)jarg2; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadDelta< short >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadDelta__SWIG_4(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned short *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (unsigned short *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "unsigned short & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadDelta< unsigned short >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadDelta__SWIG_5(void * jarg1, long * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    long *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (long *)jarg2; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadDelta< long >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadDelta__SWIG_6(void * jarg1, long long * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    long long *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (long long *)jarg2; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadDelta< long long >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadDelta__SWIG_7(void * jarg1, float * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    float *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (float *)jarg2; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadDelta< float >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadDelta__SWIG_8(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadDelta< RakNet::RakString >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadDelta__SWIG_9(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::RakNetGUID *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::RakNetGUID *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadDelta< RakNet::RakNetGUID >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadDelta__SWIG_10(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::uint24_t *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::uint24_t *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadDelta< RakNet::uint24_t >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadCompressed__SWIG_3(void * jarg1, unsigned int * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    *jarg2 = 0; 
    arg2 = (bool *)jarg2; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadCompressed< bool >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadCompressed__SWIG_4(void * jarg1, unsigned char * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (unsigned char *)jarg2; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadCompressed< unsigned char >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadCompressed__SWIG_5(void * jarg1, short * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    short *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (short *)jarg2; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadCompressed< short >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadCompressed__SWIG_6(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned short *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (unsigned short *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "unsigned short & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadCompressed< unsigned short >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadCompressed__SWIG_7(void * jarg1, long * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    long *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (long *)jarg2; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadCompressed< long >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadCompressed__SWIG_8(void * jarg1, long long * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    long long *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (long long *)jarg2; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadCompressed< long long >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadCompressed__SWIG_9(void * jarg1, float * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    float *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (float *)jarg2; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadCompressed< float >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadCompressed__SWIG_10(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadCompressed< RakNet::RakString >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadCompressed__SWIG_11(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::RakNetGUID *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::RakNetGUID *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadCompressed< RakNet::RakNetGUID >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadCompressed__SWIG_12(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::uint24_t *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::uint24_t *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadCompressed< RakNet::uint24_t >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadCompressedDelta__SWIG_1(void * jarg1, unsigned int * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    bool *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    *jarg2 = 0; 
    arg2 = (bool *)jarg2; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadCompressedDelta< bool >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadCompressedDelta__SWIG_2(void * jarg1, unsigned char * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned char *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (unsigned char *)jarg2; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadCompressedDelta< unsigned char >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadCompressedDelta__SWIG_3(void * jarg1, short * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    short *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (short *)jarg2; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadCompressedDelta< short >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadCompressedDelta__SWIG_4(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    unsigned short *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (unsigned short *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "unsigned short & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadCompressedDelta< unsigned short >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadCompressedDelta__SWIG_5(void * jarg1, long * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    long *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (long *)jarg2; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadCompressedDelta< long >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadCompressedDelta__SWIG_6(void * jarg1, long long * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    long long *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (long long *)jarg2; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadCompressedDelta< long long >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadCompressedDelta__SWIG_7(void * jarg1, float * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    float *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (float *)jarg2; 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadCompressedDelta< float >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadCompressedDelta__SWIG_8(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadCompressedDelta< RakNet::RakString >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadCompressedDelta__SWIG_9(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::RakNetGUID *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::RakNetGUID *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadCompressedDelta< RakNet::RakNetGUID >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitStream_ReadCompressedDelta__SWIG_10(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    RakNet::uint24_t *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    arg2 = (RakNet::uint24_t *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::uint24_t & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->SWIGTEMPLATEDISAMBIGUATOR ReadCompressedDelta< RakNet::uint24_t >(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_MAX_UNSIGNED_LONG_get() {
    unsigned int jresult ;
    unsigned int result;
    
    result = (unsigned int)(unsigned int)MAX_UNSIGNED_LONG;
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_ByteQueue() {
    void * jresult ;
    DataStructures::ByteQueue *result = 0 ;
    
    result = (DataStructures::ByteQueue *)new DataStructures::ByteQueue();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_ByteQueue(void * jarg1) {
    DataStructures::ByteQueue *arg1 = (DataStructures::ByteQueue *) 0 ;
    
    arg1 = (DataStructures::ByteQueue *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ByteQueue_GetBytesWritten(void * jarg1) {
    unsigned int jresult ;
    DataStructures::ByteQueue *arg1 = (DataStructures::ByteQueue *) 0 ;
    unsigned int result;
    
    arg1 = (DataStructures::ByteQueue *)jarg1; 
    result = (unsigned int)((DataStructures::ByteQueue const *)arg1)->GetBytesWritten();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_ByteQueue_IncrementReadOffset(void * jarg1, unsigned int jarg2) {
    DataStructures::ByteQueue *arg1 = (DataStructures::ByteQueue *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::ByteQueue *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->IncrementReadOffset(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_ByteQueue_DecrementReadOffset(void * jarg1, unsigned int jarg2) {
    DataStructures::ByteQueue *arg1 = (DataStructures::ByteQueue *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::ByteQueue *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->DecrementReadOffset(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_ByteQueue_Clear(void * jarg1, char * jarg2, unsigned int jarg3) {
    DataStructures::ByteQueue *arg1 = (DataStructures::ByteQueue *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned int arg3 ;
    
    arg1 = (DataStructures::ByteQueue *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned int)jarg3; 
    (arg1)->Clear((char const *)arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_ByteQueue_Print(void * jarg1) {
    DataStructures::ByteQueue *arg1 = (DataStructures::ByteQueue *) 0 ;
    
    arg1 = (DataStructures::ByteQueue *)jarg1; 
    (arg1)->Print();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_ByteQueue_WriteBytes(void * jarg1, unsigned char* jarg2, unsigned int jarg3, char * jarg4, unsigned int jarg5) {
    DataStructures::ByteQueue *arg1 = (DataStructures::ByteQueue *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    unsigned int arg3 ;
    char *arg4 = (char *) 0 ;
    unsigned int arg5 ;
    
    arg1 = (DataStructures::ByteQueue *)jarg1; 
    arg2 = jarg2;
    arg3 = (unsigned int)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (unsigned int)jarg5; 
    DataStructures_ByteQueue_WriteBytes(arg1,arg2,arg3,(char const *)arg4,arg5);
    
    
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ByteQueue_ReadBytes(void * jarg1, unsigned char* jarg2, unsigned int jarg3, unsigned int jarg4) {
    unsigned int jresult ;
    DataStructures::ByteQueue *arg1 = (DataStructures::ByteQueue *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    unsigned int arg3 ;
    bool arg4 ;
    bool result;
    
    arg1 = (DataStructures::ByteQueue *)jarg1; 
    arg2 = jarg2;
    arg3 = (unsigned int)jarg3; 
    arg4 = jarg4 ? true : false; 
    result = (bool)DataStructures_ByteQueue_ReadBytes(arg1,arg2,arg3,arg4);
    jresult = result; 
    
    
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_ByteQueue_PeekContiguousBytesHelper(void * jarg1, unsigned int * jarg2) {
    void * jresult ;
    DataStructures::ByteQueue *arg1 = (DataStructures::ByteQueue *) 0 ;
    unsigned int *arg2 = (unsigned int *) 0 ;
    unsigned char *result = 0 ;
    
    arg1 = (DataStructures::ByteQueue *)jarg1; 
    arg2 = (unsigned int *)jarg2; 
    result = (unsigned char *)DataStructures_ByteQueue_PeekContiguousBytesHelper((DataStructures::ByteQueue const *)arg1,arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetStatistics_valueOverLastSecond_set(void * jarg1, void * jarg2) {
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    uint64_t *arg2 ;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    arg2 = (uint64_t *)jarg2; 
    {
      size_t ii;
      uint64_t *b = (uint64_t *) arg1->valueOverLastSecond;
      for (ii = 0; ii < (size_t)RakNet::RNS_PER_SECOND_METRICS_COUNT; ii++) b[ii] = *((uint64_t *) arg2 + ii);
    }
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetStatistics_valueOverLastSecond_get(void * jarg1) {
    void * jresult ;
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    uint64_t *result = 0 ;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    result = (uint64_t *)(uint64_t *) ((arg1)->valueOverLastSecond);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetStatistics_runningTotal_set(void * jarg1, void * jarg2) {
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    uint64_t *arg2 ;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    arg2 = (uint64_t *)jarg2; 
    {
      size_t ii;
      uint64_t *b = (uint64_t *) arg1->runningTotal;
      for (ii = 0; ii < (size_t)RakNet::RNS_PER_SECOND_METRICS_COUNT; ii++) b[ii] = *((uint64_t *) arg2 + ii);
    }
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetStatistics_runningTotal_get(void * jarg1) {
    void * jresult ;
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    uint64_t *result = 0 ;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    result = (uint64_t *)(uint64_t *) ((arg1)->runningTotal);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetStatistics_connectionStartTime_set(void * jarg1, unsigned long long jarg2) {
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    RakNet::TimeUS arg2 ;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    arg2 = (RakNet::TimeUS)jarg2; 
    if (arg1) (arg1)->connectionStartTime = arg2;
  }
  
  
  SWIGEXPORT unsigned long long SWIGSTDCALL CSharp_RakNetStatistics_connectionStartTime_get(void * jarg1) {
    unsigned long long jresult ;
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    RakNet::TimeUS result;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    result = (RakNet::TimeUS) ((arg1)->connectionStartTime);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetStatistics_isLimitedByCongestionControl_set(void * jarg1, unsigned int jarg2) {
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    bool arg2 ;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    arg2 = jarg2 ? true : false; 
    if (arg1) (arg1)->isLimitedByCongestionControl = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetStatistics_isLimitedByCongestionControl_get(void * jarg1) {
    unsigned int jresult ;
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    result = (bool) ((arg1)->isLimitedByCongestionControl);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetStatistics_BPSLimitByCongestionControl_set(void * jarg1, unsigned long long jarg2) {
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    uint64_t arg2 ;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    arg2 = (uint64_t)jarg2; 
    if (arg1) (arg1)->BPSLimitByCongestionControl = arg2;
  }
  
  
  SWIGEXPORT unsigned long long SWIGSTDCALL CSharp_RakNetStatistics_BPSLimitByCongestionControl_get(void * jarg1) {
    unsigned long long jresult ;
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    uint64_t result;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    result = (uint64_t) ((arg1)->BPSLimitByCongestionControl);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetStatistics_isLimitedByOutgoingBandwidthLimit_set(void * jarg1, unsigned int jarg2) {
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    bool arg2 ;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    arg2 = jarg2 ? true : false; 
    if (arg1) (arg1)->isLimitedByOutgoingBandwidthLimit = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetStatistics_isLimitedByOutgoingBandwidthLimit_get(void * jarg1) {
    unsigned int jresult ;
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    result = (bool) ((arg1)->isLimitedByOutgoingBandwidthLimit);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetStatistics_BPSLimitByOutgoingBandwidthLimit_set(void * jarg1, unsigned long long jarg2) {
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    uint64_t arg2 ;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    arg2 = (uint64_t)jarg2; 
    if (arg1) (arg1)->BPSLimitByOutgoingBandwidthLimit = arg2;
  }
  
  
  SWIGEXPORT unsigned long long SWIGSTDCALL CSharp_RakNetStatistics_BPSLimitByOutgoingBandwidthLimit_get(void * jarg1) {
    unsigned long long jresult ;
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    uint64_t result;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    result = (uint64_t) ((arg1)->BPSLimitByOutgoingBandwidthLimit);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetStatistics_messageInSendBuffer_set(void * jarg1, void * jarg2) {
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    unsigned int *arg2 ;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    arg2 = (unsigned int *)jarg2; 
    {
      size_t ii;
      unsigned int *b = (unsigned int *) arg1->messageInSendBuffer;
      for (ii = 0; ii < (size_t)NUMBER_OF_PRIORITIES; ii++) b[ii] = *((unsigned int *) arg2 + ii);
    }
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetStatistics_messageInSendBuffer_get(void * jarg1) {
    void * jresult ;
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    unsigned int *result = 0 ;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    result = (unsigned int *)(unsigned int *) ((arg1)->messageInSendBuffer);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetStatistics_bytesInSendBuffer_set(void * jarg1, void * jarg2) {
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    double *arg2 ;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    arg2 = (double *)jarg2; 
    {
      size_t ii;
      double *b = (double *) arg1->bytesInSendBuffer;
      for (ii = 0; ii < (size_t)NUMBER_OF_PRIORITIES; ii++) b[ii] = *((double *) arg2 + ii);
    }
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetStatistics_bytesInSendBuffer_get(void * jarg1) {
    void * jresult ;
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    double *result = 0 ;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    result = (double *)(double *) ((arg1)->bytesInSendBuffer);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetStatistics_messagesInResendBuffer_set(void * jarg1, unsigned int jarg2) {
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    if (arg1) (arg1)->messagesInResendBuffer = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetStatistics_messagesInResendBuffer_get(void * jarg1) {
    unsigned int jresult ;
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    result = (unsigned int) ((arg1)->messagesInResendBuffer);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetStatistics_bytesInResendBuffer_set(void * jarg1, unsigned long long jarg2) {
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    uint64_t arg2 ;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    arg2 = (uint64_t)jarg2; 
    if (arg1) (arg1)->bytesInResendBuffer = arg2;
  }
  
  
  SWIGEXPORT unsigned long long SWIGSTDCALL CSharp_RakNetStatistics_bytesInResendBuffer_get(void * jarg1) {
    unsigned long long jresult ;
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    uint64_t result;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    result = (uint64_t) ((arg1)->bytesInResendBuffer);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetStatistics_packetlossLastSecond_set(void * jarg1, float jarg2) {
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    float arg2 ;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    arg2 = (float)jarg2; 
    if (arg1) (arg1)->packetlossLastSecond = arg2;
  }
  
  
  SWIGEXPORT float SWIGSTDCALL CSharp_RakNetStatistics_packetlossLastSecond_get(void * jarg1) {
    float jresult ;
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    float result;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    result = (float) ((arg1)->packetlossLastSecond);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetStatistics_packetlossTotal_set(void * jarg1, float jarg2) {
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    float arg2 ;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    arg2 = (float)jarg2; 
    if (arg1) (arg1)->packetlossTotal = arg2;
  }
  
  
  SWIGEXPORT float SWIGSTDCALL CSharp_RakNetStatistics_packetlossTotal_get(void * jarg1) {
    float jresult ;
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    float result;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    result = (float) ((arg1)->packetlossTotal);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetStatistics_SetBytesInSendBuffer(void * jarg1, double* jarg2, int jarg3) {
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    double *arg2 = (double *) 0 ;
    int arg3 ;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    arg2 = jarg2;
    arg3 = (int)jarg3; 
    RakNet_RakNetStatistics_SetBytesInSendBuffer(arg1,arg2,arg3);
    
    
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetStatistics_SetMessageInSendBuffer(void * jarg1, unsigned int* jarg2, int jarg3) {
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    unsigned int *arg2 = (unsigned int *) 0 ;
    int arg3 ;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    arg2 = jarg2;
    arg3 = (int)jarg3; 
    RakNet_RakNetStatistics_SetMessageInSendBuffer(arg1,arg2,arg3);
    
    
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetStatistics_SetRunningTotal(void * jarg1, unsigned long long* jarg2, int jarg3) {
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    unsigned long long *arg2 = (unsigned long long *) 0 ;
    int arg3 ;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    arg2 = jarg2;
    arg3 = (int)jarg3; 
    RakNet_RakNetStatistics_SetRunningTotal(arg1,arg2,arg3);
    
    
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetStatistics_SetValueOverLastSecond(void * jarg1, unsigned long long* jarg2, int jarg3) {
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    unsigned long long *arg2 = (unsigned long long *) 0 ;
    int arg3 ;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    arg2 = jarg2;
    arg3 = (int)jarg3; 
    RakNet_RakNetStatistics_SetValueOverLastSecond(arg1,arg2,arg3);
    
    
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetStatistics() {
    void * jresult ;
    RakNet::RakNetStatistics *result = 0 ;
    
    result = (RakNet::RakNetStatistics *)new RakNet::RakNetStatistics();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_RakNetStatistics(void * jarg1) {
    RakNet::RakNetStatistics *arg1 = (RakNet::RakNetStatistics *) 0 ;
    
    arg1 = (RakNet::RakNetStatistics *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_NetworkIDObject() {
    void * jresult ;
    RakNet::NetworkIDObject *result = 0 ;
    
    result = (RakNet::NetworkIDObject *)new SwigDirector_NetworkIDObject();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_NetworkIDObject(void * jarg1) {
    RakNet::NetworkIDObject *arg1 = (RakNet::NetworkIDObject *) 0 ;
    
    arg1 = (RakNet::NetworkIDObject *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NetworkIDObject_SetNetworkIDManagerOrig(void * jarg1, void * jarg2) {
    RakNet::NetworkIDObject *arg1 = (RakNet::NetworkIDObject *) 0 ;
    RakNet::NetworkIDManager *arg2 = (RakNet::NetworkIDManager *) 0 ;
    
    arg1 = (RakNet::NetworkIDObject *)jarg1; 
    arg2 = (RakNet::NetworkIDManager *)jarg2; 
    (arg1)->SetNetworkIDManager(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NetworkIDObject_SetNetworkIDManagerOrigSwigExplicitNetworkIDObject(void * jarg1, void * jarg2) {
    RakNet::NetworkIDObject *arg1 = (RakNet::NetworkIDObject *) 0 ;
    RakNet::NetworkIDManager *arg2 = (RakNet::NetworkIDManager *) 0 ;
    
    arg1 = (RakNet::NetworkIDObject *)jarg1; 
    arg2 = (RakNet::NetworkIDManager *)jarg2; 
    (arg1)->RakNet::NetworkIDObject::SetNetworkIDManager(arg2);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_NetworkIDObject_GetNetworkIDManager(void * jarg1) {
    void * jresult ;
    RakNet::NetworkIDObject *arg1 = (RakNet::NetworkIDObject *) 0 ;
    RakNet::NetworkIDManager *result = 0 ;
    
    arg1 = (RakNet::NetworkIDObject *)jarg1; 
    result = (RakNet::NetworkIDManager *)((RakNet::NetworkIDObject const *)arg1)->GetNetworkIDManager();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_NetworkIDObject_GetNetworkIDManagerSwigExplicitNetworkIDObject(void * jarg1) {
    void * jresult ;
    RakNet::NetworkIDObject *arg1 = (RakNet::NetworkIDObject *) 0 ;
    RakNet::NetworkIDManager *result = 0 ;
    
    arg1 = (RakNet::NetworkIDObject *)jarg1; 
    result = (RakNet::NetworkIDManager *)((RakNet::NetworkIDObject const *)arg1)->RakNet::NetworkIDObject::GetNetworkIDManager();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned long long SWIGSTDCALL CSharp_NetworkIDObject_GetNetworkID(void * jarg1) {
    unsigned long long jresult ;
    RakNet::NetworkIDObject *arg1 = (RakNet::NetworkIDObject *) 0 ;
    RakNet::NetworkID result;
    
    arg1 = (RakNet::NetworkIDObject *)jarg1; 
    result = (RakNet::NetworkID)(arg1)->GetNetworkID();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned long long SWIGSTDCALL CSharp_NetworkIDObject_GetNetworkIDSwigExplicitNetworkIDObject(void * jarg1) {
    unsigned long long jresult ;
    RakNet::NetworkIDObject *arg1 = (RakNet::NetworkIDObject *) 0 ;
    RakNet::NetworkID result;
    
    arg1 = (RakNet::NetworkIDObject *)jarg1; 
    result = (RakNet::NetworkID)(arg1)->RakNet::NetworkIDObject::GetNetworkID();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NetworkIDObject_SetNetworkID(void * jarg1, unsigned long long jarg2) {
    RakNet::NetworkIDObject *arg1 = (RakNet::NetworkIDObject *) 0 ;
    RakNet::NetworkID arg2 ;
    
    arg1 = (RakNet::NetworkIDObject *)jarg1; 
    arg2 = (RakNet::NetworkID)jarg2; 
    (arg1)->SetNetworkID(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NetworkIDObject_SetNetworkIDSwigExplicitNetworkIDObject(void * jarg1, unsigned long long jarg2) {
    RakNet::NetworkIDObject *arg1 = (RakNet::NetworkIDObject *) 0 ;
    RakNet::NetworkID arg2 ;
    
    arg1 = (RakNet::NetworkIDObject *)jarg1; 
    arg2 = (RakNet::NetworkID)jarg2; 
    (arg1)->RakNet::NetworkIDObject::SetNetworkID(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NetworkIDObject_director_connect(void *objarg, SwigDirector_NetworkIDObject::SWIG_Callback0_t callback0, SwigDirector_NetworkIDObject::SWIG_Callback1_t callback1, SwigDirector_NetworkIDObject::SWIG_Callback2_t callback2, SwigDirector_NetworkIDObject::SWIG_Callback3_t callback3) {
    RakNet::NetworkIDObject *obj = (RakNet::NetworkIDObject *)objarg;
    SwigDirector_NetworkIDObject *director = dynamic_cast<SwigDirector_NetworkIDObject *>(obj);
    if (director) {
      director->swig_connect_director(callback0, callback1, callback2, callback3);
    }
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_NETWORK_ID_MANAGER_HASH_LENGTH_get() {
    int jresult ;
    int result;
    
    result = (int)(1024);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_NetworkIDManager_GetInstance() {
    void * jresult ;
    RakNet::NetworkIDManager *result = 0 ;
    
    result = (RakNet::NetworkIDManager *)RakNet::NetworkIDManager::GetInstance();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NetworkIDManager_DestroyInstance(void * jarg1) {
    RakNet::NetworkIDManager *arg1 = (RakNet::NetworkIDManager *) 0 ;
    
    arg1 = (RakNet::NetworkIDManager *)jarg1; 
    RakNet::NetworkIDManager::DestroyInstance(arg1);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_NetworkIDManager() {
    void * jresult ;
    RakNet::NetworkIDManager *result = 0 ;
    
    result = (RakNet::NetworkIDManager *)new RakNet::NetworkIDManager();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_NetworkIDManager(void * jarg1) {
    RakNet::NetworkIDManager *arg1 = (RakNet::NetworkIDManager *) 0 ;
    
    arg1 = (RakNet::NetworkIDManager *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NetworkIDManager_Clear(void * jarg1) {
    RakNet::NetworkIDManager *arg1 = (RakNet::NetworkIDManager *) 0 ;
    
    arg1 = (RakNet::NetworkIDManager *)jarg1; 
    (arg1)->Clear();
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_NetworkIDManager_GET_BASE_OBJECT_FROM_IDORIG(void * jarg1, unsigned long long jarg2) {
    void * jresult ;
    RakNet::NetworkIDManager *arg1 = (RakNet::NetworkIDManager *) 0 ;
    RakNet::NetworkID arg2 ;
    RakNet::NetworkIDObject *result = 0 ;
    
    arg1 = (RakNet::NetworkIDManager *)jarg1; 
    arg2 = (RakNet::NetworkID)jarg2; 
    result = (RakNet::NetworkIDObject *)(arg1)->GET_BASE_OBJECT_FROM_ID(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_RAK_TIME_FORMAT_STRING_get() {
    char * jresult ;
    char *result = 0 ;
    
    result = (char *)("%llu");
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_PluginInterface2() {
    void * jresult ;
    RakNet::PluginInterface2 *result = 0 ;
    
    result = (RakNet::PluginInterface2 *)new RakNet::PluginInterface2();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_PluginInterface2(void * jarg1) {
    RakNet::PluginInterface2 *arg1 = (RakNet::PluginInterface2 *) 0 ;
    
    arg1 = (RakNet::PluginInterface2 *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_PluginInterface2_UsesReliabilityLayer(void * jarg1) {
    unsigned int jresult ;
    RakNet::PluginInterface2 *arg1 = (RakNet::PluginInterface2 *) 0 ;
    bool result;
    
    arg1 = (RakNet::PluginInterface2 *)jarg1; 
    result = (bool)((RakNet::PluginInterface2 const *)arg1)->UsesReliabilityLayer();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PluginInterface2_OnReliabilityLayerNotification(void * jarg1, char * jarg2, unsigned int jarg3, void * jarg4, unsigned int jarg5) {
    RakNet::PluginInterface2 *arg1 = (RakNet::PluginInterface2 *) 0 ;
    char *arg2 = (char *) 0 ;
    RakNet::BitSize_t arg3 ;
    RakNet::SystemAddress arg4 ;
    bool arg5 ;
    RakNet::SystemAddress *argp4 ;
    
    arg1 = (RakNet::PluginInterface2 *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (RakNet::BitSize_t)jarg3; 
    argp4 = (RakNet::SystemAddress *)jarg4; 
    if (!argp4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg4 = *argp4; 
    arg5 = jarg5 ? true : false; 
    (arg1)->OnReliabilityLayerNotification((char const *)arg2,arg3,arg4,arg5);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_PluginInterface2_GetRakPeerInterface(void * jarg1) {
    void * jresult ;
    RakNet::PluginInterface2 *arg1 = (RakNet::PluginInterface2 *) 0 ;
    RakNet::RakPeerInterface *result = 0 ;
    
    arg1 = (RakNet::PluginInterface2 *)jarg1; 
    result = (RakNet::RakPeerInterface *)((RakNet::PluginInterface2 const *)arg1)->GetRakPeerInterface();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_PluginInterface2_GetMyGUIDUnified(void * jarg1) {
    void * jresult ;
    RakNet::PluginInterface2 *arg1 = (RakNet::PluginInterface2 *) 0 ;
    RakNet::RakNetGUID result;
    
    arg1 = (RakNet::PluginInterface2 *)jarg1; 
    result = ((RakNet::PluginInterface2 const *)arg1)->GetMyGUIDUnified();
    jresult = new RakNet::RakNetGUID((const RakNet::RakNetGUID &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PluginInterface2_SetTCPInterface(void * jarg1, void * jarg2) {
    RakNet::PluginInterface2 *arg1 = (RakNet::PluginInterface2 *) 0 ;
    RakNet::TCPInterface *arg2 = (RakNet::TCPInterface *) 0 ;
    
    arg1 = (RakNet::PluginInterface2 *)jarg1; 
    arg2 = (RakNet::TCPInterface *)jarg2; 
    (arg1)->SetTCPInterface(arg2);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeerInterface_GetInstance() {
    void * jresult ;
    RakNet::RakPeerInterface *result = 0 ;
    
    result = (RakNet::RakPeerInterface *)RakNet::RakPeerInterface::GetInstance();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_DestroyInstance(void * jarg1) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    RakNet::RakPeerInterface::DestroyInstance(arg1);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_RakPeerInterface(void * jarg1) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeerInterface_Startup__SWIG_0(void * jarg1, unsigned int jarg2, void * jarg3, unsigned int jarg4, int jarg5) {
    int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    unsigned int arg2 ;
    RakNet::SocketDescriptor *arg3 = (RakNet::SocketDescriptor *) 0 ;
    unsigned int arg4 ;
    int arg5 ;
    RakNet::StartupResult result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (RakNet::SocketDescriptor *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    arg5 = (int)jarg5; 
    result = (RakNet::StartupResult)(arg1)->Startup(arg2,arg3,arg4,arg5);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeerInterface_Startup__SWIG_1(void * jarg1, unsigned int jarg2, void * jarg3, unsigned int jarg4) {
    int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    unsigned int arg2 ;
    RakNet::SocketDescriptor *arg3 = (RakNet::SocketDescriptor *) 0 ;
    unsigned int arg4 ;
    RakNet::StartupResult result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (RakNet::SocketDescriptor *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    result = (RakNet::StartupResult)(arg1)->Startup(arg2,arg3,arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_InitializeSecurity__SWIG_0(void * jarg1, char * jarg2, char * jarg3, unsigned int jarg4) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    char *arg3 = (char *) 0 ;
    bool arg4 ;
    bool result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = jarg4 ? true : false; 
    result = (bool)(arg1)->InitializeSecurity((char const *)arg2,(char const *)arg3,arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_InitializeSecurity__SWIG_1(void * jarg1, char * jarg2, char * jarg3) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    char *arg3 = (char *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (char *)jarg3; 
    result = (bool)(arg1)->InitializeSecurity((char const *)arg2,(char const *)arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_DisableSecurity(void * jarg1) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    (arg1)->DisableSecurity();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_AddToSecurityExceptionList(void * jarg1, char * jarg2) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->AddToSecurityExceptionList((char const *)arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_RemoveFromSecurityExceptionList(void * jarg1, char * jarg2) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->RemoveFromSecurityExceptionList((char const *)arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_IsInSecurityExceptionList(void * jarg1, char * jarg2) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    result = (bool)(arg1)->IsInSecurityExceptionList((char const *)arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_SetMaximumIncomingConnections(void * jarg1, unsigned short jarg2) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    unsigned short arg2 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (unsigned short)jarg2; 
    (arg1)->SetMaximumIncomingConnections(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_GetMaximumIncomingConnections(void * jarg1) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    result = (unsigned int)((RakNet::RakPeerInterface const *)arg1)->GetMaximumIncomingConnections();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned short SWIGSTDCALL CSharp_RakPeerInterface_NumberOfConnections(void * jarg1) {
    unsigned short jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    unsigned short result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    result = (unsigned short)((RakNet::RakPeerInterface const *)arg1)->NumberOfConnections();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_SetIncomingPassword__SWIG_0(void * jarg1, char * jarg2, int jarg3) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    int arg3 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (int)jarg3; 
    (arg1)->SetIncomingPassword((char const *)arg2,arg3);
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeerInterface_Connect__SWIG_0(void * jarg1, char * jarg2, unsigned short jarg3, char * jarg4, int jarg5, void * jarg6, unsigned int jarg7, unsigned int jarg8, unsigned int jarg9, unsigned int jarg10) {
    int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    char *arg4 = (char *) 0 ;
    int arg5 ;
    RakNet::PublicKey *arg6 = (RakNet::PublicKey *) 0 ;
    unsigned int arg7 ;
    unsigned int arg8 ;
    unsigned int arg9 ;
    RakNet::TimeMS arg10 ;
    RakNet::ConnectionAttemptResult result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (int)jarg5; 
    arg6 = (RakNet::PublicKey *)jarg6; 
    arg7 = (unsigned int)jarg7; 
    arg8 = (unsigned int)jarg8; 
    arg9 = (unsigned int)jarg9; 
    arg10 = (RakNet::TimeMS)jarg10; 
    result = (RakNet::ConnectionAttemptResult)(arg1)->Connect((char const *)arg2,arg3,(char const *)arg4,arg5,arg6,arg7,arg8,arg9,arg10);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeerInterface_Connect__SWIG_1(void * jarg1, char * jarg2, unsigned short jarg3, char * jarg4, int jarg5, void * jarg6, unsigned int jarg7, unsigned int jarg8, unsigned int jarg9) {
    int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    char *arg4 = (char *) 0 ;
    int arg5 ;
    RakNet::PublicKey *arg6 = (RakNet::PublicKey *) 0 ;
    unsigned int arg7 ;
    unsigned int arg8 ;
    unsigned int arg9 ;
    RakNet::ConnectionAttemptResult result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (int)jarg5; 
    arg6 = (RakNet::PublicKey *)jarg6; 
    arg7 = (unsigned int)jarg7; 
    arg8 = (unsigned int)jarg8; 
    arg9 = (unsigned int)jarg9; 
    result = (RakNet::ConnectionAttemptResult)(arg1)->Connect((char const *)arg2,arg3,(char const *)arg4,arg5,arg6,arg7,arg8,arg9);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeerInterface_Connect__SWIG_2(void * jarg1, char * jarg2, unsigned short jarg3, char * jarg4, int jarg5, void * jarg6, unsigned int jarg7, unsigned int jarg8) {
    int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    char *arg4 = (char *) 0 ;
    int arg5 ;
    RakNet::PublicKey *arg6 = (RakNet::PublicKey *) 0 ;
    unsigned int arg7 ;
    unsigned int arg8 ;
    RakNet::ConnectionAttemptResult result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (int)jarg5; 
    arg6 = (RakNet::PublicKey *)jarg6; 
    arg7 = (unsigned int)jarg7; 
    arg8 = (unsigned int)jarg8; 
    result = (RakNet::ConnectionAttemptResult)(arg1)->Connect((char const *)arg2,arg3,(char const *)arg4,arg5,arg6,arg7,arg8);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeerInterface_Connect__SWIG_3(void * jarg1, char * jarg2, unsigned short jarg3, char * jarg4, int jarg5, void * jarg6, unsigned int jarg7) {
    int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    char *arg4 = (char *) 0 ;
    int arg5 ;
    RakNet::PublicKey *arg6 = (RakNet::PublicKey *) 0 ;
    unsigned int arg7 ;
    RakNet::ConnectionAttemptResult result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (int)jarg5; 
    arg6 = (RakNet::PublicKey *)jarg6; 
    arg7 = (unsigned int)jarg7; 
    result = (RakNet::ConnectionAttemptResult)(arg1)->Connect((char const *)arg2,arg3,(char const *)arg4,arg5,arg6,arg7);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeerInterface_Connect__SWIG_4(void * jarg1, char * jarg2, unsigned short jarg3, char * jarg4, int jarg5, void * jarg6) {
    int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    char *arg4 = (char *) 0 ;
    int arg5 ;
    RakNet::PublicKey *arg6 = (RakNet::PublicKey *) 0 ;
    RakNet::ConnectionAttemptResult result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (int)jarg5; 
    arg6 = (RakNet::PublicKey *)jarg6; 
    result = (RakNet::ConnectionAttemptResult)(arg1)->Connect((char const *)arg2,arg3,(char const *)arg4,arg5,arg6);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeerInterface_Connect__SWIG_5(void * jarg1, char * jarg2, unsigned short jarg3, char * jarg4, int jarg5) {
    int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    char *arg4 = (char *) 0 ;
    int arg5 ;
    RakNet::ConnectionAttemptResult result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (int)jarg5; 
    result = (RakNet::ConnectionAttemptResult)(arg1)->Connect((char const *)arg2,arg3,(char const *)arg4,arg5);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_Shutdown__SWIG_0(void * jarg1, unsigned int jarg2, unsigned char jarg3, int jarg4) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    unsigned int arg2 ;
    unsigned char arg3 ;
    PacketPriority arg4 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (unsigned char)jarg3; 
    arg4 = (PacketPriority)jarg4; 
    (arg1)->Shutdown(arg2,arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_Shutdown__SWIG_1(void * jarg1, unsigned int jarg2, unsigned char jarg3) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    unsigned int arg2 ;
    unsigned char arg3 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (unsigned char)jarg3; 
    (arg1)->Shutdown(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_Shutdown__SWIG_2(void * jarg1, unsigned int jarg2) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->Shutdown(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_IsActive(void * jarg1) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    result = (bool)((RakNet::RakPeerInterface const *)arg1)->IsActive();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_GetNextSendReceipt(void * jarg1) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    uint32_t result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    result = (uint32_t)(arg1)->GetNextSendReceipt();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_IncrementNextSendReceipt(void * jarg1) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    uint32_t result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    result = (uint32_t)(arg1)->IncrementNextSendReceipt();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_Send__SWIG_0(void * jarg1, char * jarg2, int jarg3, int jarg4, int jarg5, char jarg6, void * jarg7, unsigned int jarg8, unsigned int jarg9) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    int arg3 ;
    PacketPriority arg4 ;
    PacketReliability arg5 ;
    char arg6 ;
    RakNet::AddressOrGUID arg7 ;
    bool arg8 ;
    uint32_t arg9 ;
    RakNet::AddressOrGUID const *argp7 ;
    uint32_t result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (int)jarg3; 
    arg4 = (PacketPriority)jarg4; 
    arg5 = (PacketReliability)jarg5; 
    arg6 = (char)jarg6; 
    argp7 = (RakNet::AddressOrGUID *)jarg7; 
    if (!argp7) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID const", 0);
      return 0;
    }
    arg7 = *argp7; 
    arg8 = jarg8 ? true : false; 
    arg9 = (uint32_t)jarg9; 
    result = (uint32_t)(arg1)->Send((char const *)arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_Send__SWIG_1(void * jarg1, char * jarg2, int jarg3, int jarg4, int jarg5, char jarg6, void * jarg7, unsigned int jarg8) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    int arg3 ;
    PacketPriority arg4 ;
    PacketReliability arg5 ;
    char arg6 ;
    RakNet::AddressOrGUID arg7 ;
    bool arg8 ;
    RakNet::AddressOrGUID const *argp7 ;
    uint32_t result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (int)jarg3; 
    arg4 = (PacketPriority)jarg4; 
    arg5 = (PacketReliability)jarg5; 
    arg6 = (char)jarg6; 
    argp7 = (RakNet::AddressOrGUID *)jarg7; 
    if (!argp7) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID const", 0);
      return 0;
    }
    arg7 = *argp7; 
    arg8 = jarg8 ? true : false; 
    result = (uint32_t)(arg1)->Send((char const *)arg2,arg3,arg4,arg5,arg6,arg7,arg8);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_SendLoopback__SWIG_0(void * jarg1, char * jarg2, int jarg3) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    int arg3 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (int)jarg3; 
    (arg1)->SendLoopback((char const *)arg2,arg3);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_Send__SWIG_2(void * jarg1, void * jarg2, int jarg3, int jarg4, char jarg5, void * jarg6, unsigned int jarg7, unsigned int jarg8) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    PacketPriority arg3 ;
    PacketReliability arg4 ;
    char arg5 ;
    RakNet::AddressOrGUID arg6 ;
    bool arg7 ;
    uint32_t arg8 ;
    RakNet::AddressOrGUID const *argp6 ;
    uint32_t result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    arg3 = (PacketPriority)jarg3; 
    arg4 = (PacketReliability)jarg4; 
    arg5 = (char)jarg5; 
    argp6 = (RakNet::AddressOrGUID *)jarg6; 
    if (!argp6) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID const", 0);
      return 0;
    }
    arg6 = *argp6; 
    arg7 = jarg7 ? true : false; 
    arg8 = (uint32_t)jarg8; 
    result = (uint32_t)(arg1)->Send((RakNet::BitStream const *)arg2,arg3,arg4,arg5,arg6,arg7,arg8);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_Send__SWIG_3(void * jarg1, void * jarg2, int jarg3, int jarg4, char jarg5, void * jarg6, unsigned int jarg7) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    PacketPriority arg3 ;
    PacketReliability arg4 ;
    char arg5 ;
    RakNet::AddressOrGUID arg6 ;
    bool arg7 ;
    RakNet::AddressOrGUID const *argp6 ;
    uint32_t result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    arg3 = (PacketPriority)jarg3; 
    arg4 = (PacketReliability)jarg4; 
    arg5 = (char)jarg5; 
    argp6 = (RakNet::AddressOrGUID *)jarg6; 
    if (!argp6) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID const", 0);
      return 0;
    }
    arg6 = *argp6; 
    arg7 = jarg7 ? true : false; 
    result = (uint32_t)(arg1)->Send((RakNet::BitStream const *)arg2,arg3,arg4,arg5,arg6,arg7);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeerInterface_Receive(void * jarg1) {
    void * jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::Packet *result = 0 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    result = (RakNet::Packet *)(arg1)->Receive();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_DeallocatePacket(void * jarg1, void * jarg2) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::Packet *arg2 = (RakNet::Packet *) 0 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (RakNet::Packet *)jarg2; 
    (arg1)->DeallocatePacket(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_GetMaximumNumberOfPeers(void * jarg1) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    result = (unsigned int)((RakNet::RakPeerInterface const *)arg1)->GetMaximumNumberOfPeers();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_CloseConnection__SWIG_0(void * jarg1, void * jarg2, unsigned int jarg3, unsigned char jarg4, int jarg5) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::AddressOrGUID arg2 ;
    bool arg3 ;
    unsigned char arg4 ;
    PacketPriority arg5 ;
    RakNet::AddressOrGUID const *argp2 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    argp2 = (RakNet::AddressOrGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID const", 0);
      return ;
    }
    arg2 = *argp2; 
    arg3 = jarg3 ? true : false; 
    arg4 = (unsigned char)jarg4; 
    arg5 = (PacketPriority)jarg5; 
    (arg1)->CloseConnection(arg2,arg3,arg4,arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_CloseConnection__SWIG_1(void * jarg1, void * jarg2, unsigned int jarg3, unsigned char jarg4) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::AddressOrGUID arg2 ;
    bool arg3 ;
    unsigned char arg4 ;
    RakNet::AddressOrGUID const *argp2 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    argp2 = (RakNet::AddressOrGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID const", 0);
      return ;
    }
    arg2 = *argp2; 
    arg3 = jarg3 ? true : false; 
    arg4 = (unsigned char)jarg4; 
    (arg1)->CloseConnection(arg2,arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_CloseConnection__SWIG_2(void * jarg1, void * jarg2, unsigned int jarg3) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::AddressOrGUID arg2 ;
    bool arg3 ;
    RakNet::AddressOrGUID const *argp2 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    argp2 = (RakNet::AddressOrGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID const", 0);
      return ;
    }
    arg2 = *argp2; 
    arg3 = jarg3 ? true : false; 
    (arg1)->CloseConnection(arg2,arg3);
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeerInterface_GetConnectionState(void * jarg1, void * jarg2) {
    int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::AddressOrGUID arg2 ;
    RakNet::AddressOrGUID const *argp2 ;
    RakNet::ConnectionState result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    argp2 = (RakNet::AddressOrGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID const", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = (RakNet::ConnectionState)(arg1)->GetConnectionState(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_CancelConnectionAttempt(void * jarg1, void * jarg2) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress const *argp2 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return ;
    }
    arg2 = *argp2; 
    (arg1)->CancelConnectionAttempt(arg2);
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeerInterface_GetIndexFromSystemAddress(void * jarg1, void * jarg2) {
    int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress const *argp2 ;
    int result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = (int)((RakNet::RakPeerInterface const *)arg1)->GetIndexFromSystemAddress(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeerInterface_GetSystemAddressFromIndex(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    unsigned int arg2 ;
    RakNet::SystemAddress result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (arg1)->GetSystemAddressFromIndex(arg2);
    jresult = new RakNet::SystemAddress((const RakNet::SystemAddress &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeerInterface_GetGUIDFromIndex(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    unsigned int arg2 ;
    RakNet::RakNetGUID result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (arg1)->GetGUIDFromIndex(arg2);
    jresult = new RakNet::RakNetGUID((const RakNet::RakNetGUID &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_GetSystemList(void * jarg1, void * jarg2, void * jarg3) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    DataStructures::List< RakNet::SystemAddress > *arg2 = 0 ;
    DataStructures::List< RakNet::RakNetGUID > *arg3 = 0 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (DataStructures::List< RakNet::SystemAddress > *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< RakNet::SystemAddress > & type is null", 0);
      return ;
    } 
    arg3 = (DataStructures::List< RakNet::RakNetGUID > *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< RakNet::RakNetGUID > & type is null", 0);
      return ;
    } 
    ((RakNet::RakPeerInterface const *)arg1)->GetSystemList(*arg2,*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_AddToBanList__SWIG_0(void * jarg1, char * jarg2, unsigned int jarg3) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    RakNet::TimeMS arg3 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (RakNet::TimeMS)jarg3; 
    (arg1)->AddToBanList((char const *)arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_AddToBanList__SWIG_1(void * jarg1, char * jarg2) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->AddToBanList((char const *)arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_RemoveFromBanList(void * jarg1, char * jarg2) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->RemoveFromBanList((char const *)arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_ClearBanList(void * jarg1) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    (arg1)->ClearBanList();
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_IsBanned(void * jarg1, char * jarg2) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    result = (bool)(arg1)->IsBanned((char const *)arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_SetLimitIPConnectionFrequency(void * jarg1, unsigned int jarg2) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    bool arg2 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = jarg2 ? true : false; 
    (arg1)->SetLimitIPConnectionFrequency(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_Ping__SWIG_0(void * jarg1, void * jarg2) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress const *argp2 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return ;
    }
    arg2 = *argp2; 
    (arg1)->Ping(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_Ping__SWIG_1(void * jarg1, char * jarg2, unsigned short jarg3, unsigned int jarg4, unsigned int jarg5) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    bool arg4 ;
    unsigned int arg5 ;
    bool result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = jarg4 ? true : false; 
    arg5 = (unsigned int)jarg5; 
    result = (bool)(arg1)->Ping((char const *)arg2,arg3,arg4,arg5);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_Ping__SWIG_2(void * jarg1, char * jarg2, unsigned short jarg3, unsigned int jarg4) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    bool arg4 ;
    bool result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = jarg4 ? true : false; 
    result = (bool)(arg1)->Ping((char const *)arg2,arg3,arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeerInterface_GetAveragePing(void * jarg1, void * jarg2) {
    int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::AddressOrGUID arg2 ;
    RakNet::AddressOrGUID const *argp2 ;
    int result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    argp2 = (RakNet::AddressOrGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID const", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = (int)(arg1)->GetAveragePing(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeerInterface_GetLastPing(void * jarg1, void * jarg2) {
    int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::AddressOrGUID arg2 ;
    RakNet::AddressOrGUID const *argp2 ;
    int result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    argp2 = (RakNet::AddressOrGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID const", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = (int)((RakNet::RakPeerInterface const *)arg1)->GetLastPing(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeerInterface_GetLowestPing(void * jarg1, void * jarg2) {
    int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::AddressOrGUID arg2 ;
    RakNet::AddressOrGUID const *argp2 ;
    int result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    argp2 = (RakNet::AddressOrGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID const", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = (int)((RakNet::RakPeerInterface const *)arg1)->GetLowestPing(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_SetOccasionalPing(void * jarg1, unsigned int jarg2) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    bool arg2 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = jarg2 ? true : false; 
    (arg1)->SetOccasionalPing(arg2);
  }
  
  
  SWIGEXPORT unsigned long long SWIGSTDCALL CSharp_RakPeerInterface_GetClockDifferential(void * jarg1, void * jarg2) {
    unsigned long long jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::AddressOrGUID arg2 ;
    RakNet::AddressOrGUID const *argp2 ;
    RakNet::Time result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    argp2 = (RakNet::AddressOrGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID const", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = (RakNet::Time)(arg1)->GetClockDifferential(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_SetOfflinePingResponse__SWIG_0(void * jarg1, char * jarg2, unsigned int jarg3) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned int arg3 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned int)jarg3; 
    (arg1)->SetOfflinePingResponse((char const *)arg2,arg3);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeerInterface_GetInternalID__SWIG_0(void * jarg1, void * jarg2, int jarg3) {
    void * jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::SystemAddress arg2 ;
    int arg3 ;
    RakNet::SystemAddress const *argp2 ;
    RakNet::SystemAddress result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return 0;
    }
    arg2 = *argp2; 
    arg3 = (int)jarg3; 
    result = ((RakNet::RakPeerInterface const *)arg1)->GetInternalID(arg2,arg3);
    jresult = new RakNet::SystemAddress((const RakNet::SystemAddress &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeerInterface_GetInternalID__SWIG_1(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress const *argp2 ;
    RakNet::SystemAddress result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = ((RakNet::RakPeerInterface const *)arg1)->GetInternalID(arg2);
    jresult = new RakNet::SystemAddress((const RakNet::SystemAddress &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeerInterface_GetInternalID__SWIG_2(void * jarg1) {
    void * jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::SystemAddress result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    result = ((RakNet::RakPeerInterface const *)arg1)->GetInternalID();
    jresult = new RakNet::SystemAddress((const RakNet::SystemAddress &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_SetInternalID__SWIG_0(void * jarg1, void * jarg2, int jarg3) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::SystemAddress arg2 ;
    int arg3 ;
    RakNet::SystemAddress *argp2 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg2 = *argp2; 
    arg3 = (int)jarg3; 
    (arg1)->SetInternalID(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_SetInternalID__SWIG_1(void * jarg1, void * jarg2) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress *argp2 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg2 = *argp2; 
    (arg1)->SetInternalID(arg2);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeerInterface_GetExternalID(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress const *argp2 ;
    RakNet::SystemAddress result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = ((RakNet::RakPeerInterface const *)arg1)->GetExternalID(arg2);
    jresult = new RakNet::SystemAddress((const RakNet::SystemAddress &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeerInterface_GetMyGUID(void * jarg1) {
    void * jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::RakNetGUID result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    result = ((RakNet::RakPeerInterface const *)arg1)->GetMyGUID();
    jresult = new RakNet::RakNetGUID((const RakNet::RakNetGUID &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeerInterface_GetMyBoundAddress__SWIG_0(void * jarg1, int jarg2) {
    void * jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    int arg2 ;
    RakNet::SystemAddress result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (int)jarg2; 
    result = (arg1)->GetMyBoundAddress(arg2);
    jresult = new RakNet::SystemAddress((const RakNet::SystemAddress &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeerInterface_GetMyBoundAddress__SWIG_1(void * jarg1) {
    void * jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::SystemAddress result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    result = (arg1)->GetMyBoundAddress();
    jresult = new RakNet::SystemAddress((const RakNet::SystemAddress &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned long long SWIGSTDCALL CSharp_RakPeerInterface_Get64BitUniqueRandomNumber() {
    unsigned long long jresult ;
    uint64_t result;
    
    result = (uint64_t)RakNet::RakPeerInterface::Get64BitUniqueRandomNumber();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeerInterface_GetGuidFromSystemAddress(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress const *argp2 ;
    RakNet::RakNetGUID *result = 0 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = (RakNet::RakNetGUID *) &((RakNet::RakPeerInterface const *)arg1)->GetGuidFromSystemAddress(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeerInterface_GetSystemAddressFromGuid(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::RakNetGUID arg2 ;
    RakNet::RakNetGUID const *argp2 ;
    RakNet::SystemAddress result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    argp2 = (RakNet::RakNetGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID const", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = ((RakNet::RakPeerInterface const *)arg1)->GetSystemAddressFromGuid(arg2);
    jresult = new RakNet::SystemAddress((const RakNet::SystemAddress &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_GetClientPublicKeyFromSystemAddress(void * jarg1, void * jarg2, char * jarg3) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::SystemAddress arg2 ;
    char *arg3 = (char *) 0 ;
    RakNet::SystemAddress const *argp2 ;
    bool result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return 0;
    }
    arg2 = *argp2; 
    arg3 = (char *)jarg3; 
    result = (bool)((RakNet::RakPeerInterface const *)arg1)->GetClientPublicKeyFromSystemAddress(arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_SetTimeoutTime(void * jarg1, unsigned int jarg2, void * jarg3) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::TimeMS arg2 ;
    RakNet::SystemAddress arg3 ;
    RakNet::SystemAddress const *argp3 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (RakNet::TimeMS)jarg2; 
    argp3 = (RakNet::SystemAddress *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return ;
    }
    arg3 = *argp3; 
    (arg1)->SetTimeoutTime(arg2,arg3);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_GetTimeoutTime(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress const *argp2 ;
    RakNet::TimeMS result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = (RakNet::TimeMS)(arg1)->GetTimeoutTime(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeerInterface_GetMTUSize(void * jarg1, void * jarg2) {
    int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress const *argp2 ;
    int result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = (int)((RakNet::RakPeerInterface const *)arg1)->GetMTUSize(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_GetNumberOfAddresses(void * jarg1) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    result = (unsigned int)(arg1)->GetNumberOfAddresses();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_RakPeerInterface_GetLocalIP(void * jarg1, unsigned int jarg2) {
    char * jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    unsigned int arg2 ;
    char *result = 0 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (char *)(arg1)->GetLocalIP(arg2);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_IsLocalIP(void * jarg1, char * jarg2) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    result = (bool)(arg1)->IsLocalIP((char const *)arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_AllowConnectionResponseIPMigration(void * jarg1, unsigned int jarg2) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    bool arg2 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = jarg2 ? true : false; 
    (arg1)->AllowConnectionResponseIPMigration(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_AdvertiseSystem__SWIG_0(void * jarg1, char * jarg2, unsigned short jarg3, char * jarg4, int jarg5, unsigned int jarg6) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    char *arg4 = (char *) 0 ;
    int arg5 ;
    unsigned int arg6 ;
    bool result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (int)jarg5; 
    arg6 = (unsigned int)jarg6; 
    result = (bool)(arg1)->AdvertiseSystem((char const *)arg2,arg3,(char const *)arg4,arg5,arg6);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_AdvertiseSystem__SWIG_1(void * jarg1, char * jarg2, unsigned short jarg3, char * jarg4, int jarg5) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    char *arg4 = (char *) 0 ;
    int arg5 ;
    bool result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (int)jarg5; 
    result = (bool)(arg1)->AdvertiseSystem((char const *)arg2,arg3,(char const *)arg4,arg5);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_SetSplitMessageProgressInterval(void * jarg1, int jarg2) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    int arg2 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (int)jarg2; 
    (arg1)->SetSplitMessageProgressInterval(arg2);
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeerInterface_GetSplitMessageProgressInterval(void * jarg1) {
    int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    int result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    result = (int)((RakNet::RakPeerInterface const *)arg1)->GetSplitMessageProgressInterval();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_SetUnreliableTimeout(void * jarg1, unsigned int jarg2) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::TimeMS arg2 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (RakNet::TimeMS)jarg2; 
    (arg1)->SetUnreliableTimeout(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_SendTTL__SWIG_0(void * jarg1, char * jarg2, unsigned short jarg3, int jarg4, unsigned int jarg5) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    int arg4 ;
    unsigned int arg5 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (int)jarg4; 
    arg5 = (unsigned int)jarg5; 
    (arg1)->SendTTL((char const *)arg2,arg3,arg4,arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_SendTTL__SWIG_1(void * jarg1, char * jarg2, unsigned short jarg3, int jarg4) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    int arg4 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (int)jarg4; 
    (arg1)->SendTTL((char const *)arg2,arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_AttachPlugin(void * jarg1, void * jarg2) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::PluginInterface2 *arg2 = (RakNet::PluginInterface2 *) 0 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (RakNet::PluginInterface2 *)jarg2; 
    (arg1)->AttachPlugin(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_DetachPlugin(void * jarg1, void * jarg2) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::PluginInterface2 *arg2 = (RakNet::PluginInterface2 *) 0 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (RakNet::PluginInterface2 *)jarg2; 
    (arg1)->DetachPlugin(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_PushBackPacket(void * jarg1, void * jarg2, unsigned int jarg3) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::Packet *arg2 = (RakNet::Packet *) 0 ;
    bool arg3 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (RakNet::Packet *)jarg2; 
    arg3 = jarg3 ? true : false; 
    (arg1)->PushBackPacket(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_ChangeSystemAddress(void * jarg1, void * jarg2, void * jarg3) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::RakNetGUID arg2 ;
    RakNet::SystemAddress *arg3 = 0 ;
    RakNet::RakNetGUID *argp2 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    argp2 = (RakNet::RakNetGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return ;
    }
    arg2 = *argp2; 
    arg3 = (RakNet::SystemAddress *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return ;
    } 
    (arg1)->ChangeSystemAddress(arg2,(RakNet::SystemAddress const &)*arg3);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeerInterface_AllocatePacket(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    unsigned int arg2 ;
    RakNet::Packet *result = 0 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (RakNet::Packet *)(arg1)->AllocatePacket(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_GetSockets(void * jarg1, void * jarg2) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    DataStructures::List< RakNetSocket2 * > *arg2 = 0 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (DataStructures::List< RakNetSocket2 * > *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< RakNetSocket2 * > & type is null", 0);
      return ;
    } 
    (arg1)->GetSockets(*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_WriteOutOfBandHeader(void * jarg1, void * jarg2) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    (arg1)->WriteOutOfBandHeader(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_ApplyNetworkSimulator(void * jarg1, float jarg2, unsigned short jarg3, unsigned short jarg4) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    float arg2 ;
    unsigned short arg3 ;
    unsigned short arg4 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (float)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (unsigned short)jarg4; 
    (arg1)->ApplyNetworkSimulator(arg2,arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_SetPerConnectionOutgoingBandwidthLimit(void * jarg1, unsigned int jarg2) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->SetPerConnectionOutgoingBandwidthLimit(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_IsNetworkSimulatorActive(void * jarg1) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    result = (bool)(arg1)->IsNetworkSimulatorActive();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeerInterface_GetStatistics__SWIG_0(void * jarg1, void * jarg2, void * jarg3) {
    void * jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::RakNetStatistics *arg3 = (RakNet::RakNetStatistics *) 0 ;
    RakNet::SystemAddress const *argp2 ;
    RakNet::RakNetStatistics *result = 0 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return 0;
    }
    arg2 = *argp2; 
    arg3 = (RakNet::RakNetStatistics *)jarg3; 
    result = (RakNet::RakNetStatistics *)(arg1)->GetStatistics(arg2,arg3);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeerInterface_GetStatistics__SWIG_1(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress const *argp2 ;
    RakNet::RakNetStatistics *result = 0 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = (RakNet::RakNetStatistics *)(arg1)->GetStatistics(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_GetStatistics__SWIG_2(void * jarg1, unsigned int jarg2, void * jarg3) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    unsigned int arg2 ;
    RakNet::RakNetStatistics *arg3 = (RakNet::RakNetStatistics *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (RakNet::RakNetStatistics *)jarg3; 
    result = (bool)(arg1)->GetStatistics(arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_GetReceiveBufferSize(void * jarg1) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    result = (unsigned int)(arg1)->GetReceiveBufferSize();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_RunUpdateCycle(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::BitStream *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::BitStream & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->RunUpdateCycle(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_SendOutOfBand__SWIG_0(void * jarg1, char * jarg2, unsigned short jarg3, char * jarg4, unsigned int jarg5, unsigned int jarg6) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    char *arg4 = (char *) 0 ;
    RakNet::BitSize_t arg5 ;
    unsigned int arg6 ;
    bool result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (RakNet::BitSize_t)jarg5; 
    arg6 = (unsigned int)jarg6; 
    result = (bool)(arg1)->SendOutOfBand((char const *)arg2,arg3,(char const *)arg4,arg5,arg6);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_SendOutOfBand__SWIG_1(void * jarg1, char * jarg2, unsigned short jarg3, char * jarg4, unsigned int jarg5) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    char *arg4 = (char *) 0 ;
    RakNet::BitSize_t arg5 ;
    bool result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (RakNet::BitSize_t)jarg5; 
    result = (bool)(arg1)->SendOutOfBand((char const *)arg2,arg3,(char const *)arg4,arg5);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_Send__SWIG_4(void * jarg1, unsigned char* jarg2, int jarg3, int jarg4, int jarg5, char jarg6, void * jarg7, unsigned int jarg8) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    int arg3 ;
    PacketPriority arg4 ;
    PacketReliability arg5 ;
    char arg6 ;
    RakNet::AddressOrGUID arg7 ;
    bool arg8 ;
    RakNet::AddressOrGUID const *argp7 ;
    uint32_t result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = jarg2;
    arg3 = (int)jarg3; 
    arg4 = (PacketPriority)jarg4; 
    arg5 = (PacketReliability)jarg5; 
    arg6 = (char)jarg6; 
    argp7 = (RakNet::AddressOrGUID *)jarg7; 
    if (!argp7) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID const", 0);
      return 0;
    }
    arg7 = *argp7; 
    arg8 = jarg8 ? true : false; 
    result = (uint32_t)RakNet_RakPeerInterface_Send__SWIG_4(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);
    jresult = result; 
    
    
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_SendLoopback__SWIG_1(void * jarg1, unsigned char* jarg2, int jarg3) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    int arg3 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = jarg2;
    arg3 = (int)jarg3; 
    RakNet_RakPeerInterface_SendLoopback__SWIG_1(arg1,arg2,arg3);
    
    
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_SetOfflinePingResponse__SWIG_1(void * jarg1, unsigned char* jarg2, unsigned int jarg3) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    unsigned int arg3 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = jarg2;
    arg3 = (unsigned int)jarg3; 
    RakNet_RakPeerInterface_SetOfflinePingResponse__SWIG_1(arg1,arg2,arg3);
    
    
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_AdvertiseSystem__SWIG_2(void * jarg1, char * jarg2, unsigned short jarg3, unsigned char* jarg4, int jarg5, unsigned int jarg6) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    unsigned char *arg4 = (unsigned char *) 0 ;
    int arg5 ;
    unsigned int arg6 ;
    bool result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = jarg4;
    arg5 = (int)jarg5; 
    arg6 = (unsigned int)jarg6; 
    result = (bool)RakNet_RakPeerInterface_AdvertiseSystem__SWIG_2(arg1,(char const *)arg2,arg3,arg4,arg5,arg6);
    jresult = result; 
    
    
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_AdvertiseSystem__SWIG_3(void * jarg1, char * jarg2, unsigned short jarg3, unsigned char* jarg4, int jarg5) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    unsigned char *arg4 = (unsigned char *) 0 ;
    int arg5 ;
    bool result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = jarg4;
    arg5 = (int)jarg5; 
    result = (bool)RakNet_RakPeerInterface_AdvertiseSystem__SWIG_2(arg1,(char const *)arg2,arg3,arg4,arg5);
    jresult = result; 
    
    
    return jresult;
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_RakPeerInterface_CSharpGetIncomingPasswordHelper(void * jarg1, char * jarg2, int * jarg3) {
    char * jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    int *arg3 = (int *) 0 ;
    char *result = 0 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (int *)jarg3; 
    result = (char *)RakNet_RakPeerInterface_CSharpGetIncomingPasswordHelper(arg1,(char const *)arg2,arg3);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_SetIncomingPassword__SWIG_1(void * jarg1, unsigned char* jarg2, int jarg3) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    int arg3 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = jarg2;
    arg3 = (int)jarg3; 
    RakNet_RakPeerInterface_SetIncomingPassword__SWIG_1(arg1,arg2,arg3);
    
    
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_GetIncomingPassword(void * jarg1, unsigned char* jarg2, int * jarg3) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    int *arg3 = (int *) 0 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = jarg2;
    arg3 = (int *)jarg3; 
    RakNet_RakPeerInterface_GetIncomingPassword(arg1,arg2,arg3);
    
    
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeerInterface_CSharpGetOfflinePingResponseHelper(void * jarg1, unsigned char* jarg2, unsigned int * jarg3) {
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    unsigned int *arg3 = (unsigned int *) 0 ;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = jarg2;
    arg3 = (unsigned int *)jarg3; 
    RakNet_RakPeerInterface_CSharpGetOfflinePingResponseHelper(arg1,arg2,arg3);
    
    
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeerInterface_GetConnectionList(void * jarg1, void * jarg2, unsigned short * jarg3) {
    unsigned int jresult ;
    RakNet::RakPeerInterface *arg1 = (RakNet::RakPeerInterface *) 0 ;
    DataStructures::List< RakNet::SystemAddress > *arg2 = (DataStructures::List< RakNet::SystemAddress > *) 0 ;
    unsigned short *arg3 = (unsigned short *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakPeerInterface *)jarg1; 
    arg2 = (DataStructures::List< RakNet::SystemAddress > *)jarg2; 
    arg3 = (unsigned short *)jarg3; 
    result = (bool)RakNet_RakPeerInterface_GetConnectionList((RakNet::RakPeerInterface const *)arg1,arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RemoteSystemIndex_index_set(void * jarg1, unsigned int jarg2) {
    RakNet::RemoteSystemIndex *arg1 = (RakNet::RemoteSystemIndex *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (RakNet::RemoteSystemIndex *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    if (arg1) (arg1)->index = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RemoteSystemIndex_index_get(void * jarg1) {
    unsigned int jresult ;
    RakNet::RemoteSystemIndex *arg1 = (RakNet::RemoteSystemIndex *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::RemoteSystemIndex *)jarg1; 
    result = (unsigned int) ((arg1)->index);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RemoteSystemIndex_next_set(void * jarg1, void * jarg2) {
    RakNet::RemoteSystemIndex *arg1 = (RakNet::RemoteSystemIndex *) 0 ;
    RakNet::RemoteSystemIndex *arg2 = (RakNet::RemoteSystemIndex *) 0 ;
    
    arg1 = (RakNet::RemoteSystemIndex *)jarg1; 
    arg2 = (RakNet::RemoteSystemIndex *)jarg2; 
    if (arg1) (arg1)->next = arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RemoteSystemIndex_next_get(void * jarg1) {
    void * jresult ;
    RakNet::RemoteSystemIndex *arg1 = (RakNet::RemoteSystemIndex *) 0 ;
    RakNet::RemoteSystemIndex *result = 0 ;
    
    arg1 = (RakNet::RemoteSystemIndex *)jarg1; 
    result = (RakNet::RemoteSystemIndex *) ((arg1)->next);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RemoteSystemIndex() {
    void * jresult ;
    RakNet::RemoteSystemIndex *result = 0 ;
    
    result = (RakNet::RemoteSystemIndex *)new RakNet::RemoteSystemIndex();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_RemoteSystemIndex(void * jarg1) {
    RakNet::RemoteSystemIndex *arg1 = (RakNet::RemoteSystemIndex *) 0 ;
    
    arg1 = (RakNet::RemoteSystemIndex *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakPeer() {
    void * jresult ;
    RakNet::RakPeer *result = 0 ;
    
    result = (RakNet::RakPeer *)new RakNet::RakPeer();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_RakPeer(void * jarg1) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeer_Startup__SWIG_0(void * jarg1, unsigned int jarg2, void * jarg3, unsigned int jarg4, int jarg5) {
    int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    unsigned int arg2 ;
    RakNet::SocketDescriptor *arg3 = (RakNet::SocketDescriptor *) 0 ;
    unsigned int arg4 ;
    int arg5 ;
    RakNet::StartupResult result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (RakNet::SocketDescriptor *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    arg5 = (int)jarg5; 
    result = (RakNet::StartupResult)(arg1)->Startup(arg2,arg3,arg4,arg5);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeer_Startup__SWIG_1(void * jarg1, unsigned int jarg2, void * jarg3, unsigned int jarg4) {
    int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    unsigned int arg2 ;
    RakNet::SocketDescriptor *arg3 = (RakNet::SocketDescriptor *) 0 ;
    unsigned int arg4 ;
    RakNet::StartupResult result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (RakNet::SocketDescriptor *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    result = (RakNet::StartupResult)(arg1)->Startup(arg2,arg3,arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_InitializeSecurity__SWIG_0(void * jarg1, char * jarg2, char * jarg3, unsigned int jarg4) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    char *arg3 = (char *) 0 ;
    bool arg4 ;
    bool result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = jarg4 ? true : false; 
    result = (bool)(arg1)->InitializeSecurity((char const *)arg2,(char const *)arg3,arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_InitializeSecurity__SWIG_1(void * jarg1, char * jarg2, char * jarg3) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    char *arg3 = (char *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (char *)jarg3; 
    result = (bool)(arg1)->InitializeSecurity((char const *)arg2,(char const *)arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_DisableSecurity(void * jarg1) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    (arg1)->DisableSecurity();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_AddToSecurityExceptionList(void * jarg1, char * jarg2) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->AddToSecurityExceptionList((char const *)arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_RemoveFromSecurityExceptionList(void * jarg1, char * jarg2) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->RemoveFromSecurityExceptionList((char const *)arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_IsInSecurityExceptionList(void * jarg1, char * jarg2) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    result = (bool)(arg1)->IsInSecurityExceptionList((char const *)arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_SetMaximumIncomingConnections(void * jarg1, unsigned short jarg2) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    unsigned short arg2 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (unsigned short)jarg2; 
    (arg1)->SetMaximumIncomingConnections(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_GetMaximumIncomingConnections(void * jarg1) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    result = (unsigned int)((RakNet::RakPeer const *)arg1)->GetMaximumIncomingConnections();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned short SWIGSTDCALL CSharp_RakPeer_NumberOfConnections(void * jarg1) {
    unsigned short jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    unsigned short result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    result = (unsigned short)((RakNet::RakPeer const *)arg1)->NumberOfConnections();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_SetIncomingPassword__SWIG_0(void * jarg1, char * jarg2, int jarg3) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    int arg3 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (int)jarg3; 
    (arg1)->SetIncomingPassword((char const *)arg2,arg3);
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeer_Connect__SWIG_0(void * jarg1, char * jarg2, unsigned short jarg3, char * jarg4, int jarg5, void * jarg6, unsigned int jarg7, unsigned int jarg8, unsigned int jarg9, unsigned int jarg10) {
    int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    char *arg4 = (char *) 0 ;
    int arg5 ;
    RakNet::PublicKey *arg6 = (RakNet::PublicKey *) 0 ;
    unsigned int arg7 ;
    unsigned int arg8 ;
    unsigned int arg9 ;
    RakNet::TimeMS arg10 ;
    RakNet::ConnectionAttemptResult result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (int)jarg5; 
    arg6 = (RakNet::PublicKey *)jarg6; 
    arg7 = (unsigned int)jarg7; 
    arg8 = (unsigned int)jarg8; 
    arg9 = (unsigned int)jarg9; 
    arg10 = (RakNet::TimeMS)jarg10; 
    result = (RakNet::ConnectionAttemptResult)(arg1)->Connect((char const *)arg2,arg3,(char const *)arg4,arg5,arg6,arg7,arg8,arg9,arg10);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeer_Connect__SWIG_1(void * jarg1, char * jarg2, unsigned short jarg3, char * jarg4, int jarg5, void * jarg6, unsigned int jarg7, unsigned int jarg8, unsigned int jarg9) {
    int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    char *arg4 = (char *) 0 ;
    int arg5 ;
    RakNet::PublicKey *arg6 = (RakNet::PublicKey *) 0 ;
    unsigned int arg7 ;
    unsigned int arg8 ;
    unsigned int arg9 ;
    RakNet::ConnectionAttemptResult result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (int)jarg5; 
    arg6 = (RakNet::PublicKey *)jarg6; 
    arg7 = (unsigned int)jarg7; 
    arg8 = (unsigned int)jarg8; 
    arg9 = (unsigned int)jarg9; 
    result = (RakNet::ConnectionAttemptResult)(arg1)->Connect((char const *)arg2,arg3,(char const *)arg4,arg5,arg6,arg7,arg8,arg9);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeer_Connect__SWIG_2(void * jarg1, char * jarg2, unsigned short jarg3, char * jarg4, int jarg5, void * jarg6, unsigned int jarg7, unsigned int jarg8) {
    int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    char *arg4 = (char *) 0 ;
    int arg5 ;
    RakNet::PublicKey *arg6 = (RakNet::PublicKey *) 0 ;
    unsigned int arg7 ;
    unsigned int arg8 ;
    RakNet::ConnectionAttemptResult result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (int)jarg5; 
    arg6 = (RakNet::PublicKey *)jarg6; 
    arg7 = (unsigned int)jarg7; 
    arg8 = (unsigned int)jarg8; 
    result = (RakNet::ConnectionAttemptResult)(arg1)->Connect((char const *)arg2,arg3,(char const *)arg4,arg5,arg6,arg7,arg8);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeer_Connect__SWIG_3(void * jarg1, char * jarg2, unsigned short jarg3, char * jarg4, int jarg5, void * jarg6, unsigned int jarg7) {
    int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    char *arg4 = (char *) 0 ;
    int arg5 ;
    RakNet::PublicKey *arg6 = (RakNet::PublicKey *) 0 ;
    unsigned int arg7 ;
    RakNet::ConnectionAttemptResult result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (int)jarg5; 
    arg6 = (RakNet::PublicKey *)jarg6; 
    arg7 = (unsigned int)jarg7; 
    result = (RakNet::ConnectionAttemptResult)(arg1)->Connect((char const *)arg2,arg3,(char const *)arg4,arg5,arg6,arg7);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeer_Connect__SWIG_4(void * jarg1, char * jarg2, unsigned short jarg3, char * jarg4, int jarg5, void * jarg6) {
    int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    char *arg4 = (char *) 0 ;
    int arg5 ;
    RakNet::PublicKey *arg6 = (RakNet::PublicKey *) 0 ;
    RakNet::ConnectionAttemptResult result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (int)jarg5; 
    arg6 = (RakNet::PublicKey *)jarg6; 
    result = (RakNet::ConnectionAttemptResult)(arg1)->Connect((char const *)arg2,arg3,(char const *)arg4,arg5,arg6);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeer_Connect__SWIG_5(void * jarg1, char * jarg2, unsigned short jarg3, char * jarg4, int jarg5) {
    int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    char *arg4 = (char *) 0 ;
    int arg5 ;
    RakNet::ConnectionAttemptResult result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (int)jarg5; 
    result = (RakNet::ConnectionAttemptResult)(arg1)->Connect((char const *)arg2,arg3,(char const *)arg4,arg5);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_Shutdown__SWIG_0(void * jarg1, unsigned int jarg2, unsigned char jarg3, int jarg4) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    unsigned int arg2 ;
    unsigned char arg3 ;
    PacketPriority arg4 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (unsigned char)jarg3; 
    arg4 = (PacketPriority)jarg4; 
    (arg1)->Shutdown(arg2,arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_Shutdown__SWIG_1(void * jarg1, unsigned int jarg2, unsigned char jarg3) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    unsigned int arg2 ;
    unsigned char arg3 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (unsigned char)jarg3; 
    (arg1)->Shutdown(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_Shutdown__SWIG_2(void * jarg1, unsigned int jarg2) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->Shutdown(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_IsActive(void * jarg1) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    result = (bool)((RakNet::RakPeer const *)arg1)->IsActive();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_GetNextSendReceipt(void * jarg1) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    uint32_t result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    result = (uint32_t)(arg1)->GetNextSendReceipt();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_IncrementNextSendReceipt(void * jarg1) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    uint32_t result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    result = (uint32_t)(arg1)->IncrementNextSendReceipt();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_Send__SWIG_0(void * jarg1, char * jarg2, int jarg3, int jarg4, int jarg5, char jarg6, void * jarg7, unsigned int jarg8, unsigned int jarg9) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    int arg3 ;
    PacketPriority arg4 ;
    PacketReliability arg5 ;
    char arg6 ;
    RakNet::AddressOrGUID arg7 ;
    bool arg8 ;
    uint32_t arg9 ;
    RakNet::AddressOrGUID const *argp7 ;
    uint32_t result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (int)jarg3; 
    arg4 = (PacketPriority)jarg4; 
    arg5 = (PacketReliability)jarg5; 
    arg6 = (char)jarg6; 
    argp7 = (RakNet::AddressOrGUID *)jarg7; 
    if (!argp7) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID const", 0);
      return 0;
    }
    arg7 = *argp7; 
    arg8 = jarg8 ? true : false; 
    arg9 = (uint32_t)jarg9; 
    result = (uint32_t)(arg1)->Send((char const *)arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_Send__SWIG_1(void * jarg1, char * jarg2, int jarg3, int jarg4, int jarg5, char jarg6, void * jarg7, unsigned int jarg8) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    int arg3 ;
    PacketPriority arg4 ;
    PacketReliability arg5 ;
    char arg6 ;
    RakNet::AddressOrGUID arg7 ;
    bool arg8 ;
    RakNet::AddressOrGUID const *argp7 ;
    uint32_t result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (int)jarg3; 
    arg4 = (PacketPriority)jarg4; 
    arg5 = (PacketReliability)jarg5; 
    arg6 = (char)jarg6; 
    argp7 = (RakNet::AddressOrGUID *)jarg7; 
    if (!argp7) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID const", 0);
      return 0;
    }
    arg7 = *argp7; 
    arg8 = jarg8 ? true : false; 
    result = (uint32_t)(arg1)->Send((char const *)arg2,arg3,arg4,arg5,arg6,arg7,arg8);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_SendLoopback__SWIG_0(void * jarg1, char * jarg2, int jarg3) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    int arg3 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (int)jarg3; 
    (arg1)->SendLoopback((char const *)arg2,arg3);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_Send__SWIG_2(void * jarg1, void * jarg2, int jarg3, int jarg4, char jarg5, void * jarg6, unsigned int jarg7, unsigned int jarg8) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    PacketPriority arg3 ;
    PacketReliability arg4 ;
    char arg5 ;
    RakNet::AddressOrGUID arg6 ;
    bool arg7 ;
    uint32_t arg8 ;
    RakNet::AddressOrGUID const *argp6 ;
    uint32_t result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    arg3 = (PacketPriority)jarg3; 
    arg4 = (PacketReliability)jarg4; 
    arg5 = (char)jarg5; 
    argp6 = (RakNet::AddressOrGUID *)jarg6; 
    if (!argp6) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID const", 0);
      return 0;
    }
    arg6 = *argp6; 
    arg7 = jarg7 ? true : false; 
    arg8 = (uint32_t)jarg8; 
    result = (uint32_t)(arg1)->Send((RakNet::BitStream const *)arg2,arg3,arg4,arg5,arg6,arg7,arg8);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_Send__SWIG_3(void * jarg1, void * jarg2, int jarg3, int jarg4, char jarg5, void * jarg6, unsigned int jarg7) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    PacketPriority arg3 ;
    PacketReliability arg4 ;
    char arg5 ;
    RakNet::AddressOrGUID arg6 ;
    bool arg7 ;
    RakNet::AddressOrGUID const *argp6 ;
    uint32_t result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    arg3 = (PacketPriority)jarg3; 
    arg4 = (PacketReliability)jarg4; 
    arg5 = (char)jarg5; 
    argp6 = (RakNet::AddressOrGUID *)jarg6; 
    if (!argp6) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID const", 0);
      return 0;
    }
    arg6 = *argp6; 
    arg7 = jarg7 ? true : false; 
    result = (uint32_t)(arg1)->Send((RakNet::BitStream const *)arg2,arg3,arg4,arg5,arg6,arg7);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeer_Receive(void * jarg1) {
    void * jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::Packet *result = 0 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    result = (RakNet::Packet *)(arg1)->Receive();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_DeallocatePacket(void * jarg1, void * jarg2) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::Packet *arg2 = (RakNet::Packet *) 0 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (RakNet::Packet *)jarg2; 
    (arg1)->DeallocatePacket(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_GetMaximumNumberOfPeers(void * jarg1) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    result = (unsigned int)((RakNet::RakPeer const *)arg1)->GetMaximumNumberOfPeers();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_CloseConnection__SWIG_0(void * jarg1, void * jarg2, unsigned int jarg3, unsigned char jarg4, int jarg5) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::AddressOrGUID arg2 ;
    bool arg3 ;
    unsigned char arg4 ;
    PacketPriority arg5 ;
    RakNet::AddressOrGUID const *argp2 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    argp2 = (RakNet::AddressOrGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID const", 0);
      return ;
    }
    arg2 = *argp2; 
    arg3 = jarg3 ? true : false; 
    arg4 = (unsigned char)jarg4; 
    arg5 = (PacketPriority)jarg5; 
    (arg1)->CloseConnection(arg2,arg3,arg4,arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_CloseConnection__SWIG_1(void * jarg1, void * jarg2, unsigned int jarg3, unsigned char jarg4) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::AddressOrGUID arg2 ;
    bool arg3 ;
    unsigned char arg4 ;
    RakNet::AddressOrGUID const *argp2 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    argp2 = (RakNet::AddressOrGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID const", 0);
      return ;
    }
    arg2 = *argp2; 
    arg3 = jarg3 ? true : false; 
    arg4 = (unsigned char)jarg4; 
    (arg1)->CloseConnection(arg2,arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_CloseConnection__SWIG_2(void * jarg1, void * jarg2, unsigned int jarg3) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::AddressOrGUID arg2 ;
    bool arg3 ;
    RakNet::AddressOrGUID const *argp2 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    argp2 = (RakNet::AddressOrGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID const", 0);
      return ;
    }
    arg2 = *argp2; 
    arg3 = jarg3 ? true : false; 
    (arg1)->CloseConnection(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_CancelConnectionAttempt(void * jarg1, void * jarg2) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress const *argp2 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return ;
    }
    arg2 = *argp2; 
    (arg1)->CancelConnectionAttempt(arg2);
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeer_GetConnectionState(void * jarg1, void * jarg2) {
    int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::AddressOrGUID arg2 ;
    RakNet::AddressOrGUID const *argp2 ;
    RakNet::ConnectionState result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    argp2 = (RakNet::AddressOrGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID const", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = (RakNet::ConnectionState)(arg1)->GetConnectionState(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeer_GetIndexFromSystemAddress(void * jarg1, void * jarg2) {
    int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress const *argp2 ;
    int result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = (int)((RakNet::RakPeer const *)arg1)->GetIndexFromSystemAddress(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeer_GetSystemAddressFromIndex(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    unsigned int arg2 ;
    RakNet::SystemAddress result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (arg1)->GetSystemAddressFromIndex(arg2);
    jresult = new RakNet::SystemAddress((const RakNet::SystemAddress &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeer_GetGUIDFromIndex(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    unsigned int arg2 ;
    RakNet::RakNetGUID result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (arg1)->GetGUIDFromIndex(arg2);
    jresult = new RakNet::RakNetGUID((const RakNet::RakNetGUID &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_GetSystemList(void * jarg1, void * jarg2, void * jarg3) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    DataStructures::List< RakNet::SystemAddress > *arg2 = 0 ;
    DataStructures::List< RakNet::RakNetGUID > *arg3 = 0 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (DataStructures::List< RakNet::SystemAddress > *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< RakNet::SystemAddress > & type is null", 0);
      return ;
    } 
    arg3 = (DataStructures::List< RakNet::RakNetGUID > *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< RakNet::RakNetGUID > & type is null", 0);
      return ;
    } 
    ((RakNet::RakPeer const *)arg1)->GetSystemList(*arg2,*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_AddToBanList__SWIG_0(void * jarg1, char * jarg2, unsigned int jarg3) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    RakNet::TimeMS arg3 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (RakNet::TimeMS)jarg3; 
    (arg1)->AddToBanList((char const *)arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_AddToBanList__SWIG_1(void * jarg1, char * jarg2) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->AddToBanList((char const *)arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_RemoveFromBanList(void * jarg1, char * jarg2) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->RemoveFromBanList((char const *)arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_ClearBanList(void * jarg1) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    (arg1)->ClearBanList();
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_IsBanned(void * jarg1, char * jarg2) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    result = (bool)(arg1)->IsBanned((char const *)arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_SetLimitIPConnectionFrequency(void * jarg1, unsigned int jarg2) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    bool arg2 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = jarg2 ? true : false; 
    (arg1)->SetLimitIPConnectionFrequency(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_Ping__SWIG_0(void * jarg1, void * jarg2) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress const *argp2 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return ;
    }
    arg2 = *argp2; 
    (arg1)->Ping(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_Ping__SWIG_1(void * jarg1, char * jarg2, unsigned short jarg3, unsigned int jarg4, unsigned int jarg5) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    bool arg4 ;
    unsigned int arg5 ;
    bool result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = jarg4 ? true : false; 
    arg5 = (unsigned int)jarg5; 
    result = (bool)(arg1)->Ping((char const *)arg2,arg3,arg4,arg5);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_Ping__SWIG_2(void * jarg1, char * jarg2, unsigned short jarg3, unsigned int jarg4) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    bool arg4 ;
    bool result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = jarg4 ? true : false; 
    result = (bool)(arg1)->Ping((char const *)arg2,arg3,arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeer_GetAveragePing(void * jarg1, void * jarg2) {
    int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::AddressOrGUID arg2 ;
    RakNet::AddressOrGUID const *argp2 ;
    int result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    argp2 = (RakNet::AddressOrGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID const", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = (int)(arg1)->GetAveragePing(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeer_GetLastPing(void * jarg1, void * jarg2) {
    int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::AddressOrGUID arg2 ;
    RakNet::AddressOrGUID const *argp2 ;
    int result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    argp2 = (RakNet::AddressOrGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID const", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = (int)((RakNet::RakPeer const *)arg1)->GetLastPing(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeer_GetLowestPing(void * jarg1, void * jarg2) {
    int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::AddressOrGUID arg2 ;
    RakNet::AddressOrGUID const *argp2 ;
    int result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    argp2 = (RakNet::AddressOrGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID const", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = (int)((RakNet::RakPeer const *)arg1)->GetLowestPing(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_SetOccasionalPing(void * jarg1, unsigned int jarg2) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    bool arg2 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = jarg2 ? true : false; 
    (arg1)->SetOccasionalPing(arg2);
  }
  
  
  SWIGEXPORT unsigned long long SWIGSTDCALL CSharp_RakPeer_GetClockDifferential(void * jarg1, void * jarg2) {
    unsigned long long jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::AddressOrGUID arg2 ;
    RakNet::AddressOrGUID const *argp2 ;
    RakNet::Time result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    argp2 = (RakNet::AddressOrGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID const", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = (RakNet::Time)(arg1)->GetClockDifferential(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_SetOfflinePingResponse__SWIG_0(void * jarg1, char * jarg2, unsigned int jarg3) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned int arg3 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned int)jarg3; 
    (arg1)->SetOfflinePingResponse((char const *)arg2,arg3);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeer_GetInternalID__SWIG_0(void * jarg1, void * jarg2, int jarg3) {
    void * jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::SystemAddress arg2 ;
    int arg3 ;
    RakNet::SystemAddress const *argp2 ;
    RakNet::SystemAddress result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return 0;
    }
    arg2 = *argp2; 
    arg3 = (int)jarg3; 
    result = ((RakNet::RakPeer const *)arg1)->GetInternalID(arg2,arg3);
    jresult = new RakNet::SystemAddress((const RakNet::SystemAddress &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeer_GetInternalID__SWIG_1(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress const *argp2 ;
    RakNet::SystemAddress result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = ((RakNet::RakPeer const *)arg1)->GetInternalID(arg2);
    jresult = new RakNet::SystemAddress((const RakNet::SystemAddress &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeer_GetInternalID__SWIG_2(void * jarg1) {
    void * jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::SystemAddress result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    result = ((RakNet::RakPeer const *)arg1)->GetInternalID();
    jresult = new RakNet::SystemAddress((const RakNet::SystemAddress &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_SetInternalID__SWIG_0(void * jarg1, void * jarg2, int jarg3) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::SystemAddress arg2 ;
    int arg3 ;
    RakNet::SystemAddress *argp2 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg2 = *argp2; 
    arg3 = (int)jarg3; 
    (arg1)->SetInternalID(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_SetInternalID__SWIG_1(void * jarg1, void * jarg2) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress *argp2 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg2 = *argp2; 
    (arg1)->SetInternalID(arg2);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeer_GetExternalID(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress const *argp2 ;
    RakNet::SystemAddress result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = ((RakNet::RakPeer const *)arg1)->GetExternalID(arg2);
    jresult = new RakNet::SystemAddress((const RakNet::SystemAddress &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeer_GetMyGUID(void * jarg1) {
    void * jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::RakNetGUID result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    result = ((RakNet::RakPeer const *)arg1)->GetMyGUID();
    jresult = new RakNet::RakNetGUID((const RakNet::RakNetGUID &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeer_GetMyBoundAddress__SWIG_0(void * jarg1, int jarg2) {
    void * jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    int arg2 ;
    RakNet::SystemAddress result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (int)jarg2; 
    result = (arg1)->GetMyBoundAddress(arg2);
    jresult = new RakNet::SystemAddress((const RakNet::SystemAddress &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeer_GetMyBoundAddress__SWIG_1(void * jarg1) {
    void * jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::SystemAddress result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    result = (arg1)->GetMyBoundAddress();
    jresult = new RakNet::SystemAddress((const RakNet::SystemAddress &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeer_GetGuidFromSystemAddress(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress const *argp2 ;
    RakNet::RakNetGUID *result = 0 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = (RakNet::RakNetGUID *) &((RakNet::RakPeer const *)arg1)->GetGuidFromSystemAddress(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeer_GetSystemAddressFromGuid(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::RakNetGUID arg2 ;
    RakNet::RakNetGUID const *argp2 ;
    RakNet::SystemAddress result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    argp2 = (RakNet::RakNetGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID const", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = ((RakNet::RakPeer const *)arg1)->GetSystemAddressFromGuid(arg2);
    jresult = new RakNet::SystemAddress((const RakNet::SystemAddress &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_GetClientPublicKeyFromSystemAddress(void * jarg1, void * jarg2, char * jarg3) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::SystemAddress arg2 ;
    char *arg3 = (char *) 0 ;
    RakNet::SystemAddress const *argp2 ;
    bool result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return 0;
    }
    arg2 = *argp2; 
    arg3 = (char *)jarg3; 
    result = (bool)((RakNet::RakPeer const *)arg1)->GetClientPublicKeyFromSystemAddress(arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_SetTimeoutTime(void * jarg1, unsigned int jarg2, void * jarg3) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::TimeMS arg2 ;
    RakNet::SystemAddress arg3 ;
    RakNet::SystemAddress const *argp3 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (RakNet::TimeMS)jarg2; 
    argp3 = (RakNet::SystemAddress *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return ;
    }
    arg3 = *argp3; 
    (arg1)->SetTimeoutTime(arg2,arg3);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_GetTimeoutTime(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress const *argp2 ;
    RakNet::TimeMS result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = (RakNet::TimeMS)(arg1)->GetTimeoutTime(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeer_GetMTUSize(void * jarg1, void * jarg2) {
    int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress const *argp2 ;
    int result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = (int)((RakNet::RakPeer const *)arg1)->GetMTUSize(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_GetNumberOfAddresses(void * jarg1) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    result = (unsigned int)(arg1)->GetNumberOfAddresses();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_RakPeer_GetLocalIP(void * jarg1, unsigned int jarg2) {
    char * jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    unsigned int arg2 ;
    char *result = 0 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (char *)(arg1)->GetLocalIP(arg2);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_IsLocalIP(void * jarg1, char * jarg2) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    result = (bool)(arg1)->IsLocalIP((char const *)arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_AllowConnectionResponseIPMigration(void * jarg1, unsigned int jarg2) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    bool arg2 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = jarg2 ? true : false; 
    (arg1)->AllowConnectionResponseIPMigration(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_AdvertiseSystem__SWIG_0(void * jarg1, char * jarg2, unsigned short jarg3, char * jarg4, int jarg5, unsigned int jarg6) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    char *arg4 = (char *) 0 ;
    int arg5 ;
    unsigned int arg6 ;
    bool result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (int)jarg5; 
    arg6 = (unsigned int)jarg6; 
    result = (bool)(arg1)->AdvertiseSystem((char const *)arg2,arg3,(char const *)arg4,arg5,arg6);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_AdvertiseSystem__SWIG_1(void * jarg1, char * jarg2, unsigned short jarg3, char * jarg4, int jarg5) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    char *arg4 = (char *) 0 ;
    int arg5 ;
    bool result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (int)jarg5; 
    result = (bool)(arg1)->AdvertiseSystem((char const *)arg2,arg3,(char const *)arg4,arg5);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_SetSplitMessageProgressInterval(void * jarg1, int jarg2) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    int arg2 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (int)jarg2; 
    (arg1)->SetSplitMessageProgressInterval(arg2);
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakPeer_GetSplitMessageProgressInterval(void * jarg1) {
    int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    int result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    result = (int)((RakNet::RakPeer const *)arg1)->GetSplitMessageProgressInterval();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_SetUnreliableTimeout(void * jarg1, unsigned int jarg2) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::TimeMS arg2 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (RakNet::TimeMS)jarg2; 
    (arg1)->SetUnreliableTimeout(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_SendTTL__SWIG_0(void * jarg1, char * jarg2, unsigned short jarg3, int jarg4, unsigned int jarg5) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    int arg4 ;
    unsigned int arg5 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (int)jarg4; 
    arg5 = (unsigned int)jarg5; 
    (arg1)->SendTTL((char const *)arg2,arg3,arg4,arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_SendTTL__SWIG_1(void * jarg1, char * jarg2, unsigned short jarg3, int jarg4) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    int arg4 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (int)jarg4; 
    (arg1)->SendTTL((char const *)arg2,arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_AttachPlugin(void * jarg1, void * jarg2) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::PluginInterface2 *arg2 = (RakNet::PluginInterface2 *) 0 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (RakNet::PluginInterface2 *)jarg2; 
    (arg1)->AttachPlugin(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_DetachPlugin(void * jarg1, void * jarg2) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::PluginInterface2 *arg2 = (RakNet::PluginInterface2 *) 0 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (RakNet::PluginInterface2 *)jarg2; 
    (arg1)->DetachPlugin(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_PushBackPacket(void * jarg1, void * jarg2, unsigned int jarg3) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::Packet *arg2 = (RakNet::Packet *) 0 ;
    bool arg3 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (RakNet::Packet *)jarg2; 
    arg3 = jarg3 ? true : false; 
    (arg1)->PushBackPacket(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_ChangeSystemAddress(void * jarg1, void * jarg2, void * jarg3) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::RakNetGUID arg2 ;
    RakNet::SystemAddress *arg3 = 0 ;
    RakNet::RakNetGUID *argp2 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    argp2 = (RakNet::RakNetGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return ;
    }
    arg2 = *argp2; 
    arg3 = (RakNet::SystemAddress *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return ;
    } 
    (arg1)->ChangeSystemAddress(arg2,(RakNet::SystemAddress const &)*arg3);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeer_AllocatePacket(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    unsigned int arg2 ;
    RakNet::Packet *result = 0 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (RakNet::Packet *)(arg1)->AllocatePacket(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_GetSockets(void * jarg1, void * jarg2) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    DataStructures::List< RakNetSocket2 * > *arg2 = 0 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (DataStructures::List< RakNetSocket2 * > *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< RakNetSocket2 * > & type is null", 0);
      return ;
    } 
    (arg1)->GetSockets(*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_WriteOutOfBandHeader(void * jarg1, void * jarg2) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    (arg1)->WriteOutOfBandHeader(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_ApplyNetworkSimulator(void * jarg1, float jarg2, unsigned short jarg3, unsigned short jarg4) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    float arg2 ;
    unsigned short arg3 ;
    unsigned short arg4 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (float)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (unsigned short)jarg4; 
    (arg1)->ApplyNetworkSimulator(arg2,arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_SetPerConnectionOutgoingBandwidthLimit(void * jarg1, unsigned int jarg2) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->SetPerConnectionOutgoingBandwidthLimit(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_IsNetworkSimulatorActive(void * jarg1) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    result = (bool)(arg1)->IsNetworkSimulatorActive();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeer_GetStatistics__SWIG_0(void * jarg1, void * jarg2, void * jarg3) {
    void * jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::RakNetStatistics *arg3 = (RakNet::RakNetStatistics *) 0 ;
    RakNet::SystemAddress const *argp2 ;
    RakNet::RakNetStatistics *result = 0 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return 0;
    }
    arg2 = *argp2; 
    arg3 = (RakNet::RakNetStatistics *)jarg3; 
    result = (RakNet::RakNetStatistics *)(arg1)->GetStatistics(arg2,arg3);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakPeer_GetStatistics__SWIG_1(void * jarg1, void * jarg2) {
    void * jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress const *argp2 ;
    RakNet::RakNetStatistics *result = 0 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = (RakNet::RakNetStatistics *)(arg1)->GetStatistics(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_GetStatistics__SWIG_2(void * jarg1, unsigned int jarg2, void * jarg3) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    unsigned int arg2 ;
    RakNet::RakNetStatistics *arg3 = (RakNet::RakNetStatistics *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (RakNet::RakNetStatistics *)jarg3; 
    result = (bool)(arg1)->GetStatistics(arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_GetReceiveBufferSize(void * jarg1) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    result = (unsigned int)(arg1)->GetReceiveBufferSize();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_RunUpdateCycle(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    RakNet::BitStream *arg2 = 0 ;
    bool result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::BitStream & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->RunUpdateCycle(*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_SendOutOfBand__SWIG_0(void * jarg1, char * jarg2, unsigned short jarg3, char * jarg4, unsigned int jarg5, unsigned int jarg6) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    char *arg4 = (char *) 0 ;
    RakNet::BitSize_t arg5 ;
    unsigned int arg6 ;
    bool result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (RakNet::BitSize_t)jarg5; 
    arg6 = (unsigned int)jarg6; 
    result = (bool)(arg1)->SendOutOfBand((char const *)arg2,arg3,(char const *)arg4,arg5,arg6);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_SendOutOfBand__SWIG_1(void * jarg1, char * jarg2, unsigned short jarg3, char * jarg4, unsigned int jarg5) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    char *arg4 = (char *) 0 ;
    RakNet::BitSize_t arg5 ;
    bool result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (RakNet::BitSize_t)jarg5; 
    result = (bool)(arg1)->SendOutOfBand((char const *)arg2,arg3,(char const *)arg4,arg5);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_Send__SWIG_4(void * jarg1, unsigned char* jarg2, int jarg3, int jarg4, int jarg5, char jarg6, void * jarg7, unsigned int jarg8) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    int arg3 ;
    PacketPriority arg4 ;
    PacketReliability arg5 ;
    char arg6 ;
    RakNet::AddressOrGUID arg7 ;
    bool arg8 ;
    RakNet::AddressOrGUID const *argp7 ;
    uint32_t result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = jarg2;
    arg3 = (int)jarg3; 
    arg4 = (PacketPriority)jarg4; 
    arg5 = (PacketReliability)jarg5; 
    arg6 = (char)jarg6; 
    argp7 = (RakNet::AddressOrGUID *)jarg7; 
    if (!argp7) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID const", 0);
      return 0;
    }
    arg7 = *argp7; 
    arg8 = jarg8 ? true : false; 
    result = (uint32_t)RakNet_RakPeer_Send__SWIG_4(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);
    jresult = result; 
    
    
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_SendLoopback__SWIG_1(void * jarg1, unsigned char* jarg2, int jarg3) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    int arg3 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = jarg2;
    arg3 = (int)jarg3; 
    RakNet_RakPeer_SendLoopback__SWIG_1(arg1,arg2,arg3);
    
    
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_SetOfflinePingResponse__SWIG_1(void * jarg1, unsigned char* jarg2, unsigned int jarg3) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    unsigned int arg3 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = jarg2;
    arg3 = (unsigned int)jarg3; 
    RakNet_RakPeer_SetOfflinePingResponse__SWIG_1(arg1,arg2,arg3);
    
    
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_AdvertiseSystem__SWIG_2(void * jarg1, char * jarg2, unsigned short jarg3, unsigned char* jarg4, int jarg5, unsigned int jarg6) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    unsigned char *arg4 = (unsigned char *) 0 ;
    int arg5 ;
    unsigned int arg6 ;
    bool result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = jarg4;
    arg5 = (int)jarg5; 
    arg6 = (unsigned int)jarg6; 
    result = (bool)RakNet_RakPeer_AdvertiseSystem__SWIG_2(arg1,(char const *)arg2,arg3,arg4,arg5,arg6);
    jresult = result; 
    
    
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_AdvertiseSystem__SWIG_3(void * jarg1, char * jarg2, unsigned short jarg3, unsigned char* jarg4, int jarg5) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    unsigned char *arg4 = (unsigned char *) 0 ;
    int arg5 ;
    bool result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = jarg4;
    arg5 = (int)jarg5; 
    result = (bool)RakNet_RakPeer_AdvertiseSystem__SWIG_2(arg1,(char const *)arg2,arg3,arg4,arg5);
    jresult = result; 
    
    
    return jresult;
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_RakPeer_CSharpGetIncomingPasswordHelper(void * jarg1, char * jarg2, int * jarg3) {
    char * jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    char *arg2 = (char *) 0 ;
    int *arg3 = (int *) 0 ;
    char *result = 0 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (int *)jarg3; 
    result = (char *)RakNet_RakPeer_CSharpGetIncomingPasswordHelper(arg1,(char const *)arg2,arg3);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_SetIncomingPassword__SWIG_1(void * jarg1, unsigned char* jarg2, int jarg3) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    int arg3 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = jarg2;
    arg3 = (int)jarg3; 
    RakNet_RakPeer_SetIncomingPassword__SWIG_1(arg1,arg2,arg3);
    
    
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_GetIncomingPassword(void * jarg1, unsigned char* jarg2, int * jarg3) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    int *arg3 = (int *) 0 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = jarg2;
    arg3 = (int *)jarg3; 
    RakNet_RakPeer_GetIncomingPassword(arg1,arg2,arg3);
    
    
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakPeer_CSharpGetOfflinePingResponseHelper(void * jarg1, unsigned char* jarg2, unsigned int * jarg3) {
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    unsigned int *arg3 = (unsigned int *) 0 ;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = jarg2;
    arg3 = (unsigned int *)jarg3; 
    RakNet_RakPeer_CSharpGetOfflinePingResponseHelper(arg1,arg2,arg3);
    
    
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakPeer_GetConnectionList(void * jarg1, void * jarg2, unsigned short * jarg3) {
    unsigned int jresult ;
    RakNet::RakPeer *arg1 = (RakNet::RakPeer *) 0 ;
    DataStructures::List< RakNet::SystemAddress > *arg2 = (DataStructures::List< RakNet::SystemAddress > *) 0 ;
    unsigned short *arg3 = (unsigned short *) 0 ;
    bool result;
    
    arg1 = (RakNet::RakPeer *)jarg1; 
    arg2 = (DataStructures::List< RakNet::SystemAddress > *)jarg2; 
    arg3 = (unsigned short *)jarg3; 
    result = (bool)RakNet_RakPeer_GetConnectionList((RakNet::RakPeer const *)arg1,arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_PacketLogger_GetInstance() {
    void * jresult ;
    RakNet::PacketLogger *result = 0 ;
    
    result = (RakNet::PacketLogger *)RakNet::PacketLogger::GetInstance();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PacketLogger_DestroyInstance(void * jarg1) {
    RakNet::PacketLogger *arg1 = (RakNet::PacketLogger *) 0 ;
    
    arg1 = (RakNet::PacketLogger *)jarg1; 
    RakNet::PacketLogger::DestroyInstance(arg1);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_PacketLogger() {
    void * jresult ;
    RakNet::PacketLogger *result = 0 ;
    
    result = (RakNet::PacketLogger *)new RakNet::PacketLogger();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_PacketLogger(void * jarg1) {
    RakNet::PacketLogger *arg1 = (RakNet::PacketLogger *) 0 ;
    
    arg1 = (RakNet::PacketLogger *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PacketLogger_OnReliabilityLayerNotification(void * jarg1, char * jarg2, unsigned int jarg3, void * jarg4, unsigned int jarg5) {
    RakNet::PacketLogger *arg1 = (RakNet::PacketLogger *) 0 ;
    char *arg2 = (char *) 0 ;
    RakNet::BitSize_t arg3 ;
    RakNet::SystemAddress arg4 ;
    bool arg5 ;
    RakNet::SystemAddress *argp4 ;
    
    arg1 = (RakNet::PacketLogger *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (RakNet::BitSize_t)jarg3; 
    argp4 = (RakNet::SystemAddress *)jarg4; 
    if (!argp4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg4 = *argp4; 
    arg5 = jarg5 ? true : false; 
    (arg1)->OnReliabilityLayerNotification((char const *)arg2,arg3,arg4,arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PacketLogger_LogHeader(void * jarg1) {
    RakNet::PacketLogger *arg1 = (RakNet::PacketLogger *) 0 ;
    
    arg1 = (RakNet::PacketLogger *)jarg1; 
    (arg1)->LogHeader();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PacketLogger_WriteLog(void * jarg1, char * jarg2) {
    RakNet::PacketLogger *arg1 = (RakNet::PacketLogger *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::PacketLogger *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->WriteLog((char const *)arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PacketLogger_WriteMiscellaneous(void * jarg1, char * jarg2, char * jarg3) {
    RakNet::PacketLogger *arg1 = (RakNet::PacketLogger *) 0 ;
    char *arg2 = (char *) 0 ;
    char *arg3 = (char *) 0 ;
    
    arg1 = (RakNet::PacketLogger *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (char *)jarg3; 
    (arg1)->WriteMiscellaneous((char const *)arg2,(char const *)arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PacketLogger_SetPrintID(void * jarg1, unsigned int jarg2) {
    RakNet::PacketLogger *arg1 = (RakNet::PacketLogger *) 0 ;
    bool arg2 ;
    
    arg1 = (RakNet::PacketLogger *)jarg1; 
    arg2 = jarg2 ? true : false; 
    (arg1)->SetPrintID(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PacketLogger_SetPrintAcks(void * jarg1, unsigned int jarg2) {
    RakNet::PacketLogger *arg1 = (RakNet::PacketLogger *) 0 ;
    bool arg2 ;
    
    arg1 = (RakNet::PacketLogger *)jarg1; 
    arg2 = jarg2 ? true : false; 
    (arg1)->SetPrintAcks(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PacketLogger_SetPrefix(void * jarg1, char * jarg2) {
    RakNet::PacketLogger *arg1 = (RakNet::PacketLogger *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::PacketLogger *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->SetPrefix((char const *)arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PacketLogger_SetSuffix(void * jarg1, char * jarg2) {
    RakNet::PacketLogger *arg1 = (RakNet::PacketLogger *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::PacketLogger *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->SetSuffix((char const *)arg2);
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_PacketLogger_BaseIDTOString(unsigned char jarg1) {
    char * jresult ;
    unsigned char arg1 ;
    char *result = 0 ;
    
    arg1 = (unsigned char)jarg1; 
    result = (char *)RakNet::PacketLogger::BaseIDTOString(arg1);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PacketLogger_SetLogDirectMessages(void * jarg1, unsigned int jarg2) {
    RakNet::PacketLogger *arg1 = (RakNet::PacketLogger *) 0 ;
    bool arg2 ;
    
    arg1 = (RakNet::PacketLogger *)jarg1; 
    arg2 = jarg2 ? true : false; 
    (arg1)->SetLogDirectMessages(arg2);
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_PacketLogger_FormatLineHelper__SWIG_0(void * jarg1, char * jarg2, char * jarg3, char * jarg4, unsigned int jarg5, unsigned int jarg6, unsigned char jarg7, unsigned int jarg8, unsigned long long jarg9, void * jarg10, void * jarg11, unsigned int jarg12, unsigned int jarg13, unsigned int jarg14, unsigned int jarg15) {
    char * jresult ;
    RakNet::PacketLogger *arg1 = (RakNet::PacketLogger *) 0 ;
    char *arg2 = (char *) 0 ;
    char *arg3 = (char *) 0 ;
    char *arg4 = (char *) 0 ;
    unsigned int arg5 ;
    unsigned int arg6 ;
    unsigned char arg7 ;
    RakNet::BitSize_t arg8 ;
    unsigned long long arg9 ;
    RakNet::SystemAddress *arg10 = 0 ;
    RakNet::SystemAddress *arg11 = 0 ;
    unsigned int arg12 ;
    unsigned int arg13 ;
    unsigned int arg14 ;
    unsigned int arg15 ;
    char *result = 0 ;
    
    arg1 = (RakNet::PacketLogger *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (unsigned int)jarg5; 
    arg6 = (unsigned int)jarg6; 
    arg7 = (unsigned char)jarg7; 
    arg8 = (RakNet::BitSize_t)jarg8; 
    arg9 = (unsigned long long)jarg9; 
    arg10 = (RakNet::SystemAddress *)jarg10;
    if (!arg10) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return 0;
    } 
    arg11 = (RakNet::SystemAddress *)jarg11;
    if (!arg11) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return 0;
    } 
    arg12 = (unsigned int)jarg12; 
    arg13 = (unsigned int)jarg13; 
    arg14 = (unsigned int)jarg14; 
    arg15 = (unsigned int)jarg15; 
    result = (char *)RakNet_PacketLogger_FormatLineHelper__SWIG_0(arg1,arg2,(char const *)arg3,(char const *)arg4,arg5,arg6,arg7,arg8,arg9,(RakNet::SystemAddress const &)*arg10,(RakNet::SystemAddress const &)*arg11,arg12,arg13,arg14,arg15);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_PacketLogger_FormatLineHelper__SWIG_1(void * jarg1, char * jarg2, char * jarg3, char * jarg4, unsigned int jarg5, unsigned int jarg6, char * jarg7, unsigned int jarg8, unsigned long long jarg9, void * jarg10, void * jarg11, unsigned int jarg12, unsigned int jarg13, unsigned int jarg14, unsigned int jarg15) {
    char * jresult ;
    RakNet::PacketLogger *arg1 = (RakNet::PacketLogger *) 0 ;
    char *arg2 = (char *) 0 ;
    char *arg3 = (char *) 0 ;
    char *arg4 = (char *) 0 ;
    unsigned int arg5 ;
    unsigned int arg6 ;
    char *arg7 = (char *) 0 ;
    RakNet::BitSize_t arg8 ;
    unsigned long long arg9 ;
    RakNet::SystemAddress *arg10 = 0 ;
    RakNet::SystemAddress *arg11 = 0 ;
    unsigned int arg12 ;
    unsigned int arg13 ;
    unsigned int arg14 ;
    unsigned int arg15 ;
    char *result = 0 ;
    
    arg1 = (RakNet::PacketLogger *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (unsigned int)jarg5; 
    arg6 = (unsigned int)jarg6; 
    arg7 = (char *)jarg7; 
    arg8 = (RakNet::BitSize_t)jarg8; 
    arg9 = (unsigned long long)jarg9; 
    arg10 = (RakNet::SystemAddress *)jarg10;
    if (!arg10) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return 0;
    } 
    arg11 = (RakNet::SystemAddress *)jarg11;
    if (!arg11) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return 0;
    } 
    arg12 = (unsigned int)jarg12; 
    arg13 = (unsigned int)jarg13; 
    arg14 = (unsigned int)jarg14; 
    arg15 = (unsigned int)jarg15; 
    result = (char *)RakNet_PacketLogger_FormatLineHelper__SWIG_1(arg1,arg2,(char const *)arg3,(char const *)arg4,arg5,arg6,(char const *)arg7,arg8,arg9,(RakNet::SystemAddress const &)*arg10,(RakNet::SystemAddress const &)*arg11,arg12,arg13,arg14,arg15);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_PacketFileLogger_GetInstance() {
    void * jresult ;
    RakNet::PacketFileLogger *result = 0 ;
    
    result = (RakNet::PacketFileLogger *)RakNet::PacketFileLogger::GetInstance();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PacketFileLogger_DestroyInstance(void * jarg1) {
    RakNet::PacketFileLogger *arg1 = (RakNet::PacketFileLogger *) 0 ;
    
    arg1 = (RakNet::PacketFileLogger *)jarg1; 
    RakNet::PacketFileLogger::DestroyInstance(arg1);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_PacketFileLogger() {
    void * jresult ;
    RakNet::PacketFileLogger *result = 0 ;
    
    result = (RakNet::PacketFileLogger *)new RakNet::PacketFileLogger();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_PacketFileLogger(void * jarg1) {
    RakNet::PacketFileLogger *arg1 = (RakNet::PacketFileLogger *) 0 ;
    
    arg1 = (RakNet::PacketFileLogger *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PacketFileLogger_StartLog(void * jarg1, char * jarg2) {
    RakNet::PacketFileLogger *arg1 = (RakNet::PacketFileLogger *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::PacketFileLogger *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->StartLog((char const *)arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PacketFileLogger_WriteLog(void * jarg1, char * jarg2) {
    RakNet::PacketFileLogger *arg1 = (RakNet::PacketFileLogger *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::PacketFileLogger *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->WriteLog((char const *)arg2);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_NatTypeDetectionClient_GetInstance() {
    void * jresult ;
    RakNet::NatTypeDetectionClient *result = 0 ;
    
    result = (RakNet::NatTypeDetectionClient *)RakNet::NatTypeDetectionClient::GetInstance();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatTypeDetectionClient_DestroyInstance(void * jarg1) {
    RakNet::NatTypeDetectionClient *arg1 = (RakNet::NatTypeDetectionClient *) 0 ;
    
    arg1 = (RakNet::NatTypeDetectionClient *)jarg1; 
    RakNet::NatTypeDetectionClient::DestroyInstance(arg1);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_NatTypeDetectionClient() {
    void * jresult ;
    RakNet::NatTypeDetectionClient *result = 0 ;
    
    result = (RakNet::NatTypeDetectionClient *)new RakNet::NatTypeDetectionClient();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_NatTypeDetectionClient(void * jarg1) {
    RakNet::NatTypeDetectionClient *arg1 = (RakNet::NatTypeDetectionClient *) 0 ;
    
    arg1 = (RakNet::NatTypeDetectionClient *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatTypeDetectionClient_DetectNATType(void * jarg1, void * jarg2) {
    RakNet::NatTypeDetectionClient *arg1 = (RakNet::NatTypeDetectionClient *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress *argp2 ;
    
    arg1 = (RakNet::NatTypeDetectionClient *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg2 = *argp2; 
    (arg1)->DetectNATType(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatTypeDetectionClient_OnRNS2Recv(void * jarg1, void * jarg2) {
    RakNet::NatTypeDetectionClient *arg1 = (RakNet::NatTypeDetectionClient *) 0 ;
    RNS2RecvStruct *arg2 = (RNS2RecvStruct *) 0 ;
    
    arg1 = (RakNet::NatTypeDetectionClient *)jarg1; 
    arg2 = (RNS2RecvStruct *)jarg2; 
    (arg1)->OnRNS2Recv(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatTypeDetectionClient_DeallocRNS2RecvStruct(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) {
    RakNet::NatTypeDetectionClient *arg1 = (RakNet::NatTypeDetectionClient *) 0 ;
    RNS2RecvStruct *arg2 = (RNS2RecvStruct *) 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (RakNet::NatTypeDetectionClient *)jarg1; 
    arg2 = (RNS2RecvStruct *)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->DeallocRNS2RecvStruct(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_NatTypeDetectionClient_AllocRNS2RecvStruct(void * jarg1, char * jarg2, unsigned int jarg3) {
    void * jresult ;
    RakNet::NatTypeDetectionClient *arg1 = (RakNet::NatTypeDetectionClient *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned int arg3 ;
    RNS2RecvStruct *result = 0 ;
    
    arg1 = (RakNet::NatTypeDetectionClient *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned int)jarg3; 
    result = (RNS2RecvStruct *)(arg1)->AllocRNS2RecvStruct((char const *)arg2,arg3);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_PunchthroughConfiguration() {
    void * jresult ;
    RakNet::PunchthroughConfiguration *result = 0 ;
    
    result = (RakNet::PunchthroughConfiguration *)new RakNet::PunchthroughConfiguration();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PunchthroughConfiguration_TIME_BETWEEN_PUNCH_ATTEMPTS_INTERNAL_set(void * jarg1, unsigned long long jarg2) {
    RakNet::PunchthroughConfiguration *arg1 = (RakNet::PunchthroughConfiguration *) 0 ;
    RakNet::Time arg2 ;
    
    arg1 = (RakNet::PunchthroughConfiguration *)jarg1; 
    arg2 = (RakNet::Time)jarg2; 
    if (arg1) (arg1)->TIME_BETWEEN_PUNCH_ATTEMPTS_INTERNAL = arg2;
  }
  
  
  SWIGEXPORT unsigned long long SWIGSTDCALL CSharp_PunchthroughConfiguration_TIME_BETWEEN_PUNCH_ATTEMPTS_INTERNAL_get(void * jarg1) {
    unsigned long long jresult ;
    RakNet::PunchthroughConfiguration *arg1 = (RakNet::PunchthroughConfiguration *) 0 ;
    RakNet::Time result;
    
    arg1 = (RakNet::PunchthroughConfiguration *)jarg1; 
    result = (RakNet::Time) ((arg1)->TIME_BETWEEN_PUNCH_ATTEMPTS_INTERNAL);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PunchthroughConfiguration_TIME_BETWEEN_PUNCH_ATTEMPTS_EXTERNAL_set(void * jarg1, unsigned long long jarg2) {
    RakNet::PunchthroughConfiguration *arg1 = (RakNet::PunchthroughConfiguration *) 0 ;
    RakNet::Time arg2 ;
    
    arg1 = (RakNet::PunchthroughConfiguration *)jarg1; 
    arg2 = (RakNet::Time)jarg2; 
    if (arg1) (arg1)->TIME_BETWEEN_PUNCH_ATTEMPTS_EXTERNAL = arg2;
  }
  
  
  SWIGEXPORT unsigned long long SWIGSTDCALL CSharp_PunchthroughConfiguration_TIME_BETWEEN_PUNCH_ATTEMPTS_EXTERNAL_get(void * jarg1) {
    unsigned long long jresult ;
    RakNet::PunchthroughConfiguration *arg1 = (RakNet::PunchthroughConfiguration *) 0 ;
    RakNet::Time result;
    
    arg1 = (RakNet::PunchthroughConfiguration *)jarg1; 
    result = (RakNet::Time) ((arg1)->TIME_BETWEEN_PUNCH_ATTEMPTS_EXTERNAL);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PunchthroughConfiguration_UDP_SENDS_PER_PORT_INTERNAL_set(void * jarg1, int jarg2) {
    RakNet::PunchthroughConfiguration *arg1 = (RakNet::PunchthroughConfiguration *) 0 ;
    int arg2 ;
    
    arg1 = (RakNet::PunchthroughConfiguration *)jarg1; 
    arg2 = (int)jarg2; 
    if (arg1) (arg1)->UDP_SENDS_PER_PORT_INTERNAL = arg2;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_PunchthroughConfiguration_UDP_SENDS_PER_PORT_INTERNAL_get(void * jarg1) {
    int jresult ;
    RakNet::PunchthroughConfiguration *arg1 = (RakNet::PunchthroughConfiguration *) 0 ;
    int result;
    
    arg1 = (RakNet::PunchthroughConfiguration *)jarg1; 
    result = (int) ((arg1)->UDP_SENDS_PER_PORT_INTERNAL);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PunchthroughConfiguration_UDP_SENDS_PER_PORT_EXTERNAL_set(void * jarg1, int jarg2) {
    RakNet::PunchthroughConfiguration *arg1 = (RakNet::PunchthroughConfiguration *) 0 ;
    int arg2 ;
    
    arg1 = (RakNet::PunchthroughConfiguration *)jarg1; 
    arg2 = (int)jarg2; 
    if (arg1) (arg1)->UDP_SENDS_PER_PORT_EXTERNAL = arg2;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_PunchthroughConfiguration_UDP_SENDS_PER_PORT_EXTERNAL_get(void * jarg1) {
    int jresult ;
    RakNet::PunchthroughConfiguration *arg1 = (RakNet::PunchthroughConfiguration *) 0 ;
    int result;
    
    arg1 = (RakNet::PunchthroughConfiguration *)jarg1; 
    result = (int) ((arg1)->UDP_SENDS_PER_PORT_EXTERNAL);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PunchthroughConfiguration_INTERNAL_IP_WAIT_AFTER_ATTEMPTS_set(void * jarg1, int jarg2) {
    RakNet::PunchthroughConfiguration *arg1 = (RakNet::PunchthroughConfiguration *) 0 ;
    int arg2 ;
    
    arg1 = (RakNet::PunchthroughConfiguration *)jarg1; 
    arg2 = (int)jarg2; 
    if (arg1) (arg1)->INTERNAL_IP_WAIT_AFTER_ATTEMPTS = arg2;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_PunchthroughConfiguration_INTERNAL_IP_WAIT_AFTER_ATTEMPTS_get(void * jarg1) {
    int jresult ;
    RakNet::PunchthroughConfiguration *arg1 = (RakNet::PunchthroughConfiguration *) 0 ;
    int result;
    
    arg1 = (RakNet::PunchthroughConfiguration *)jarg1; 
    result = (int) ((arg1)->INTERNAL_IP_WAIT_AFTER_ATTEMPTS);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PunchthroughConfiguration_MAX_PREDICTIVE_PORT_RANGE_set(void * jarg1, int jarg2) {
    RakNet::PunchthroughConfiguration *arg1 = (RakNet::PunchthroughConfiguration *) 0 ;
    int arg2 ;
    
    arg1 = (RakNet::PunchthroughConfiguration *)jarg1; 
    arg2 = (int)jarg2; 
    if (arg1) (arg1)->MAX_PREDICTIVE_PORT_RANGE = arg2;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_PunchthroughConfiguration_MAX_PREDICTIVE_PORT_RANGE_get(void * jarg1) {
    int jresult ;
    RakNet::PunchthroughConfiguration *arg1 = (RakNet::PunchthroughConfiguration *) 0 ;
    int result;
    
    arg1 = (RakNet::PunchthroughConfiguration *)jarg1; 
    result = (int) ((arg1)->MAX_PREDICTIVE_PORT_RANGE);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PunchthroughConfiguration_EXTERNAL_IP_WAIT_AFTER_FIRST_TTL_set(void * jarg1, int jarg2) {
    RakNet::PunchthroughConfiguration *arg1 = (RakNet::PunchthroughConfiguration *) 0 ;
    int arg2 ;
    
    arg1 = (RakNet::PunchthroughConfiguration *)jarg1; 
    arg2 = (int)jarg2; 
    if (arg1) (arg1)->EXTERNAL_IP_WAIT_AFTER_FIRST_TTL = arg2;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_PunchthroughConfiguration_EXTERNAL_IP_WAIT_AFTER_FIRST_TTL_get(void * jarg1) {
    int jresult ;
    RakNet::PunchthroughConfiguration *arg1 = (RakNet::PunchthroughConfiguration *) 0 ;
    int result;
    
    arg1 = (RakNet::PunchthroughConfiguration *)jarg1; 
    result = (int) ((arg1)->EXTERNAL_IP_WAIT_AFTER_FIRST_TTL);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PunchthroughConfiguration_EXTERNAL_IP_WAIT_BETWEEN_PORTS_set(void * jarg1, int jarg2) {
    RakNet::PunchthroughConfiguration *arg1 = (RakNet::PunchthroughConfiguration *) 0 ;
    int arg2 ;
    
    arg1 = (RakNet::PunchthroughConfiguration *)jarg1; 
    arg2 = (int)jarg2; 
    if (arg1) (arg1)->EXTERNAL_IP_WAIT_BETWEEN_PORTS = arg2;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_PunchthroughConfiguration_EXTERNAL_IP_WAIT_BETWEEN_PORTS_get(void * jarg1) {
    int jresult ;
    RakNet::PunchthroughConfiguration *arg1 = (RakNet::PunchthroughConfiguration *) 0 ;
    int result;
    
    arg1 = (RakNet::PunchthroughConfiguration *)jarg1; 
    result = (int) ((arg1)->EXTERNAL_IP_WAIT_BETWEEN_PORTS);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PunchthroughConfiguration_EXTERNAL_IP_WAIT_AFTER_ALL_ATTEMPTS_set(void * jarg1, int jarg2) {
    RakNet::PunchthroughConfiguration *arg1 = (RakNet::PunchthroughConfiguration *) 0 ;
    int arg2 ;
    
    arg1 = (RakNet::PunchthroughConfiguration *)jarg1; 
    arg2 = (int)jarg2; 
    if (arg1) (arg1)->EXTERNAL_IP_WAIT_AFTER_ALL_ATTEMPTS = arg2;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_PunchthroughConfiguration_EXTERNAL_IP_WAIT_AFTER_ALL_ATTEMPTS_get(void * jarg1) {
    int jresult ;
    RakNet::PunchthroughConfiguration *arg1 = (RakNet::PunchthroughConfiguration *) 0 ;
    int result;
    
    arg1 = (RakNet::PunchthroughConfiguration *)jarg1; 
    result = (int) ((arg1)->EXTERNAL_IP_WAIT_AFTER_ALL_ATTEMPTS);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PunchthroughConfiguration_MAXIMUM_NUMBER_OF_INTERNAL_IDS_TO_CHECK_set(void * jarg1, int jarg2) {
    RakNet::PunchthroughConfiguration *arg1 = (RakNet::PunchthroughConfiguration *) 0 ;
    int arg2 ;
    
    arg1 = (RakNet::PunchthroughConfiguration *)jarg1; 
    arg2 = (int)jarg2; 
    if (arg1) (arg1)->MAXIMUM_NUMBER_OF_INTERNAL_IDS_TO_CHECK = arg2;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_PunchthroughConfiguration_MAXIMUM_NUMBER_OF_INTERNAL_IDS_TO_CHECK_get(void * jarg1) {
    int jresult ;
    RakNet::PunchthroughConfiguration *arg1 = (RakNet::PunchthroughConfiguration *) 0 ;
    int result;
    
    arg1 = (RakNet::PunchthroughConfiguration *)jarg1; 
    result = (int) ((arg1)->MAXIMUM_NUMBER_OF_INTERNAL_IDS_TO_CHECK);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PunchthroughConfiguration_retryOnFailure_set(void * jarg1, unsigned int jarg2) {
    RakNet::PunchthroughConfiguration *arg1 = (RakNet::PunchthroughConfiguration *) 0 ;
    bool arg2 ;
    
    arg1 = (RakNet::PunchthroughConfiguration *)jarg1; 
    arg2 = jarg2 ? true : false; 
    if (arg1) (arg1)->retryOnFailure = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_PunchthroughConfiguration_retryOnFailure_get(void * jarg1) {
    unsigned int jresult ;
    RakNet::PunchthroughConfiguration *arg1 = (RakNet::PunchthroughConfiguration *) 0 ;
    bool result;
    
    arg1 = (RakNet::PunchthroughConfiguration *)jarg1; 
    result = (bool) ((arg1)->retryOnFailure);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_PunchthroughConfiguration(void * jarg1) {
    RakNet::PunchthroughConfiguration *arg1 = (RakNet::PunchthroughConfiguration *) 0 ;
    
    arg1 = (RakNet::PunchthroughConfiguration *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_NatPunchthroughDebugInterface() {
    void * jresult ;
    RakNet::NatPunchthroughDebugInterface *result = 0 ;
    
    result = (RakNet::NatPunchthroughDebugInterface *)new SwigDirector_NatPunchthroughDebugInterface();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_NatPunchthroughDebugInterface(void * jarg1) {
    RakNet::NatPunchthroughDebugInterface *arg1 = (RakNet::NatPunchthroughDebugInterface *) 0 ;
    
    arg1 = (RakNet::NatPunchthroughDebugInterface *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatPunchthroughDebugInterface_OnClientMessage(void * jarg1, char * jarg2) {
    RakNet::NatPunchthroughDebugInterface *arg1 = (RakNet::NatPunchthroughDebugInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::NatPunchthroughDebugInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->OnClientMessage((char const *)arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatPunchthroughDebugInterface_director_connect(void *objarg, SwigDirector_NatPunchthroughDebugInterface::SWIG_Callback0_t callback0) {
    RakNet::NatPunchthroughDebugInterface *obj = (RakNet::NatPunchthroughDebugInterface *)objarg;
    SwigDirector_NatPunchthroughDebugInterface *director = dynamic_cast<SwigDirector_NatPunchthroughDebugInterface *>(obj);
    if (director) {
      director->swig_connect_director(callback0);
    }
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatPunchthroughDebugInterface_Printf_OnClientMessage(void * jarg1, char * jarg2) {
    RakNet::NatPunchthroughDebugInterface_Printf *arg1 = (RakNet::NatPunchthroughDebugInterface_Printf *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::NatPunchthroughDebugInterface_Printf *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->OnClientMessage((char const *)arg2);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_NatPunchthroughDebugInterface_Printf() {
    void * jresult ;
    RakNet::NatPunchthroughDebugInterface_Printf *result = 0 ;
    
    result = (RakNet::NatPunchthroughDebugInterface_Printf *)new RakNet::NatPunchthroughDebugInterface_Printf();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_NatPunchthroughDebugInterface_Printf(void * jarg1) {
    RakNet::NatPunchthroughDebugInterface_Printf *arg1 = (RakNet::NatPunchthroughDebugInterface_Printf *) 0 ;
    
    arg1 = (RakNet::NatPunchthroughDebugInterface_Printf *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatPunchthroughDebugInterface_PacketLogger_pl_set(void * jarg1, void * jarg2) {
    RakNet::NatPunchthroughDebugInterface_PacketLogger *arg1 = (RakNet::NatPunchthroughDebugInterface_PacketLogger *) 0 ;
    RakNet::PacketLogger *arg2 = (RakNet::PacketLogger *) 0 ;
    
    arg1 = (RakNet::NatPunchthroughDebugInterface_PacketLogger *)jarg1; 
    arg2 = (RakNet::PacketLogger *)jarg2; 
    if (arg1) (arg1)->pl = arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_NatPunchthroughDebugInterface_PacketLogger_pl_get(void * jarg1) {
    void * jresult ;
    RakNet::NatPunchthroughDebugInterface_PacketLogger *arg1 = (RakNet::NatPunchthroughDebugInterface_PacketLogger *) 0 ;
    RakNet::PacketLogger *result = 0 ;
    
    arg1 = (RakNet::NatPunchthroughDebugInterface_PacketLogger *)jarg1; 
    result = (RakNet::PacketLogger *) ((arg1)->pl);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_NatPunchthroughDebugInterface_PacketLogger() {
    void * jresult ;
    RakNet::NatPunchthroughDebugInterface_PacketLogger *result = 0 ;
    
    result = (RakNet::NatPunchthroughDebugInterface_PacketLogger *)new RakNet::NatPunchthroughDebugInterface_PacketLogger();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_NatPunchthroughDebugInterface_PacketLogger(void * jarg1) {
    RakNet::NatPunchthroughDebugInterface_PacketLogger *arg1 = (RakNet::NatPunchthroughDebugInterface_PacketLogger *) 0 ;
    
    arg1 = (RakNet::NatPunchthroughDebugInterface_PacketLogger *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatPunchthroughDebugInterface_PacketLogger_OnClientMessage(void * jarg1, char * jarg2) {
    RakNet::NatPunchthroughDebugInterface_PacketLogger *arg1 = (RakNet::NatPunchthroughDebugInterface_PacketLogger *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::NatPunchthroughDebugInterface_PacketLogger *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->OnClientMessage((char const *)arg2);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_NatPunchthroughClient_GetInstance() {
    void * jresult ;
    RakNet::NatPunchthroughClient *result = 0 ;
    
    result = (RakNet::NatPunchthroughClient *)RakNet::NatPunchthroughClient::GetInstance();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatPunchthroughClient_DestroyInstance(void * jarg1) {
    RakNet::NatPunchthroughClient *arg1 = (RakNet::NatPunchthroughClient *) 0 ;
    
    arg1 = (RakNet::NatPunchthroughClient *)jarg1; 
    RakNet::NatPunchthroughClient::DestroyInstance(arg1);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_NatPunchthroughClient() {
    void * jresult ;
    RakNet::NatPunchthroughClient *result = 0 ;
    
    result = (RakNet::NatPunchthroughClient *)new RakNet::NatPunchthroughClient();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_NatPunchthroughClient(void * jarg1) {
    RakNet::NatPunchthroughClient *arg1 = (RakNet::NatPunchthroughClient *) 0 ;
    
    arg1 = (RakNet::NatPunchthroughClient *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatPunchthroughClient_FindRouterPortStride(void * jarg1, void * jarg2) {
    RakNet::NatPunchthroughClient *arg1 = (RakNet::NatPunchthroughClient *) 0 ;
    RakNet::SystemAddress *arg2 = 0 ;
    
    arg1 = (RakNet::NatPunchthroughClient *)jarg1; 
    arg2 = (RakNet::SystemAddress *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return ;
    } 
    (arg1)->FindRouterPortStride((RakNet::SystemAddress const &)*arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_NatPunchthroughClient_OpenNAT(void * jarg1, void * jarg2, void * jarg3) {
    unsigned int jresult ;
    RakNet::NatPunchthroughClient *arg1 = (RakNet::NatPunchthroughClient *) 0 ;
    RakNet::RakNetGUID arg2 ;
    RakNet::SystemAddress *arg3 = 0 ;
    RakNet::RakNetGUID *argp2 ;
    bool result;
    
    arg1 = (RakNet::NatPunchthroughClient *)jarg1; 
    argp2 = (RakNet::RakNetGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return 0;
    }
    arg2 = *argp2; 
    arg3 = (RakNet::SystemAddress *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return 0;
    } 
    result = (bool)(arg1)->OpenNAT(arg2,(RakNet::SystemAddress const &)*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_NatPunchthroughClient_GetPunchthroughConfiguration(void * jarg1) {
    void * jresult ;
    RakNet::NatPunchthroughClient *arg1 = (RakNet::NatPunchthroughClient *) 0 ;
    RakNet::PunchthroughConfiguration *result = 0 ;
    
    arg1 = (RakNet::NatPunchthroughClient *)jarg1; 
    result = (RakNet::PunchthroughConfiguration *)(arg1)->GetPunchthroughConfiguration();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatPunchthroughClient_SetDebugInterface(void * jarg1, void * jarg2) {
    RakNet::NatPunchthroughClient *arg1 = (RakNet::NatPunchthroughClient *) 0 ;
    RakNet::NatPunchthroughDebugInterface *arg2 = (RakNet::NatPunchthroughDebugInterface *) 0 ;
    
    arg1 = (RakNet::NatPunchthroughClient *)jarg1; 
    arg2 = (RakNet::NatPunchthroughDebugInterface *)jarg2; 
    (arg1)->SetDebugInterface(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatPunchthroughClient_GetUPNPPortMappings(void * jarg1, char * jarg2, char * jarg3, void * jarg4) {
    RakNet::NatPunchthroughClient *arg1 = (RakNet::NatPunchthroughClient *) 0 ;
    char *arg2 = (char *) 0 ;
    char *arg3 = (char *) 0 ;
    RakNet::SystemAddress *arg4 = 0 ;
    
    arg1 = (RakNet::NatPunchthroughClient *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = (RakNet::SystemAddress *)jarg4;
    if (!arg4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return ;
    } 
    (arg1)->GetUPNPPortMappings(arg2,arg3,(RakNet::SystemAddress const &)*arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatPunchthroughClient_Clear(void * jarg1) {
    RakNet::NatPunchthroughClient *arg1 = (RakNet::NatPunchthroughClient *) 0 ;
    
    arg1 = (RakNet::NatPunchthroughClient *)jarg1; 
    (arg1)->Clear();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatPunchthroughClient_sp_set(void * jarg1, void * jarg2) {
    RakNet::NatPunchthroughClient *arg1 = (RakNet::NatPunchthroughClient *) 0 ;
    RakNet::NatPunchthroughClient::SendPing *arg2 = (RakNet::NatPunchthroughClient::SendPing *) 0 ;
    
    arg1 = (RakNet::NatPunchthroughClient *)jarg1; 
    arg2 = (RakNet::NatPunchthroughClient::SendPing *)jarg2; 
    if (arg1) (arg1)->sp = *arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_NatPunchthroughClient_sp_get(void * jarg1) {
    void * jresult ;
    RakNet::NatPunchthroughClient *arg1 = (RakNet::NatPunchthroughClient *) 0 ;
    RakNet::NatPunchthroughClient::SendPing *result = 0 ;
    
    arg1 = (RakNet::NatPunchthroughClient *)jarg1; 
    result = (RakNet::NatPunchthroughClient::SendPing *)& ((arg1)->sp);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_Router2DebugInterface() {
    void * jresult ;
    RakNet::Router2DebugInterface *result = 0 ;
    
    result = (RakNet::Router2DebugInterface *)new RakNet::Router2DebugInterface();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_Router2DebugInterface(void * jarg1) {
    RakNet::Router2DebugInterface *arg1 = (RakNet::Router2DebugInterface *) 0 ;
    
    arg1 = (RakNet::Router2DebugInterface *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Router2DebugInterface_ShowFailure(void * jarg1, char * jarg2) {
    RakNet::Router2DebugInterface *arg1 = (RakNet::Router2DebugInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::Router2DebugInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->ShowFailure((char const *)arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Router2DebugInterface_ShowDiagnostic(void * jarg1, char * jarg2) {
    RakNet::Router2DebugInterface *arg1 = (RakNet::Router2DebugInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::Router2DebugInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->ShowDiagnostic((char const *)arg2);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_Router2_GetInstance() {
    void * jresult ;
    RakNet::Router2 *result = 0 ;
    
    result = (RakNet::Router2 *)RakNet::Router2::GetInstance();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Router2_DestroyInstance(void * jarg1) {
    RakNet::Router2 *arg1 = (RakNet::Router2 *) 0 ;
    
    arg1 = (RakNet::Router2 *)jarg1; 
    RakNet::Router2::DestroyInstance(arg1);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_Router2() {
    void * jresult ;
    RakNet::Router2 *result = 0 ;
    
    result = (RakNet::Router2 *)new RakNet::Router2();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_Router2(void * jarg1) {
    RakNet::Router2 *arg1 = (RakNet::Router2 *) 0 ;
    
    arg1 = (RakNet::Router2 *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Router2_SetSocketFamily(void * jarg1, unsigned short jarg2) {
    RakNet::Router2 *arg1 = (RakNet::Router2 *) 0 ;
    unsigned short arg2 ;
    
    arg1 = (RakNet::Router2 *)jarg1; 
    arg2 = (unsigned short)jarg2; 
    (arg1)->SetSocketFamily(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Router2_EstablishRouting(void * jarg1, void * jarg2) {
    RakNet::Router2 *arg1 = (RakNet::Router2 *) 0 ;
    RakNet::RakNetGUID arg2 ;
    RakNet::RakNetGUID *argp2 ;
    
    arg1 = (RakNet::Router2 *)jarg1; 
    argp2 = (RakNet::RakNetGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return ;
    }
    arg2 = *argp2; 
    (arg1)->EstablishRouting(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Router2_SetMaximumForwardingRequests(void * jarg1, int jarg2) {
    RakNet::Router2 *arg1 = (RakNet::Router2 *) 0 ;
    int arg2 ;
    
    arg1 = (RakNet::Router2 *)jarg1; 
    arg2 = (int)jarg2; 
    (arg1)->SetMaximumForwardingRequests(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Router2_SetDebugInterface(void * jarg1, void * jarg2) {
    RakNet::Router2 *arg1 = (RakNet::Router2 *) 0 ;
    RakNet::Router2DebugInterface *arg2 = (RakNet::Router2DebugInterface *) 0 ;
    
    arg1 = (RakNet::Router2 *)jarg1; 
    arg2 = (RakNet::Router2DebugInterface *)jarg2; 
    (arg1)->SetDebugInterface(arg2);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_Router2_GetDebugInterface(void * jarg1) {
    void * jresult ;
    RakNet::Router2 *arg1 = (RakNet::Router2 *) 0 ;
    RakNet::Router2DebugInterface *result = 0 ;
    
    arg1 = (RakNet::Router2 *)jarg1; 
    result = (RakNet::Router2DebugInterface *)((RakNet::Router2 const *)arg1)->GetDebugInterface();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Router2_GetConnectionRequestIndex(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::Router2 *arg1 = (RakNet::Router2 *) 0 ;
    RakNet::RakNetGUID arg2 ;
    RakNet::RakNetGUID *argp2 ;
    unsigned int result;
    
    arg1 = (RakNet::Router2 *)jarg1; 
    argp2 = (RakNet::RakNetGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = (unsigned int)(arg1)->GetConnectionRequestIndex(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_UDPProxyClientResultHandler() {
    void * jresult ;
    RakNet::UDPProxyClientResultHandler *result = 0 ;
    
    result = (RakNet::UDPProxyClientResultHandler *)new SwigDirector_UDPProxyClientResultHandler();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_UDPProxyClientResultHandler(void * jarg1) {
    RakNet::UDPProxyClientResultHandler *arg1 = (RakNet::UDPProxyClientResultHandler *) 0 ;
    
    arg1 = (RakNet::UDPProxyClientResultHandler *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UDPProxyClientResultHandler_OnForwardingSuccess(void * jarg1, char * jarg2, unsigned short jarg3, void * jarg4, void * jarg5, void * jarg6, void * jarg7, void * jarg8) {
    RakNet::UDPProxyClientResultHandler *arg1 = (RakNet::UDPProxyClientResultHandler *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    RakNet::SystemAddress arg4 ;
    RakNet::SystemAddress arg5 ;
    RakNet::SystemAddress arg6 ;
    RakNet::RakNetGUID arg7 ;
    RakNet::UDPProxyClient *arg8 = (RakNet::UDPProxyClient *) 0 ;
    RakNet::SystemAddress *argp4 ;
    RakNet::SystemAddress *argp5 ;
    RakNet::SystemAddress *argp6 ;
    RakNet::RakNetGUID *argp7 ;
    
    arg1 = (RakNet::UDPProxyClientResultHandler *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    argp4 = (RakNet::SystemAddress *)jarg4; 
    if (!argp4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg4 = *argp4; 
    argp5 = (RakNet::SystemAddress *)jarg5; 
    if (!argp5) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg5 = *argp5; 
    argp6 = (RakNet::SystemAddress *)jarg6; 
    if (!argp6) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg6 = *argp6; 
    argp7 = (RakNet::RakNetGUID *)jarg7; 
    if (!argp7) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return ;
    }
    arg7 = *argp7; 
    arg8 = (RakNet::UDPProxyClient *)jarg8; 
    (arg1)->OnForwardingSuccess((char const *)arg2,arg3,arg4,arg5,arg6,arg7,arg8);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UDPProxyClientResultHandler_OnForwardingNotification(void * jarg1, char * jarg2, unsigned short jarg3, void * jarg4, void * jarg5, void * jarg6, void * jarg7, void * jarg8) {
    RakNet::UDPProxyClientResultHandler *arg1 = (RakNet::UDPProxyClientResultHandler *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    RakNet::SystemAddress arg4 ;
    RakNet::SystemAddress arg5 ;
    RakNet::SystemAddress arg6 ;
    RakNet::RakNetGUID arg7 ;
    RakNet::UDPProxyClient *arg8 = (RakNet::UDPProxyClient *) 0 ;
    RakNet::SystemAddress *argp4 ;
    RakNet::SystemAddress *argp5 ;
    RakNet::SystemAddress *argp6 ;
    RakNet::RakNetGUID *argp7 ;
    
    arg1 = (RakNet::UDPProxyClientResultHandler *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    argp4 = (RakNet::SystemAddress *)jarg4; 
    if (!argp4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg4 = *argp4; 
    argp5 = (RakNet::SystemAddress *)jarg5; 
    if (!argp5) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg5 = *argp5; 
    argp6 = (RakNet::SystemAddress *)jarg6; 
    if (!argp6) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg6 = *argp6; 
    argp7 = (RakNet::RakNetGUID *)jarg7; 
    if (!argp7) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return ;
    }
    arg7 = *argp7; 
    arg8 = (RakNet::UDPProxyClient *)jarg8; 
    (arg1)->OnForwardingNotification((char const *)arg2,arg3,arg4,arg5,arg6,arg7,arg8);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UDPProxyClientResultHandler_OnNoServersOnline(void * jarg1, void * jarg2, void * jarg3, void * jarg4, void * jarg5, void * jarg6) {
    RakNet::UDPProxyClientResultHandler *arg1 = (RakNet::UDPProxyClientResultHandler *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress arg3 ;
    RakNet::SystemAddress arg4 ;
    RakNet::RakNetGUID arg5 ;
    RakNet::UDPProxyClient *arg6 = (RakNet::UDPProxyClient *) 0 ;
    RakNet::SystemAddress *argp2 ;
    RakNet::SystemAddress *argp3 ;
    RakNet::SystemAddress *argp4 ;
    RakNet::RakNetGUID *argp5 ;
    
    arg1 = (RakNet::UDPProxyClientResultHandler *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg2 = *argp2; 
    argp3 = (RakNet::SystemAddress *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg3 = *argp3; 
    argp4 = (RakNet::SystemAddress *)jarg4; 
    if (!argp4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg4 = *argp4; 
    argp5 = (RakNet::RakNetGUID *)jarg5; 
    if (!argp5) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return ;
    }
    arg5 = *argp5; 
    arg6 = (RakNet::UDPProxyClient *)jarg6; 
    (arg1)->OnNoServersOnline(arg2,arg3,arg4,arg5,arg6);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UDPProxyClientResultHandler_OnRecipientNotConnected(void * jarg1, void * jarg2, void * jarg3, void * jarg4, void * jarg5, void * jarg6) {
    RakNet::UDPProxyClientResultHandler *arg1 = (RakNet::UDPProxyClientResultHandler *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress arg3 ;
    RakNet::SystemAddress arg4 ;
    RakNet::RakNetGUID arg5 ;
    RakNet::UDPProxyClient *arg6 = (RakNet::UDPProxyClient *) 0 ;
    RakNet::SystemAddress *argp2 ;
    RakNet::SystemAddress *argp3 ;
    RakNet::SystemAddress *argp4 ;
    RakNet::RakNetGUID *argp5 ;
    
    arg1 = (RakNet::UDPProxyClientResultHandler *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg2 = *argp2; 
    argp3 = (RakNet::SystemAddress *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg3 = *argp3; 
    argp4 = (RakNet::SystemAddress *)jarg4; 
    if (!argp4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg4 = *argp4; 
    argp5 = (RakNet::RakNetGUID *)jarg5; 
    if (!argp5) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return ;
    }
    arg5 = *argp5; 
    arg6 = (RakNet::UDPProxyClient *)jarg6; 
    (arg1)->OnRecipientNotConnected(arg2,arg3,arg4,arg5,arg6);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UDPProxyClientResultHandler_OnAllServersBusy(void * jarg1, void * jarg2, void * jarg3, void * jarg4, void * jarg5, void * jarg6) {
    RakNet::UDPProxyClientResultHandler *arg1 = (RakNet::UDPProxyClientResultHandler *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress arg3 ;
    RakNet::SystemAddress arg4 ;
    RakNet::RakNetGUID arg5 ;
    RakNet::UDPProxyClient *arg6 = (RakNet::UDPProxyClient *) 0 ;
    RakNet::SystemAddress *argp2 ;
    RakNet::SystemAddress *argp3 ;
    RakNet::SystemAddress *argp4 ;
    RakNet::RakNetGUID *argp5 ;
    
    arg1 = (RakNet::UDPProxyClientResultHandler *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg2 = *argp2; 
    argp3 = (RakNet::SystemAddress *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg3 = *argp3; 
    argp4 = (RakNet::SystemAddress *)jarg4; 
    if (!argp4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg4 = *argp4; 
    argp5 = (RakNet::RakNetGUID *)jarg5; 
    if (!argp5) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return ;
    }
    arg5 = *argp5; 
    arg6 = (RakNet::UDPProxyClient *)jarg6; 
    (arg1)->OnAllServersBusy(arg2,arg3,arg4,arg5,arg6);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UDPProxyClientResultHandler_OnForwardingInProgress(void * jarg1, char * jarg2, unsigned short jarg3, void * jarg4, void * jarg5, void * jarg6, void * jarg7, void * jarg8) {
    RakNet::UDPProxyClientResultHandler *arg1 = (RakNet::UDPProxyClientResultHandler *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned short arg3 ;
    RakNet::SystemAddress arg4 ;
    RakNet::SystemAddress arg5 ;
    RakNet::SystemAddress arg6 ;
    RakNet::RakNetGUID arg7 ;
    RakNet::UDPProxyClient *arg8 = (RakNet::UDPProxyClient *) 0 ;
    RakNet::SystemAddress *argp4 ;
    RakNet::SystemAddress *argp5 ;
    RakNet::SystemAddress *argp6 ;
    RakNet::RakNetGUID *argp7 ;
    
    arg1 = (RakNet::UDPProxyClientResultHandler *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned short)jarg3; 
    argp4 = (RakNet::SystemAddress *)jarg4; 
    if (!argp4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg4 = *argp4; 
    argp5 = (RakNet::SystemAddress *)jarg5; 
    if (!argp5) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg5 = *argp5; 
    argp6 = (RakNet::SystemAddress *)jarg6; 
    if (!argp6) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg6 = *argp6; 
    argp7 = (RakNet::RakNetGUID *)jarg7; 
    if (!argp7) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return ;
    }
    arg7 = *argp7; 
    arg8 = (RakNet::UDPProxyClient *)jarg8; 
    (arg1)->OnForwardingInProgress((char const *)arg2,arg3,arg4,arg5,arg6,arg7,arg8);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UDPProxyClientResultHandler_director_connect(void *objarg, SwigDirector_UDPProxyClientResultHandler::SWIG_Callback0_t callback0, SwigDirector_UDPProxyClientResultHandler::SWIG_Callback1_t callback1, SwigDirector_UDPProxyClientResultHandler::SWIG_Callback2_t callback2, SwigDirector_UDPProxyClientResultHandler::SWIG_Callback3_t callback3, SwigDirector_UDPProxyClientResultHandler::SWIG_Callback4_t callback4, SwigDirector_UDPProxyClientResultHandler::SWIG_Callback5_t callback5) {
    RakNet::UDPProxyClientResultHandler *obj = (RakNet::UDPProxyClientResultHandler *)objarg;
    SwigDirector_UDPProxyClientResultHandler *director = dynamic_cast<SwigDirector_UDPProxyClientResultHandler *>(obj);
    if (director) {
      director->swig_connect_director(callback0, callback1, callback2, callback3, callback4, callback5);
    }
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_UDPProxyClient_GetInstance() {
    void * jresult ;
    RakNet::UDPProxyClient *result = 0 ;
    
    result = (RakNet::UDPProxyClient *)RakNet::UDPProxyClient::GetInstance();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UDPProxyClient_DestroyInstance(void * jarg1) {
    RakNet::UDPProxyClient *arg1 = (RakNet::UDPProxyClient *) 0 ;
    
    arg1 = (RakNet::UDPProxyClient *)jarg1; 
    RakNet::UDPProxyClient::DestroyInstance(arg1);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_UDPProxyClient() {
    void * jresult ;
    RakNet::UDPProxyClient *result = 0 ;
    
    result = (RakNet::UDPProxyClient *)new RakNet::UDPProxyClient();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_UDPProxyClient(void * jarg1) {
    RakNet::UDPProxyClient *arg1 = (RakNet::UDPProxyClient *) 0 ;
    
    arg1 = (RakNet::UDPProxyClient *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UDPProxyClient_SetResultHandler(void * jarg1, void * jarg2) {
    RakNet::UDPProxyClient *arg1 = (RakNet::UDPProxyClient *) 0 ;
    RakNet::UDPProxyClientResultHandler *arg2 = (RakNet::UDPProxyClientResultHandler *) 0 ;
    
    arg1 = (RakNet::UDPProxyClient *)jarg1; 
    arg2 = (RakNet::UDPProxyClientResultHandler *)jarg2; 
    (arg1)->SetResultHandler(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UDPProxyClient_RequestForwarding__SWIG_0(void * jarg1, void * jarg2, void * jarg3, void * jarg4, unsigned int jarg5, void * jarg6) {
    unsigned int jresult ;
    RakNet::UDPProxyClient *arg1 = (RakNet::UDPProxyClient *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress arg3 ;
    RakNet::SystemAddress arg4 ;
    RakNet::TimeMS arg5 ;
    RakNet::BitStream *arg6 = (RakNet::BitStream *) 0 ;
    RakNet::SystemAddress *argp2 ;
    RakNet::SystemAddress *argp3 ;
    RakNet::SystemAddress *argp4 ;
    bool result;
    
    arg1 = (RakNet::UDPProxyClient *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return 0;
    }
    arg2 = *argp2; 
    argp3 = (RakNet::SystemAddress *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return 0;
    }
    arg3 = *argp3; 
    argp4 = (RakNet::SystemAddress *)jarg4; 
    if (!argp4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return 0;
    }
    arg4 = *argp4; 
    arg5 = (RakNet::TimeMS)jarg5; 
    arg6 = (RakNet::BitStream *)jarg6; 
    result = (bool)(arg1)->RequestForwarding(arg2,arg3,arg4,arg5,arg6);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UDPProxyClient_RequestForwarding__SWIG_1(void * jarg1, void * jarg2, void * jarg3, void * jarg4, unsigned int jarg5) {
    unsigned int jresult ;
    RakNet::UDPProxyClient *arg1 = (RakNet::UDPProxyClient *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress arg3 ;
    RakNet::SystemAddress arg4 ;
    RakNet::TimeMS arg5 ;
    RakNet::SystemAddress *argp2 ;
    RakNet::SystemAddress *argp3 ;
    RakNet::SystemAddress *argp4 ;
    bool result;
    
    arg1 = (RakNet::UDPProxyClient *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return 0;
    }
    arg2 = *argp2; 
    argp3 = (RakNet::SystemAddress *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return 0;
    }
    arg3 = *argp3; 
    argp4 = (RakNet::SystemAddress *)jarg4; 
    if (!argp4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return 0;
    }
    arg4 = *argp4; 
    arg5 = (RakNet::TimeMS)jarg5; 
    result = (bool)(arg1)->RequestForwarding(arg2,arg3,arg4,arg5);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UDPProxyClient_RequestForwarding__SWIG_2(void * jarg1, void * jarg2, void * jarg3, void * jarg4, unsigned int jarg5, void * jarg6) {
    unsigned int jresult ;
    RakNet::UDPProxyClient *arg1 = (RakNet::UDPProxyClient *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress arg3 ;
    RakNet::RakNetGUID arg4 ;
    RakNet::TimeMS arg5 ;
    RakNet::BitStream *arg6 = (RakNet::BitStream *) 0 ;
    RakNet::SystemAddress *argp2 ;
    RakNet::SystemAddress *argp3 ;
    RakNet::RakNetGUID *argp4 ;
    bool result;
    
    arg1 = (RakNet::UDPProxyClient *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return 0;
    }
    arg2 = *argp2; 
    argp3 = (RakNet::SystemAddress *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return 0;
    }
    arg3 = *argp3; 
    argp4 = (RakNet::RakNetGUID *)jarg4; 
    if (!argp4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return 0;
    }
    arg4 = *argp4; 
    arg5 = (RakNet::TimeMS)jarg5; 
    arg6 = (RakNet::BitStream *)jarg6; 
    result = (bool)(arg1)->RequestForwarding(arg2,arg3,arg4,arg5,arg6);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UDPProxyClient_RequestForwarding__SWIG_3(void * jarg1, void * jarg2, void * jarg3, void * jarg4, unsigned int jarg5) {
    unsigned int jresult ;
    RakNet::UDPProxyClient *arg1 = (RakNet::UDPProxyClient *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress arg3 ;
    RakNet::RakNetGUID arg4 ;
    RakNet::TimeMS arg5 ;
    RakNet::SystemAddress *argp2 ;
    RakNet::SystemAddress *argp3 ;
    RakNet::RakNetGUID *argp4 ;
    bool result;
    
    arg1 = (RakNet::UDPProxyClient *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return 0;
    }
    arg2 = *argp2; 
    argp3 = (RakNet::SystemAddress *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return 0;
    }
    arg3 = *argp3; 
    argp4 = (RakNet::RakNetGUID *)jarg4; 
    if (!argp4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return 0;
    }
    arg4 = *argp4; 
    arg5 = (RakNet::TimeMS)jarg5; 
    result = (bool)(arg1)->RequestForwarding(arg2,arg3,arg4,arg5);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_FullyConnectedMesh2_GetInstance() {
    void * jresult ;
    RakNet::FullyConnectedMesh2 *result = 0 ;
    
    result = (RakNet::FullyConnectedMesh2 *)RakNet::FullyConnectedMesh2::GetInstance();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FullyConnectedMesh2_DestroyInstance(void * jarg1) {
    RakNet::FullyConnectedMesh2 *arg1 = (RakNet::FullyConnectedMesh2 *) 0 ;
    
    arg1 = (RakNet::FullyConnectedMesh2 *)jarg1; 
    RakNet::FullyConnectedMesh2::DestroyInstance(arg1);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_FullyConnectedMesh2() {
    void * jresult ;
    RakNet::FullyConnectedMesh2 *result = 0 ;
    
    result = (RakNet::FullyConnectedMesh2 *)new RakNet::FullyConnectedMesh2();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_FullyConnectedMesh2(void * jarg1) {
    RakNet::FullyConnectedMesh2 *arg1 = (RakNet::FullyConnectedMesh2 *) 0 ;
    
    arg1 = (RakNet::FullyConnectedMesh2 *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FullyConnectedMesh2_SetConnectOnNewRemoteConnection(void * jarg1, unsigned int jarg2, void * jarg3) {
    RakNet::FullyConnectedMesh2 *arg1 = (RakNet::FullyConnectedMesh2 *) 0 ;
    bool arg2 ;
    RakNet::RakString arg3 ;
    RakNet::RakString *argp3 ;
    
    arg1 = (RakNet::FullyConnectedMesh2 *)jarg1; 
    arg2 = jarg2 ? true : false; 
    argp3 = (RakNet::RakString *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakString", 0);
      return ;
    }
    arg3 = *argp3; 
    (arg1)->SetConnectOnNewRemoteConnection(arg2,arg3);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_FullyConnectedMesh2_GetConnectedHost(void * jarg1) {
    void * jresult ;
    RakNet::FullyConnectedMesh2 *arg1 = (RakNet::FullyConnectedMesh2 *) 0 ;
    RakNet::RakNetGUID result;
    
    arg1 = (RakNet::FullyConnectedMesh2 *)jarg1; 
    result = ((RakNet::FullyConnectedMesh2 const *)arg1)->GetConnectedHost();
    jresult = new RakNet::RakNetGUID((const RakNet::RakNetGUID &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_FullyConnectedMesh2_GetConnectedHostAddr(void * jarg1) {
    void * jresult ;
    RakNet::FullyConnectedMesh2 *arg1 = (RakNet::FullyConnectedMesh2 *) 0 ;
    RakNet::SystemAddress result;
    
    arg1 = (RakNet::FullyConnectedMesh2 *)jarg1; 
    result = ((RakNet::FullyConnectedMesh2 const *)arg1)->GetConnectedHostAddr();
    jresult = new RakNet::SystemAddress((const RakNet::SystemAddress &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_FullyConnectedMesh2_GetHostSystem(void * jarg1) {
    void * jresult ;
    RakNet::FullyConnectedMesh2 *arg1 = (RakNet::FullyConnectedMesh2 *) 0 ;
    RakNet::RakNetGUID result;
    
    arg1 = (RakNet::FullyConnectedMesh2 *)jarg1; 
    result = ((RakNet::FullyConnectedMesh2 const *)arg1)->GetHostSystem();
    jresult = new RakNet::RakNetGUID((const RakNet::RakNetGUID &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FullyConnectedMesh2_IsHostSystem(void * jarg1) {
    unsigned int jresult ;
    RakNet::FullyConnectedMesh2 *arg1 = (RakNet::FullyConnectedMesh2 *) 0 ;
    bool result;
    
    arg1 = (RakNet::FullyConnectedMesh2 *)jarg1; 
    result = (bool)((RakNet::FullyConnectedMesh2 const *)arg1)->IsHostSystem();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FullyConnectedMesh2_GetHostOrder(void * jarg1, void * jarg2) {
    RakNet::FullyConnectedMesh2 *arg1 = (RakNet::FullyConnectedMesh2 *) 0 ;
    DataStructures::List< RakNet::RakNetGUID > *arg2 = 0 ;
    
    arg1 = (RakNet::FullyConnectedMesh2 *)jarg1; 
    arg2 = (DataStructures::List< RakNet::RakNetGUID > *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< RakNet::RakNetGUID > & type is null", 0);
      return ;
    } 
    (arg1)->GetHostOrder(*arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FullyConnectedMesh2_IsConnectedHost(void * jarg1) {
    unsigned int jresult ;
    RakNet::FullyConnectedMesh2 *arg1 = (RakNet::FullyConnectedMesh2 *) 0 ;
    bool result;
    
    arg1 = (RakNet::FullyConnectedMesh2 *)jarg1; 
    result = (bool)((RakNet::FullyConnectedMesh2 const *)arg1)->IsConnectedHost();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FullyConnectedMesh2_SetAutoparticipateConnections(void * jarg1, unsigned int jarg2) {
    RakNet::FullyConnectedMesh2 *arg1 = (RakNet::FullyConnectedMesh2 *) 0 ;
    bool arg2 ;
    
    arg1 = (RakNet::FullyConnectedMesh2 *)jarg1; 
    arg2 = jarg2 ? true : false; 
    (arg1)->SetAutoparticipateConnections(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FullyConnectedMesh2_ResetHostCalculation(void * jarg1) {
    RakNet::FullyConnectedMesh2 *arg1 = (RakNet::FullyConnectedMesh2 *) 0 ;
    
    arg1 = (RakNet::FullyConnectedMesh2 *)jarg1; 
    (arg1)->ResetHostCalculation();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FullyConnectedMesh2_AddParticipant(void * jarg1, void * jarg2) {
    RakNet::FullyConnectedMesh2 *arg1 = (RakNet::FullyConnectedMesh2 *) 0 ;
    RakNet::RakNetGUID arg2 ;
    RakNet::RakNetGUID *argp2 ;
    
    arg1 = (RakNet::FullyConnectedMesh2 *)jarg1; 
    argp2 = (RakNet::RakNetGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return ;
    }
    arg2 = *argp2; 
    (arg1)->AddParticipant(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FullyConnectedMesh2_GetParticipantList(void * jarg1, void * jarg2) {
    RakNet::FullyConnectedMesh2 *arg1 = (RakNet::FullyConnectedMesh2 *) 0 ;
    DataStructures::List< RakNet::RakNetGUID > *arg2 = 0 ;
    
    arg1 = (RakNet::FullyConnectedMesh2 *)jarg1; 
    arg2 = (DataStructures::List< RakNet::RakNetGUID > *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< RakNet::RakNetGUID > & type is null", 0);
      return ;
    } 
    (arg1)->GetParticipantList(*arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FullyConnectedMesh2_HasParticipant(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::FullyConnectedMesh2 *arg1 = (RakNet::FullyConnectedMesh2 *) 0 ;
    RakNet::RakNetGUID arg2 ;
    RakNet::RakNetGUID *argp2 ;
    bool result;
    
    arg1 = (RakNet::FullyConnectedMesh2 *)jarg1; 
    argp2 = (RakNet::RakNetGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = (bool)(arg1)->HasParticipant(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FullyConnectedMesh2_ConnectToRemoteNewIncomingConnections(void * jarg1, void * jarg2) {
    RakNet::FullyConnectedMesh2 *arg1 = (RakNet::FullyConnectedMesh2 *) 0 ;
    RakNet::Packet *arg2 = (RakNet::Packet *) 0 ;
    
    arg1 = (RakNet::FullyConnectedMesh2 *)jarg1; 
    arg2 = (RakNet::Packet *)jarg2; 
    (arg1)->ConnectToRemoteNewIncomingConnections(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FullyConnectedMesh2_Clear(void * jarg1) {
    RakNet::FullyConnectedMesh2 *arg1 = (RakNet::FullyConnectedMesh2 *) 0 ;
    
    arg1 = (RakNet::FullyConnectedMesh2 *)jarg1; 
    (arg1)->Clear();
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FullyConnectedMesh2_GetParticipantCount__SWIG_0(void * jarg1) {
    unsigned int jresult ;
    RakNet::FullyConnectedMesh2 *arg1 = (RakNet::FullyConnectedMesh2 *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::FullyConnectedMesh2 *)jarg1; 
    result = (unsigned int)((RakNet::FullyConnectedMesh2 const *)arg1)->GetParticipantCount();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FullyConnectedMesh2_GetParticipantCount__SWIG_1(void * jarg1, void * jarg2) {
    RakNet::FullyConnectedMesh2 *arg1 = (RakNet::FullyConnectedMesh2 *) 0 ;
    unsigned int *arg2 = (unsigned int *) 0 ;
    
    arg1 = (RakNet::FullyConnectedMesh2 *)jarg1; 
    arg2 = (unsigned int *)jarg2; 
    ((RakNet::FullyConnectedMesh2 const *)arg1)->GetParticipantCount(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FullyConnectedMesh2_StartVerifiedJoin(void * jarg1, void * jarg2) {
    RakNet::FullyConnectedMesh2 *arg1 = (RakNet::FullyConnectedMesh2 *) 0 ;
    RakNet::RakNetGUID arg2 ;
    RakNet::RakNetGUID *argp2 ;
    
    arg1 = (RakNet::FullyConnectedMesh2 *)jarg1; 
    argp2 = (RakNet::RakNetGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return ;
    }
    arg2 = *argp2; 
    (arg1)->StartVerifiedJoin(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FullyConnectedMesh2_RespondOnVerifiedJoinCapable(void * jarg1, void * jarg2, unsigned int jarg3, void * jarg4) {
    RakNet::FullyConnectedMesh2 *arg1 = (RakNet::FullyConnectedMesh2 *) 0 ;
    RakNet::Packet *arg2 = (RakNet::Packet *) 0 ;
    bool arg3 ;
    RakNet::BitStream *arg4 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::FullyConnectedMesh2 *)jarg1; 
    arg2 = (RakNet::Packet *)jarg2; 
    arg3 = jarg3 ? true : false; 
    arg4 = (RakNet::BitStream *)jarg4; 
    (arg1)->RespondOnVerifiedJoinCapable(arg2,arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FullyConnectedMesh2_GetVerifiedJoinRequiredProcessingList(void * jarg1, void * jarg2, void * jarg3, void * jarg4, void * jarg5) {
    RakNet::FullyConnectedMesh2 *arg1 = (RakNet::FullyConnectedMesh2 *) 0 ;
    RakNet::RakNetGUID arg2 ;
    DataStructures::List< RakNet::SystemAddress > *arg3 = 0 ;
    DataStructures::List< RakNet::RakNetGUID > *arg4 = 0 ;
    DataStructures::List< RakNet::BitStream * > *arg5 = 0 ;
    RakNet::RakNetGUID *argp2 ;
    
    arg1 = (RakNet::FullyConnectedMesh2 *)jarg1; 
    argp2 = (RakNet::RakNetGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return ;
    }
    arg2 = *argp2; 
    arg3 = (DataStructures::List< RakNet::SystemAddress > *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< RakNet::SystemAddress > & type is null", 0);
      return ;
    } 
    arg4 = (DataStructures::List< RakNet::RakNetGUID > *)jarg4;
    if (!arg4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< RakNet::RakNetGUID > & type is null", 0);
      return ;
    } 
    arg5 = (DataStructures::List< RakNet::BitStream * > *)jarg5;
    if (!arg5) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< RakNet::BitStream * > & type is null", 0);
      return ;
    } 
    (arg1)->GetVerifiedJoinRequiredProcessingList(arg2,*arg3,*arg4,*arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FullyConnectedMesh2_GetVerifiedJoinAcceptedAdditionalData(void * jarg1, void * jarg2, void * jarg3, void * jarg4, void * jarg5) {
    RakNet::FullyConnectedMesh2 *arg1 = (RakNet::FullyConnectedMesh2 *) 0 ;
    RakNet::Packet *arg2 = (RakNet::Packet *) 0 ;
    bool *arg3 = (bool *) 0 ;
    DataStructures::List< RakNet::RakNetGUID > *arg4 = 0 ;
    RakNet::BitStream *arg5 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::FullyConnectedMesh2 *)jarg1; 
    arg2 = (RakNet::Packet *)jarg2; 
    arg3 = (bool *)jarg3; 
    arg4 = (DataStructures::List< RakNet::RakNetGUID > *)jarg4;
    if (!arg4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< RakNet::RakNetGUID > & type is null", 0);
      return ;
    } 
    arg5 = (RakNet::BitStream *)jarg5; 
    (arg1)->GetVerifiedJoinAcceptedAdditionalData(arg2,arg3,*arg4,arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FullyConnectedMesh2_GetVerifiedJoinRejectedAdditionalData(void * jarg1, void * jarg2, void * jarg3) {
    RakNet::FullyConnectedMesh2 *arg1 = (RakNet::FullyConnectedMesh2 *) 0 ;
    RakNet::Packet *arg2 = (RakNet::Packet *) 0 ;
    RakNet::BitStream *arg3 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::FullyConnectedMesh2 *)jarg1; 
    arg2 = (RakNet::Packet *)jarg2; 
    arg3 = (RakNet::BitStream *)jarg3; 
    (arg1)->GetVerifiedJoinRejectedAdditionalData(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FullyConnectedMesh2_WriteVJCUserData(void * jarg1, void * jarg2) {
    RakNet::FullyConnectedMesh2 *arg1 = (RakNet::FullyConnectedMesh2 *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::FullyConnectedMesh2 *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    (arg1)->WriteVJCUserData(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FullyConnectedMesh2_SkipToVJCUserData(void * jarg1) {
    RakNet::BitStream *arg1 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::BitStream *)jarg1; 
    RakNet::FullyConnectedMesh2::SkipToVJCUserData(arg1);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FullyConnectedMesh2_WriteVJSUserData(void * jarg1, void * jarg2, void * jarg3) {
    RakNet::FullyConnectedMesh2 *arg1 = (RakNet::FullyConnectedMesh2 *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    RakNet::RakNetGUID arg3 ;
    RakNet::RakNetGUID *argp3 ;
    
    arg1 = (RakNet::FullyConnectedMesh2 *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    argp3 = (RakNet::RakNetGUID *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return ;
    }
    arg3 = *argp3; 
    (arg1)->WriteVJSUserData(arg2,arg3);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FullyConnectedMesh2_GetTotalConnectionCount(void * jarg1) {
    unsigned int jresult ;
    RakNet::FullyConnectedMesh2 *arg1 = (RakNet::FullyConnectedMesh2 *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::FullyConnectedMesh2 *)jarg1; 
    result = (unsigned int)((RakNet::FullyConnectedMesh2 const *)arg1)->GetTotalConnectionCount();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_ReadyEvent_GetInstance() {
    void * jresult ;
    RakNet::ReadyEvent *result = 0 ;
    
    result = (RakNet::ReadyEvent *)RakNet::ReadyEvent::GetInstance();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_ReadyEvent_DestroyInstance(void * jarg1) {
    RakNet::ReadyEvent *arg1 = (RakNet::ReadyEvent *) 0 ;
    
    arg1 = (RakNet::ReadyEvent *)jarg1; 
    RakNet::ReadyEvent::DestroyInstance(arg1);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_ReadyEvent() {
    void * jresult ;
    RakNet::ReadyEvent *result = 0 ;
    
    result = (RakNet::ReadyEvent *)new RakNet::ReadyEvent();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_ReadyEvent(void * jarg1) {
    RakNet::ReadyEvent *arg1 = (RakNet::ReadyEvent *) 0 ;
    
    arg1 = (RakNet::ReadyEvent *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ReadyEvent_SetEvent(void * jarg1, int jarg2, unsigned int jarg3) {
    unsigned int jresult ;
    RakNet::ReadyEvent *arg1 = (RakNet::ReadyEvent *) 0 ;
    int arg2 ;
    bool arg3 ;
    bool result;
    
    arg1 = (RakNet::ReadyEvent *)jarg1; 
    arg2 = (int)jarg2; 
    arg3 = jarg3 ? true : false; 
    result = (bool)(arg1)->SetEvent(arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_ReadyEvent_ForceCompletion(void * jarg1, int jarg2) {
    RakNet::ReadyEvent *arg1 = (RakNet::ReadyEvent *) 0 ;
    int arg2 ;
    
    arg1 = (RakNet::ReadyEvent *)jarg1; 
    arg2 = (int)jarg2; 
    (arg1)->ForceCompletion(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ReadyEvent_DeleteEvent(void * jarg1, int jarg2) {
    unsigned int jresult ;
    RakNet::ReadyEvent *arg1 = (RakNet::ReadyEvent *) 0 ;
    int arg2 ;
    bool result;
    
    arg1 = (RakNet::ReadyEvent *)jarg1; 
    arg2 = (int)jarg2; 
    result = (bool)(arg1)->DeleteEvent(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ReadyEvent_IsEventSet(void * jarg1, int jarg2) {
    unsigned int jresult ;
    RakNet::ReadyEvent *arg1 = (RakNet::ReadyEvent *) 0 ;
    int arg2 ;
    bool result;
    
    arg1 = (RakNet::ReadyEvent *)jarg1; 
    arg2 = (int)jarg2; 
    result = (bool)(arg1)->IsEventSet(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ReadyEvent_IsEventCompletionProcessing(void * jarg1, int jarg2) {
    unsigned int jresult ;
    RakNet::ReadyEvent *arg1 = (RakNet::ReadyEvent *) 0 ;
    int arg2 ;
    bool result;
    
    arg1 = (RakNet::ReadyEvent *)jarg1; 
    arg2 = (int)jarg2; 
    result = (bool)((RakNet::ReadyEvent const *)arg1)->IsEventCompletionProcessing(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ReadyEvent_IsEventCompleted(void * jarg1, int jarg2) {
    unsigned int jresult ;
    RakNet::ReadyEvent *arg1 = (RakNet::ReadyEvent *) 0 ;
    int arg2 ;
    bool result;
    
    arg1 = (RakNet::ReadyEvent *)jarg1; 
    arg2 = (int)jarg2; 
    result = (bool)((RakNet::ReadyEvent const *)arg1)->IsEventCompleted(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ReadyEvent_HasEvent(void * jarg1, int jarg2) {
    unsigned int jresult ;
    RakNet::ReadyEvent *arg1 = (RakNet::ReadyEvent *) 0 ;
    int arg2 ;
    bool result;
    
    arg1 = (RakNet::ReadyEvent *)jarg1; 
    arg2 = (int)jarg2; 
    result = (bool)(arg1)->HasEvent(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ReadyEvent_GetEventListSize(void * jarg1) {
    unsigned int jresult ;
    RakNet::ReadyEvent *arg1 = (RakNet::ReadyEvent *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::ReadyEvent *)jarg1; 
    result = (unsigned int)((RakNet::ReadyEvent const *)arg1)->GetEventListSize();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_ReadyEvent_GetEventAtIndex(void * jarg1, unsigned int jarg2) {
    int jresult ;
    RakNet::ReadyEvent *arg1 = (RakNet::ReadyEvent *) 0 ;
    unsigned int arg2 ;
    int result;
    
    arg1 = (RakNet::ReadyEvent *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (int)((RakNet::ReadyEvent const *)arg1)->GetEventAtIndex(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ReadyEvent_AddToWaitList(void * jarg1, int jarg2, void * jarg3) {
    unsigned int jresult ;
    RakNet::ReadyEvent *arg1 = (RakNet::ReadyEvent *) 0 ;
    int arg2 ;
    RakNet::RakNetGUID arg3 ;
    RakNet::RakNetGUID *argp3 ;
    bool result;
    
    arg1 = (RakNet::ReadyEvent *)jarg1; 
    arg2 = (int)jarg2; 
    argp3 = (RakNet::RakNetGUID *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return 0;
    }
    arg3 = *argp3; 
    result = (bool)(arg1)->AddToWaitList(arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ReadyEvent_RemoveFromWaitList(void * jarg1, int jarg2, void * jarg3) {
    unsigned int jresult ;
    RakNet::ReadyEvent *arg1 = (RakNet::ReadyEvent *) 0 ;
    int arg2 ;
    RakNet::RakNetGUID arg3 ;
    RakNet::RakNetGUID *argp3 ;
    bool result;
    
    arg1 = (RakNet::ReadyEvent *)jarg1; 
    arg2 = (int)jarg2; 
    argp3 = (RakNet::RakNetGUID *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return 0;
    }
    arg3 = *argp3; 
    result = (bool)(arg1)->RemoveFromWaitList(arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ReadyEvent_IsInWaitList(void * jarg1, int jarg2, void * jarg3) {
    unsigned int jresult ;
    RakNet::ReadyEvent *arg1 = (RakNet::ReadyEvent *) 0 ;
    int arg2 ;
    RakNet::RakNetGUID arg3 ;
    RakNet::RakNetGUID *argp3 ;
    bool result;
    
    arg1 = (RakNet::ReadyEvent *)jarg1; 
    arg2 = (int)jarg2; 
    argp3 = (RakNet::RakNetGUID *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return 0;
    }
    arg3 = *argp3; 
    result = (bool)(arg1)->IsInWaitList(arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ReadyEvent_GetRemoteWaitListSize(void * jarg1, int jarg2) {
    unsigned int jresult ;
    RakNet::ReadyEvent *arg1 = (RakNet::ReadyEvent *) 0 ;
    int arg2 ;
    unsigned int result;
    
    arg1 = (RakNet::ReadyEvent *)jarg1; 
    arg2 = (int)jarg2; 
    result = (unsigned int)((RakNet::ReadyEvent const *)arg1)->GetRemoteWaitListSize(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_ReadyEvent_GetFromWaitListAtIndex(void * jarg1, int jarg2, unsigned int jarg3) {
    void * jresult ;
    RakNet::ReadyEvent *arg1 = (RakNet::ReadyEvent *) 0 ;
    int arg2 ;
    unsigned int arg3 ;
    RakNet::RakNetGUID result;
    
    arg1 = (RakNet::ReadyEvent *)jarg1; 
    arg2 = (int)jarg2; 
    arg3 = (unsigned int)jarg3; 
    result = ((RakNet::ReadyEvent const *)arg1)->GetFromWaitListAtIndex(arg2,arg3);
    jresult = new RakNet::RakNetGUID((const RakNet::RakNetGUID &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_ReadyEvent_GetReadyStatus(void * jarg1, int jarg2, void * jarg3) {
    int jresult ;
    RakNet::ReadyEvent *arg1 = (RakNet::ReadyEvent *) 0 ;
    int arg2 ;
    RakNet::RakNetGUID arg3 ;
    RakNet::RakNetGUID *argp3 ;
    RakNet::ReadyEventSystemStatus result;
    
    arg1 = (RakNet::ReadyEvent *)jarg1; 
    arg2 = (int)jarg2; 
    argp3 = (RakNet::RakNetGUID *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return 0;
    }
    arg3 = *argp3; 
    result = (RakNet::ReadyEventSystemStatus)(arg1)->GetReadyStatus(arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_ReadyEvent_SetSendChannel(void * jarg1, unsigned char jarg2) {
    RakNet::ReadyEvent *arg1 = (RakNet::ReadyEvent *) 0 ;
    unsigned char arg2 ;
    
    arg1 = (RakNet::ReadyEvent *)jarg1; 
    arg2 = (unsigned char)jarg2; 
    (arg1)->SetSendChannel(arg2);
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_ReadyEvent_RemoteSystemCompByGuid(void * jarg1, void * jarg2) {
    int jresult ;
    RakNet::RakNetGUID *arg1 = 0 ;
    RakNet::ReadyEvent::RemoteSystem *arg2 = 0 ;
    int result;
    
    arg1 = (RakNet::RakNetGUID *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID const & type is null", 0);
      return 0;
    } 
    arg2 = (RakNet::ReadyEvent::RemoteSystem *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::ReadyEvent::RemoteSystem const & type is null", 0);
      return 0;
    } 
    result = (int)RakNet::ReadyEvent::RemoteSystemCompByGuid((RakNet::RakNetGUID const &)*arg1,(RakNet::ReadyEvent::RemoteSystem const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_ALLOW_JOIN_ANY_AVAILABLE_TEAM_get() {
    int jresult ;
    int result;
    
    result = (int)((1 << 0));
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_ALLOW_JOIN_SPECIFIC_TEAM_get() {
    int jresult ;
    int result;
    
    result = (int)((1 << 1));
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_ALLOW_JOIN_REBALANCING_get() {
    int jresult ;
    int result;
    
    result = (int)((1 << 2));
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_TeamSelection__SWIG_0() {
    void * jresult ;
    RakNet::TeamSelection *result = 0 ;
    
    result = (RakNet::TeamSelection *)new RakNet::TeamSelection();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_TeamSelection__SWIG_1(int jarg1) {
    void * jresult ;
    RakNet::JoinTeamType arg1 ;
    RakNet::TeamSelection *result = 0 ;
    
    arg1 = (RakNet::JoinTeamType)jarg1; 
    result = (RakNet::TeamSelection *)new RakNet::TeamSelection(arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_TeamSelection__SWIG_2(int jarg1, void * jarg2) {
    void * jresult ;
    RakNet::JoinTeamType arg1 ;
    RakNet::TM_Team *arg2 = (RakNet::TM_Team *) 0 ;
    RakNet::TeamSelection *result = 0 ;
    
    arg1 = (RakNet::JoinTeamType)jarg1; 
    arg2 = (RakNet::TM_Team *)jarg2; 
    result = (RakNet::TeamSelection *)new RakNet::TeamSelection(arg1,arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_TeamSelection__SWIG_3(int jarg1, unsigned char jarg2) {
    void * jresult ;
    RakNet::JoinTeamType arg1 ;
    RakNet::NoTeamId arg2 ;
    RakNet::TeamSelection *result = 0 ;
    
    arg1 = (RakNet::JoinTeamType)jarg1; 
    arg2 = (RakNet::NoTeamId)jarg2; 
    result = (RakNet::TeamSelection *)new RakNet::TeamSelection(arg1,arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TeamSelection_joinTeamType_set(void * jarg1, int jarg2) {
    RakNet::TeamSelection *arg1 = (RakNet::TeamSelection *) 0 ;
    RakNet::JoinTeamType arg2 ;
    
    arg1 = (RakNet::TeamSelection *)jarg1; 
    arg2 = (RakNet::JoinTeamType)jarg2; 
    if (arg1) (arg1)->joinTeamType = arg2;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_TeamSelection_joinTeamType_get(void * jarg1) {
    int jresult ;
    RakNet::TeamSelection *arg1 = (RakNet::TeamSelection *) 0 ;
    RakNet::JoinTeamType result;
    
    arg1 = (RakNet::TeamSelection *)jarg1; 
    result = (RakNet::JoinTeamType) ((arg1)->joinTeamType);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TeamSelection_AnyAvailable() {
    void * jresult ;
    RakNet::TeamSelection result;
    
    result = RakNet::TeamSelection::AnyAvailable();
    jresult = new RakNet::TeamSelection((const RakNet::TeamSelection &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TeamSelection_SpecificTeam(void * jarg1) {
    void * jresult ;
    RakNet::TM_Team *arg1 = (RakNet::TM_Team *) 0 ;
    RakNet::TeamSelection result;
    
    arg1 = (RakNet::TM_Team *)jarg1; 
    result = RakNet::TeamSelection::SpecificTeam(arg1);
    jresult = new RakNet::TeamSelection((const RakNet::TeamSelection &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TeamSelection_NoTeam(unsigned char jarg1) {
    void * jresult ;
    RakNet::NoTeamId arg1 ;
    RakNet::TeamSelection result;
    
    arg1 = (RakNet::NoTeamId)jarg1; 
    result = RakNet::TeamSelection::NoTeam(arg1);
    jresult = new RakNet::TeamSelection((const RakNet::TeamSelection &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_TeamSelection(void * jarg1) {
    RakNet::TeamSelection *arg1 = (RakNet::TeamSelection *) 0 ;
    
    arg1 = (RakNet::TeamSelection *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TM_TeamMember_GetInstance() {
    void * jresult ;
    RakNet::TM_TeamMember *result = 0 ;
    
    result = (RakNet::TM_TeamMember *)RakNet::TM_TeamMember::GetInstance();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TM_TeamMember_DestroyInstance(void * jarg1) {
    RakNet::TM_TeamMember *arg1 = (RakNet::TM_TeamMember *) 0 ;
    
    arg1 = (RakNet::TM_TeamMember *)jarg1; 
    RakNet::TM_TeamMember::DestroyInstance(arg1);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_TM_TeamMember() {
    void * jresult ;
    RakNet::TM_TeamMember *result = 0 ;
    
    result = (RakNet::TM_TeamMember *)new RakNet::TM_TeamMember();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_TM_TeamMember(void * jarg1) {
    RakNet::TM_TeamMember *arg1 = (RakNet::TM_TeamMember *) 0 ;
    
    arg1 = (RakNet::TM_TeamMember *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TM_TeamMember_RequestTeam(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::TM_TeamMember *arg1 = (RakNet::TM_TeamMember *) 0 ;
    RakNet::TeamSelection arg2 ;
    RakNet::TeamSelection *argp2 ;
    bool result;
    
    arg1 = (RakNet::TM_TeamMember *)jarg1; 
    argp2 = (RakNet::TeamSelection *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::TeamSelection", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = (bool)(arg1)->RequestTeam(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TM_TeamMember_RequestTeamSwitch(void * jarg1, void * jarg2, void * jarg3) {
    unsigned int jresult ;
    RakNet::TM_TeamMember *arg1 = (RakNet::TM_TeamMember *) 0 ;
    RakNet::TM_Team *arg2 = (RakNet::TM_Team *) 0 ;
    RakNet::TM_Team *arg3 = (RakNet::TM_Team *) 0 ;
    bool result;
    
    arg1 = (RakNet::TM_TeamMember *)jarg1; 
    arg2 = (RakNet::TM_Team *)jarg2; 
    arg3 = (RakNet::TM_Team *)jarg3; 
    result = (bool)(arg1)->RequestTeamSwitch(arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TM_TeamMember_GetRequestedTeam(void * jarg1) {
    void * jresult ;
    RakNet::TM_TeamMember *arg1 = (RakNet::TM_TeamMember *) 0 ;
    RakNet::TeamSelection result;
    
    arg1 = (RakNet::TM_TeamMember *)jarg1; 
    result = ((RakNet::TM_TeamMember const *)arg1)->GetRequestedTeam();
    jresult = new RakNet::TeamSelection((const RakNet::TeamSelection &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TM_TeamMember_GetRequestedSpecificTeams(void * jarg1, void * jarg2) {
    RakNet::TM_TeamMember *arg1 = (RakNet::TM_TeamMember *) 0 ;
    DataStructures::List< RakNet::TM_Team * > *arg2 = 0 ;
    
    arg1 = (RakNet::TM_TeamMember *)jarg1; 
    arg2 = (DataStructures::List< RakNet::TM_Team * > *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< RakNet::TM_Team * > & type is null", 0);
      return ;
    } 
    ((RakNet::TM_TeamMember const *)arg1)->GetRequestedSpecificTeams(*arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TM_TeamMember_HasRequestedTeam(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::TM_TeamMember *arg1 = (RakNet::TM_TeamMember *) 0 ;
    RakNet::TM_Team *arg2 = (RakNet::TM_Team *) 0 ;
    bool result;
    
    arg1 = (RakNet::TM_TeamMember *)jarg1; 
    arg2 = (RakNet::TM_Team *)jarg2; 
    result = (bool)((RakNet::TM_TeamMember const *)arg1)->HasRequestedTeam(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TM_TeamMember_GetRequestedTeamIndex(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::TM_TeamMember *arg1 = (RakNet::TM_TeamMember *) 0 ;
    RakNet::TM_Team *arg2 = (RakNet::TM_Team *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::TM_TeamMember *)jarg1; 
    arg2 = (RakNet::TM_Team *)jarg2; 
    result = (unsigned int)((RakNet::TM_TeamMember const *)arg1)->GetRequestedTeamIndex(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TM_TeamMember_GetRequestedTeamCount(void * jarg1) {
    unsigned int jresult ;
    RakNet::TM_TeamMember *arg1 = (RakNet::TM_TeamMember *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::TM_TeamMember *)jarg1; 
    result = (unsigned int)((RakNet::TM_TeamMember const *)arg1)->GetRequestedTeamCount();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TM_TeamMember_CancelTeamRequest(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::TM_TeamMember *arg1 = (RakNet::TM_TeamMember *) 0 ;
    RakNet::TM_Team *arg2 = (RakNet::TM_Team *) 0 ;
    bool result;
    
    arg1 = (RakNet::TM_TeamMember *)jarg1; 
    arg2 = (RakNet::TM_Team *)jarg2; 
    result = (bool)(arg1)->CancelTeamRequest(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TM_TeamMember_LeaveTeam(void * jarg1, void * jarg2, unsigned char jarg3) {
    unsigned int jresult ;
    RakNet::TM_TeamMember *arg1 = (RakNet::TM_TeamMember *) 0 ;
    RakNet::TM_Team *arg2 = (RakNet::TM_Team *) 0 ;
    RakNet::NoTeamId arg3 ;
    bool result;
    
    arg1 = (RakNet::TM_TeamMember *)jarg1; 
    arg2 = (RakNet::TM_Team *)jarg2; 
    arg3 = (RakNet::NoTeamId)jarg3; 
    result = (bool)(arg1)->LeaveTeam(arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TM_TeamMember_LeaveAllTeams(void * jarg1, unsigned char jarg2) {
    unsigned int jresult ;
    RakNet::TM_TeamMember *arg1 = (RakNet::TM_TeamMember *) 0 ;
    RakNet::NoTeamId arg2 ;
    bool result;
    
    arg1 = (RakNet::TM_TeamMember *)jarg1; 
    arg2 = (RakNet::NoTeamId)jarg2; 
    result = (bool)(arg1)->LeaveAllTeams(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TM_TeamMember_GetCurrentTeam(void * jarg1) {
    void * jresult ;
    RakNet::TM_TeamMember *arg1 = (RakNet::TM_TeamMember *) 0 ;
    RakNet::TM_Team *result = 0 ;
    
    arg1 = (RakNet::TM_TeamMember *)jarg1; 
    result = (RakNet::TM_Team *)((RakNet::TM_TeamMember const *)arg1)->GetCurrentTeam();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TM_TeamMember_GetCurrentTeamCount(void * jarg1) {
    unsigned int jresult ;
    RakNet::TM_TeamMember *arg1 = (RakNet::TM_TeamMember *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::TM_TeamMember *)jarg1; 
    result = (unsigned int)((RakNet::TM_TeamMember const *)arg1)->GetCurrentTeamCount();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TM_TeamMember_GetCurrentTeamByIndex(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    RakNet::TM_TeamMember *arg1 = (RakNet::TM_TeamMember *) 0 ;
    unsigned int arg2 ;
    RakNet::TM_Team *result = 0 ;
    
    arg1 = (RakNet::TM_TeamMember *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (RakNet::TM_Team *)(arg1)->GetCurrentTeamByIndex(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TM_TeamMember_GetCurrentTeams(void * jarg1, void * jarg2) {
    RakNet::TM_TeamMember *arg1 = (RakNet::TM_TeamMember *) 0 ;
    DataStructures::List< RakNet::TM_Team * > *arg2 = 0 ;
    
    arg1 = (RakNet::TM_TeamMember *)jarg1; 
    arg2 = (DataStructures::List< RakNet::TM_Team * > *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< RakNet::TM_Team * > & type is null", 0);
      return ;
    } 
    ((RakNet::TM_TeamMember const *)arg1)->GetCurrentTeams(*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TM_TeamMember_GetLastTeams(void * jarg1, void * jarg2) {
    RakNet::TM_TeamMember *arg1 = (RakNet::TM_TeamMember *) 0 ;
    DataStructures::List< RakNet::TM_Team * > *arg2 = 0 ;
    
    arg1 = (RakNet::TM_TeamMember *)jarg1; 
    arg2 = (DataStructures::List< RakNet::TM_Team * > *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< RakNet::TM_Team * > & type is null", 0);
      return ;
    } 
    ((RakNet::TM_TeamMember const *)arg1)->GetLastTeams(*arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TM_TeamMember_IsOnTeam(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::TM_TeamMember *arg1 = (RakNet::TM_TeamMember *) 0 ;
    RakNet::TM_Team *arg2 = (RakNet::TM_Team *) 0 ;
    bool result;
    
    arg1 = (RakNet::TM_TeamMember *)jarg1; 
    arg2 = (RakNet::TM_Team *)jarg2; 
    result = (bool)((RakNet::TM_TeamMember const *)arg1)->IsOnTeam(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned long long SWIGSTDCALL CSharp_TM_TeamMember_GetNetworkID(void * jarg1) {
    unsigned long long jresult ;
    RakNet::TM_TeamMember *arg1 = (RakNet::TM_TeamMember *) 0 ;
    RakNet::NetworkID result;
    
    arg1 = (RakNet::TM_TeamMember *)jarg1; 
    result = (RakNet::NetworkID)((RakNet::TM_TeamMember const *)arg1)->GetNetworkID();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TM_TeamMember_GetTM_World(void * jarg1) {
    void * jresult ;
    RakNet::TM_TeamMember *arg1 = (RakNet::TM_TeamMember *) 0 ;
    RakNet::TM_World *result = 0 ;
    
    arg1 = (RakNet::TM_TeamMember *)jarg1; 
    result = (RakNet::TM_World *)((RakNet::TM_TeamMember const *)arg1)->GetTM_World();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TM_TeamMember_SerializeConstruction(void * jarg1, void * jarg2) {
    RakNet::TM_TeamMember *arg1 = (RakNet::TM_TeamMember *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::TM_TeamMember *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    (arg1)->SerializeConstruction(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TM_TeamMember_DeserializeConstruction(void * jarg1, void * jarg2, void * jarg3) {
    unsigned int jresult ;
    RakNet::TM_TeamMember *arg1 = (RakNet::TM_TeamMember *) 0 ;
    RakNet::TeamManager *arg2 = (RakNet::TeamManager *) 0 ;
    RakNet::BitStream *arg3 = (RakNet::BitStream *) 0 ;
    bool result;
    
    arg1 = (RakNet::TM_TeamMember *)jarg1; 
    arg2 = (RakNet::TeamManager *)jarg2; 
    arg3 = (RakNet::BitStream *)jarg3; 
    result = (bool)(arg1)->DeserializeConstruction(arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TM_TeamMember_SetOwner(void * jarg1, void * jarg2) {
    RakNet::TM_TeamMember *arg1 = (RakNet::TM_TeamMember *) 0 ;
    void *arg2 = (void *) 0 ;
    
    arg1 = (RakNet::TM_TeamMember *)jarg1; 
    arg2 = (void *)jarg2; 
    (arg1)->SetOwner(arg2);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TM_TeamMember_GetOwner(void * jarg1) {
    void * jresult ;
    RakNet::TM_TeamMember *arg1 = (RakNet::TM_TeamMember *) 0 ;
    void *result = 0 ;
    
    arg1 = (RakNet::TM_TeamMember *)jarg1; 
    result = (void *)((RakNet::TM_TeamMember const *)arg1)->GetOwner();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned char SWIGSTDCALL CSharp_TM_TeamMember_GetNoTeamId(void * jarg1) {
    unsigned char jresult ;
    RakNet::TM_TeamMember *arg1 = (RakNet::TM_TeamMember *) 0 ;
    RakNet::NoTeamId result;
    
    arg1 = (RakNet::TM_TeamMember *)jarg1; 
    result = (RakNet::NoTeamId)((RakNet::TM_TeamMember const *)arg1)->GetNoTeamId();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TM_TeamMember_GetWorldIndex(void * jarg1) {
    unsigned int jresult ;
    RakNet::TM_TeamMember *arg1 = (RakNet::TM_TeamMember *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::TM_TeamMember *)jarg1; 
    result = (unsigned int)((RakNet::TM_TeamMember const *)arg1)->GetWorldIndex();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned long SWIGSTDCALL CSharp_TM_TeamMember_ToUint32(unsigned long long jarg1) {
    unsigned long jresult ;
    RakNet::NetworkID *arg1 = 0 ;
    RakNet::NetworkID temp1 ;
    unsigned long result;
    
    temp1 = (RakNet::NetworkID)jarg1; 
    arg1 = &temp1; 
    result = (unsigned long)RakNet::TM_TeamMember::ToUint32((unsigned long long const &)*arg1);
    jresult = (unsigned long)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TM_Team_GetInstance() {
    void * jresult ;
    RakNet::TM_Team *result = 0 ;
    
    result = (RakNet::TM_Team *)RakNet::TM_Team::GetInstance();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TM_Team_DestroyInstance(void * jarg1) {
    RakNet::TM_Team *arg1 = (RakNet::TM_Team *) 0 ;
    
    arg1 = (RakNet::TM_Team *)jarg1; 
    RakNet::TM_Team::DestroyInstance(arg1);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_TM_Team() {
    void * jresult ;
    RakNet::TM_Team *result = 0 ;
    
    result = (RakNet::TM_Team *)new RakNet::TM_Team();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_TM_Team(void * jarg1) {
    RakNet::TM_Team *arg1 = (RakNet::TM_Team *) 0 ;
    
    arg1 = (RakNet::TM_Team *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TM_Team_SetMemberLimit(void * jarg1, unsigned short jarg2, unsigned char jarg3) {
    unsigned int jresult ;
    RakNet::TM_Team *arg1 = (RakNet::TM_Team *) 0 ;
    RakNet::TeamMemberLimit arg2 ;
    RakNet::NoTeamId arg3 ;
    bool result;
    
    arg1 = (RakNet::TM_Team *)jarg1; 
    arg2 = (RakNet::TeamMemberLimit)jarg2; 
    arg3 = (RakNet::NoTeamId)jarg3; 
    result = (bool)(arg1)->SetMemberLimit(arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned short SWIGSTDCALL CSharp_TM_Team_GetMemberLimit(void * jarg1) {
    unsigned short jresult ;
    RakNet::TM_Team *arg1 = (RakNet::TM_Team *) 0 ;
    RakNet::TeamMemberLimit result;
    
    arg1 = (RakNet::TM_Team *)jarg1; 
    result = (RakNet::TeamMemberLimit)((RakNet::TM_Team const *)arg1)->GetMemberLimit();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned short SWIGSTDCALL CSharp_TM_Team_GetMemberLimitSetting(void * jarg1) {
    unsigned short jresult ;
    RakNet::TM_Team *arg1 = (RakNet::TM_Team *) 0 ;
    RakNet::TeamMemberLimit result;
    
    arg1 = (RakNet::TM_Team *)jarg1; 
    result = (RakNet::TeamMemberLimit)((RakNet::TM_Team const *)arg1)->GetMemberLimitSetting();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TM_Team_SetJoinPermissions(void * jarg1, unsigned char jarg2) {
    unsigned int jresult ;
    RakNet::TM_Team *arg1 = (RakNet::TM_Team *) 0 ;
    RakNet::JoinPermissions arg2 ;
    bool result;
    
    arg1 = (RakNet::TM_Team *)jarg1; 
    arg2 = (RakNet::JoinPermissions)jarg2; 
    result = (bool)(arg1)->SetJoinPermissions(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned char SWIGSTDCALL CSharp_TM_Team_GetJoinPermissions(void * jarg1) {
    unsigned char jresult ;
    RakNet::TM_Team *arg1 = (RakNet::TM_Team *) 0 ;
    RakNet::JoinPermissions result;
    
    arg1 = (RakNet::TM_Team *)jarg1; 
    result = (RakNet::JoinPermissions)((RakNet::TM_Team const *)arg1)->GetJoinPermissions();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TM_Team_LeaveTeam(void * jarg1, void * jarg2, unsigned char jarg3) {
    RakNet::TM_Team *arg1 = (RakNet::TM_Team *) 0 ;
    RakNet::TM_TeamMember *arg2 = (RakNet::TM_TeamMember *) 0 ;
    RakNet::NoTeamId arg3 ;
    
    arg1 = (RakNet::TM_Team *)jarg1; 
    arg2 = (RakNet::TM_TeamMember *)jarg2; 
    arg3 = (RakNet::NoTeamId)jarg3; 
    (arg1)->LeaveTeam(arg2,arg3);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TM_Team_GetBalancingApplies(void * jarg1) {
    unsigned int jresult ;
    RakNet::TM_Team *arg1 = (RakNet::TM_Team *) 0 ;
    bool result;
    
    arg1 = (RakNet::TM_Team *)jarg1; 
    result = (bool)((RakNet::TM_Team const *)arg1)->GetBalancingApplies();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TM_Team_GetTeamMembers(void * jarg1, void * jarg2) {
    RakNet::TM_Team *arg1 = (RakNet::TM_Team *) 0 ;
    DataStructures::List< RakNet::TM_TeamMember * > *arg2 = 0 ;
    
    arg1 = (RakNet::TM_Team *)jarg1; 
    arg2 = (DataStructures::List< RakNet::TM_TeamMember * > *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< RakNet::TM_TeamMember * > & type is null", 0);
      return ;
    } 
    ((RakNet::TM_Team const *)arg1)->GetTeamMembers(*arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TM_Team_GetTeamMembersCount(void * jarg1) {
    unsigned int jresult ;
    RakNet::TM_Team *arg1 = (RakNet::TM_Team *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::TM_Team *)jarg1; 
    result = (unsigned int)((RakNet::TM_Team const *)arg1)->GetTeamMembersCount();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TM_Team_GetTeamMemberByIndex(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    RakNet::TM_Team *arg1 = (RakNet::TM_Team *) 0 ;
    unsigned int arg2 ;
    RakNet::TM_TeamMember *result = 0 ;
    
    arg1 = (RakNet::TM_Team *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (RakNet::TM_TeamMember *)((RakNet::TM_Team const *)arg1)->GetTeamMemberByIndex(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned long long SWIGSTDCALL CSharp_TM_Team_GetNetworkID(void * jarg1) {
    unsigned long long jresult ;
    RakNet::TM_Team *arg1 = (RakNet::TM_Team *) 0 ;
    RakNet::NetworkID result;
    
    arg1 = (RakNet::TM_Team *)jarg1; 
    result = (RakNet::NetworkID)((RakNet::TM_Team const *)arg1)->GetNetworkID();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TM_Team_GetTM_World(void * jarg1) {
    void * jresult ;
    RakNet::TM_Team *arg1 = (RakNet::TM_Team *) 0 ;
    RakNet::TM_World *result = 0 ;
    
    arg1 = (RakNet::TM_Team *)jarg1; 
    result = (RakNet::TM_World *)((RakNet::TM_Team const *)arg1)->GetTM_World();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TM_Team_SerializeConstruction(void * jarg1, void * jarg2) {
    RakNet::TM_Team *arg1 = (RakNet::TM_Team *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::TM_Team *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    (arg1)->SerializeConstruction(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TM_Team_DeserializeConstruction(void * jarg1, void * jarg2, void * jarg3) {
    unsigned int jresult ;
    RakNet::TM_Team *arg1 = (RakNet::TM_Team *) 0 ;
    RakNet::TeamManager *arg2 = (RakNet::TeamManager *) 0 ;
    RakNet::BitStream *arg3 = (RakNet::BitStream *) 0 ;
    bool result;
    
    arg1 = (RakNet::TM_Team *)jarg1; 
    arg2 = (RakNet::TeamManager *)jarg2; 
    arg3 = (RakNet::BitStream *)jarg3; 
    result = (bool)(arg1)->DeserializeConstruction(arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TM_Team_SetOwner(void * jarg1, void * jarg2) {
    RakNet::TM_Team *arg1 = (RakNet::TM_Team *) 0 ;
    void *arg2 = (void *) 0 ;
    
    arg1 = (RakNet::TM_Team *)jarg1; 
    arg2 = (void *)jarg2; 
    (arg1)->SetOwner(arg2);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TM_Team_GetOwner(void * jarg1) {
    void * jresult ;
    RakNet::TM_Team *arg1 = (RakNet::TM_Team *) 0 ;
    void *result = 0 ;
    
    arg1 = (RakNet::TM_Team *)jarg1; 
    result = (void *)((RakNet::TM_Team const *)arg1)->GetOwner();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TM_Team_GetWorldIndex(void * jarg1) {
    unsigned int jresult ;
    RakNet::TM_Team *arg1 = (RakNet::TM_Team *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::TM_Team *)jarg1; 
    result = (unsigned int)((RakNet::TM_Team const *)arg1)->GetWorldIndex();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned long SWIGSTDCALL CSharp_TM_Team_ToUint32(unsigned long long jarg1) {
    unsigned long jresult ;
    RakNet::NetworkID *arg1 = 0 ;
    RakNet::NetworkID temp1 ;
    unsigned long result;
    
    temp1 = (RakNet::NetworkID)jarg1; 
    arg1 = &temp1; 
    result = (unsigned long)RakNet::TM_Team::ToUint32((unsigned long long const &)*arg1);
    jresult = (unsigned long)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_TM_World() {
    void * jresult ;
    RakNet::TM_World *result = 0 ;
    
    result = (RakNet::TM_World *)new RakNet::TM_World();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_TM_World(void * jarg1) {
    RakNet::TM_World *arg1 = (RakNet::TM_World *) 0 ;
    
    arg1 = (RakNet::TM_World *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TM_World_GetTeamManager(void * jarg1) {
    void * jresult ;
    RakNet::TM_World *arg1 = (RakNet::TM_World *) 0 ;
    RakNet::TeamManager *result = 0 ;
    
    arg1 = (RakNet::TM_World *)jarg1; 
    result = (RakNet::TeamManager *)((RakNet::TM_World const *)arg1)->GetTeamManager();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TM_World_AddParticipant(void * jarg1, void * jarg2) {
    RakNet::TM_World *arg1 = (RakNet::TM_World *) 0 ;
    RakNet::RakNetGUID arg2 ;
    RakNet::RakNetGUID *argp2 ;
    
    arg1 = (RakNet::TM_World *)jarg1; 
    argp2 = (RakNet::RakNetGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return ;
    }
    arg2 = *argp2; 
    (arg1)->AddParticipant(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TM_World_RemoveParticipant(void * jarg1, void * jarg2) {
    RakNet::TM_World *arg1 = (RakNet::TM_World *) 0 ;
    RakNet::RakNetGUID arg2 ;
    RakNet::RakNetGUID *argp2 ;
    
    arg1 = (RakNet::TM_World *)jarg1; 
    argp2 = (RakNet::RakNetGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return ;
    }
    arg2 = *argp2; 
    (arg1)->RemoveParticipant(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TM_World_SetAutoManageConnections(void * jarg1, unsigned int jarg2) {
    RakNet::TM_World *arg1 = (RakNet::TM_World *) 0 ;
    bool arg2 ;
    
    arg1 = (RakNet::TM_World *)jarg1; 
    arg2 = jarg2 ? true : false; 
    (arg1)->SetAutoManageConnections(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TM_World_GetParticipantList(void * jarg1, void * jarg2) {
    RakNet::TM_World *arg1 = (RakNet::TM_World *) 0 ;
    DataStructures::List< RakNet::RakNetGUID > *arg2 = 0 ;
    
    arg1 = (RakNet::TM_World *)jarg1; 
    arg2 = (DataStructures::List< RakNet::RakNetGUID > *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< RakNet::RakNetGUID > & type is null", 0);
      return ;
    } 
    (arg1)->GetParticipantList(*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TM_World_ReferenceTeam(void * jarg1, void * jarg2, unsigned long long jarg3, unsigned int jarg4) {
    RakNet::TM_World *arg1 = (RakNet::TM_World *) 0 ;
    RakNet::TM_Team *arg2 = (RakNet::TM_Team *) 0 ;
    RakNet::NetworkID arg3 ;
    bool arg4 ;
    
    arg1 = (RakNet::TM_World *)jarg1; 
    arg2 = (RakNet::TM_Team *)jarg2; 
    arg3 = (RakNet::NetworkID)jarg3; 
    arg4 = jarg4 ? true : false; 
    (arg1)->ReferenceTeam(arg2,arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TM_World_DereferenceTeam(void * jarg1, void * jarg2, unsigned char jarg3) {
    RakNet::TM_World *arg1 = (RakNet::TM_World *) 0 ;
    RakNet::TM_Team *arg2 = (RakNet::TM_Team *) 0 ;
    RakNet::NoTeamId arg3 ;
    
    arg1 = (RakNet::TM_World *)jarg1; 
    arg2 = (RakNet::TM_Team *)jarg2; 
    arg3 = (RakNet::NoTeamId)jarg3; 
    (arg1)->DereferenceTeam(arg2,arg3);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TM_World_GetTeamCount(void * jarg1) {
    unsigned int jresult ;
    RakNet::TM_World *arg1 = (RakNet::TM_World *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::TM_World *)jarg1; 
    result = (unsigned int)((RakNet::TM_World const *)arg1)->GetTeamCount();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TM_World_GetTeamByIndex(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    RakNet::TM_World *arg1 = (RakNet::TM_World *) 0 ;
    unsigned int arg2 ;
    RakNet::TM_Team *result = 0 ;
    
    arg1 = (RakNet::TM_World *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (RakNet::TM_Team *)((RakNet::TM_World const *)arg1)->GetTeamByIndex(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TM_World_GetTeamByNetworkID(void * jarg1, unsigned long long jarg2) {
    void * jresult ;
    RakNet::TM_World *arg1 = (RakNet::TM_World *) 0 ;
    RakNet::NetworkID arg2 ;
    RakNet::TM_Team *result = 0 ;
    
    arg1 = (RakNet::TM_World *)jarg1; 
    arg2 = (RakNet::NetworkID)jarg2; 
    result = (RakNet::TM_Team *)(arg1)->GetTeamByNetworkID(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TM_World_GetTeamIndex(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::TM_World *arg1 = (RakNet::TM_World *) 0 ;
    RakNet::TM_Team *arg2 = (RakNet::TM_Team *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::TM_World *)jarg1; 
    arg2 = (RakNet::TM_Team *)jarg2; 
    result = (unsigned int)((RakNet::TM_World const *)arg1)->GetTeamIndex((RakNet::TM_Team const *)arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TM_World_ReferenceTeamMember(void * jarg1, void * jarg2, unsigned long long jarg3) {
    RakNet::TM_World *arg1 = (RakNet::TM_World *) 0 ;
    RakNet::TM_TeamMember *arg2 = (RakNet::TM_TeamMember *) 0 ;
    RakNet::NetworkID arg3 ;
    
    arg1 = (RakNet::TM_World *)jarg1; 
    arg2 = (RakNet::TM_TeamMember *)jarg2; 
    arg3 = (RakNet::NetworkID)jarg3; 
    (arg1)->ReferenceTeamMember(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TM_World_DereferenceTeamMember(void * jarg1, void * jarg2) {
    RakNet::TM_World *arg1 = (RakNet::TM_World *) 0 ;
    RakNet::TM_TeamMember *arg2 = (RakNet::TM_TeamMember *) 0 ;
    
    arg1 = (RakNet::TM_World *)jarg1; 
    arg2 = (RakNet::TM_TeamMember *)jarg2; 
    (arg1)->DereferenceTeamMember(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TM_World_GetTeamMemberCount(void * jarg1) {
    unsigned int jresult ;
    RakNet::TM_World *arg1 = (RakNet::TM_World *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::TM_World *)jarg1; 
    result = (unsigned int)((RakNet::TM_World const *)arg1)->GetTeamMemberCount();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TM_World_GetTeamMemberByIndex(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    RakNet::TM_World *arg1 = (RakNet::TM_World *) 0 ;
    unsigned int arg2 ;
    RakNet::TM_TeamMember *result = 0 ;
    
    arg1 = (RakNet::TM_World *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (RakNet::TM_TeamMember *)((RakNet::TM_World const *)arg1)->GetTeamMemberByIndex(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned long long SWIGSTDCALL CSharp_TM_World_GetTeamMemberIDByIndex(void * jarg1, unsigned int jarg2) {
    unsigned long long jresult ;
    RakNet::TM_World *arg1 = (RakNet::TM_World *) 0 ;
    unsigned int arg2 ;
    RakNet::NetworkID result;
    
    arg1 = (RakNet::TM_World *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (RakNet::NetworkID)((RakNet::TM_World const *)arg1)->GetTeamMemberIDByIndex(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TM_World_GetTeamMemberByNetworkID(void * jarg1, unsigned long long jarg2) {
    void * jresult ;
    RakNet::TM_World *arg1 = (RakNet::TM_World *) 0 ;
    RakNet::NetworkID arg2 ;
    RakNet::TM_TeamMember *result = 0 ;
    
    arg1 = (RakNet::TM_World *)jarg1; 
    arg2 = (RakNet::NetworkID)jarg2; 
    result = (RakNet::TM_TeamMember *)(arg1)->GetTeamMemberByNetworkID(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TM_World_GetTeamMemberIndex(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::TM_World *arg1 = (RakNet::TM_World *) 0 ;
    RakNet::TM_TeamMember *arg2 = (RakNet::TM_TeamMember *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::TM_World *)jarg1; 
    arg2 = (RakNet::TM_TeamMember *)jarg2; 
    result = (unsigned int)((RakNet::TM_World const *)arg1)->GetTeamMemberIndex((RakNet::TM_TeamMember const *)arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TM_World_SetBalanceTeams(void * jarg1, unsigned int jarg2, unsigned char jarg3) {
    unsigned int jresult ;
    RakNet::TM_World *arg1 = (RakNet::TM_World *) 0 ;
    bool arg2 ;
    RakNet::NoTeamId arg3 ;
    bool result;
    
    arg1 = (RakNet::TM_World *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (RakNet::NoTeamId)jarg3; 
    result = (bool)(arg1)->SetBalanceTeams(arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TM_World_GetBalanceTeams(void * jarg1) {
    unsigned int jresult ;
    RakNet::TM_World *arg1 = (RakNet::TM_World *) 0 ;
    bool result;
    
    arg1 = (RakNet::TM_World *)jarg1; 
    result = (bool)((RakNet::TM_World const *)arg1)->GetBalanceTeams();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TM_World_SetHost(void * jarg1, void * jarg2) {
    RakNet::TM_World *arg1 = (RakNet::TM_World *) 0 ;
    RakNet::RakNetGUID arg2 ;
    RakNet::RakNetGUID *argp2 ;
    
    arg1 = (RakNet::TM_World *)jarg1; 
    argp2 = (RakNet::RakNetGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return ;
    }
    arg2 = *argp2; 
    (arg1)->SetHost(arg2);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TM_World_GetHost(void * jarg1) {
    void * jresult ;
    RakNet::TM_World *arg1 = (RakNet::TM_World *) 0 ;
    RakNet::RakNetGUID result;
    
    arg1 = (RakNet::TM_World *)jarg1; 
    result = ((RakNet::TM_World const *)arg1)->GetHost();
    jresult = new RakNet::RakNetGUID((const RakNet::RakNetGUID &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned char SWIGSTDCALL CSharp_TM_World_GetWorldId(void * jarg1) {
    unsigned char jresult ;
    RakNet::TM_World *arg1 = (RakNet::TM_World *) 0 ;
    RakNet::WorldId result;
    
    arg1 = (RakNet::TM_World *)jarg1; 
    result = (RakNet::WorldId)((RakNet::TM_World const *)arg1)->GetWorldId();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TM_World_Clear(void * jarg1) {
    RakNet::TM_World *arg1 = (RakNet::TM_World *) 0 ;
    
    arg1 = (RakNet::TM_World *)jarg1; 
    (arg1)->Clear();
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_TM_World_JoinRequestHelperComp(void * jarg1, void * jarg2) {
    int jresult ;
    RakNet::TM_World::JoinRequestHelper *arg1 = 0 ;
    RakNet::TM_World::JoinRequestHelper *arg2 = 0 ;
    int result;
    
    arg1 = (RakNet::TM_World::JoinRequestHelper *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::TM_World::JoinRequestHelper const & type is null", 0);
      return 0;
    } 
    arg2 = (RakNet::TM_World::JoinRequestHelper *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::TM_World::JoinRequestHelper const & type is null", 0);
      return 0;
    } 
    result = (int)RakNet::TM_World::JoinRequestHelperComp((RakNet::TM_World::JoinRequestHelper const &)*arg1,(RakNet::TM_World::JoinRequestHelper const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TeamManager_GetInstance() {
    void * jresult ;
    RakNet::TeamManager *result = 0 ;
    
    result = (RakNet::TeamManager *)RakNet::TeamManager::GetInstance();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TeamManager_DestroyInstance(void * jarg1) {
    RakNet::TeamManager *arg1 = (RakNet::TeamManager *) 0 ;
    
    arg1 = (RakNet::TeamManager *)jarg1; 
    RakNet::TeamManager::DestroyInstance(arg1);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_TeamManager() {
    void * jresult ;
    RakNet::TeamManager *result = 0 ;
    
    result = (RakNet::TeamManager *)new RakNet::TeamManager();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_TeamManager(void * jarg1) {
    RakNet::TeamManager *arg1 = (RakNet::TeamManager *) 0 ;
    
    arg1 = (RakNet::TeamManager *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TeamManager_AddWorld(void * jarg1, unsigned char jarg2) {
    void * jresult ;
    RakNet::TeamManager *arg1 = (RakNet::TeamManager *) 0 ;
    RakNet::WorldId arg2 ;
    RakNet::TM_World *result = 0 ;
    
    arg1 = (RakNet::TeamManager *)jarg1; 
    arg2 = (RakNet::WorldId)jarg2; 
    result = (RakNet::TM_World *)(arg1)->AddWorld(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TeamManager_RemoveWorld(void * jarg1, unsigned char jarg2) {
    RakNet::TeamManager *arg1 = (RakNet::TeamManager *) 0 ;
    RakNet::WorldId arg2 ;
    
    arg1 = (RakNet::TeamManager *)jarg1; 
    arg2 = (RakNet::WorldId)jarg2; 
    (arg1)->RemoveWorld(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TeamManager_GetWorldCount(void * jarg1) {
    unsigned int jresult ;
    RakNet::TeamManager *arg1 = (RakNet::TeamManager *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::TeamManager *)jarg1; 
    result = (unsigned int)((RakNet::TeamManager const *)arg1)->GetWorldCount();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TeamManager_GetWorldAtIndex(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    RakNet::TeamManager *arg1 = (RakNet::TeamManager *) 0 ;
    unsigned int arg2 ;
    RakNet::TM_World *result = 0 ;
    
    arg1 = (RakNet::TeamManager *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (RakNet::TM_World *)((RakNet::TeamManager const *)arg1)->GetWorldAtIndex(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TeamManager_GetWorldWithId(void * jarg1, unsigned char jarg2) {
    void * jresult ;
    RakNet::TeamManager *arg1 = (RakNet::TeamManager *) 0 ;
    RakNet::WorldId arg2 ;
    RakNet::TM_World *result = 0 ;
    
    arg1 = (RakNet::TeamManager *)jarg1; 
    arg2 = (RakNet::WorldId)jarg2; 
    result = (RakNet::TM_World *)((RakNet::TeamManager const *)arg1)->GetWorldWithId(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TeamManager_SetAutoManageConnections(void * jarg1, unsigned int jarg2) {
    RakNet::TeamManager *arg1 = (RakNet::TeamManager *) 0 ;
    bool arg2 ;
    
    arg1 = (RakNet::TeamManager *)jarg1; 
    arg2 = jarg2 ? true : false; 
    (arg1)->SetAutoManageConnections(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TeamManager_SetTopology(void * jarg1, int jarg2) {
    RakNet::TeamManager *arg1 = (RakNet::TeamManager *) 0 ;
    RakNet::TMTopology arg2 ;
    
    arg1 = (RakNet::TeamManager *)jarg1; 
    arg2 = (RakNet::TMTopology)jarg2; 
    (arg1)->SetTopology(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TeamManager_DecomposeTeamFull(void * jarg1, void * jarg2, void * jarg3, void * jarg4, void * jarg5, void * jarg6, void * jarg7, void * jarg8, void * jarg9) {
    RakNet::TeamManager *arg1 = (RakNet::TeamManager *) 0 ;
    RakNet::Packet *arg2 = (RakNet::Packet *) 0 ;
    RakNet::TM_World **arg3 = (RakNet::TM_World **) 0 ;
    RakNet::TM_TeamMember **arg4 = (RakNet::TM_TeamMember **) 0 ;
    RakNet::TM_Team **arg5 = (RakNet::TM_Team **) 0 ;
    uint16_t *arg6 = 0 ;
    uint16_t *arg7 = 0 ;
    bool *arg8 = 0 ;
    RakNet::JoinPermissions *arg9 = 0 ;
    
    arg1 = (RakNet::TeamManager *)jarg1; 
    arg2 = (RakNet::Packet *)jarg2; 
    arg3 = (RakNet::TM_World **)jarg3; 
    arg4 = (RakNet::TM_TeamMember **)jarg4; 
    arg5 = (RakNet::TM_Team **)jarg5; 
    arg6 = (uint16_t *)jarg6;
    if (!arg6) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "uint16_t & type is null", 0);
      return ;
    } 
    arg7 = (uint16_t *)jarg7;
    if (!arg7) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "uint16_t & type is null", 0);
      return ;
    } 
    arg8 = (bool *)jarg8;
    if (!arg8) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "bool & type is null", 0);
      return ;
    } 
    arg9 = (RakNet::JoinPermissions *)jarg9;
    if (!arg9) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::JoinPermissions & type is null", 0);
      return ;
    } 
    (arg1)->DecomposeTeamFull(arg2,arg3,arg4,arg5,*arg6,*arg7,*arg8,*arg9);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TeamManager_DecomposeTeamLocked(void * jarg1, void * jarg2, void * jarg3, void * jarg4, void * jarg5, void * jarg6, void * jarg7, void * jarg8, void * jarg9) {
    RakNet::TeamManager *arg1 = (RakNet::TeamManager *) 0 ;
    RakNet::Packet *arg2 = (RakNet::Packet *) 0 ;
    RakNet::TM_World **arg3 = (RakNet::TM_World **) 0 ;
    RakNet::TM_TeamMember **arg4 = (RakNet::TM_TeamMember **) 0 ;
    RakNet::TM_Team **arg5 = (RakNet::TM_Team **) 0 ;
    uint16_t *arg6 = 0 ;
    uint16_t *arg7 = 0 ;
    bool *arg8 = 0 ;
    RakNet::JoinPermissions *arg9 = 0 ;
    
    arg1 = (RakNet::TeamManager *)jarg1; 
    arg2 = (RakNet::Packet *)jarg2; 
    arg3 = (RakNet::TM_World **)jarg3; 
    arg4 = (RakNet::TM_TeamMember **)jarg4; 
    arg5 = (RakNet::TM_Team **)jarg5; 
    arg6 = (uint16_t *)jarg6;
    if (!arg6) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "uint16_t & type is null", 0);
      return ;
    } 
    arg7 = (uint16_t *)jarg7;
    if (!arg7) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "uint16_t & type is null", 0);
      return ;
    } 
    arg8 = (bool *)jarg8;
    if (!arg8) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "bool & type is null", 0);
      return ;
    } 
    arg9 = (RakNet::JoinPermissions *)jarg9;
    if (!arg9) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::JoinPermissions & type is null", 0);
      return ;
    } 
    (arg1)->DecomposeTeamLocked(arg2,arg3,arg4,arg5,*arg6,*arg7,*arg8,*arg9);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TeamManager_Clear(void * jarg1) {
    RakNet::TeamManager *arg1 = (RakNet::TeamManager *) 0 ;
    
    arg1 = (RakNet::TeamManager *)jarg1; 
    (arg1)->Clear();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TeamManager_DecodeTeamAssigned(void * jarg1, void * jarg2, void * jarg3, void * jarg4) {
    RakNet::TeamManager *arg1 = (RakNet::TeamManager *) 0 ;
    RakNet::Packet *arg2 = (RakNet::Packet *) 0 ;
    RakNet::TM_World **arg3 = (RakNet::TM_World **) 0 ;
    RakNet::TM_TeamMember **arg4 = (RakNet::TM_TeamMember **) 0 ;
    
    arg1 = (RakNet::TeamManager *)jarg1; 
    arg2 = (RakNet::Packet *)jarg2; 
    arg3 = (RakNet::TM_World **)jarg3; 
    arg4 = (RakNet::TM_TeamMember **)jarg4; 
    (arg1)->DecodeTeamAssigned(arg2,arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TeamManager_DecodeTeamCancelled(void * jarg1, void * jarg2, void * jarg3, void * jarg4, void * jarg5) {
    RakNet::TeamManager *arg1 = (RakNet::TeamManager *) 0 ;
    RakNet::Packet *arg2 = (RakNet::Packet *) 0 ;
    RakNet::TM_World **arg3 = (RakNet::TM_World **) 0 ;
    RakNet::TM_TeamMember **arg4 = (RakNet::TM_TeamMember **) 0 ;
    RakNet::TM_Team **arg5 = (RakNet::TM_Team **) 0 ;
    
    arg1 = (RakNet::TeamManager *)jarg1; 
    arg2 = (RakNet::Packet *)jarg2; 
    arg3 = (RakNet::TM_World **)jarg3; 
    arg4 = (RakNet::TM_TeamMember **)jarg4; 
    arg5 = (RakNet::TM_Team **)jarg5; 
    (arg1)->DecodeTeamCancelled(arg2,arg3,arg4,arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_NatPunchthroughServerDebugInterface(void * jarg1) {
    RakNet::NatPunchthroughServerDebugInterface *arg1 = (RakNet::NatPunchthroughServerDebugInterface *) 0 ;
    
    arg1 = (RakNet::NatPunchthroughServerDebugInterface *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatPunchthroughServerDebugInterface_OnServerMessage(void * jarg1, char * jarg2) {
    RakNet::NatPunchthroughServerDebugInterface *arg1 = (RakNet::NatPunchthroughServerDebugInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::NatPunchthroughServerDebugInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->OnServerMessage((char const *)arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatPunchthroughServerDebugInterface_Printf_OnServerMessage(void * jarg1, char * jarg2) {
    RakNet::NatPunchthroughServerDebugInterface_Printf *arg1 = (RakNet::NatPunchthroughServerDebugInterface_Printf *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::NatPunchthroughServerDebugInterface_Printf *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->OnServerMessage((char const *)arg2);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_NatPunchthroughServerDebugInterface_Printf() {
    void * jresult ;
    RakNet::NatPunchthroughServerDebugInterface_Printf *result = 0 ;
    
    result = (RakNet::NatPunchthroughServerDebugInterface_Printf *)new RakNet::NatPunchthroughServerDebugInterface_Printf();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_NatPunchthroughServerDebugInterface_Printf(void * jarg1) {
    RakNet::NatPunchthroughServerDebugInterface_Printf *arg1 = (RakNet::NatPunchthroughServerDebugInterface_Printf *) 0 ;
    
    arg1 = (RakNet::NatPunchthroughServerDebugInterface_Printf *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatPunchthroughServerDebugInterface_PacketLogger_pl_set(void * jarg1, void * jarg2) {
    RakNet::NatPunchthroughServerDebugInterface_PacketLogger *arg1 = (RakNet::NatPunchthroughServerDebugInterface_PacketLogger *) 0 ;
    RakNet::PacketLogger *arg2 = (RakNet::PacketLogger *) 0 ;
    
    arg1 = (RakNet::NatPunchthroughServerDebugInterface_PacketLogger *)jarg1; 
    arg2 = (RakNet::PacketLogger *)jarg2; 
    if (arg1) (arg1)->pl = arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_NatPunchthroughServerDebugInterface_PacketLogger_pl_get(void * jarg1) {
    void * jresult ;
    RakNet::NatPunchthroughServerDebugInterface_PacketLogger *arg1 = (RakNet::NatPunchthroughServerDebugInterface_PacketLogger *) 0 ;
    RakNet::PacketLogger *result = 0 ;
    
    arg1 = (RakNet::NatPunchthroughServerDebugInterface_PacketLogger *)jarg1; 
    result = (RakNet::PacketLogger *) ((arg1)->pl);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_NatPunchthroughServerDebugInterface_PacketLogger() {
    void * jresult ;
    RakNet::NatPunchthroughServerDebugInterface_PacketLogger *result = 0 ;
    
    result = (RakNet::NatPunchthroughServerDebugInterface_PacketLogger *)new RakNet::NatPunchthroughServerDebugInterface_PacketLogger();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_NatPunchthroughServerDebugInterface_PacketLogger(void * jarg1) {
    RakNet::NatPunchthroughServerDebugInterface_PacketLogger *arg1 = (RakNet::NatPunchthroughServerDebugInterface_PacketLogger *) 0 ;
    
    arg1 = (RakNet::NatPunchthroughServerDebugInterface_PacketLogger *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatPunchthroughServerDebugInterface_PacketLogger_OnServerMessage(void * jarg1, char * jarg2) {
    RakNet::NatPunchthroughServerDebugInterface_PacketLogger *arg1 = (RakNet::NatPunchthroughServerDebugInterface_PacketLogger *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::NatPunchthroughServerDebugInterface_PacketLogger *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->OnServerMessage((char const *)arg2);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_NatPunchthroughServer_GetInstance() {
    void * jresult ;
    RakNet::NatPunchthroughServer *result = 0 ;
    
    result = (RakNet::NatPunchthroughServer *)RakNet::NatPunchthroughServer::GetInstance();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatPunchthroughServer_DestroyInstance(void * jarg1) {
    RakNet::NatPunchthroughServer *arg1 = (RakNet::NatPunchthroughServer *) 0 ;
    
    arg1 = (RakNet::NatPunchthroughServer *)jarg1; 
    RakNet::NatPunchthroughServer::DestroyInstance(arg1);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_NatPunchthroughServer() {
    void * jresult ;
    RakNet::NatPunchthroughServer *result = 0 ;
    
    result = (RakNet::NatPunchthroughServer *)new RakNet::NatPunchthroughServer();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_NatPunchthroughServer(void * jarg1) {
    RakNet::NatPunchthroughServer *arg1 = (RakNet::NatPunchthroughServer *) 0 ;
    
    arg1 = (RakNet::NatPunchthroughServer *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatPunchthroughServer_SetDebugInterface(void * jarg1, void * jarg2) {
    RakNet::NatPunchthroughServer *arg1 = (RakNet::NatPunchthroughServer *) 0 ;
    RakNet::NatPunchthroughServerDebugInterface *arg2 = (RakNet::NatPunchthroughServerDebugInterface *) 0 ;
    
    arg1 = (RakNet::NatPunchthroughServer *)jarg1; 
    arg2 = (RakNet::NatPunchthroughServerDebugInterface *)jarg2; 
    (arg1)->SetDebugInterface(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatPunchthroughServer_lastUpdate_set(void * jarg1, unsigned long long jarg2) {
    RakNet::NatPunchthroughServer *arg1 = (RakNet::NatPunchthroughServer *) 0 ;
    RakNet::Time arg2 ;
    
    arg1 = (RakNet::NatPunchthroughServer *)jarg1; 
    arg2 = (RakNet::Time)jarg2; 
    if (arg1) (arg1)->lastUpdate = arg2;
  }
  
  
  SWIGEXPORT unsigned long long SWIGSTDCALL CSharp_NatPunchthroughServer_lastUpdate_get(void * jarg1) {
    unsigned long long jresult ;
    RakNet::NatPunchthroughServer *arg1 = (RakNet::NatPunchthroughServer *) 0 ;
    RakNet::Time result;
    
    arg1 = (RakNet::NatPunchthroughServer *)jarg1; 
    result = (RakNet::Time) ((arg1)->lastUpdate);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_UDPForwarder() {
    void * jresult ;
    RakNet::UDPForwarder *result = 0 ;
    
    result = (RakNet::UDPForwarder *)new RakNet::UDPForwarder();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_UDPForwarder(void * jarg1) {
    RakNet::UDPForwarder *arg1 = (RakNet::UDPForwarder *) 0 ;
    
    arg1 = (RakNet::UDPForwarder *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UDPForwarder_Startup(void * jarg1) {
    RakNet::UDPForwarder *arg1 = (RakNet::UDPForwarder *) 0 ;
    
    arg1 = (RakNet::UDPForwarder *)jarg1; 
    (arg1)->Startup();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UDPForwarder_Shutdown(void * jarg1) {
    RakNet::UDPForwarder *arg1 = (RakNet::UDPForwarder *) 0 ;
    
    arg1 = (RakNet::UDPForwarder *)jarg1; 
    (arg1)->Shutdown();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UDPForwarder_SetMaxForwardEntries(void * jarg1, unsigned short jarg2) {
    RakNet::UDPForwarder *arg1 = (RakNet::UDPForwarder *) 0 ;
    unsigned short arg2 ;
    
    arg1 = (RakNet::UDPForwarder *)jarg1; 
    arg2 = (unsigned short)jarg2; 
    (arg1)->SetMaxForwardEntries(arg2);
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_UDPForwarder_GetMaxForwardEntries(void * jarg1) {
    int jresult ;
    RakNet::UDPForwarder *arg1 = (RakNet::UDPForwarder *) 0 ;
    int result;
    
    arg1 = (RakNet::UDPForwarder *)jarg1; 
    result = (int)((RakNet::UDPForwarder const *)arg1)->GetMaxForwardEntries();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_UDPForwarder_GetUsedForwardEntries(void * jarg1) {
    int jresult ;
    RakNet::UDPForwarder *arg1 = (RakNet::UDPForwarder *) 0 ;
    int result;
    
    arg1 = (RakNet::UDPForwarder *)jarg1; 
    result = (int)((RakNet::UDPForwarder const *)arg1)->GetUsedForwardEntries();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_UDPForwarder_StartForwarding(void * jarg1, void * jarg2, void * jarg3, unsigned int jarg4, char * jarg5, unsigned short jarg6, unsigned short * jarg7, int * jarg8) {
    int jresult ;
    RakNet::UDPForwarder *arg1 = (RakNet::UDPForwarder *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress arg3 ;
    RakNet::TimeMS arg4 ;
    char *arg5 = (char *) 0 ;
    unsigned short arg6 ;
    unsigned short *arg7 = (unsigned short *) 0 ;
    __UDPSOCKET__ *arg8 = (__UDPSOCKET__ *) 0 ;
    RakNet::SystemAddress *argp2 ;
    RakNet::SystemAddress *argp3 ;
    RakNet::UDPForwarderResult result;
    
    arg1 = (RakNet::UDPForwarder *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return 0;
    }
    arg2 = *argp2; 
    argp3 = (RakNet::SystemAddress *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return 0;
    }
    arg3 = *argp3; 
    arg4 = (RakNet::TimeMS)jarg4; 
    arg5 = (char *)jarg5; 
    arg6 = (unsigned short)jarg6; 
    arg7 = (unsigned short *)jarg7; 
    arg8 = (__UDPSOCKET__ *)jarg8; 
    result = (RakNet::UDPForwarderResult)(arg1)->StartForwarding(arg2,arg3,arg4,(char const *)arg5,arg6,arg7,arg8);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UDPForwarder_StopForwarding(void * jarg1, void * jarg2, void * jarg3) {
    RakNet::UDPForwarder *arg1 = (RakNet::UDPForwarder *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress arg3 ;
    RakNet::SystemAddress *argp2 ;
    RakNet::SystemAddress *argp3 ;
    
    arg1 = (RakNet::UDPForwarder *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg2 = *argp2; 
    argp3 = (RakNet::SystemAddress *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg3 = *argp3; 
    (arg1)->StopForwarding(arg2,arg3);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_UDPProxyServerResultHandler() {
    void * jresult ;
    RakNet::UDPProxyServerResultHandler *result = 0 ;
    
    result = (RakNet::UDPProxyServerResultHandler *)new SwigDirector_UDPProxyServerResultHandler();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_UDPProxyServerResultHandler(void * jarg1) {
    RakNet::UDPProxyServerResultHandler *arg1 = (RakNet::UDPProxyServerResultHandler *) 0 ;
    
    arg1 = (RakNet::UDPProxyServerResultHandler *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UDPProxyServerResultHandler_OnLoginSuccess(void * jarg1, void * jarg2, void * jarg3) {
    RakNet::UDPProxyServerResultHandler *arg1 = (RakNet::UDPProxyServerResultHandler *) 0 ;
    RakNet::RakString arg2 ;
    RakNet::UDPProxyServer *arg3 = (RakNet::UDPProxyServer *) 0 ;
    RakNet::RakString *argp2 ;
    
    arg1 = (RakNet::UDPProxyServerResultHandler *)jarg1; 
    argp2 = (RakNet::RakString *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakString", 0);
      return ;
    }
    arg2 = *argp2; 
    arg3 = (RakNet::UDPProxyServer *)jarg3; 
    (arg1)->OnLoginSuccess(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UDPProxyServerResultHandler_OnAlreadyLoggedIn(void * jarg1, void * jarg2, void * jarg3) {
    RakNet::UDPProxyServerResultHandler *arg1 = (RakNet::UDPProxyServerResultHandler *) 0 ;
    RakNet::RakString arg2 ;
    RakNet::UDPProxyServer *arg3 = (RakNet::UDPProxyServer *) 0 ;
    RakNet::RakString *argp2 ;
    
    arg1 = (RakNet::UDPProxyServerResultHandler *)jarg1; 
    argp2 = (RakNet::RakString *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakString", 0);
      return ;
    }
    arg2 = *argp2; 
    arg3 = (RakNet::UDPProxyServer *)jarg3; 
    (arg1)->OnAlreadyLoggedIn(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UDPProxyServerResultHandler_OnNoPasswordSet(void * jarg1, void * jarg2, void * jarg3) {
    RakNet::UDPProxyServerResultHandler *arg1 = (RakNet::UDPProxyServerResultHandler *) 0 ;
    RakNet::RakString arg2 ;
    RakNet::UDPProxyServer *arg3 = (RakNet::UDPProxyServer *) 0 ;
    RakNet::RakString *argp2 ;
    
    arg1 = (RakNet::UDPProxyServerResultHandler *)jarg1; 
    argp2 = (RakNet::RakString *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakString", 0);
      return ;
    }
    arg2 = *argp2; 
    arg3 = (RakNet::UDPProxyServer *)jarg3; 
    (arg1)->OnNoPasswordSet(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UDPProxyServerResultHandler_OnWrongPassword(void * jarg1, void * jarg2, void * jarg3) {
    RakNet::UDPProxyServerResultHandler *arg1 = (RakNet::UDPProxyServerResultHandler *) 0 ;
    RakNet::RakString arg2 ;
    RakNet::UDPProxyServer *arg3 = (RakNet::UDPProxyServer *) 0 ;
    RakNet::RakString *argp2 ;
    
    arg1 = (RakNet::UDPProxyServerResultHandler *)jarg1; 
    argp2 = (RakNet::RakString *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakString", 0);
      return ;
    }
    arg2 = *argp2; 
    arg3 = (RakNet::UDPProxyServer *)jarg3; 
    (arg1)->OnWrongPassword(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UDPProxyServerResultHandler_director_connect(void *objarg, SwigDirector_UDPProxyServerResultHandler::SWIG_Callback0_t callback0, SwigDirector_UDPProxyServerResultHandler::SWIG_Callback1_t callback1, SwigDirector_UDPProxyServerResultHandler::SWIG_Callback2_t callback2, SwigDirector_UDPProxyServerResultHandler::SWIG_Callback3_t callback3) {
    RakNet::UDPProxyServerResultHandler *obj = (RakNet::UDPProxyServerResultHandler *)objarg;
    SwigDirector_UDPProxyServerResultHandler *director = dynamic_cast<SwigDirector_UDPProxyServerResultHandler *>(obj);
    if (director) {
      director->swig_connect_director(callback0, callback1, callback2, callback3);
    }
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_UDPProxyServer_GetInstance() {
    void * jresult ;
    RakNet::UDPProxyServer *result = 0 ;
    
    result = (RakNet::UDPProxyServer *)RakNet::UDPProxyServer::GetInstance();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UDPProxyServer_DestroyInstance(void * jarg1) {
    RakNet::UDPProxyServer *arg1 = (RakNet::UDPProxyServer *) 0 ;
    
    arg1 = (RakNet::UDPProxyServer *)jarg1; 
    RakNet::UDPProxyServer::DestroyInstance(arg1);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_UDPProxyServer() {
    void * jresult ;
    RakNet::UDPProxyServer *result = 0 ;
    
    result = (RakNet::UDPProxyServer *)new RakNet::UDPProxyServer();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_UDPProxyServer(void * jarg1) {
    RakNet::UDPProxyServer *arg1 = (RakNet::UDPProxyServer *) 0 ;
    
    arg1 = (RakNet::UDPProxyServer *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UDPProxyServer_SetSocketFamily(void * jarg1, unsigned short jarg2) {
    RakNet::UDPProxyServer *arg1 = (RakNet::UDPProxyServer *) 0 ;
    unsigned short arg2 ;
    
    arg1 = (RakNet::UDPProxyServer *)jarg1; 
    arg2 = (unsigned short)jarg2; 
    (arg1)->SetSocketFamily(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UDPProxyServer_SetResultHandler(void * jarg1, void * jarg2) {
    RakNet::UDPProxyServer *arg1 = (RakNet::UDPProxyServer *) 0 ;
    RakNet::UDPProxyServerResultHandler *arg2 = (RakNet::UDPProxyServerResultHandler *) 0 ;
    
    arg1 = (RakNet::UDPProxyServer *)jarg1; 
    arg2 = (RakNet::UDPProxyServerResultHandler *)jarg2; 
    (arg1)->SetResultHandler(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UDPProxyServer_LoginToCoordinator(void * jarg1, void * jarg2, void * jarg3) {
    unsigned int jresult ;
    RakNet::UDPProxyServer *arg1 = (RakNet::UDPProxyServer *) 0 ;
    RakNet::RakString arg2 ;
    RakNet::SystemAddress arg3 ;
    RakNet::RakString *argp2 ;
    RakNet::SystemAddress *argp3 ;
    bool result;
    
    arg1 = (RakNet::UDPProxyServer *)jarg1; 
    argp2 = (RakNet::RakString *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakString", 0);
      return 0;
    }
    arg2 = *argp2; 
    argp3 = (RakNet::SystemAddress *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return 0;
    }
    arg3 = *argp3; 
    result = (bool)(arg1)->LoginToCoordinator(arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UDPProxyServer_SetServerPublicIP(void * jarg1, void * jarg2) {
    RakNet::UDPProxyServer *arg1 = (RakNet::UDPProxyServer *) 0 ;
    RakNet::RakString arg2 ;
    RakNet::RakString *argp2 ;
    
    arg1 = (RakNet::UDPProxyServer *)jarg1; 
    argp2 = (RakNet::RakString *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakString", 0);
      return ;
    }
    arg2 = *argp2; 
    (arg1)->SetServerPublicIP(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UDPProxyServer_udpForwarder_set(void * jarg1, void * jarg2) {
    RakNet::UDPProxyServer *arg1 = (RakNet::UDPProxyServer *) 0 ;
    RakNet::UDPForwarder *arg2 = (RakNet::UDPForwarder *) 0 ;
    
    arg1 = (RakNet::UDPProxyServer *)jarg1; 
    arg2 = (RakNet::UDPForwarder *)jarg2; 
    if (arg1) (arg1)->udpForwarder = *arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_UDPProxyServer_udpForwarder_get(void * jarg1) {
    void * jresult ;
    RakNet::UDPProxyServer *arg1 = (RakNet::UDPProxyServer *) 0 ;
    RakNet::UDPForwarder *result = 0 ;
    
    arg1 = (RakNet::UDPProxyServer *)jarg1; 
    result = (RakNet::UDPForwarder *)& ((arg1)->udpForwarder);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_UDPProxyCoordinator_GetInstance() {
    void * jresult ;
    RakNet::UDPProxyCoordinator *result = 0 ;
    
    result = (RakNet::UDPProxyCoordinator *)RakNet::UDPProxyCoordinator::GetInstance();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UDPProxyCoordinator_DestroyInstance(void * jarg1) {
    RakNet::UDPProxyCoordinator *arg1 = (RakNet::UDPProxyCoordinator *) 0 ;
    
    arg1 = (RakNet::UDPProxyCoordinator *)jarg1; 
    RakNet::UDPProxyCoordinator::DestroyInstance(arg1);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_UDPProxyCoordinator() {
    void * jresult ;
    RakNet::UDPProxyCoordinator *result = 0 ;
    
    result = (RakNet::UDPProxyCoordinator *)new RakNet::UDPProxyCoordinator();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_UDPProxyCoordinator(void * jarg1) {
    RakNet::UDPProxyCoordinator *arg1 = (RakNet::UDPProxyCoordinator *) 0 ;
    
    arg1 = (RakNet::UDPProxyCoordinator *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UDPProxyCoordinator_SetRemoteLoginPassword(void * jarg1, void * jarg2) {
    RakNet::UDPProxyCoordinator *arg1 = (RakNet::UDPProxyCoordinator *) 0 ;
    RakNet::RakString arg2 ;
    RakNet::RakString *argp2 ;
    
    arg1 = (RakNet::UDPProxyCoordinator *)jarg1; 
    argp2 = (RakNet::RakString *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakString", 0);
      return ;
    }
    arg2 = *argp2; 
    (arg1)->SetRemoteLoginPassword(arg2);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_NatTypeDetectionServer_GetInstance() {
    void * jresult ;
    RakNet::NatTypeDetectionServer *result = 0 ;
    
    result = (RakNet::NatTypeDetectionServer *)RakNet::NatTypeDetectionServer::GetInstance();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatTypeDetectionServer_DestroyInstance(void * jarg1) {
    RakNet::NatTypeDetectionServer *arg1 = (RakNet::NatTypeDetectionServer *) 0 ;
    
    arg1 = (RakNet::NatTypeDetectionServer *)jarg1; 
    RakNet::NatTypeDetectionServer::DestroyInstance(arg1);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_NatTypeDetectionServer() {
    void * jresult ;
    RakNet::NatTypeDetectionServer *result = 0 ;
    
    result = (RakNet::NatTypeDetectionServer *)new RakNet::NatTypeDetectionServer();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_NatTypeDetectionServer(void * jarg1) {
    RakNet::NatTypeDetectionServer *arg1 = (RakNet::NatTypeDetectionServer *) 0 ;
    
    arg1 = (RakNet::NatTypeDetectionServer *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatTypeDetectionServer_Startup(void * jarg1, char * jarg2, char * jarg3, char * jarg4) {
    RakNet::NatTypeDetectionServer *arg1 = (RakNet::NatTypeDetectionServer *) 0 ;
    char *arg2 = (char *) 0 ;
    char *arg3 = (char *) 0 ;
    char *arg4 = (char *) 0 ;
    
    arg1 = (RakNet::NatTypeDetectionServer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = (char *)jarg4; 
    (arg1)->Startup((char const *)arg2,(char const *)arg3,(char const *)arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatTypeDetectionServer_Shutdown(void * jarg1) {
    RakNet::NatTypeDetectionServer *arg1 = (RakNet::NatTypeDetectionServer *) 0 ;
    
    arg1 = (RakNet::NatTypeDetectionServer *)jarg1; 
    (arg1)->Shutdown();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatTypeDetectionServer_OnRNS2Recv(void * jarg1, void * jarg2) {
    RakNet::NatTypeDetectionServer *arg1 = (RakNet::NatTypeDetectionServer *) 0 ;
    RNS2RecvStruct *arg2 = (RNS2RecvStruct *) 0 ;
    
    arg1 = (RakNet::NatTypeDetectionServer *)jarg1; 
    arg2 = (RNS2RecvStruct *)jarg2; 
    (arg1)->OnRNS2Recv(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_NatTypeDetectionServer_DeallocRNS2RecvStruct(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) {
    RakNet::NatTypeDetectionServer *arg1 = (RakNet::NatTypeDetectionServer *) 0 ;
    RNS2RecvStruct *arg2 = (RNS2RecvStruct *) 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (RakNet::NatTypeDetectionServer *)jarg1; 
    arg2 = (RNS2RecvStruct *)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->DeallocRNS2RecvStruct(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_NatTypeDetectionServer_AllocRNS2RecvStruct(void * jarg1, char * jarg2, unsigned int jarg3) {
    void * jresult ;
    RakNet::NatTypeDetectionServer *arg1 = (RakNet::NatTypeDetectionServer *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned int arg3 ;
    RNS2RecvStruct *result = 0 ;
    
    arg1 = (RakNet::NatTypeDetectionServer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned int)jarg3; 
    result = (RNS2RecvStruct *)(arg1)->AllocRNS2RecvStruct((char const *)arg2,arg3);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__TABLE_BPLUS_TREE_ORDER_get() {
    int jresult ;
    int result;
    
    result = (int)(16);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp__TABLE_MAX_COLUMN_NAME_LENGTH_get() {
    int jresult ;
    int result;
    
    result = (int)(64);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_Table() {
    void * jresult ;
    DataStructures::Table *result = 0 ;
    
    result = (DataStructures::Table *)new DataStructures::Table();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_Table(void * jarg1) {
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    
    arg1 = (DataStructures::Table *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Table_AddColumn(void * jarg1, char * jarg2, int jarg3) {
    unsigned int jresult ;
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    char *arg2 ;
    DataStructures::Table::ColumnType arg3 ;
    unsigned int result;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (DataStructures::Table::ColumnType)jarg3; 
    result = (unsigned int)(arg1)->AddColumn((char const (*))arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Table_RemoveColumn(void * jarg1, unsigned int jarg2) {
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveColumn(arg2);
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_Table_ColumnName(void * jarg1, unsigned int jarg2) {
    char * jresult ;
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    unsigned int arg2 ;
    char *result = 0 ;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (char *)((DataStructures::Table const *)arg1)->ColumnName(arg2);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_Table_GetColumnType(void * jarg1, unsigned int jarg2) {
    int jresult ;
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    unsigned int arg2 ;
    DataStructures::Table::ColumnType result;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (DataStructures::Table::ColumnType)((DataStructures::Table const *)arg1)->GetColumnType(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Table_GetColumnCount(void * jarg1) {
    unsigned int jresult ;
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    unsigned int result;
    
    arg1 = (DataStructures::Table *)jarg1; 
    result = (unsigned int)((DataStructures::Table const *)arg1)->GetColumnCount();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Table_GetRowCount(void * jarg1) {
    unsigned int jresult ;
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    unsigned int result;
    
    arg1 = (DataStructures::Table *)jarg1; 
    result = (unsigned int)((DataStructures::Table const *)arg1)->GetRowCount();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_Table_AddRow__SWIG_0(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    unsigned int arg2 ;
    DataStructures::Table::Row *result = 0 ;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (DataStructures::Table::Row *)(arg1)->AddRow(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_Table_AddRow__SWIG_1(void * jarg1, unsigned int jarg2, void * jarg3) {
    void * jresult ;
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    unsigned int arg2 ;
    DataStructures::List< Cell > *arg3 = 0 ;
    DataStructures::Table::Row *result = 0 ;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (DataStructures::List< Cell > *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< Cell > & type is null", 0);
      return 0;
    } 
    result = (DataStructures::Table::Row *)(arg1)->AddRow(arg2,*arg3);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_Table_AddRow__SWIG_2(void * jarg1, unsigned int jarg2, void * jarg3, unsigned int jarg4) {
    void * jresult ;
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    unsigned int arg2 ;
    DataStructures::List< Cell * > *arg3 = 0 ;
    bool arg4 ;
    DataStructures::Table::Row *result = 0 ;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (DataStructures::List< Cell * > *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< Cell * > & type is null", 0);
      return 0;
    } 
    arg4 = jarg4 ? true : false; 
    result = (DataStructures::Table::Row *)(arg1)->AddRow(arg2,*arg3,arg4);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_Table_AddRow__SWIG_3(void * jarg1, unsigned int jarg2, void * jarg3) {
    void * jresult ;
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    unsigned int arg2 ;
    DataStructures::List< Cell * > *arg3 = 0 ;
    DataStructures::Table::Row *result = 0 ;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (DataStructures::List< Cell * > *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< Cell * > & type is null", 0);
      return 0;
    } 
    result = (DataStructures::Table::Row *)(arg1)->AddRow(arg2,*arg3);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Table_RemoveRow(void * jarg1, unsigned int jarg2) {
    unsigned int jresult ;
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    unsigned int arg2 ;
    bool result;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (bool)(arg1)->RemoveRow(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Table_RemoveRows(void * jarg1, void * jarg2) {
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    DataStructures::Table *arg2 = (DataStructures::Table *) 0 ;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = (DataStructures::Table *)jarg2; 
    (arg1)->RemoveRows(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Table_UpdateCell__SWIG_0(void * jarg1, unsigned int jarg2, unsigned int jarg3, int jarg4) {
    unsigned int jresult ;
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    unsigned int arg2 ;
    unsigned int arg3 ;
    int arg4 ;
    bool result;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (unsigned int)jarg3; 
    arg4 = (int)jarg4; 
    result = (bool)(arg1)->UpdateCell(arg2,arg3,arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Table_UpdateCell__SWIG_1(void * jarg1, unsigned int jarg2, unsigned int jarg3, char * jarg4) {
    unsigned int jresult ;
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    unsigned int arg2 ;
    unsigned int arg3 ;
    char *arg4 = (char *) 0 ;
    bool result;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (unsigned int)jarg3; 
    arg4 = (char *)jarg4; 
    result = (bool)(arg1)->UpdateCell(arg2,arg3,arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Table_UpdateCellByIndex__SWIG_0(void * jarg1, unsigned int jarg2, unsigned int jarg3, int jarg4) {
    unsigned int jresult ;
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    unsigned int arg2 ;
    unsigned int arg3 ;
    int arg4 ;
    bool result;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (unsigned int)jarg3; 
    arg4 = (int)jarg4; 
    result = (bool)(arg1)->UpdateCellByIndex(arg2,arg3,arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Table_UpdateCellByIndex__SWIG_1(void * jarg1, unsigned int jarg2, unsigned int jarg3, char * jarg4) {
    unsigned int jresult ;
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    unsigned int arg2 ;
    unsigned int arg3 ;
    char *arg4 = (char *) 0 ;
    bool result;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (unsigned int)jarg3; 
    arg4 = (char *)jarg4; 
    result = (bool)(arg1)->UpdateCellByIndex(arg2,arg3,arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Table_GetCellValueByIndex__SWIG_0(void * jarg1, unsigned int jarg2, unsigned int jarg3, int * jarg4) {
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    unsigned int arg2 ;
    unsigned int arg3 ;
    int *arg4 = (int *) 0 ;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (unsigned int)jarg3; 
    arg4 = (int *)jarg4; 
    (arg1)->GetCellValueByIndex(arg2,arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Table_GetCellValueByIndex__SWIG_1(void * jarg1, unsigned int jarg2, unsigned int jarg3, char * jarg4, unsigned long jarg5) {
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    unsigned int arg2 ;
    unsigned int arg3 ;
    char *arg4 = (char *) 0 ;
    size_t arg5 ;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (unsigned int)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (size_t)jarg5; 
    (arg1)->GetCellValueByIndex(arg2,arg3,arg4,arg5);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_Table_GetRowByID(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    unsigned int arg2 ;
    Row *result = 0 ;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (Row *)((DataStructures::Table const *)arg1)->GetRowByID(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_Table_GetRowByIndex(void * jarg1, unsigned int jarg2, int * jarg3) {
    void * jresult ;
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    unsigned int arg2 ;
    unsigned int *arg3 = (unsigned int *) 0 ;
    Row *result = 0 ;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (unsigned int *)jarg3; 
    result = (Row *)((DataStructures::Table const *)arg1)->GetRowByIndex(arg2,arg3);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Table_Clear(void * jarg1) {
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    
    arg1 = (DataStructures::Table *)jarg1; 
    (arg1)->Clear();
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_Table_GetColumns(void * jarg1) {
    void * jresult ;
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    DataStructures::List< ColumnDescriptor > *result = 0 ;
    
    arg1 = (DataStructures::Table *)jarg1; 
    result = (DataStructures::List< ColumnDescriptor > *) &((DataStructures::Table const *)arg1)->GetColumns();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_Table_GetRows(void * jarg1) {
    void * jresult ;
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    DataStructures::BPlusTree< unsigned int,Row *,16 > *result = 0 ;
    
    arg1 = (DataStructures::Table *)jarg1; 
    result = (DataStructures::BPlusTree< unsigned int,Row *,16 > *) &((DataStructures::Table const *)arg1)->GetRows();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Table_GetAvailableRowId(void * jarg1) {
    unsigned int jresult ;
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    unsigned int result;
    
    arg1 = (DataStructures::Table *)jarg1; 
    result = (unsigned int)((DataStructures::Table const *)arg1)->GetAvailableRowId();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_Table_CopyData(void * jarg1, void * jarg2) {
    void * jresult ;
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    DataStructures::Table *arg2 = 0 ;
    DataStructures::Table *result = 0 ;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = (DataStructures::Table *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::Table const & type is null", 0);
      return 0;
    } 
    result = (DataStructures::Table *) &(arg1)->operator =((DataStructures::Table const &)*arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_Table_GetListHeadHelper(void * jarg1) {
    void * jresult ;
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    DataStructures::Page< unsigned int,Row *,16 > *result = 0 ;
    
    arg1 = (DataStructures::Table *)jarg1; 
    result = (DataStructures::Page< unsigned int,Row *,16 > *)DataStructures_Table_GetListHeadHelper(arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Table_SortTableHelper(void * jarg1, void * jarg2, unsigned int jarg3, void * jarg4) {
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    DataStructures::List< SortQuery > *arg2 = (DataStructures::List< SortQuery > *) 0 ;
    unsigned int arg3 ;
    DataStructures::List< Row > *arg4 = (DataStructures::List< Row > *) 0 ;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = (DataStructures::List< SortQuery > *)jarg2; 
    arg3 = (unsigned int)jarg3; 
    arg4 = (DataStructures::List< Row > *)jarg4; 
    DataStructures_Table_SortTableHelper(arg1,arg2,arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Table_GetCellValueByIndexHelper__SWIG_0(void * jarg1, unsigned int jarg2, unsigned int jarg3, unsigned char* jarg4, int * jarg5) {
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    unsigned int arg2 ;
    unsigned int arg3 ;
    unsigned char *arg4 = (unsigned char *) 0 ;
    int *arg5 = (int *) 0 ;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (unsigned int)jarg3; 
    arg4 = jarg4;
    arg5 = (int *)jarg5; 
    DataStructures_Table_GetCellValueByIndexHelper__SWIG_0(arg1,arg2,arg3,arg4,arg5);
    
    
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_Table_GetCellValueByIndexHelper__SWIG_1(void * jarg1, unsigned int jarg2, unsigned int jarg3, char * jarg4) {
    char * jresult ;
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    unsigned int arg2 ;
    unsigned int arg3 ;
    char *arg4 = (char *) 0 ;
    char *result = 0 ;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (unsigned int)jarg3; 
    arg4 = (char *)jarg4; 
    result = (char *)DataStructures_Table_GetCellValueByIndexHelper__SWIG_1(arg1,arg2,arg3,arg4);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Table_PrintColumnHeaders(void * jarg1, unsigned char* jarg2, int jarg3, char jarg4) {
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    int arg3 ;
    char arg4 ;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = jarg2;
    arg3 = (int)jarg3; 
    arg4 = (char)jarg4; 
    DataStructures_Table_PrintColumnHeaders((DataStructures::Table const *)arg1,arg2,arg3,arg4);
    
    
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Table_PrintRow(void * jarg1, unsigned char* jarg2, int jarg3, char jarg4, unsigned int jarg5, void * jarg6) {
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    int arg3 ;
    char arg4 ;
    bool arg5 ;
    DataStructures::Table::Row *arg6 = (DataStructures::Table::Row *) 0 ;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = jarg2;
    arg3 = (int)jarg3; 
    arg4 = (char)jarg4; 
    arg5 = jarg5 ? true : false; 
    arg6 = (DataStructures::Table::Row *)jarg6; 
    DataStructures_Table_PrintRow((DataStructures::Table const *)arg1,arg2,arg3,arg4,arg5,arg6);
    
    
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_Table_QueryTableHelper(void * jarg1, unsigned int* jarg2, unsigned int jarg3, void * jarg4, unsigned int jarg5, unsigned int* jarg6, unsigned int jarg7, void * jarg8) {
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    unsigned int *arg2 = (unsigned int *) 0 ;
    unsigned int arg3 ;
    DataStructures::List< FilterQuery > *arg4 = (DataStructures::List< FilterQuery > *) 0 ;
    unsigned int arg5 ;
    unsigned int *arg6 = (unsigned int *) 0 ;
    unsigned int arg7 ;
    DataStructures::Table *arg8 = (DataStructures::Table *) 0 ;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = jarg2;
    arg3 = (unsigned int)jarg3; 
    arg4 = (DataStructures::List< FilterQuery > *)jarg4; 
    arg5 = (unsigned int)jarg5; 
    arg6 = jarg6;
    arg7 = (unsigned int)jarg7; 
    arg8 = (DataStructures::Table *)jarg8; 
    DataStructures_Table_QueryTableHelper(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);
    
    
    
    
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Table_UpdateCell__SWIG_2(void * jarg1, unsigned int jarg2, unsigned int jarg3, int jarg4, unsigned char* jarg5) {
    unsigned int jresult ;
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    unsigned int arg2 ;
    unsigned int arg3 ;
    int arg4 ;
    unsigned char *arg5 = (unsigned char *) 0 ;
    bool result;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (unsigned int)jarg3; 
    arg4 = (int)jarg4; 
    arg5 = jarg5;
    result = (bool)DataStructures_Table_UpdateCell__SWIG_2(arg1,arg2,arg3,arg4,arg5);
    jresult = result; 
    
    
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Table_UpdateCellByIndex__SWIG_2(void * jarg1, unsigned int jarg2, unsigned int jarg3, int jarg4, unsigned char* jarg5) {
    unsigned int jresult ;
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    unsigned int arg2 ;
    unsigned int arg3 ;
    int arg4 ;
    unsigned char *arg5 = (unsigned char *) 0 ;
    bool result;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (unsigned int)jarg3; 
    arg4 = (int)jarg4; 
    arg5 = jarg5;
    result = (bool)DataStructures_Table_UpdateCellByIndex__SWIG_2(arg1,arg2,arg3,arg4,arg5);
    jresult = result; 
    
    
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Table_ColumnIndexHelper(void * jarg1, char * jarg2) {
    unsigned int jresult ;
    DataStructures::Table *arg1 = (DataStructures::Table *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned int result;
    
    arg1 = (DataStructures::Table *)jarg1; 
    arg2 = (char *)jarg2; 
    result = (unsigned int)DataStructures_Table_ColumnIndexHelper((DataStructures::Table const *)arg1,(char const *)arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_FileListTransferCBInterface() {
    void * jresult ;
    RakNet::FileListTransferCBInterface *result = 0 ;
    
    result = (RakNet::FileListTransferCBInterface *)new SwigDirector_FileListTransferCBInterface();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_FileListTransferCBInterface(void * jarg1) {
    RakNet::FileListTransferCBInterface *arg1 = (RakNet::FileListTransferCBInterface *) 0 ;
    
    arg1 = (RakNet::FileListTransferCBInterface *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FileListTransferCBInterface_OnFile(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::FileListTransferCBInterface *arg1 = (RakNet::FileListTransferCBInterface *) 0 ;
    OnFileStruct *arg2 = (OnFileStruct *) 0 ;
    bool result;
    
    arg1 = (RakNet::FileListTransferCBInterface *)jarg1; 
    arg2 = (OnFileStruct *)jarg2; 
    result = (bool)(arg1)->OnFile(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListTransferCBInterface_OnFileProgress(void * jarg1, void * jarg2) {
    RakNet::FileListTransferCBInterface *arg1 = (RakNet::FileListTransferCBInterface *) 0 ;
    FileProgressStruct *arg2 = (FileProgressStruct *) 0 ;
    
    arg1 = (RakNet::FileListTransferCBInterface *)jarg1; 
    arg2 = (FileProgressStruct *)jarg2; 
    (arg1)->OnFileProgress(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FileListTransferCBInterface_Update(void * jarg1) {
    unsigned int jresult ;
    RakNet::FileListTransferCBInterface *arg1 = (RakNet::FileListTransferCBInterface *) 0 ;
    bool result;
    
    arg1 = (RakNet::FileListTransferCBInterface *)jarg1; 
    result = (bool)(arg1)->Update();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FileListTransferCBInterface_UpdateSwigExplicitFileListTransferCBInterface(void * jarg1) {
    unsigned int jresult ;
    RakNet::FileListTransferCBInterface *arg1 = (RakNet::FileListTransferCBInterface *) 0 ;
    bool result;
    
    arg1 = (RakNet::FileListTransferCBInterface *)jarg1; 
    result = (bool)(arg1)->RakNet::FileListTransferCBInterface::Update();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FileListTransferCBInterface_OnDownloadComplete(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::FileListTransferCBInterface *arg1 = (RakNet::FileListTransferCBInterface *) 0 ;
    DownloadCompleteStruct *arg2 = (DownloadCompleteStruct *) 0 ;
    bool result;
    
    arg1 = (RakNet::FileListTransferCBInterface *)jarg1; 
    arg2 = (DownloadCompleteStruct *)jarg2; 
    result = (bool)(arg1)->OnDownloadComplete(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FileListTransferCBInterface_OnDownloadCompleteSwigExplicitFileListTransferCBInterface(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::FileListTransferCBInterface *arg1 = (RakNet::FileListTransferCBInterface *) 0 ;
    DownloadCompleteStruct *arg2 = (DownloadCompleteStruct *) 0 ;
    bool result;
    
    arg1 = (RakNet::FileListTransferCBInterface *)jarg1; 
    arg2 = (DownloadCompleteStruct *)jarg2; 
    result = (bool)(arg1)->RakNet::FileListTransferCBInterface::OnDownloadComplete(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListTransferCBInterface_OnDereference(void * jarg1) {
    RakNet::FileListTransferCBInterface *arg1 = (RakNet::FileListTransferCBInterface *) 0 ;
    
    arg1 = (RakNet::FileListTransferCBInterface *)jarg1; 
    (arg1)->OnDereference();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListTransferCBInterface_OnDereferenceSwigExplicitFileListTransferCBInterface(void * jarg1) {
    RakNet::FileListTransferCBInterface *arg1 = (RakNet::FileListTransferCBInterface *) 0 ;
    
    arg1 = (RakNet::FileListTransferCBInterface *)jarg1; 
    (arg1)->RakNet::FileListTransferCBInterface::OnDereference();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListTransferCBInterface_director_connect(void *objarg, SwigDirector_FileListTransferCBInterface::SWIG_Callback0_t callback0, SwigDirector_FileListTransferCBInterface::SWIG_Callback1_t callback1, SwigDirector_FileListTransferCBInterface::SWIG_Callback2_t callback2, SwigDirector_FileListTransferCBInterface::SWIG_Callback3_t callback3, SwigDirector_FileListTransferCBInterface::SWIG_Callback4_t callback4) {
    RakNet::FileListTransferCBInterface *obj = (RakNet::FileListTransferCBInterface *)objarg;
    SwigDirector_FileListTransferCBInterface *director = dynamic_cast<SwigDirector_FileListTransferCBInterface *>(obj);
    if (director) {
      director->swig_connect_director(callback0, callback1, callback2, callback3, callback4);
    }
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_IncrementalReadInterface() {
    void * jresult ;
    RakNet::IncrementalReadInterface *result = 0 ;
    
    result = (RakNet::IncrementalReadInterface *)new RakNet::IncrementalReadInterface();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_IncrementalReadInterface(void * jarg1) {
    RakNet::IncrementalReadInterface *arg1 = (RakNet::IncrementalReadInterface *) 0 ;
    
    arg1 = (RakNet::IncrementalReadInterface *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_IncrementalReadInterface_GetFilePart(void * jarg1, char * jarg2, unsigned int jarg3, unsigned int jarg4, unsigned char* jarg5, void * jarg6) {
    unsigned int jresult ;
    RakNet::IncrementalReadInterface *arg1 = (RakNet::IncrementalReadInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned int arg3 ;
    unsigned int arg4 ;
    unsigned char *arg5 = (unsigned char *) 0 ;
    FileListNodeContext arg6 ;
    FileListNodeContext *argp6 ;
    unsigned int result;
    
    arg1 = (RakNet::IncrementalReadInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned int)jarg3; 
    arg4 = (unsigned int)jarg4; 
    arg5 = jarg5;
    argp6 = (FileListNodeContext *)jarg6; 
    if (!argp6) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null FileListNodeContext", 0);
      return 0;
    }
    arg6 = *argp6; 
    result = (unsigned int)RakNet_IncrementalReadInterface_GetFilePart(arg1,(char const *)arg2,arg3,arg4,arg5,arg6);
    jresult = result; 
    
    
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_FileListNodeContext__SWIG_0() {
    void * jresult ;
    FileListNodeContext *result = 0 ;
    
    result = (FileListNodeContext *)new FileListNodeContext();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_FileListNodeContext__SWIG_1(unsigned char jarg1, unsigned int jarg2, unsigned int jarg3, unsigned int jarg4) {
    void * jresult ;
    unsigned char arg1 ;
    uint32_t arg2 ;
    uint32_t arg3 ;
    uint32_t arg4 ;
    FileListNodeContext *result = 0 ;
    
    arg1 = (unsigned char)jarg1; 
    arg2 = (uint32_t)jarg2; 
    arg3 = (uint32_t)jarg3; 
    arg4 = (uint32_t)jarg4; 
    result = (FileListNodeContext *)new FileListNodeContext(arg1,arg2,arg3,arg4);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_FileListNodeContext(void * jarg1) {
    FileListNodeContext *arg1 = (FileListNodeContext *) 0 ;
    
    arg1 = (FileListNodeContext *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListNodeContext_op_set(void * jarg1, unsigned char jarg2) {
    FileListNodeContext *arg1 = (FileListNodeContext *) 0 ;
    unsigned char arg2 ;
    
    arg1 = (FileListNodeContext *)jarg1; 
    arg2 = (unsigned char)jarg2; 
    if (arg1) (arg1)->op = arg2;
  }
  
  
  SWIGEXPORT unsigned char SWIGSTDCALL CSharp_FileListNodeContext_op_get(void * jarg1) {
    unsigned char jresult ;
    FileListNodeContext *arg1 = (FileListNodeContext *) 0 ;
    unsigned char result;
    
    arg1 = (FileListNodeContext *)jarg1; 
    result = (unsigned char) ((arg1)->op);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListNodeContext_flnc_extraData1_set(void * jarg1, unsigned int jarg2) {
    FileListNodeContext *arg1 = (FileListNodeContext *) 0 ;
    uint32_t arg2 ;
    
    arg1 = (FileListNodeContext *)jarg1; 
    arg2 = (uint32_t)jarg2; 
    if (arg1) (arg1)->flnc_extraData1 = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FileListNodeContext_flnc_extraData1_get(void * jarg1) {
    unsigned int jresult ;
    FileListNodeContext *arg1 = (FileListNodeContext *) 0 ;
    uint32_t result;
    
    arg1 = (FileListNodeContext *)jarg1; 
    result = (uint32_t) ((arg1)->flnc_extraData1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListNodeContext_flnc_extraData2_set(void * jarg1, unsigned int jarg2) {
    FileListNodeContext *arg1 = (FileListNodeContext *) 0 ;
    uint32_t arg2 ;
    
    arg1 = (FileListNodeContext *)jarg1; 
    arg2 = (uint32_t)jarg2; 
    if (arg1) (arg1)->flnc_extraData2 = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FileListNodeContext_flnc_extraData2_get(void * jarg1) {
    unsigned int jresult ;
    FileListNodeContext *arg1 = (FileListNodeContext *) 0 ;
    uint32_t result;
    
    arg1 = (FileListNodeContext *)jarg1; 
    result = (uint32_t) ((arg1)->flnc_extraData2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListNodeContext_flnc_extraData3_set(void * jarg1, unsigned int jarg2) {
    FileListNodeContext *arg1 = (FileListNodeContext *) 0 ;
    uint32_t arg2 ;
    
    arg1 = (FileListNodeContext *)jarg1; 
    arg2 = (uint32_t)jarg2; 
    if (arg1) (arg1)->flnc_extraData3 = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FileListNodeContext_flnc_extraData3_get(void * jarg1) {
    unsigned int jresult ;
    FileListNodeContext *arg1 = (FileListNodeContext *) 0 ;
    uint32_t result;
    
    arg1 = (FileListNodeContext *)jarg1; 
    result = (uint32_t) ((arg1)->flnc_extraData3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListNodeContext_dataPtr_set(void * jarg1, void * jarg2) {
    FileListNodeContext *arg1 = (FileListNodeContext *) 0 ;
    void *arg2 = (void *) 0 ;
    
    arg1 = (FileListNodeContext *)jarg1; 
    arg2 = (void *)jarg2; 
    if (arg1) (arg1)->dataPtr = arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_FileListNodeContext_dataPtr_get(void * jarg1) {
    void * jresult ;
    FileListNodeContext *arg1 = (FileListNodeContext *) 0 ;
    void *result = 0 ;
    
    arg1 = (FileListNodeContext *)jarg1; 
    result = (void *) ((arg1)->dataPtr);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListNodeContext_dataLength_set(void * jarg1, unsigned int jarg2) {
    FileListNodeContext *arg1 = (FileListNodeContext *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (FileListNodeContext *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    if (arg1) (arg1)->dataLength = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FileListNodeContext_dataLength_get(void * jarg1) {
    unsigned int jresult ;
    FileListNodeContext *arg1 = (FileListNodeContext *) 0 ;
    unsigned int result;
    
    arg1 = (FileListNodeContext *)jarg1; 
    result = (unsigned int) ((arg1)->dataLength);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListNode_filename_set(void * jarg1, void * jarg2) {
    RakNet::FileListNode *arg1 = (RakNet::FileListNode *) 0 ;
    RakNet::RakString *arg2 = (RakNet::RakString *) 0 ;
    
    arg1 = (RakNet::FileListNode *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2; 
    if (arg1) (arg1)->filename = *arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_FileListNode_filename_get(void * jarg1) {
    void * jresult ;
    RakNet::FileListNode *arg1 = (RakNet::FileListNode *) 0 ;
    RakNet::RakString *result = 0 ;
    
    arg1 = (RakNet::FileListNode *)jarg1; 
    result = (RakNet::RakString *)& ((arg1)->filename);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListNode_fullPathToFile_set(void * jarg1, void * jarg2) {
    RakNet::FileListNode *arg1 = (RakNet::FileListNode *) 0 ;
    RakNet::RakString *arg2 = (RakNet::RakString *) 0 ;
    
    arg1 = (RakNet::FileListNode *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2; 
    if (arg1) (arg1)->fullPathToFile = *arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_FileListNode_fullPathToFile_get(void * jarg1) {
    void * jresult ;
    RakNet::FileListNode *arg1 = (RakNet::FileListNode *) 0 ;
    RakNet::RakString *result = 0 ;
    
    arg1 = (RakNet::FileListNode *)jarg1; 
    result = (RakNet::RakString *)& ((arg1)->fullPathToFile);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListNode_data_set(void * jarg1, char * jarg2) {
    RakNet::FileListNode *arg1 = (RakNet::FileListNode *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::FileListNode *)jarg1; 
    arg2 = (char *)jarg2; 
    {
      delete [] arg1->data;
      if (arg2) {
        arg1->data = (char *) (new char[strlen((const char *)arg2)+1]);
        strcpy((char *)arg1->data, (const char *)arg2);
      } else {
        arg1->data = 0;
      }
    }
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_FileListNode_data_get(void * jarg1) {
    char * jresult ;
    RakNet::FileListNode *arg1 = (RakNet::FileListNode *) 0 ;
    char *result = 0 ;
    
    arg1 = (RakNet::FileListNode *)jarg1; 
    result = (char *) ((arg1)->data);
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListNode_dataLengthBytes_set(void * jarg1, unsigned int jarg2) {
    RakNet::FileListNode *arg1 = (RakNet::FileListNode *) 0 ;
    RakNet::BitSize_t arg2 ;
    
    arg1 = (RakNet::FileListNode *)jarg1; 
    arg2 = (RakNet::BitSize_t)jarg2; 
    if (arg1) (arg1)->dataLengthBytes = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FileListNode_dataLengthBytes_get(void * jarg1) {
    unsigned int jresult ;
    RakNet::FileListNode *arg1 = (RakNet::FileListNode *) 0 ;
    RakNet::BitSize_t result;
    
    arg1 = (RakNet::FileListNode *)jarg1; 
    result = (RakNet::BitSize_t) ((arg1)->dataLengthBytes);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListNode_fileLengthBytes_set(void * jarg1, unsigned int jarg2) {
    RakNet::FileListNode *arg1 = (RakNet::FileListNode *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (RakNet::FileListNode *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    if (arg1) (arg1)->fileLengthBytes = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FileListNode_fileLengthBytes_get(void * jarg1) {
    unsigned int jresult ;
    RakNet::FileListNode *arg1 = (RakNet::FileListNode *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::FileListNode *)jarg1; 
    result = (unsigned int) ((arg1)->fileLengthBytes);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListNode_context_set(void * jarg1, void * jarg2) {
    RakNet::FileListNode *arg1 = (RakNet::FileListNode *) 0 ;
    FileListNodeContext *arg2 = (FileListNodeContext *) 0 ;
    
    arg1 = (RakNet::FileListNode *)jarg1; 
    arg2 = (FileListNodeContext *)jarg2; 
    if (arg1) (arg1)->context = *arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_FileListNode_context_get(void * jarg1) {
    void * jresult ;
    RakNet::FileListNode *arg1 = (RakNet::FileListNode *) 0 ;
    FileListNodeContext *result = 0 ;
    
    arg1 = (RakNet::FileListNode *)jarg1; 
    result = (FileListNodeContext *)& ((arg1)->context);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListNode_isAReference_set(void * jarg1, unsigned int jarg2) {
    RakNet::FileListNode *arg1 = (RakNet::FileListNode *) 0 ;
    bool arg2 ;
    
    arg1 = (RakNet::FileListNode *)jarg1; 
    arg2 = jarg2 ? true : false; 
    if (arg1) (arg1)->isAReference = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FileListNode_isAReference_get(void * jarg1) {
    unsigned int jresult ;
    RakNet::FileListNode *arg1 = (RakNet::FileListNode *) 0 ;
    bool result;
    
    arg1 = (RakNet::FileListNode *)jarg1; 
    result = (bool) ((arg1)->isAReference);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_FileListNode() {
    void * jresult ;
    RakNet::FileListNode *result = 0 ;
    
    result = (RakNet::FileListNode *)new_RakNet_FileListNode();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListNode_SetData(void * jarg1, unsigned char* jarg2, int jarg3) {
    RakNet::FileListNode *arg1 = (RakNet::FileListNode *) 0 ;
    unsigned char *arg2 = (unsigned char *) 0 ;
    int arg3 ;
    
    arg1 = (RakNet::FileListNode *)jarg1; 
    arg2 = jarg2;
    arg3 = (int)jarg3; 
    RakNet_FileListNode_SetData(arg1,arg2,arg3);
    
    
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_FileListNode(void * jarg1) {
    RakNet::FileListNode *arg1 = (RakNet::FileListNode *) 0 ;
    
    arg1 = (RakNet::FileListNode *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_FileListProgress_GetInstance() {
    void * jresult ;
    RakNet::FileListProgress *result = 0 ;
    
    result = (RakNet::FileListProgress *)RakNet::FileListProgress::GetInstance();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListProgress_DestroyInstance(void * jarg1) {
    RakNet::FileListProgress *arg1 = (RakNet::FileListProgress *) 0 ;
    
    arg1 = (RakNet::FileListProgress *)jarg1; 
    RakNet::FileListProgress::DestroyInstance(arg1);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_FileListProgress() {
    void * jresult ;
    RakNet::FileListProgress *result = 0 ;
    
    result = (RakNet::FileListProgress *)new RakNet::FileListProgress();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_FileListProgress(void * jarg1) {
    RakNet::FileListProgress *arg1 = (RakNet::FileListProgress *) 0 ;
    
    arg1 = (RakNet::FileListProgress *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListProgress_OnAddFilesFromDirectoryStarted(void * jarg1, void * jarg2, char * jarg3) {
    RakNet::FileListProgress *arg1 = (RakNet::FileListProgress *) 0 ;
    RakNet::FileList *arg2 = (RakNet::FileList *) 0 ;
    char *arg3 = (char *) 0 ;
    
    arg1 = (RakNet::FileListProgress *)jarg1; 
    arg2 = (RakNet::FileList *)jarg2; 
    arg3 = (char *)jarg3; 
    (arg1)->OnAddFilesFromDirectoryStarted(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListProgress_OnDirectory(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) {
    RakNet::FileListProgress *arg1 = (RakNet::FileListProgress *) 0 ;
    RakNet::FileList *arg2 = (RakNet::FileList *) 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (RakNet::FileListProgress *)jarg1; 
    arg2 = (RakNet::FileList *)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->OnDirectory(arg2,arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListProgress_OnFile(void * jarg1, void * jarg2, char * jarg3, char * jarg4, unsigned int jarg5) {
    RakNet::FileListProgress *arg1 = (RakNet::FileListProgress *) 0 ;
    RakNet::FileList *arg2 = (RakNet::FileList *) 0 ;
    char *arg3 = (char *) 0 ;
    char *arg4 = (char *) 0 ;
    unsigned int arg5 ;
    
    arg1 = (RakNet::FileListProgress *)jarg1; 
    arg2 = (RakNet::FileList *)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (unsigned int)jarg5; 
    (arg1)->OnFile(arg2,arg3,arg4,arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListProgress_OnFilePush(void * jarg1, char * jarg2, unsigned int jarg3, unsigned int jarg4, unsigned int jarg5, unsigned int jarg6, void * jarg7, unsigned short jarg8) {
    RakNet::FileListProgress *arg1 = (RakNet::FileListProgress *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned int arg3 ;
    unsigned int arg4 ;
    unsigned int arg5 ;
    bool arg6 ;
    RakNet::SystemAddress arg7 ;
    unsigned short arg8 ;
    RakNet::SystemAddress *argp7 ;
    
    arg1 = (RakNet::FileListProgress *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned int)jarg3; 
    arg4 = (unsigned int)jarg4; 
    arg5 = (unsigned int)jarg5; 
    arg6 = jarg6 ? true : false; 
    argp7 = (RakNet::SystemAddress *)jarg7; 
    if (!argp7) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg7 = *argp7; 
    arg8 = (unsigned short)jarg8; 
    (arg1)->OnFilePush((char const *)arg2,arg3,arg4,arg5,arg6,arg7,arg8);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListProgress_OnFilePushesComplete(void * jarg1, void * jarg2, unsigned short jarg3) {
    RakNet::FileListProgress *arg1 = (RakNet::FileListProgress *) 0 ;
    RakNet::SystemAddress arg2 ;
    unsigned short arg3 ;
    RakNet::SystemAddress *argp2 ;
    
    arg1 = (RakNet::FileListProgress *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg2 = *argp2; 
    arg3 = (unsigned short)jarg3; 
    (arg1)->OnFilePushesComplete(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListProgress_OnSendAborted(void * jarg1, void * jarg2) {
    RakNet::FileListProgress *arg1 = (RakNet::FileListProgress *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress *argp2 ;
    
    arg1 = (RakNet::FileListProgress *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg2 = *argp2; 
    (arg1)->OnSendAborted(arg2);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_FLP_Printf_GetInstance() {
    void * jresult ;
    RakNet::FLP_Printf *result = 0 ;
    
    result = (RakNet::FLP_Printf *)RakNet::FLP_Printf::GetInstance();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FLP_Printf_DestroyInstance(void * jarg1) {
    RakNet::FLP_Printf *arg1 = (RakNet::FLP_Printf *) 0 ;
    
    arg1 = (RakNet::FLP_Printf *)jarg1; 
    RakNet::FLP_Printf::DestroyInstance(arg1);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_FLP_Printf() {
    void * jresult ;
    RakNet::FLP_Printf *result = 0 ;
    
    result = (RakNet::FLP_Printf *)new RakNet::FLP_Printf();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_FLP_Printf(void * jarg1) {
    RakNet::FLP_Printf *arg1 = (RakNet::FLP_Printf *) 0 ;
    
    arg1 = (RakNet::FLP_Printf *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FLP_Printf_OnAddFilesFromDirectoryStarted(void * jarg1, void * jarg2, char * jarg3) {
    RakNet::FLP_Printf *arg1 = (RakNet::FLP_Printf *) 0 ;
    RakNet::FileList *arg2 = (RakNet::FileList *) 0 ;
    char *arg3 = (char *) 0 ;
    
    arg1 = (RakNet::FLP_Printf *)jarg1; 
    arg2 = (RakNet::FileList *)jarg2; 
    arg3 = (char *)jarg3; 
    (arg1)->OnAddFilesFromDirectoryStarted(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FLP_Printf_OnDirectory(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) {
    RakNet::FLP_Printf *arg1 = (RakNet::FLP_Printf *) 0 ;
    RakNet::FileList *arg2 = (RakNet::FileList *) 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (RakNet::FLP_Printf *)jarg1; 
    arg2 = (RakNet::FileList *)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->OnDirectory(arg2,arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FLP_Printf_OnFilePushesComplete(void * jarg1, void * jarg2, unsigned short jarg3) {
    RakNet::FLP_Printf *arg1 = (RakNet::FLP_Printf *) 0 ;
    RakNet::SystemAddress arg2 ;
    unsigned short arg3 ;
    RakNet::SystemAddress *argp2 ;
    
    arg1 = (RakNet::FLP_Printf *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg2 = *argp2; 
    arg3 = (unsigned short)jarg3; 
    (arg1)->OnFilePushesComplete(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FLP_Printf_OnSendAborted(void * jarg1, void * jarg2) {
    RakNet::FLP_Printf *arg1 = (RakNet::FLP_Printf *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress *argp2 ;
    
    arg1 = (RakNet::FLP_Printf *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg2 = *argp2; 
    (arg1)->OnSendAborted(arg2);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_FileList_GetInstance() {
    void * jresult ;
    RakNet::FileList *result = 0 ;
    
    result = (RakNet::FileList *)RakNet::FileList::GetInstance();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileList_DestroyInstance(void * jarg1) {
    RakNet::FileList *arg1 = (RakNet::FileList *) 0 ;
    
    arg1 = (RakNet::FileList *)jarg1; 
    RakNet::FileList::DestroyInstance(arg1);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_FileList() {
    void * jresult ;
    RakNet::FileList *result = 0 ;
    
    result = (RakNet::FileList *)new RakNet::FileList();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_FileList(void * jarg1) {
    RakNet::FileList *arg1 = (RakNet::FileList *) 0 ;
    
    arg1 = (RakNet::FileList *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileList_AddFilesFromDirectory(void * jarg1, char * jarg2, char * jarg3, unsigned int jarg4, unsigned int jarg5, unsigned int jarg6, void * jarg7) {
    RakNet::FileList *arg1 = (RakNet::FileList *) 0 ;
    char *arg2 = (char *) 0 ;
    char *arg3 = (char *) 0 ;
    bool arg4 ;
    bool arg5 ;
    bool arg6 ;
    FileListNodeContext arg7 ;
    FileListNodeContext *argp7 ;
    
    arg1 = (RakNet::FileList *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = jarg4 ? true : false; 
    arg5 = jarg5 ? true : false; 
    arg6 = jarg6 ? true : false; 
    argp7 = (FileListNodeContext *)jarg7; 
    if (!argp7) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null FileListNodeContext", 0);
      return ;
    }
    arg7 = *argp7; 
    (arg1)->AddFilesFromDirectory((char const *)arg2,(char const *)arg3,arg4,arg5,arg6,arg7);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileList_Clear(void * jarg1) {
    RakNet::FileList *arg1 = (RakNet::FileList *) 0 ;
    
    arg1 = (RakNet::FileList *)jarg1; 
    (arg1)->Clear();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileList_Serialize(void * jarg1, void * jarg2) {
    RakNet::FileList *arg1 = (RakNet::FileList *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    
    arg1 = (RakNet::FileList *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    (arg1)->Serialize(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FileList_Deserialize(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::FileList *arg1 = (RakNet::FileList *) 0 ;
    RakNet::BitStream *arg2 = (RakNet::BitStream *) 0 ;
    bool result;
    
    arg1 = (RakNet::FileList *)jarg1; 
    arg2 = (RakNet::BitStream *)jarg2; 
    result = (bool)(arg1)->Deserialize(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileList_ListMissingOrChangedFiles(void * jarg1, char * jarg2, void * jarg3, unsigned int jarg4, unsigned int jarg5) {
    RakNet::FileList *arg1 = (RakNet::FileList *) 0 ;
    char *arg2 = (char *) 0 ;
    RakNet::FileList *arg3 = (RakNet::FileList *) 0 ;
    bool arg4 ;
    bool arg5 ;
    
    arg1 = (RakNet::FileList *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (RakNet::FileList *)jarg3; 
    arg4 = jarg4 ? true : false; 
    arg5 = jarg5 ? true : false; 
    (arg1)->ListMissingOrChangedFiles((char const *)arg2,arg3,arg4,arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileList_GetDeltaToCurrent(void * jarg1, void * jarg2, void * jarg3, char * jarg4, char * jarg5) {
    RakNet::FileList *arg1 = (RakNet::FileList *) 0 ;
    RakNet::FileList *arg2 = (RakNet::FileList *) 0 ;
    RakNet::FileList *arg3 = (RakNet::FileList *) 0 ;
    char *arg4 = (char *) 0 ;
    char *arg5 = (char *) 0 ;
    
    arg1 = (RakNet::FileList *)jarg1; 
    arg2 = (RakNet::FileList *)jarg2; 
    arg3 = (RakNet::FileList *)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (char *)jarg5; 
    (arg1)->GetDeltaToCurrent(arg2,arg3,(char const *)arg4,(char const *)arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileList_PopulateDataFromDisk(void * jarg1, char * jarg2, unsigned int jarg3, unsigned int jarg4, unsigned int jarg5) {
    RakNet::FileList *arg1 = (RakNet::FileList *) 0 ;
    char *arg2 = (char *) 0 ;
    bool arg3 ;
    bool arg4 ;
    bool arg5 ;
    
    arg1 = (RakNet::FileList *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = jarg3 ? true : false; 
    arg4 = jarg4 ? true : false; 
    arg5 = jarg5 ? true : false; 
    (arg1)->PopulateDataFromDisk((char const *)arg2,arg3,arg4,arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileList_FlagFilesAsReferences(void * jarg1) {
    RakNet::FileList *arg1 = (RakNet::FileList *) 0 ;
    
    arg1 = (RakNet::FileList *)jarg1; 
    (arg1)->FlagFilesAsReferences();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileList_WriteDataToDisk(void * jarg1, char * jarg2) {
    RakNet::FileList *arg1 = (RakNet::FileList *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::FileList *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->WriteDataToDisk((char const *)arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileList_AddFile__SWIG_0(void * jarg1, char * jarg2, char * jarg3, void * jarg4) {
    RakNet::FileList *arg1 = (RakNet::FileList *) 0 ;
    char *arg2 = (char *) 0 ;
    char *arg3 = (char *) 0 ;
    FileListNodeContext arg4 ;
    FileListNodeContext *argp4 ;
    
    arg1 = (RakNet::FileList *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (char *)jarg3; 
    argp4 = (FileListNodeContext *)jarg4; 
    if (!argp4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null FileListNodeContext", 0);
      return ;
    }
    arg4 = *argp4; 
    (arg1)->AddFile((char const *)arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileList_DeleteFiles(void * jarg1, char * jarg2) {
    RakNet::FileList *arg1 = (RakNet::FileList *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::FileList *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->DeleteFiles((char const *)arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileList_AddCallback(void * jarg1, void * jarg2) {
    RakNet::FileList *arg1 = (RakNet::FileList *) 0 ;
    RakNet::FileListProgress *arg2 = (RakNet::FileListProgress *) 0 ;
    
    arg1 = (RakNet::FileList *)jarg1; 
    arg2 = (RakNet::FileListProgress *)jarg2; 
    (arg1)->AddCallback(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileList_RemoveCallback(void * jarg1, void * jarg2) {
    RakNet::FileList *arg1 = (RakNet::FileList *) 0 ;
    RakNet::FileListProgress *arg2 = (RakNet::FileListProgress *) 0 ;
    
    arg1 = (RakNet::FileList *)jarg1; 
    arg2 = (RakNet::FileListProgress *)jarg2; 
    (arg1)->RemoveCallback(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileList_ClearCallbacks(void * jarg1) {
    RakNet::FileList *arg1 = (RakNet::FileList *) 0 ;
    
    arg1 = (RakNet::FileList *)jarg1; 
    (arg1)->ClearCallbacks();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileList_fileList_set(void * jarg1, void * jarg2) {
    RakNet::FileList *arg1 = (RakNet::FileList *) 0 ;
    DataStructures::List< RakNet::FileListNode > *arg2 = (DataStructures::List< RakNet::FileListNode > *) 0 ;
    
    arg1 = (RakNet::FileList *)jarg1; 
    arg2 = (DataStructures::List< RakNet::FileListNode > *)jarg2; 
    if (arg1) (arg1)->fileList = *arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_FileList_fileList_get(void * jarg1) {
    void * jresult ;
    RakNet::FileList *arg1 = (RakNet::FileList *) 0 ;
    DataStructures::List< RakNet::FileListNode > *result = 0 ;
    
    arg1 = (RakNet::FileList *)jarg1; 
    result = (DataStructures::List< RakNet::FileListNode > *)& ((arg1)->fileList);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FileList_FixEndingSlash__SWIG_0(char * jarg1) {
    unsigned int jresult ;
    char *arg1 = (char *) 0 ;
    bool result;
    
    arg1 = (char *)jarg1; 
    result = (bool)RakNet::FileList::FixEndingSlash(arg1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FileList_FixEndingSlash__SWIG_1(char * jarg1, unsigned long jarg2) {
    unsigned int jresult ;
    char *arg1 = (char *) 0 ;
    size_t arg2 ;
    bool result;
    
    arg1 = (char *)jarg1; 
    arg2 = (size_t)jarg2; 
    result = (bool)RakNet::FileList::FixEndingSlash(arg1,arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileList_AddFile__SWIG_1(void * jarg1, char * jarg2, char * jarg3, unsigned char* jarg4, unsigned int jarg5, unsigned int jarg6, void * jarg7, unsigned int jarg8) {
    RakNet::FileList *arg1 = (RakNet::FileList *) 0 ;
    char *arg2 = (char *) 0 ;
    char *arg3 = (char *) 0 ;
    unsigned char *arg4 = (unsigned char *) 0 ;
    unsigned int arg5 ;
    unsigned int arg6 ;
    FileListNodeContext arg7 ;
    bool arg8 ;
    FileListNodeContext *argp7 ;
    
    arg1 = (RakNet::FileList *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = jarg4;
    arg5 = (unsigned int)jarg5; 
    arg6 = (unsigned int)jarg6; 
    argp7 = (FileListNodeContext *)jarg7; 
    if (!argp7) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null FileListNodeContext", 0);
      return ;
    }
    arg7 = *argp7; 
    arg8 = jarg8 ? true : false; 
    RakNet_FileList_AddFile__SWIG_1(arg1,(char const *)arg2,(char const *)arg3,arg4,arg5,arg6,arg7,arg8);
    
    
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileList_AddFile__SWIG_2(void * jarg1, char * jarg2, char * jarg3, unsigned char* jarg4, unsigned int jarg5, unsigned int jarg6, void * jarg7) {
    RakNet::FileList *arg1 = (RakNet::FileList *) 0 ;
    char *arg2 = (char *) 0 ;
    char *arg3 = (char *) 0 ;
    unsigned char *arg4 = (unsigned char *) 0 ;
    unsigned int arg5 ;
    unsigned int arg6 ;
    FileListNodeContext arg7 ;
    FileListNodeContext *argp7 ;
    
    arg1 = (RakNet::FileList *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = jarg4;
    arg5 = (unsigned int)jarg5; 
    arg6 = (unsigned int)jarg6; 
    argp7 = (FileListNodeContext *)jarg7; 
    if (!argp7) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null FileListNodeContext", 0);
      return ;
    }
    arg7 = *argp7; 
    RakNet_FileList_AddFile__SWIG_1(arg1,(char const *)arg2,(char const *)arg3,arg4,arg5,arg6,arg7);
    
    
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_REMOTE_MAX_TEXT_INPUT_get() {
    int jresult ;
    int result;
    
    result = (int)(2048);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_TransportInterface(void * jarg1) {
    RakNet::TransportInterface *arg1 = (RakNet::TransportInterface *) 0 ;
    
    arg1 = (RakNet::TransportInterface *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TransportInterface_Start(void * jarg1, unsigned short jarg2, unsigned int jarg3) {
    unsigned int jresult ;
    RakNet::TransportInterface *arg1 = (RakNet::TransportInterface *) 0 ;
    unsigned short arg2 ;
    bool arg3 ;
    bool result;
    
    arg1 = (RakNet::TransportInterface *)jarg1; 
    arg2 = (unsigned short)jarg2; 
    arg3 = jarg3 ? true : false; 
    result = (bool)(arg1)->Start(arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TransportInterface_Stop(void * jarg1) {
    RakNet::TransportInterface *arg1 = (RakNet::TransportInterface *) 0 ;
    
    arg1 = (RakNet::TransportInterface *)jarg1; 
    (arg1)->Stop();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TransportInterface_CloseConnection(void * jarg1, void * jarg2) {
    RakNet::TransportInterface *arg1 = (RakNet::TransportInterface *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress *argp2 ;
    
    arg1 = (RakNet::TransportInterface *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg2 = *argp2; 
    (arg1)->CloseConnection(arg2);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TransportInterface_Receive(void * jarg1) {
    void * jresult ;
    RakNet::TransportInterface *arg1 = (RakNet::TransportInterface *) 0 ;
    RakNet::Packet *result = 0 ;
    
    arg1 = (RakNet::TransportInterface *)jarg1; 
    result = (RakNet::Packet *)(arg1)->Receive();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TransportInterface_DeallocatePacket(void * jarg1, void * jarg2) {
    RakNet::TransportInterface *arg1 = (RakNet::TransportInterface *) 0 ;
    RakNet::Packet *arg2 = (RakNet::Packet *) 0 ;
    
    arg1 = (RakNet::TransportInterface *)jarg1; 
    arg2 = (RakNet::Packet *)jarg2; 
    (arg1)->DeallocatePacket(arg2);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TransportInterface_HasNewIncomingConnection(void * jarg1) {
    void * jresult ;
    RakNet::TransportInterface *arg1 = (RakNet::TransportInterface *) 0 ;
    RakNet::SystemAddress result;
    
    arg1 = (RakNet::TransportInterface *)jarg1; 
    result = (arg1)->HasNewIncomingConnection();
    jresult = new RakNet::SystemAddress((const RakNet::SystemAddress &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TransportInterface_HasLostConnection(void * jarg1) {
    void * jresult ;
    RakNet::TransportInterface *arg1 = (RakNet::TransportInterface *) 0 ;
    RakNet::SystemAddress result;
    
    arg1 = (RakNet::TransportInterface *)jarg1; 
    result = (arg1)->HasLostConnection();
    jresult = new RakNet::SystemAddress((const RakNet::SystemAddress &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_TransportInterface_GetCommandParser(void * jarg1) {
    void * jresult ;
    RakNet::TransportInterface *arg1 = (RakNet::TransportInterface *) 0 ;
    RakNet::CommandParserInterface *result = 0 ;
    
    arg1 = (RakNet::TransportInterface *)jarg1; 
    result = (RakNet::CommandParserInterface *)(arg1)->GetCommandParser();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_TransportInterface_Send(void * jarg1, void * jarg2, unsigned char* jarg3) {
    RakNet::TransportInterface *arg1 = (RakNet::TransportInterface *) 0 ;
    RakNet::SystemAddress arg2 ;
    unsigned char *arg3 = (unsigned char *) 0 ;
    RakNet::SystemAddress *argp2 ;
    
    arg1 = (RakNet::TransportInterface *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg2 = *argp2; 
    arg3 = jarg3;
    RakNet_TransportInterface_Send(arg1,arg2,arg3);
    
    
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_CommandParserInterface(void * jarg1) {
    RakNet::CommandParserInterface *arg1 = (RakNet::CommandParserInterface *) 0 ;
    
    arg1 = (RakNet::CommandParserInterface *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_CommandParserInterface_GetName(void * jarg1) {
    char * jresult ;
    RakNet::CommandParserInterface *arg1 = (RakNet::CommandParserInterface *) 0 ;
    char *result = 0 ;
    
    arg1 = (RakNet::CommandParserInterface *)jarg1; 
    result = (char *)((RakNet::CommandParserInterface const *)arg1)->GetName();
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_CommandParserInterface_OnNewIncomingConnection(void * jarg1, void * jarg2, void * jarg3) {
    RakNet::CommandParserInterface *arg1 = (RakNet::CommandParserInterface *) 0 ;
    RakNet::SystemAddress *arg2 = 0 ;
    RakNet::TransportInterface *arg3 = (RakNet::TransportInterface *) 0 ;
    
    arg1 = (RakNet::CommandParserInterface *)jarg1; 
    arg2 = (RakNet::SystemAddress *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return ;
    } 
    arg3 = (RakNet::TransportInterface *)jarg3; 
    (arg1)->OnNewIncomingConnection((RakNet::SystemAddress const &)*arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_CommandParserInterface_OnConnectionLost(void * jarg1, void * jarg2, void * jarg3) {
    RakNet::CommandParserInterface *arg1 = (RakNet::CommandParserInterface *) 0 ;
    RakNet::SystemAddress *arg2 = 0 ;
    RakNet::TransportInterface *arg3 = (RakNet::TransportInterface *) 0 ;
    
    arg1 = (RakNet::CommandParserInterface *)jarg1; 
    arg2 = (RakNet::SystemAddress *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return ;
    } 
    arg3 = (RakNet::TransportInterface *)jarg3; 
    (arg1)->OnConnectionLost((RakNet::SystemAddress const &)*arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_CommandParserInterface_SendHelp(void * jarg1, void * jarg2, void * jarg3) {
    RakNet::CommandParserInterface *arg1 = (RakNet::CommandParserInterface *) 0 ;
    RakNet::TransportInterface *arg2 = (RakNet::TransportInterface *) 0 ;
    RakNet::SystemAddress *arg3 = 0 ;
    
    arg1 = (RakNet::CommandParserInterface *)jarg1; 
    arg2 = (RakNet::TransportInterface *)jarg2; 
    arg3 = (RakNet::SystemAddress *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return ;
    } 
    (arg1)->SendHelp(arg2,(RakNet::SystemAddress const &)*arg3);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_CommandParserInterface_OnCommand(void * jarg1, char * jarg2, unsigned int jarg3, char ** jarg4, void * jarg5, void * jarg6, char * jarg7) {
    unsigned int jresult ;
    RakNet::CommandParserInterface *arg1 = (RakNet::CommandParserInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned int arg3 ;
    char **arg4 = (char **) 0 ;
    RakNet::TransportInterface *arg5 = (RakNet::TransportInterface *) 0 ;
    RakNet::SystemAddress *arg6 = 0 ;
    char *arg7 = (char *) 0 ;
    bool result;
    
    arg1 = (RakNet::CommandParserInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned int)jarg3; 
    arg4 = jarg4;
    arg5 = (RakNet::TransportInterface *)jarg5; 
    arg6 = (RakNet::SystemAddress *)jarg6;
    if (!arg6) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return 0;
    } 
    arg7 = (char *)jarg7; 
    result = (bool)(arg1)->OnCommand((char const *)arg2,arg3,arg4,arg5,(RakNet::SystemAddress const &)*arg6,(char const *)arg7);
    jresult = result; 
    
    
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_CommandParserInterface_OnTransportChange(void * jarg1, void * jarg2) {
    RakNet::CommandParserInterface *arg1 = (RakNet::CommandParserInterface *) 0 ;
    RakNet::TransportInterface *arg2 = (RakNet::TransportInterface *) 0 ;
    
    arg1 = (RakNet::CommandParserInterface *)jarg1; 
    arg2 = (RakNet::TransportInterface *)jarg2; 
    (arg1)->OnTransportChange(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_CommandParserInterface_SendCommandList(void * jarg1, void * jarg2, void * jarg3) {
    RakNet::CommandParserInterface *arg1 = (RakNet::CommandParserInterface *) 0 ;
    RakNet::TransportInterface *arg2 = (RakNet::TransportInterface *) 0 ;
    RakNet::SystemAddress *arg3 = 0 ;
    
    arg1 = (RakNet::CommandParserInterface *)jarg1; 
    arg2 = (RakNet::TransportInterface *)jarg2; 
    arg3 = (RakNet::SystemAddress *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return ;
    } 
    (arg1)->SendCommandList(arg2,(RakNet::SystemAddress const &)*arg3);
  }
  
  
  SWIGEXPORT unsigned char SWIGSTDCALL CSharp_CommandParserInterface_VARIABLE_NUMBER_OF_PARAMETERS_get() {
    unsigned char jresult ;
    unsigned char result;
    
    result = (unsigned char)(unsigned char)RakNet::CommandParserInterface::VARIABLE_NUMBER_OF_PARAMETERS;
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_CommandParserInterface_RegisterCommand(void * jarg1, unsigned char jarg2, char * jarg3, char * jarg4) {
    RakNet::CommandParserInterface *arg1 = (RakNet::CommandParserInterface *) 0 ;
    unsigned char arg2 ;
    char *arg3 = (char *) 0 ;
    char *arg4 = (char *) 0 ;
    
    arg1 = (RakNet::CommandParserInterface *)jarg1; 
    arg2 = (unsigned char)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = (char *)jarg4; 
    (arg1)->RegisterCommand(arg2,(char const *)arg3,(char const *)arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_CommandParserInterface_ReturnResult__SWIG_0(void * jarg1, unsigned int jarg2, char * jarg3, void * jarg4, void * jarg5) {
    RakNet::CommandParserInterface *arg1 = (RakNet::CommandParserInterface *) 0 ;
    bool arg2 ;
    char *arg3 = (char *) 0 ;
    RakNet::TransportInterface *arg4 = (RakNet::TransportInterface *) 0 ;
    RakNet::SystemAddress *arg5 = 0 ;
    
    arg1 = (RakNet::CommandParserInterface *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (char *)jarg3; 
    arg4 = (RakNet::TransportInterface *)jarg4; 
    arg5 = (RakNet::SystemAddress *)jarg5;
    if (!arg5) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return ;
    } 
    (arg1)->ReturnResult(arg2,(char const *)arg3,arg4,(RakNet::SystemAddress const &)*arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_CommandParserInterface_ReturnResult__SWIG_1(void * jarg1, char * jarg2, char * jarg3, void * jarg4, void * jarg5) {
    RakNet::CommandParserInterface *arg1 = (RakNet::CommandParserInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    char *arg3 = (char *) 0 ;
    RakNet::TransportInterface *arg4 = (RakNet::TransportInterface *) 0 ;
    RakNet::SystemAddress *arg5 = 0 ;
    
    arg1 = (RakNet::CommandParserInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = (RakNet::TransportInterface *)jarg4; 
    arg5 = (RakNet::SystemAddress *)jarg5;
    if (!arg5) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return ;
    } 
    (arg1)->ReturnResult(arg2,(char const *)arg3,arg4,(RakNet::SystemAddress const &)*arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_CommandParserInterface_ReturnResult__SWIG_2(void * jarg1, void * jarg2, char * jarg3, void * jarg4, void * jarg5) {
    RakNet::CommandParserInterface *arg1 = (RakNet::CommandParserInterface *) 0 ;
    RakNet::SystemAddress arg2 ;
    char *arg3 = (char *) 0 ;
    RakNet::TransportInterface *arg4 = (RakNet::TransportInterface *) 0 ;
    RakNet::SystemAddress *arg5 = 0 ;
    RakNet::SystemAddress *argp2 ;
    
    arg1 = (RakNet::CommandParserInterface *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg2 = *argp2; 
    arg3 = (char *)jarg3; 
    arg4 = (RakNet::TransportInterface *)jarg4; 
    arg5 = (RakNet::SystemAddress *)jarg5;
    if (!arg5) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return ;
    } 
    (arg1)->ReturnResult(arg2,(char const *)arg3,arg4,(RakNet::SystemAddress const &)*arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_CommandParserInterface_ReturnResult__SWIG_3(void * jarg1, int jarg2, char * jarg3, void * jarg4, void * jarg5) {
    RakNet::CommandParserInterface *arg1 = (RakNet::CommandParserInterface *) 0 ;
    int arg2 ;
    char *arg3 = (char *) 0 ;
    RakNet::TransportInterface *arg4 = (RakNet::TransportInterface *) 0 ;
    RakNet::SystemAddress *arg5 = 0 ;
    
    arg1 = (RakNet::CommandParserInterface *)jarg1; 
    arg2 = (int)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = (RakNet::TransportInterface *)jarg4; 
    arg5 = (RakNet::SystemAddress *)jarg5;
    if (!arg5) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return ;
    } 
    (arg1)->ReturnResult(arg2,(char const *)arg3,arg4,(RakNet::SystemAddress const &)*arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_CommandParserInterface_ReturnResult__SWIG_4(void * jarg1, char * jarg2, void * jarg3, void * jarg4) {
    RakNet::CommandParserInterface *arg1 = (RakNet::CommandParserInterface *) 0 ;
    char *arg2 = (char *) 0 ;
    RakNet::TransportInterface *arg3 = (RakNet::TransportInterface *) 0 ;
    RakNet::SystemAddress *arg4 = 0 ;
    
    arg1 = (RakNet::CommandParserInterface *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (RakNet::TransportInterface *)jarg3; 
    arg4 = (RakNet::SystemAddress *)jarg4;
    if (!arg4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return ;
    } 
    (arg1)->ReturnResult((char const *)arg2,arg3,(RakNet::SystemAddress const &)*arg4);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_LogCommandParser_GetInstance() {
    void * jresult ;
    RakNet::LogCommandParser *result = 0 ;
    
    result = (RakNet::LogCommandParser *)RakNet::LogCommandParser::GetInstance();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_LogCommandParser_DestroyInstance(void * jarg1) {
    RakNet::LogCommandParser *arg1 = (RakNet::LogCommandParser *) 0 ;
    
    arg1 = (RakNet::LogCommandParser *)jarg1; 
    RakNet::LogCommandParser::DestroyInstance(arg1);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_LogCommandParser() {
    void * jresult ;
    RakNet::LogCommandParser *result = 0 ;
    
    result = (RakNet::LogCommandParser *)new RakNet::LogCommandParser();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_LogCommandParser(void * jarg1) {
    RakNet::LogCommandParser *arg1 = (RakNet::LogCommandParser *) 0 ;
    
    arg1 = (RakNet::LogCommandParser *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_LogCommandParser_OnCommand(void * jarg1, char * jarg2, unsigned int jarg3, char ** jarg4, void * jarg5, void * jarg6, char * jarg7) {
    unsigned int jresult ;
    RakNet::LogCommandParser *arg1 = (RakNet::LogCommandParser *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned int arg3 ;
    char **arg4 = (char **) 0 ;
    RakNet::TransportInterface *arg5 = (RakNet::TransportInterface *) 0 ;
    RakNet::SystemAddress *arg6 = 0 ;
    char *arg7 = (char *) 0 ;
    bool result;
    
    arg1 = (RakNet::LogCommandParser *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned int)jarg3; 
    arg4 = jarg4;
    arg5 = (RakNet::TransportInterface *)jarg5; 
    arg6 = (RakNet::SystemAddress *)jarg6;
    if (!arg6) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return 0;
    } 
    arg7 = (char *)jarg7; 
    result = (bool)(arg1)->OnCommand((char const *)arg2,arg3,arg4,arg5,(RakNet::SystemAddress const &)*arg6,(char const *)arg7);
    jresult = result; 
    
    
    return jresult;
  }
  
  
  SWIGEXPORT char * SWIGSTDCALL CSharp_LogCommandParser_GetName(void * jarg1) {
    char * jresult ;
    RakNet::LogCommandParser *arg1 = (RakNet::LogCommandParser *) 0 ;
    char *result = 0 ;
    
    arg1 = (RakNet::LogCommandParser *)jarg1; 
    result = (char *)((RakNet::LogCommandParser const *)arg1)->GetName();
    jresult = SWIG_csharp_string_callback((const char *)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_LogCommandParser_SendHelp(void * jarg1, void * jarg2, void * jarg3) {
    RakNet::LogCommandParser *arg1 = (RakNet::LogCommandParser *) 0 ;
    RakNet::TransportInterface *arg2 = (RakNet::TransportInterface *) 0 ;
    RakNet::SystemAddress *arg3 = 0 ;
    
    arg1 = (RakNet::LogCommandParser *)jarg1; 
    arg2 = (RakNet::TransportInterface *)jarg2; 
    arg3 = (RakNet::SystemAddress *)jarg3;
    if (!arg3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return ;
    } 
    (arg1)->SendHelp(arg2,(RakNet::SystemAddress const &)*arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_LogCommandParser_AddChannel(void * jarg1, char * jarg2) {
    RakNet::LogCommandParser *arg1 = (RakNet::LogCommandParser *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::LogCommandParser *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->AddChannel((char const *)arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_LogCommandParser_WriteLog(void * jarg1, char * jarg2, char * jarg3) {
    RakNet::LogCommandParser *arg1 = (RakNet::LogCommandParser *) 0 ;
    char *arg2 = (char *) 0 ;
    char *arg3 = (char *) 0 ;
    void *arg4 = 0 ;
    
    arg1 = (RakNet::LogCommandParser *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (char *)jarg3; 
    (arg1)->WriteLog((char const *)arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_LogCommandParser_OnNewIncomingConnection(void * jarg1, void * jarg2, void * jarg3) {
    RakNet::LogCommandParser *arg1 = (RakNet::LogCommandParser *) 0 ;
    RakNet::SystemAddress *arg2 = 0 ;
    RakNet::TransportInterface *arg3 = (RakNet::TransportInterface *) 0 ;
    
    arg1 = (RakNet::LogCommandParser *)jarg1; 
    arg2 = (RakNet::SystemAddress *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return ;
    } 
    arg3 = (RakNet::TransportInterface *)jarg3; 
    (arg1)->OnNewIncomingConnection((RakNet::SystemAddress const &)*arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_LogCommandParser_OnConnectionLost(void * jarg1, void * jarg2, void * jarg3) {
    RakNet::LogCommandParser *arg1 = (RakNet::LogCommandParser *) 0 ;
    RakNet::SystemAddress *arg2 = 0 ;
    RakNet::TransportInterface *arg3 = (RakNet::TransportInterface *) 0 ;
    
    arg1 = (RakNet::LogCommandParser *)jarg1; 
    arg2 = (RakNet::SystemAddress *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return ;
    } 
    arg3 = (RakNet::TransportInterface *)jarg3; 
    (arg1)->OnConnectionLost((RakNet::SystemAddress const &)*arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_LogCommandParser_OnTransportChange(void * jarg1, void * jarg2) {
    RakNet::LogCommandParser *arg1 = (RakNet::LogCommandParser *) 0 ;
    RakNet::TransportInterface *arg2 = (RakNet::TransportInterface *) 0 ;
    
    arg1 = (RakNet::LogCommandParser *)jarg1; 
    arg2 = (RakNet::TransportInterface *)jarg2; 
    (arg1)->OnTransportChange(arg2);
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_MESSAGE_FILTER_MAX_MESSAGE_ID_get() {
    int jresult ;
    int result;
    
    result = (int)(256);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_MessageFilter_GetInstance() {
    void * jresult ;
    RakNet::MessageFilter *result = 0 ;
    
    result = (RakNet::MessageFilter *)RakNet::MessageFilter::GetInstance();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_MessageFilter_DestroyInstance(void * jarg1) {
    RakNet::MessageFilter *arg1 = (RakNet::MessageFilter *) 0 ;
    
    arg1 = (RakNet::MessageFilter *)jarg1; 
    RakNet::MessageFilter::DestroyInstance(arg1);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_MessageFilter() {
    void * jresult ;
    RakNet::MessageFilter *result = 0 ;
    
    result = (RakNet::MessageFilter *)new RakNet::MessageFilter();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_MessageFilter(void * jarg1) {
    RakNet::MessageFilter *arg1 = (RakNet::MessageFilter *) 0 ;
    
    arg1 = (RakNet::MessageFilter *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_MessageFilter_SetAutoAddNewConnectionsToFilter(void * jarg1, int jarg2) {
    RakNet::MessageFilter *arg1 = (RakNet::MessageFilter *) 0 ;
    int arg2 ;
    
    arg1 = (RakNet::MessageFilter *)jarg1; 
    arg2 = (int)jarg2; 
    (arg1)->SetAutoAddNewConnectionsToFilter(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_MessageFilter_SetAllowMessageID(void * jarg1, unsigned int jarg2, int jarg3, int jarg4, int jarg5) {
    RakNet::MessageFilter *arg1 = (RakNet::MessageFilter *) 0 ;
    bool arg2 ;
    int arg3 ;
    int arg4 ;
    int arg5 ;
    
    arg1 = (RakNet::MessageFilter *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (int)jarg3; 
    arg4 = (int)jarg4; 
    arg5 = (int)jarg5; 
    (arg1)->SetAllowMessageID(arg2,arg3,arg4,arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_MessageFilter_SetAllowRPC4(void * jarg1, unsigned int jarg2, char * jarg3, int jarg4) {
    RakNet::MessageFilter *arg1 = (RakNet::MessageFilter *) 0 ;
    bool arg2 ;
    char *arg3 = (char *) 0 ;
    int arg4 ;
    
    arg1 = (RakNet::MessageFilter *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (char *)jarg3; 
    arg4 = (int)jarg4; 
    (arg1)->SetAllowRPC4(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_MessageFilter_SetActionOnDisallowedMessage(void * jarg1, unsigned int jarg2, unsigned int jarg3, unsigned int jarg4, int jarg5) {
    RakNet::MessageFilter *arg1 = (RakNet::MessageFilter *) 0 ;
    bool arg2 ;
    bool arg3 ;
    RakNet::TimeMS arg4 ;
    int arg5 ;
    
    arg1 = (RakNet::MessageFilter *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = jarg3 ? true : false; 
    arg4 = (RakNet::TimeMS)jarg4; 
    arg5 = (int)jarg5; 
    (arg1)->SetActionOnDisallowedMessage(arg2,arg3,arg4,arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_MessageFilter_SetFilterMaxTime(void * jarg1, int jarg2, unsigned int jarg3, unsigned int jarg4, int jarg5) {
    RakNet::MessageFilter *arg1 = (RakNet::MessageFilter *) 0 ;
    int arg2 ;
    bool arg3 ;
    RakNet::TimeMS arg4 ;
    int arg5 ;
    
    arg1 = (RakNet::MessageFilter *)jarg1; 
    arg2 = (int)jarg2; 
    arg3 = jarg3 ? true : false; 
    arg4 = (RakNet::TimeMS)jarg4; 
    arg5 = (int)jarg5; 
    (arg1)->SetFilterMaxTime(arg2,arg3,arg4,arg5);
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_MessageFilter_GetSystemFilterSet(void * jarg1, void * jarg2) {
    int jresult ;
    RakNet::MessageFilter *arg1 = (RakNet::MessageFilter *) 0 ;
    RakNet::AddressOrGUID arg2 ;
    RakNet::AddressOrGUID *argp2 ;
    int result;
    
    arg1 = (RakNet::MessageFilter *)jarg1; 
    argp2 = (RakNet::AddressOrGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = (int)(arg1)->GetSystemFilterSet(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_MessageFilter_SetSystemFilterSet(void * jarg1, void * jarg2, int jarg3) {
    RakNet::MessageFilter *arg1 = (RakNet::MessageFilter *) 0 ;
    RakNet::AddressOrGUID arg2 ;
    int arg3 ;
    RakNet::AddressOrGUID *argp2 ;
    
    arg1 = (RakNet::MessageFilter *)jarg1; 
    argp2 = (RakNet::AddressOrGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::AddressOrGUID", 0);
      return ;
    }
    arg2 = *argp2; 
    arg3 = (int)jarg3; 
    (arg1)->SetSystemFilterSet(arg2,arg3);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_MessageFilter_GetSystemCount(void * jarg1, int jarg2) {
    unsigned int jresult ;
    RakNet::MessageFilter *arg1 = (RakNet::MessageFilter *) 0 ;
    int arg2 ;
    unsigned int result;
    
    arg1 = (RakNet::MessageFilter *)jarg1; 
    arg2 = (int)jarg2; 
    result = (unsigned int)((RakNet::MessageFilter const *)arg1)->GetSystemCount(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_MessageFilter_GetFilterSetCount(void * jarg1) {
    unsigned int jresult ;
    RakNet::MessageFilter *arg1 = (RakNet::MessageFilter *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::MessageFilter *)jarg1; 
    result = (unsigned int)((RakNet::MessageFilter const *)arg1)->GetFilterSetCount();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_MessageFilter_GetFilterSetIDByIndex(void * jarg1, unsigned int jarg2) {
    int jresult ;
    RakNet::MessageFilter *arg1 = (RakNet::MessageFilter *) 0 ;
    unsigned int arg2 ;
    int result;
    
    arg1 = (RakNet::MessageFilter *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (int)(arg1)->GetFilterSetIDByIndex(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_MessageFilter_DeleteFilterSet(void * jarg1, int jarg2) {
    RakNet::MessageFilter *arg1 = (RakNet::MessageFilter *) 0 ;
    int arg2 ;
    
    arg1 = (RakNet::MessageFilter *)jarg1; 
    arg2 = (int)jarg2; 
    (arg1)->DeleteFilterSet(arg2);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_DirectoryDeltaTransfer_GetInstance() {
    void * jresult ;
    RakNet::DirectoryDeltaTransfer *result = 0 ;
    
    result = (RakNet::DirectoryDeltaTransfer *)RakNet::DirectoryDeltaTransfer::GetInstance();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_DirectoryDeltaTransfer_DestroyInstance(void * jarg1) {
    RakNet::DirectoryDeltaTransfer *arg1 = (RakNet::DirectoryDeltaTransfer *) 0 ;
    
    arg1 = (RakNet::DirectoryDeltaTransfer *)jarg1; 
    RakNet::DirectoryDeltaTransfer::DestroyInstance(arg1);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_DirectoryDeltaTransfer() {
    void * jresult ;
    RakNet::DirectoryDeltaTransfer *result = 0 ;
    
    result = (RakNet::DirectoryDeltaTransfer *)new RakNet::DirectoryDeltaTransfer();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_DirectoryDeltaTransfer(void * jarg1) {
    RakNet::DirectoryDeltaTransfer *arg1 = (RakNet::DirectoryDeltaTransfer *) 0 ;
    
    arg1 = (RakNet::DirectoryDeltaTransfer *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_DirectoryDeltaTransfer_SetFileListTransferPlugin(void * jarg1, void * jarg2) {
    RakNet::DirectoryDeltaTransfer *arg1 = (RakNet::DirectoryDeltaTransfer *) 0 ;
    RakNet::FileListTransfer *arg2 = (RakNet::FileListTransfer *) 0 ;
    
    arg1 = (RakNet::DirectoryDeltaTransfer *)jarg1; 
    arg2 = (RakNet::FileListTransfer *)jarg2; 
    (arg1)->SetFileListTransferPlugin(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_DirectoryDeltaTransfer_SetApplicationDirectory(void * jarg1, char * jarg2) {
    RakNet::DirectoryDeltaTransfer *arg1 = (RakNet::DirectoryDeltaTransfer *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::DirectoryDeltaTransfer *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->SetApplicationDirectory((char const *)arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_DirectoryDeltaTransfer_SetUploadSendParameters(void * jarg1, int jarg2, char jarg3) {
    RakNet::DirectoryDeltaTransfer *arg1 = (RakNet::DirectoryDeltaTransfer *) 0 ;
    PacketPriority arg2 ;
    char arg3 ;
    
    arg1 = (RakNet::DirectoryDeltaTransfer *)jarg1; 
    arg2 = (PacketPriority)jarg2; 
    arg3 = (char)jarg3; 
    (arg1)->SetUploadSendParameters(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_DirectoryDeltaTransfer_AddUploadsFromSubdirectory(void * jarg1, char * jarg2) {
    RakNet::DirectoryDeltaTransfer *arg1 = (RakNet::DirectoryDeltaTransfer *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::DirectoryDeltaTransfer *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->AddUploadsFromSubdirectory((char const *)arg2);
  }
  
  
  SWIGEXPORT unsigned short SWIGSTDCALL CSharp_DirectoryDeltaTransfer_DownloadFromSubdirectory__SWIG_0(void * jarg1, char * jarg2, char * jarg3, unsigned int jarg4, void * jarg5, void * jarg6, int jarg7, char jarg8, void * jarg9) {
    unsigned short jresult ;
    RakNet::DirectoryDeltaTransfer *arg1 = (RakNet::DirectoryDeltaTransfer *) 0 ;
    char *arg2 = (char *) 0 ;
    char *arg3 = (char *) 0 ;
    bool arg4 ;
    RakNet::SystemAddress arg5 ;
    RakNet::FileListTransferCBInterface *arg6 = (RakNet::FileListTransferCBInterface *) 0 ;
    PacketPriority arg7 ;
    char arg8 ;
    RakNet::FileListProgress *arg9 = (RakNet::FileListProgress *) 0 ;
    RakNet::SystemAddress *argp5 ;
    unsigned short result;
    
    arg1 = (RakNet::DirectoryDeltaTransfer *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = jarg4 ? true : false; 
    argp5 = (RakNet::SystemAddress *)jarg5; 
    if (!argp5) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return 0;
    }
    arg5 = *argp5; 
    arg6 = (RakNet::FileListTransferCBInterface *)jarg6; 
    arg7 = (PacketPriority)jarg7; 
    arg8 = (char)jarg8; 
    arg9 = (RakNet::FileListProgress *)jarg9; 
    result = (unsigned short)(arg1)->DownloadFromSubdirectory((char const *)arg2,(char const *)arg3,arg4,arg5,arg6,arg7,arg8,arg9);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned short SWIGSTDCALL CSharp_DirectoryDeltaTransfer_DownloadFromSubdirectory__SWIG_1(void * jarg1, void * jarg2, char * jarg3, char * jarg4, unsigned int jarg5, void * jarg6, void * jarg7, int jarg8, char jarg9, void * jarg10) {
    unsigned short jresult ;
    RakNet::DirectoryDeltaTransfer *arg1 = (RakNet::DirectoryDeltaTransfer *) 0 ;
    RakNet::FileList *arg2 = 0 ;
    char *arg3 = (char *) 0 ;
    char *arg4 = (char *) 0 ;
    bool arg5 ;
    RakNet::SystemAddress arg6 ;
    RakNet::FileListTransferCBInterface *arg7 = (RakNet::FileListTransferCBInterface *) 0 ;
    PacketPriority arg8 ;
    char arg9 ;
    RakNet::FileListProgress *arg10 = (RakNet::FileListProgress *) 0 ;
    RakNet::SystemAddress *argp6 ;
    unsigned short result;
    
    arg1 = (RakNet::DirectoryDeltaTransfer *)jarg1; 
    arg2 = (RakNet::FileList *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::FileList & type is null", 0);
      return 0;
    } 
    arg3 = (char *)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = jarg5 ? true : false; 
    argp6 = (RakNet::SystemAddress *)jarg6; 
    if (!argp6) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return 0;
    }
    arg6 = *argp6; 
    arg7 = (RakNet::FileListTransferCBInterface *)jarg7; 
    arg8 = (PacketPriority)jarg8; 
    arg9 = (char)jarg9; 
    arg10 = (RakNet::FileListProgress *)jarg10; 
    result = (unsigned short)(arg1)->DownloadFromSubdirectory(*arg2,(char const *)arg3,(char const *)arg4,arg5,arg6,arg7,arg8,arg9,arg10);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_DirectoryDeltaTransfer_GenerateHashes(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) {
    RakNet::DirectoryDeltaTransfer *arg1 = (RakNet::DirectoryDeltaTransfer *) 0 ;
    RakNet::FileList *arg2 = 0 ;
    char *arg3 = (char *) 0 ;
    bool arg4 ;
    
    arg1 = (RakNet::DirectoryDeltaTransfer *)jarg1; 
    arg2 = (RakNet::FileList *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::FileList & type is null", 0);
      return ;
    } 
    arg3 = (char *)jarg3; 
    arg4 = jarg4 ? true : false; 
    (arg1)->GenerateHashes(*arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_DirectoryDeltaTransfer_ClearUploads(void * jarg1) {
    RakNet::DirectoryDeltaTransfer *arg1 = (RakNet::DirectoryDeltaTransfer *) 0 ;
    
    arg1 = (RakNet::DirectoryDeltaTransfer *)jarg1; 
    (arg1)->ClearUploads();
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_DirectoryDeltaTransfer_GetNumberOfFilesForUpload(void * jarg1) {
    unsigned int jresult ;
    RakNet::DirectoryDeltaTransfer *arg1 = (RakNet::DirectoryDeltaTransfer *) 0 ;
    unsigned int result;
    
    arg1 = (RakNet::DirectoryDeltaTransfer *)jarg1; 
    result = (unsigned int)((RakNet::DirectoryDeltaTransfer const *)arg1)->GetNumberOfFilesForUpload();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_DirectoryDeltaTransfer_SetDownloadRequestIncrementalReadInterface(void * jarg1, void * jarg2, unsigned int jarg3) {
    RakNet::DirectoryDeltaTransfer *arg1 = (RakNet::DirectoryDeltaTransfer *) 0 ;
    RakNet::IncrementalReadInterface *arg2 = (RakNet::IncrementalReadInterface *) 0 ;
    unsigned int arg3 ;
    
    arg1 = (RakNet::DirectoryDeltaTransfer *)jarg1; 
    arg2 = (RakNet::IncrementalReadInterface *)jarg2; 
    arg3 = (unsigned int)jarg3; 
    (arg1)->SetDownloadRequestIncrementalReadInterface(arg2,arg3);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_FileListTransfer_GetInstance() {
    void * jresult ;
    RakNet::FileListTransfer *result = 0 ;
    
    result = (RakNet::FileListTransfer *)RakNet::FileListTransfer::GetInstance();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListTransfer_DestroyInstance(void * jarg1) {
    RakNet::FileListTransfer *arg1 = (RakNet::FileListTransfer *) 0 ;
    
    arg1 = (RakNet::FileListTransfer *)jarg1; 
    RakNet::FileListTransfer::DestroyInstance(arg1);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_FileListTransfer() {
    void * jresult ;
    RakNet::FileListTransfer *result = 0 ;
    
    result = (RakNet::FileListTransfer *)new RakNet::FileListTransfer();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_FileListTransfer(void * jarg1) {
    RakNet::FileListTransfer *arg1 = (RakNet::FileListTransfer *) 0 ;
    
    arg1 = (RakNet::FileListTransfer *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListTransfer_StartIncrementalReadThreads__SWIG_0(void * jarg1, int jarg2, int jarg3) {
    RakNet::FileListTransfer *arg1 = (RakNet::FileListTransfer *) 0 ;
    int arg2 ;
    int arg3 ;
    
    arg1 = (RakNet::FileListTransfer *)jarg1; 
    arg2 = (int)jarg2; 
    arg3 = (int)jarg3; 
    (arg1)->StartIncrementalReadThreads(arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListTransfer_StartIncrementalReadThreads__SWIG_1(void * jarg1, int jarg2) {
    RakNet::FileListTransfer *arg1 = (RakNet::FileListTransfer *) 0 ;
    int arg2 ;
    
    arg1 = (RakNet::FileListTransfer *)jarg1; 
    arg2 = (int)jarg2; 
    (arg1)->StartIncrementalReadThreads(arg2);
  }
  
  
  SWIGEXPORT unsigned short SWIGSTDCALL CSharp_FileListTransfer_SetupReceive(void * jarg1, void * jarg2, unsigned int jarg3, void * jarg4) {
    unsigned short jresult ;
    RakNet::FileListTransfer *arg1 = (RakNet::FileListTransfer *) 0 ;
    RakNet::FileListTransferCBInterface *arg2 = (RakNet::FileListTransferCBInterface *) 0 ;
    bool arg3 ;
    RakNet::SystemAddress arg4 ;
    RakNet::SystemAddress *argp4 ;
    unsigned short result;
    
    arg1 = (RakNet::FileListTransfer *)jarg1; 
    arg2 = (RakNet::FileListTransferCBInterface *)jarg2; 
    arg3 = jarg3 ? true : false; 
    argp4 = (RakNet::SystemAddress *)jarg4; 
    if (!argp4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return 0;
    }
    arg4 = *argp4; 
    result = (unsigned short)(arg1)->SetupReceive(arg2,arg3,arg4);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListTransfer_Send__SWIG_0(void * jarg1, void * jarg2, void * jarg3, void * jarg4, unsigned short jarg5, int jarg6, char jarg7, void * jarg8, unsigned int jarg9) {
    RakNet::FileListTransfer *arg1 = (RakNet::FileListTransfer *) 0 ;
    RakNet::FileList *arg2 = (RakNet::FileList *) 0 ;
    RakNet::RakPeerInterface *arg3 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::SystemAddress arg4 ;
    unsigned short arg5 ;
    PacketPriority arg6 ;
    char arg7 ;
    RakNet::IncrementalReadInterface *arg8 = (RakNet::IncrementalReadInterface *) 0 ;
    unsigned int arg9 ;
    RakNet::SystemAddress *argp4 ;
    
    arg1 = (RakNet::FileListTransfer *)jarg1; 
    arg2 = (RakNet::FileList *)jarg2; 
    arg3 = (RakNet::RakPeerInterface *)jarg3; 
    argp4 = (RakNet::SystemAddress *)jarg4; 
    if (!argp4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg4 = *argp4; 
    arg5 = (unsigned short)jarg5; 
    arg6 = (PacketPriority)jarg6; 
    arg7 = (char)jarg7; 
    arg8 = (RakNet::IncrementalReadInterface *)jarg8; 
    arg9 = (unsigned int)jarg9; 
    (arg1)->Send(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListTransfer_Send__SWIG_1(void * jarg1, void * jarg2, void * jarg3, void * jarg4, unsigned short jarg5, int jarg6, char jarg7, void * jarg8) {
    RakNet::FileListTransfer *arg1 = (RakNet::FileListTransfer *) 0 ;
    RakNet::FileList *arg2 = (RakNet::FileList *) 0 ;
    RakNet::RakPeerInterface *arg3 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::SystemAddress arg4 ;
    unsigned short arg5 ;
    PacketPriority arg6 ;
    char arg7 ;
    RakNet::IncrementalReadInterface *arg8 = (RakNet::IncrementalReadInterface *) 0 ;
    RakNet::SystemAddress *argp4 ;
    
    arg1 = (RakNet::FileListTransfer *)jarg1; 
    arg2 = (RakNet::FileList *)jarg2; 
    arg3 = (RakNet::RakPeerInterface *)jarg3; 
    argp4 = (RakNet::SystemAddress *)jarg4; 
    if (!argp4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg4 = *argp4; 
    arg5 = (unsigned short)jarg5; 
    arg6 = (PacketPriority)jarg6; 
    arg7 = (char)jarg7; 
    arg8 = (RakNet::IncrementalReadInterface *)jarg8; 
    (arg1)->Send(arg2,arg3,arg4,arg5,arg6,arg7,arg8);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListTransfer_Send__SWIG_2(void * jarg1, void * jarg2, void * jarg3, void * jarg4, unsigned short jarg5, int jarg6, char jarg7) {
    RakNet::FileListTransfer *arg1 = (RakNet::FileListTransfer *) 0 ;
    RakNet::FileList *arg2 = (RakNet::FileList *) 0 ;
    RakNet::RakPeerInterface *arg3 = (RakNet::RakPeerInterface *) 0 ;
    RakNet::SystemAddress arg4 ;
    unsigned short arg5 ;
    PacketPriority arg6 ;
    char arg7 ;
    RakNet::SystemAddress *argp4 ;
    
    arg1 = (RakNet::FileListTransfer *)jarg1; 
    arg2 = (RakNet::FileList *)jarg2; 
    arg3 = (RakNet::RakPeerInterface *)jarg3; 
    argp4 = (RakNet::SystemAddress *)jarg4; 
    if (!argp4) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg4 = *argp4; 
    arg5 = (unsigned short)jarg5; 
    arg6 = (PacketPriority)jarg6; 
    arg7 = (char)jarg7; 
    (arg1)->Send(arg2,arg3,arg4,arg5,arg6,arg7);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FileListTransfer_GetPendingFilesToAddress(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    RakNet::FileListTransfer *arg1 = (RakNet::FileListTransfer *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress *argp2 ;
    unsigned int result;
    
    arg1 = (RakNet::FileListTransfer *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return 0;
    }
    arg2 = *argp2; 
    result = (unsigned int)(arg1)->GetPendingFilesToAddress(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListTransfer_CancelReceive(void * jarg1, unsigned short jarg2) {
    RakNet::FileListTransfer *arg1 = (RakNet::FileListTransfer *) 0 ;
    unsigned short arg2 ;
    
    arg1 = (RakNet::FileListTransfer *)jarg1; 
    arg2 = (unsigned short)jarg2; 
    (arg1)->CancelReceive(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListTransfer_RemoveReceiver(void * jarg1, void * jarg2) {
    RakNet::FileListTransfer *arg1 = (RakNet::FileListTransfer *) 0 ;
    RakNet::SystemAddress arg2 ;
    RakNet::SystemAddress *argp2 ;
    
    arg1 = (RakNet::FileListTransfer *)jarg1; 
    argp2 = (RakNet::SystemAddress *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress", 0);
      return ;
    }
    arg2 = *argp2; 
    (arg1)->RemoveReceiver(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_FileListTransfer_IsHandlerActive(void * jarg1, unsigned short jarg2) {
    unsigned int jresult ;
    RakNet::FileListTransfer *arg1 = (RakNet::FileListTransfer *) 0 ;
    unsigned short arg2 ;
    bool result;
    
    arg1 = (RakNet::FileListTransfer *)jarg1; 
    arg2 = (unsigned short)jarg2; 
    result = (bool)(arg1)->IsHandlerActive(arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListTransfer_AddCallback(void * jarg1, void * jarg2) {
    RakNet::FileListTransfer *arg1 = (RakNet::FileListTransfer *) 0 ;
    RakNet::FileListProgress *arg2 = (RakNet::FileListProgress *) 0 ;
    
    arg1 = (RakNet::FileListTransfer *)jarg1; 
    arg2 = (RakNet::FileListProgress *)jarg2; 
    (arg1)->AddCallback(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListTransfer_RemoveCallback(void * jarg1, void * jarg2) {
    RakNet::FileListTransfer *arg1 = (RakNet::FileListTransfer *) 0 ;
    RakNet::FileListProgress *arg2 = (RakNet::FileListProgress *) 0 ;
    
    arg1 = (RakNet::FileListTransfer *)jarg1; 
    arg2 = (RakNet::FileListProgress *)jarg2; 
    (arg1)->RemoveCallback(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_FileListTransfer_ClearCallbacks(void * jarg1) {
    RakNet::FileListTransfer *arg1 = (RakNet::FileListTransfer *) 0 ;
    
    arg1 = (RakNet::FileListTransfer *)jarg1; 
    (arg1)->ClearCallbacks();
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_ThreadsafePacketLogger() {
    void * jresult ;
    RakNet::ThreadsafePacketLogger *result = 0 ;
    
    result = (RakNet::ThreadsafePacketLogger *)new RakNet::ThreadsafePacketLogger();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_ThreadsafePacketLogger(void * jarg1) {
    RakNet::ThreadsafePacketLogger *arg1 = (RakNet::ThreadsafePacketLogger *) 0 ;
    
    arg1 = (RakNet::ThreadsafePacketLogger *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_PacketConsoleLogger() {
    void * jresult ;
    RakNet::PacketConsoleLogger *result = 0 ;
    
    result = (RakNet::PacketConsoleLogger *)new RakNet::PacketConsoleLogger();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PacketConsoleLogger_SetLogCommandParser(void * jarg1, void * jarg2) {
    RakNet::PacketConsoleLogger *arg1 = (RakNet::PacketConsoleLogger *) 0 ;
    RakNet::LogCommandParser *arg2 = (RakNet::LogCommandParser *) 0 ;
    
    arg1 = (RakNet::PacketConsoleLogger *)jarg1; 
    arg2 = (RakNet::LogCommandParser *)jarg2; 
    (arg1)->SetLogCommandParser(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_PacketConsoleLogger_WriteLog(void * jarg1, char * jarg2) {
    RakNet::PacketConsoleLogger *arg1 = (RakNet::PacketConsoleLogger *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (RakNet::PacketConsoleLogger *)jarg1; 
    arg2 = (char *)jarg2; 
    (arg1)->WriteLog((char const *)arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_PacketConsoleLogger(void * jarg1) {
    RakNet::PacketConsoleLogger *arg1 = (RakNet::PacketConsoleLogger *) 0 ;
    
    arg1 = (RakNet::PacketConsoleLogger *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_ConnectionGraph2_GetInstance() {
    void * jresult ;
    RakNet::ConnectionGraph2 *result = 0 ;
    
    result = (RakNet::ConnectionGraph2 *)RakNet::ConnectionGraph2::GetInstance();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_ConnectionGraph2_DestroyInstance(void * jarg1) {
    RakNet::ConnectionGraph2 *arg1 = (RakNet::ConnectionGraph2 *) 0 ;
    
    arg1 = (RakNet::ConnectionGraph2 *)jarg1; 
    RakNet::ConnectionGraph2::DestroyInstance(arg1);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_ConnectionGraph2() {
    void * jresult ;
    RakNet::ConnectionGraph2 *result = 0 ;
    
    result = (RakNet::ConnectionGraph2 *)new RakNet::ConnectionGraph2();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_ConnectionGraph2(void * jarg1) {
    RakNet::ConnectionGraph2 *arg1 = (RakNet::ConnectionGraph2 *) 0 ;
    
    arg1 = (RakNet::ConnectionGraph2 *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ConnectionGraph2_GetConnectionListForRemoteSystem(void * jarg1, void * jarg2, void * jarg3, void * jarg4, unsigned int * jarg5) {
    unsigned int jresult ;
    RakNet::ConnectionGraph2 *arg1 = (RakNet::ConnectionGraph2 *) 0 ;
    RakNet::RakNetGUID arg2 ;
    RakNet::SystemAddress *arg3 = (RakNet::SystemAddress *) 0 ;
    RakNet::RakNetGUID *arg4 = (RakNet::RakNetGUID *) 0 ;
    unsigned int *arg5 = (unsigned int *) 0 ;
    RakNet::RakNetGUID *argp2 ;
    bool result;
    
    arg1 = (RakNet::ConnectionGraph2 *)jarg1; 
    argp2 = (RakNet::RakNetGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return 0;
    }
    arg2 = *argp2; 
    arg3 = (RakNet::SystemAddress *)jarg3; 
    arg4 = (RakNet::RakNetGUID *)jarg4; 
    arg5 = (unsigned int *)jarg5; 
    result = (bool)(arg1)->GetConnectionListForRemoteSystem(arg2,arg3,arg4,arg5);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ConnectionGraph2_ConnectionExists(void * jarg1, void * jarg2, void * jarg3) {
    unsigned int jresult ;
    RakNet::ConnectionGraph2 *arg1 = (RakNet::ConnectionGraph2 *) 0 ;
    RakNet::RakNetGUID arg2 ;
    RakNet::RakNetGUID arg3 ;
    RakNet::RakNetGUID *argp2 ;
    RakNet::RakNetGUID *argp3 ;
    bool result;
    
    arg1 = (RakNet::ConnectionGraph2 *)jarg1; 
    argp2 = (RakNet::RakNetGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return 0;
    }
    arg2 = *argp2; 
    argp3 = (RakNet::RakNetGUID *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return 0;
    }
    arg3 = *argp3; 
    result = (bool)(arg1)->ConnectionExists(arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned short SWIGSTDCALL CSharp_ConnectionGraph2_GetPingBetweenSystems(void * jarg1, void * jarg2, void * jarg3) {
    unsigned short jresult ;
    RakNet::ConnectionGraph2 *arg1 = (RakNet::ConnectionGraph2 *) 0 ;
    RakNet::RakNetGUID arg2 ;
    RakNet::RakNetGUID arg3 ;
    RakNet::RakNetGUID *argp2 ;
    RakNet::RakNetGUID *argp3 ;
    uint16_t result;
    
    arg1 = (RakNet::ConnectionGraph2 *)jarg1; 
    argp2 = (RakNet::RakNetGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return 0;
    }
    arg2 = *argp2; 
    argp3 = (RakNet::RakNetGUID *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return 0;
    }
    arg3 = *argp3; 
    result = (uint16_t)((RakNet::ConnectionGraph2 const *)arg1)->GetPingBetweenSystems(arg2,arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_ConnectionGraph2_GetLowestAveragePingSystem(void * jarg1) {
    void * jresult ;
    RakNet::ConnectionGraph2 *arg1 = (RakNet::ConnectionGraph2 *) 0 ;
    RakNet::RakNetGUID result;
    
    arg1 = (RakNet::ConnectionGraph2 *)jarg1; 
    result = ((RakNet::ConnectionGraph2 const *)arg1)->GetLowestAveragePingSystem();
    jresult = new RakNet::RakNetGUID((const RakNet::RakNetGUID &)result); 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_ConnectionGraph2_SetAutoProcessNewConnections(void * jarg1, unsigned int jarg2) {
    RakNet::ConnectionGraph2 *arg1 = (RakNet::ConnectionGraph2 *) 0 ;
    bool arg2 ;
    
    arg1 = (RakNet::ConnectionGraph2 *)jarg1; 
    arg2 = jarg2 ? true : false; 
    (arg1)->SetAutoProcessNewConnections(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ConnectionGraph2_GetAutoProcessNewConnections(void * jarg1) {
    unsigned int jresult ;
    RakNet::ConnectionGraph2 *arg1 = (RakNet::ConnectionGraph2 *) 0 ;
    bool result;
    
    arg1 = (RakNet::ConnectionGraph2 *)jarg1; 
    result = (bool)((RakNet::ConnectionGraph2 const *)arg1)->GetAutoProcessNewConnections();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_ConnectionGraph2_AddParticipant(void * jarg1, void * jarg2, void * jarg3) {
    RakNet::ConnectionGraph2 *arg1 = (RakNet::ConnectionGraph2 *) 0 ;
    RakNet::SystemAddress *arg2 = 0 ;
    RakNet::RakNetGUID arg3 ;
    RakNet::RakNetGUID *argp3 ;
    
    arg1 = (RakNet::ConnectionGraph2 *)jarg1; 
    arg2 = (RakNet::SystemAddress *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return ;
    } 
    argp3 = (RakNet::RakNetGUID *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return ;
    }
    arg3 = *argp3; 
    (arg1)->AddParticipant((RakNet::SystemAddress const &)*arg2,arg3);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ConnectionGraph2_GetConnectionListForRemoteSystemHelper(void * jarg1, void * jarg2, void * jarg3, void * jarg4, unsigned int * jarg5) {
    unsigned int jresult ;
    RakNet::ConnectionGraph2 *arg1 = (RakNet::ConnectionGraph2 *) 0 ;
    RakNet::RakNetGUID arg2 ;
    DataStructures::List< RakNet::SystemAddress > *arg3 = (DataStructures::List< RakNet::SystemAddress > *) 0 ;
    DataStructures::List< RakNet::RakNetGUID > *arg4 = (DataStructures::List< RakNet::RakNetGUID > *) 0 ;
    unsigned int *arg5 = (unsigned int *) 0 ;
    RakNet::RakNetGUID *argp2 ;
    bool result;
    
    arg1 = (RakNet::ConnectionGraph2 *)jarg1; 
    argp2 = (RakNet::RakNetGUID *)jarg2; 
    if (!argp2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID", 0);
      return 0;
    }
    arg2 = *argp2; 
    arg3 = (DataStructures::List< RakNet::SystemAddress > *)jarg3; 
    arg4 = (DataStructures::List< RakNet::RakNetGUID > *)jarg4; 
    arg5 = (unsigned int *)jarg5; 
    result = (bool)RakNet_ConnectionGraph2_GetConnectionListForRemoteSystemHelper(arg1,arg2,arg3,arg4,arg5);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_ConnectionGraph2_GetParticipantListHelper(void * jarg1, void * jarg2) {
    RakNet::ConnectionGraph2 *arg1 = (RakNet::ConnectionGraph2 *) 0 ;
    DataStructures::List< RakNet::RakNetGUID > *arg2 = (DataStructures::List< RakNet::RakNetGUID > *) 0 ;
    
    arg1 = (RakNet::ConnectionGraph2 *)jarg1; 
    arg2 = (DataStructures::List< RakNet::RakNetGUID > *)jarg2; 
    RakNet_ConnectionGraph2_GetParticipantListHelper(arg1,arg2);
  }
  
  
  SWIGEXPORT unsigned long long SWIGSTDCALL CSharp_GetTime() {
    unsigned long long jresult ;
    RakNet::Time result;
    
    result = (RakNet::Time)RakNet::GetTime();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_GetTimeMS() {
    unsigned int jresult ;
    RakNet::TimeMS result;
    
    result = (RakNet::TimeMS)RakNet::GetTimeMS();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned long long SWIGSTDCALL CSharp_GetTimeUS() {
    unsigned long long jresult ;
    RakNet::TimeUS result;
    
    result = (RakNet::TimeUS)RakNet::GetTimeUS();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_GreaterThan(unsigned long long jarg1, unsigned long long jarg2) {
    unsigned int jresult ;
    RakNet::Time arg1 ;
    RakNet::Time arg2 ;
    bool result;
    
    arg1 = (RakNet::Time)jarg1; 
    arg2 = (RakNet::Time)jarg2; 
    result = (bool)RakNet::GreaterThan(arg1,arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_LessThan(unsigned long long jarg1, unsigned long long jarg2) {
    unsigned int jresult ;
    RakNet::Time arg1 ;
    RakNet::Time arg2 ;
    bool result;
    
    arg1 = (RakNet::Time)jarg1; 
    arg2 = (RakNet::Time)jarg2; 
    result = (bool)RakNet::LessThan(arg1,arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetListRakNetGUID__SWIG_0() {
    void * jresult ;
    DataStructures::List< RakNet::RakNetGUID > *result = 0 ;
    
    result = (DataStructures::List< RakNet::RakNetGUID > *)new DataStructures::List< RakNet::RakNetGUID >();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_RakNetListRakNetGUID(void * jarg1) {
    DataStructures::List< RakNet::RakNetGUID > *arg1 = (DataStructures::List< RakNet::RakNetGUID > *) 0 ;
    
    arg1 = (DataStructures::List< RakNet::RakNetGUID > *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetListRakNetGUID__SWIG_1(void * jarg1) {
    void * jresult ;
    DataStructures::List< RakNet::RakNetGUID > *arg1 = 0 ;
    DataStructures::List< RakNet::RakNetGUID > *result = 0 ;
    
    arg1 = (DataStructures::List< RakNet::RakNetGUID > *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< RakNet::RakNetGUID > const & type is null", 0);
      return 0;
    } 
    result = (DataStructures::List< RakNet::RakNetGUID > *)new DataStructures::List< RakNet::RakNetGUID >((DataStructures::List< RakNet::RakNetGUID > const &)*arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListRakNetGUID_CopyData(void * jarg1, void * jarg2) {
    void * jresult ;
    DataStructures::List< RakNet::RakNetGUID > *arg1 = (DataStructures::List< RakNet::RakNetGUID > *) 0 ;
    DataStructures::List< RakNet::RakNetGUID > *arg2 = 0 ;
    DataStructures::List< RakNet::RakNetGUID > *result = 0 ;
    
    arg1 = (DataStructures::List< RakNet::RakNetGUID > *)jarg1; 
    arg2 = (DataStructures::List< RakNet::RakNetGUID > *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< RakNet::RakNetGUID > const & type is null", 0);
      return 0;
    } 
    result = (DataStructures::List< RakNet::RakNetGUID > *) &(arg1)->operator =((DataStructures::List< RakNet::RakNetGUID > const &)*arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListRakNetGUID_Get(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    DataStructures::List< RakNet::RakNetGUID > *arg1 = (DataStructures::List< RakNet::RakNetGUID > *) 0 ;
    unsigned int arg2 ;
    RakNet::RakNetGUID *result = 0 ;
    
    arg1 = (DataStructures::List< RakNet::RakNetGUID > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (RakNet::RakNetGUID *) &((DataStructures::List< RakNet::RakNetGUID > const *)arg1)->Get(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListRakNetGUID_Push(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< RakNet::RakNetGUID > *arg1 = (DataStructures::List< RakNet::RakNetGUID > *) 0 ;
    RakNet::RakNetGUID *arg2 = 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< RakNet::RakNetGUID > *)jarg1; 
    arg2 = (RakNet::RakNetGUID *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID const & type is null", 0);
      return ;
    } 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Push((RakNet::RakNetGUID const &)*arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListRakNetGUID_Pop(void * jarg1) {
    void * jresult ;
    DataStructures::List< RakNet::RakNetGUID > *arg1 = (DataStructures::List< RakNet::RakNetGUID > *) 0 ;
    RakNet::RakNetGUID *result = 0 ;
    
    arg1 = (DataStructures::List< RakNet::RakNetGUID > *)jarg1; 
    result = (RakNet::RakNetGUID *) &(arg1)->Pop();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListRakNetGUID_Insert__SWIG_0(void * jarg1, void * jarg2, unsigned int jarg3, char * jarg4, unsigned int jarg5) {
    DataStructures::List< RakNet::RakNetGUID > *arg1 = (DataStructures::List< RakNet::RakNetGUID > *) 0 ;
    RakNet::RakNetGUID *arg2 = 0 ;
    unsigned int arg3 ;
    char *arg4 = (char *) 0 ;
    unsigned int arg5 ;
    
    arg1 = (DataStructures::List< RakNet::RakNetGUID > *)jarg1; 
    arg2 = (RakNet::RakNetGUID *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID const & type is null", 0);
      return ;
    } 
    arg3 = (unsigned int)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (unsigned int)jarg5; 
    (arg1)->Insert((RakNet::RakNetGUID const &)*arg2,arg3,(char const *)arg4,arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListRakNetGUID_Insert__SWIG_1(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< RakNet::RakNetGUID > *arg1 = (DataStructures::List< RakNet::RakNetGUID > *) 0 ;
    RakNet::RakNetGUID *arg2 = 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< RakNet::RakNetGUID > *)jarg1; 
    arg2 = (RakNet::RakNetGUID *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID const & type is null", 0);
      return ;
    } 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Insert((RakNet::RakNetGUID const &)*arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListRakNetGUID_Replace__SWIG_0(void * jarg1, void * jarg2, void * jarg3, unsigned int jarg4, char * jarg5, unsigned int jarg6) {
    DataStructures::List< RakNet::RakNetGUID > *arg1 = (DataStructures::List< RakNet::RakNetGUID > *) 0 ;
    RakNet::RakNetGUID *arg2 = 0 ;
    RakNet::RakNetGUID arg3 ;
    unsigned int arg4 ;
    char *arg5 = (char *) 0 ;
    unsigned int arg6 ;
    RakNet::RakNetGUID const *argp3 ;
    
    arg1 = (DataStructures::List< RakNet::RakNetGUID > *)jarg1; 
    arg2 = (RakNet::RakNetGUID *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID const & type is null", 0);
      return ;
    } 
    argp3 = (RakNet::RakNetGUID *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakNetGUID const", 0);
      return ;
    }
    arg3 = *argp3; 
    arg4 = (unsigned int)jarg4; 
    arg5 = (char *)jarg5; 
    arg6 = (unsigned int)jarg6; 
    (arg1)->Replace((RakNet::RakNetGUID const &)*arg2,arg3,arg4,(char const *)arg5,arg6);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListRakNetGUID_Replace__SWIG_1(void * jarg1, void * jarg2) {
    DataStructures::List< RakNet::RakNetGUID > *arg1 = (DataStructures::List< RakNet::RakNetGUID > *) 0 ;
    RakNet::RakNetGUID *arg2 = 0 ;
    
    arg1 = (DataStructures::List< RakNet::RakNetGUID > *)jarg1; 
    arg2 = (RakNet::RakNetGUID *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID const & type is null", 0);
      return ;
    } 
    (arg1)->Replace((RakNet::RakNetGUID const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListRakNetGUID_RemoveAtIndex(void * jarg1, unsigned int jarg2) {
    DataStructures::List< RakNet::RakNetGUID > *arg1 = (DataStructures::List< RakNet::RakNetGUID > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< RakNet::RakNetGUID > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveAtIndex(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListRakNetGUID_RemoveAtIndexFast(void * jarg1, unsigned int jarg2) {
    DataStructures::List< RakNet::RakNetGUID > *arg1 = (DataStructures::List< RakNet::RakNetGUID > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< RakNet::RakNetGUID > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveAtIndexFast(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListRakNetGUID_RemoveFromEnd__SWIG_0(void * jarg1, unsigned int jarg2) {
    DataStructures::List< RakNet::RakNetGUID > *arg1 = (DataStructures::List< RakNet::RakNetGUID > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< RakNet::RakNetGUID > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveFromEnd(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListRakNetGUID_RemoveFromEnd__SWIG_1(void * jarg1) {
    DataStructures::List< RakNet::RakNetGUID > *arg1 = (DataStructures::List< RakNet::RakNetGUID > *) 0 ;
    
    arg1 = (DataStructures::List< RakNet::RakNetGUID > *)jarg1; 
    (arg1)->RemoveFromEnd();
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetListRakNetGUID_GetIndexOf(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    DataStructures::List< RakNet::RakNetGUID > *arg1 = (DataStructures::List< RakNet::RakNetGUID > *) 0 ;
    RakNet::RakNetGUID *arg2 = 0 ;
    unsigned int result;
    
    arg1 = (DataStructures::List< RakNet::RakNetGUID > *)jarg1; 
    arg2 = (RakNet::RakNetGUID *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakNetGUID const & type is null", 0);
      return 0;
    } 
    result = (unsigned int)((DataStructures::List< RakNet::RakNetGUID > const *)arg1)->GetIndexOf((RakNet::RakNetGUID const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetListRakNetGUID_Size(void * jarg1) {
    unsigned int jresult ;
    DataStructures::List< RakNet::RakNetGUID > *arg1 = (DataStructures::List< RakNet::RakNetGUID > *) 0 ;
    unsigned int result;
    
    arg1 = (DataStructures::List< RakNet::RakNetGUID > *)jarg1; 
    result = (unsigned int)((DataStructures::List< RakNet::RakNetGUID > const *)arg1)->Size();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListRakNetGUID_Clear(void * jarg1, unsigned int jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< RakNet::RakNetGUID > *arg1 = (DataStructures::List< RakNet::RakNetGUID > *) 0 ;
    bool arg2 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< RakNet::RakNetGUID > *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Clear(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListRakNetGUID_Preallocate(void * jarg1, unsigned int jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< RakNet::RakNetGUID > *arg1 = (DataStructures::List< RakNet::RakNetGUID > *) 0 ;
    unsigned int arg2 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< RakNet::RakNetGUID > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Preallocate(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListRakNetGUID_Compress(void * jarg1, char * jarg2, unsigned int jarg3) {
    DataStructures::List< RakNet::RakNetGUID > *arg1 = (DataStructures::List< RakNet::RakNetGUID > *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned int arg3 ;
    
    arg1 = (DataStructures::List< RakNet::RakNetGUID > *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned int)jarg3; 
    (arg1)->Compress((char const *)arg2,arg3);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetListSystemAddress__SWIG_0() {
    void * jresult ;
    DataStructures::List< RakNet::SystemAddress > *result = 0 ;
    
    result = (DataStructures::List< RakNet::SystemAddress > *)new DataStructures::List< RakNet::SystemAddress >();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_RakNetListSystemAddress(void * jarg1) {
    DataStructures::List< RakNet::SystemAddress > *arg1 = (DataStructures::List< RakNet::SystemAddress > *) 0 ;
    
    arg1 = (DataStructures::List< RakNet::SystemAddress > *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetListSystemAddress__SWIG_1(void * jarg1) {
    void * jresult ;
    DataStructures::List< RakNet::SystemAddress > *arg1 = 0 ;
    DataStructures::List< RakNet::SystemAddress > *result = 0 ;
    
    arg1 = (DataStructures::List< RakNet::SystemAddress > *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< RakNet::SystemAddress > const & type is null", 0);
      return 0;
    } 
    result = (DataStructures::List< RakNet::SystemAddress > *)new DataStructures::List< RakNet::SystemAddress >((DataStructures::List< RakNet::SystemAddress > const &)*arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListSystemAddress_CopyData(void * jarg1, void * jarg2) {
    void * jresult ;
    DataStructures::List< RakNet::SystemAddress > *arg1 = (DataStructures::List< RakNet::SystemAddress > *) 0 ;
    DataStructures::List< RakNet::SystemAddress > *arg2 = 0 ;
    DataStructures::List< RakNet::SystemAddress > *result = 0 ;
    
    arg1 = (DataStructures::List< RakNet::SystemAddress > *)jarg1; 
    arg2 = (DataStructures::List< RakNet::SystemAddress > *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< RakNet::SystemAddress > const & type is null", 0);
      return 0;
    } 
    result = (DataStructures::List< RakNet::SystemAddress > *) &(arg1)->operator =((DataStructures::List< RakNet::SystemAddress > const &)*arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListSystemAddress_Get(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    DataStructures::List< RakNet::SystemAddress > *arg1 = (DataStructures::List< RakNet::SystemAddress > *) 0 ;
    unsigned int arg2 ;
    RakNet::SystemAddress *result = 0 ;
    
    arg1 = (DataStructures::List< RakNet::SystemAddress > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (RakNet::SystemAddress *) &((DataStructures::List< RakNet::SystemAddress > const *)arg1)->Get(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListSystemAddress_Push(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< RakNet::SystemAddress > *arg1 = (DataStructures::List< RakNet::SystemAddress > *) 0 ;
    RakNet::SystemAddress *arg2 = 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< RakNet::SystemAddress > *)jarg1; 
    arg2 = (RakNet::SystemAddress *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return ;
    } 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Push((RakNet::SystemAddress const &)*arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListSystemAddress_Pop(void * jarg1) {
    void * jresult ;
    DataStructures::List< RakNet::SystemAddress > *arg1 = (DataStructures::List< RakNet::SystemAddress > *) 0 ;
    RakNet::SystemAddress *result = 0 ;
    
    arg1 = (DataStructures::List< RakNet::SystemAddress > *)jarg1; 
    result = (RakNet::SystemAddress *) &(arg1)->Pop();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListSystemAddress_Insert__SWIG_0(void * jarg1, void * jarg2, unsigned int jarg3, char * jarg4, unsigned int jarg5) {
    DataStructures::List< RakNet::SystemAddress > *arg1 = (DataStructures::List< RakNet::SystemAddress > *) 0 ;
    RakNet::SystemAddress *arg2 = 0 ;
    unsigned int arg3 ;
    char *arg4 = (char *) 0 ;
    unsigned int arg5 ;
    
    arg1 = (DataStructures::List< RakNet::SystemAddress > *)jarg1; 
    arg2 = (RakNet::SystemAddress *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return ;
    } 
    arg3 = (unsigned int)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (unsigned int)jarg5; 
    (arg1)->Insert((RakNet::SystemAddress const &)*arg2,arg3,(char const *)arg4,arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListSystemAddress_Insert__SWIG_1(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< RakNet::SystemAddress > *arg1 = (DataStructures::List< RakNet::SystemAddress > *) 0 ;
    RakNet::SystemAddress *arg2 = 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< RakNet::SystemAddress > *)jarg1; 
    arg2 = (RakNet::SystemAddress *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return ;
    } 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Insert((RakNet::SystemAddress const &)*arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListSystemAddress_Replace__SWIG_0(void * jarg1, void * jarg2, void * jarg3, unsigned int jarg4, char * jarg5, unsigned int jarg6) {
    DataStructures::List< RakNet::SystemAddress > *arg1 = (DataStructures::List< RakNet::SystemAddress > *) 0 ;
    RakNet::SystemAddress *arg2 = 0 ;
    RakNet::SystemAddress arg3 ;
    unsigned int arg4 ;
    char *arg5 = (char *) 0 ;
    unsigned int arg6 ;
    RakNet::SystemAddress const *argp3 ;
    
    arg1 = (DataStructures::List< RakNet::SystemAddress > *)jarg1; 
    arg2 = (RakNet::SystemAddress *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return ;
    } 
    argp3 = (RakNet::SystemAddress *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::SystemAddress const", 0);
      return ;
    }
    arg3 = *argp3; 
    arg4 = (unsigned int)jarg4; 
    arg5 = (char *)jarg5; 
    arg6 = (unsigned int)jarg6; 
    (arg1)->Replace((RakNet::SystemAddress const &)*arg2,arg3,arg4,(char const *)arg5,arg6);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListSystemAddress_Replace__SWIG_1(void * jarg1, void * jarg2) {
    DataStructures::List< RakNet::SystemAddress > *arg1 = (DataStructures::List< RakNet::SystemAddress > *) 0 ;
    RakNet::SystemAddress *arg2 = 0 ;
    
    arg1 = (DataStructures::List< RakNet::SystemAddress > *)jarg1; 
    arg2 = (RakNet::SystemAddress *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return ;
    } 
    (arg1)->Replace((RakNet::SystemAddress const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListSystemAddress_RemoveAtIndex(void * jarg1, unsigned int jarg2) {
    DataStructures::List< RakNet::SystemAddress > *arg1 = (DataStructures::List< RakNet::SystemAddress > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< RakNet::SystemAddress > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveAtIndex(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListSystemAddress_RemoveAtIndexFast(void * jarg1, unsigned int jarg2) {
    DataStructures::List< RakNet::SystemAddress > *arg1 = (DataStructures::List< RakNet::SystemAddress > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< RakNet::SystemAddress > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveAtIndexFast(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListSystemAddress_RemoveFromEnd__SWIG_0(void * jarg1, unsigned int jarg2) {
    DataStructures::List< RakNet::SystemAddress > *arg1 = (DataStructures::List< RakNet::SystemAddress > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< RakNet::SystemAddress > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveFromEnd(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListSystemAddress_RemoveFromEnd__SWIG_1(void * jarg1) {
    DataStructures::List< RakNet::SystemAddress > *arg1 = (DataStructures::List< RakNet::SystemAddress > *) 0 ;
    
    arg1 = (DataStructures::List< RakNet::SystemAddress > *)jarg1; 
    (arg1)->RemoveFromEnd();
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetListSystemAddress_GetIndexOf(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    DataStructures::List< RakNet::SystemAddress > *arg1 = (DataStructures::List< RakNet::SystemAddress > *) 0 ;
    RakNet::SystemAddress *arg2 = 0 ;
    unsigned int result;
    
    arg1 = (DataStructures::List< RakNet::SystemAddress > *)jarg1; 
    arg2 = (RakNet::SystemAddress *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::SystemAddress const & type is null", 0);
      return 0;
    } 
    result = (unsigned int)((DataStructures::List< RakNet::SystemAddress > const *)arg1)->GetIndexOf((RakNet::SystemAddress const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetListSystemAddress_Size(void * jarg1) {
    unsigned int jresult ;
    DataStructures::List< RakNet::SystemAddress > *arg1 = (DataStructures::List< RakNet::SystemAddress > *) 0 ;
    unsigned int result;
    
    arg1 = (DataStructures::List< RakNet::SystemAddress > *)jarg1; 
    result = (unsigned int)((DataStructures::List< RakNet::SystemAddress > const *)arg1)->Size();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListSystemAddress_Clear(void * jarg1, unsigned int jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< RakNet::SystemAddress > *arg1 = (DataStructures::List< RakNet::SystemAddress > *) 0 ;
    bool arg2 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< RakNet::SystemAddress > *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Clear(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListSystemAddress_Preallocate(void * jarg1, unsigned int jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< RakNet::SystemAddress > *arg1 = (DataStructures::List< RakNet::SystemAddress > *) 0 ;
    unsigned int arg2 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< RakNet::SystemAddress > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Preallocate(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListSystemAddress_Compress(void * jarg1, char * jarg2, unsigned int jarg3) {
    DataStructures::List< RakNet::SystemAddress > *arg1 = (DataStructures::List< RakNet::SystemAddress > *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned int arg3 ;
    
    arg1 = (DataStructures::List< RakNet::SystemAddress > *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned int)jarg3; 
    (arg1)->Compress((char const *)arg2,arg3);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetListRakString__SWIG_0() {
    void * jresult ;
    DataStructures::List< RakNet::RakString > *result = 0 ;
    
    result = (DataStructures::List< RakNet::RakString > *)new DataStructures::List< RakNet::RakString >();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_RakNetListRakString(void * jarg1) {
    DataStructures::List< RakNet::RakString > *arg1 = (DataStructures::List< RakNet::RakString > *) 0 ;
    
    arg1 = (DataStructures::List< RakNet::RakString > *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetListRakString__SWIG_1(void * jarg1) {
    void * jresult ;
    DataStructures::List< RakNet::RakString > *arg1 = 0 ;
    DataStructures::List< RakNet::RakString > *result = 0 ;
    
    arg1 = (DataStructures::List< RakNet::RakString > *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< RakNet::RakString > const & type is null", 0);
      return 0;
    } 
    result = (DataStructures::List< RakNet::RakString > *)new DataStructures::List< RakNet::RakString >((DataStructures::List< RakNet::RakString > const &)*arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListRakString_CopyData(void * jarg1, void * jarg2) {
    void * jresult ;
    DataStructures::List< RakNet::RakString > *arg1 = (DataStructures::List< RakNet::RakString > *) 0 ;
    DataStructures::List< RakNet::RakString > *arg2 = 0 ;
    DataStructures::List< RakNet::RakString > *result = 0 ;
    
    arg1 = (DataStructures::List< RakNet::RakString > *)jarg1; 
    arg2 = (DataStructures::List< RakNet::RakString > *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< RakNet::RakString > const & type is null", 0);
      return 0;
    } 
    result = (DataStructures::List< RakNet::RakString > *) &(arg1)->operator =((DataStructures::List< RakNet::RakString > const &)*arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListRakString_Get(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    DataStructures::List< RakNet::RakString > *arg1 = (DataStructures::List< RakNet::RakString > *) 0 ;
    unsigned int arg2 ;
    RakNet::RakString *result = 0 ;
    
    arg1 = (DataStructures::List< RakNet::RakString > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (RakNet::RakString *) &((DataStructures::List< RakNet::RakString > const *)arg1)->Get(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListRakString_Push(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< RakNet::RakString > *arg1 = (DataStructures::List< RakNet::RakString > *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< RakNet::RakString > *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return ;
    } 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Push((RakNet::RakString const &)*arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListRakString_Pop(void * jarg1) {
    void * jresult ;
    DataStructures::List< RakNet::RakString > *arg1 = (DataStructures::List< RakNet::RakString > *) 0 ;
    RakNet::RakString *result = 0 ;
    
    arg1 = (DataStructures::List< RakNet::RakString > *)jarg1; 
    result = (RakNet::RakString *) &(arg1)->Pop();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListRakString_Insert__SWIG_0(void * jarg1, void * jarg2, unsigned int jarg3, char * jarg4, unsigned int jarg5) {
    DataStructures::List< RakNet::RakString > *arg1 = (DataStructures::List< RakNet::RakString > *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    unsigned int arg3 ;
    char *arg4 = (char *) 0 ;
    unsigned int arg5 ;
    
    arg1 = (DataStructures::List< RakNet::RakString > *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return ;
    } 
    arg3 = (unsigned int)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (unsigned int)jarg5; 
    (arg1)->Insert((RakNet::RakString const &)*arg2,arg3,(char const *)arg4,arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListRakString_Insert__SWIG_1(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< RakNet::RakString > *arg1 = (DataStructures::List< RakNet::RakString > *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< RakNet::RakString > *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return ;
    } 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Insert((RakNet::RakString const &)*arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListRakString_Replace__SWIG_0(void * jarg1, void * jarg2, void * jarg3, unsigned int jarg4, char * jarg5, unsigned int jarg6) {
    DataStructures::List< RakNet::RakString > *arg1 = (DataStructures::List< RakNet::RakString > *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    RakNet::RakString arg3 ;
    unsigned int arg4 ;
    char *arg5 = (char *) 0 ;
    unsigned int arg6 ;
    RakNet::RakString const *argp3 ;
    
    arg1 = (DataStructures::List< RakNet::RakString > *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return ;
    } 
    argp3 = (RakNet::RakString *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::RakString const", 0);
      return ;
    }
    arg3 = *argp3; 
    arg4 = (unsigned int)jarg4; 
    arg5 = (char *)jarg5; 
    arg6 = (unsigned int)jarg6; 
    (arg1)->Replace((RakNet::RakString const &)*arg2,arg3,arg4,(char const *)arg5,arg6);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListRakString_Replace__SWIG_1(void * jarg1, void * jarg2) {
    DataStructures::List< RakNet::RakString > *arg1 = (DataStructures::List< RakNet::RakString > *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    
    arg1 = (DataStructures::List< RakNet::RakString > *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return ;
    } 
    (arg1)->Replace((RakNet::RakString const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListRakString_RemoveAtIndex(void * jarg1, unsigned int jarg2) {
    DataStructures::List< RakNet::RakString > *arg1 = (DataStructures::List< RakNet::RakString > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< RakNet::RakString > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveAtIndex(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListRakString_RemoveAtIndexFast(void * jarg1, unsigned int jarg2) {
    DataStructures::List< RakNet::RakString > *arg1 = (DataStructures::List< RakNet::RakString > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< RakNet::RakString > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveAtIndexFast(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListRakString_RemoveFromEnd__SWIG_0(void * jarg1, unsigned int jarg2) {
    DataStructures::List< RakNet::RakString > *arg1 = (DataStructures::List< RakNet::RakString > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< RakNet::RakString > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveFromEnd(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListRakString_RemoveFromEnd__SWIG_1(void * jarg1) {
    DataStructures::List< RakNet::RakString > *arg1 = (DataStructures::List< RakNet::RakString > *) 0 ;
    
    arg1 = (DataStructures::List< RakNet::RakString > *)jarg1; 
    (arg1)->RemoveFromEnd();
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetListRakString_GetIndexOf(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    DataStructures::List< RakNet::RakString > *arg1 = (DataStructures::List< RakNet::RakString > *) 0 ;
    RakNet::RakString *arg2 = 0 ;
    unsigned int result;
    
    arg1 = (DataStructures::List< RakNet::RakString > *)jarg1; 
    arg2 = (RakNet::RakString *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::RakString const & type is null", 0);
      return 0;
    } 
    result = (unsigned int)((DataStructures::List< RakNet::RakString > const *)arg1)->GetIndexOf((RakNet::RakString const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetListRakString_Size(void * jarg1) {
    unsigned int jresult ;
    DataStructures::List< RakNet::RakString > *arg1 = (DataStructures::List< RakNet::RakString > *) 0 ;
    unsigned int result;
    
    arg1 = (DataStructures::List< RakNet::RakString > *)jarg1; 
    result = (unsigned int)((DataStructures::List< RakNet::RakString > const *)arg1)->Size();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListRakString_Clear(void * jarg1, unsigned int jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< RakNet::RakString > *arg1 = (DataStructures::List< RakNet::RakString > *) 0 ;
    bool arg2 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< RakNet::RakString > *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Clear(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListRakString_Preallocate(void * jarg1, unsigned int jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< RakNet::RakString > *arg1 = (DataStructures::List< RakNet::RakString > *) 0 ;
    unsigned int arg2 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< RakNet::RakString > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Preallocate(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListRakString_Compress(void * jarg1, char * jarg2, unsigned int jarg3) {
    DataStructures::List< RakNet::RakString > *arg1 = (DataStructures::List< RakNet::RakString > *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned int arg3 ;
    
    arg1 = (DataStructures::List< RakNet::RakString > *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned int)jarg3; 
    (arg1)->Compress((char const *)arg2,arg3);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetListCell__SWIG_0() {
    void * jresult ;
    DataStructures::List< Cell > *result = 0 ;
    
    result = (DataStructures::List< Cell > *)new DataStructures::List< Cell >();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_RakNetListCell(void * jarg1) {
    DataStructures::List< Cell > *arg1 = (DataStructures::List< Cell > *) 0 ;
    
    arg1 = (DataStructures::List< Cell > *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetListCell__SWIG_1(void * jarg1) {
    void * jresult ;
    DataStructures::List< Cell > *arg1 = 0 ;
    DataStructures::List< Cell > *result = 0 ;
    
    arg1 = (DataStructures::List< Cell > *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< Cell > const & type is null", 0);
      return 0;
    } 
    result = (DataStructures::List< Cell > *)new DataStructures::List< Cell >((DataStructures::List< Cell > const &)*arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListCell_CopyData(void * jarg1, void * jarg2) {
    void * jresult ;
    DataStructures::List< Cell > *arg1 = (DataStructures::List< Cell > *) 0 ;
    DataStructures::List< Cell > *arg2 = 0 ;
    DataStructures::List< Cell > *result = 0 ;
    
    arg1 = (DataStructures::List< Cell > *)jarg1; 
    arg2 = (DataStructures::List< Cell > *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< Cell > const & type is null", 0);
      return 0;
    } 
    result = (DataStructures::List< Cell > *) &(arg1)->operator =((DataStructures::List< Cell > const &)*arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListCell_Get(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    DataStructures::List< Cell > *arg1 = (DataStructures::List< Cell > *) 0 ;
    unsigned int arg2 ;
    Cell *result = 0 ;
    
    arg1 = (DataStructures::List< Cell > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (Cell *) &((DataStructures::List< Cell > const *)arg1)->Get(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListCell_Push(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< Cell > *arg1 = (DataStructures::List< Cell > *) 0 ;
    Cell *arg2 = 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< Cell > *)jarg1; 
    arg2 = (Cell *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Cell const & type is null", 0);
      return ;
    } 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Push((Cell const &)*arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListCell_Pop(void * jarg1) {
    void * jresult ;
    DataStructures::List< Cell > *arg1 = (DataStructures::List< Cell > *) 0 ;
    Cell *result = 0 ;
    
    arg1 = (DataStructures::List< Cell > *)jarg1; 
    result = (Cell *) &(arg1)->Pop();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListCell_Insert__SWIG_0(void * jarg1, void * jarg2, unsigned int jarg3, char * jarg4, unsigned int jarg5) {
    DataStructures::List< Cell > *arg1 = (DataStructures::List< Cell > *) 0 ;
    Cell *arg2 = 0 ;
    unsigned int arg3 ;
    char *arg4 = (char *) 0 ;
    unsigned int arg5 ;
    
    arg1 = (DataStructures::List< Cell > *)jarg1; 
    arg2 = (Cell *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Cell const & type is null", 0);
      return ;
    } 
    arg3 = (unsigned int)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (unsigned int)jarg5; 
    (arg1)->Insert((Cell const &)*arg2,arg3,(char const *)arg4,arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListCell_Insert__SWIG_1(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< Cell > *arg1 = (DataStructures::List< Cell > *) 0 ;
    Cell *arg2 = 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< Cell > *)jarg1; 
    arg2 = (Cell *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Cell const & type is null", 0);
      return ;
    } 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Insert((Cell const &)*arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListCell_Replace__SWIG_0(void * jarg1, void * jarg2, void * jarg3, unsigned int jarg4, char * jarg5, unsigned int jarg6) {
    DataStructures::List< Cell > *arg1 = (DataStructures::List< Cell > *) 0 ;
    Cell *arg2 = 0 ;
    Cell arg3 ;
    unsigned int arg4 ;
    char *arg5 = (char *) 0 ;
    unsigned int arg6 ;
    Cell const *argp3 ;
    
    arg1 = (DataStructures::List< Cell > *)jarg1; 
    arg2 = (Cell *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Cell const & type is null", 0);
      return ;
    } 
    argp3 = (Cell *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null Cell const", 0);
      return ;
    }
    arg3 = *argp3; 
    arg4 = (unsigned int)jarg4; 
    arg5 = (char *)jarg5; 
    arg6 = (unsigned int)jarg6; 
    (arg1)->Replace((Cell const &)*arg2,arg3,arg4,(char const *)arg5,arg6);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListCell_Replace__SWIG_1(void * jarg1, void * jarg2) {
    DataStructures::List< Cell > *arg1 = (DataStructures::List< Cell > *) 0 ;
    Cell *arg2 = 0 ;
    
    arg1 = (DataStructures::List< Cell > *)jarg1; 
    arg2 = (Cell *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Cell const & type is null", 0);
      return ;
    } 
    (arg1)->Replace((Cell const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListCell_RemoveAtIndex(void * jarg1, unsigned int jarg2) {
    DataStructures::List< Cell > *arg1 = (DataStructures::List< Cell > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< Cell > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveAtIndex(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListCell_RemoveAtIndexFast(void * jarg1, unsigned int jarg2) {
    DataStructures::List< Cell > *arg1 = (DataStructures::List< Cell > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< Cell > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveAtIndexFast(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListCell_RemoveFromEnd__SWIG_0(void * jarg1, unsigned int jarg2) {
    DataStructures::List< Cell > *arg1 = (DataStructures::List< Cell > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< Cell > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveFromEnd(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListCell_RemoveFromEnd__SWIG_1(void * jarg1) {
    DataStructures::List< Cell > *arg1 = (DataStructures::List< Cell > *) 0 ;
    
    arg1 = (DataStructures::List< Cell > *)jarg1; 
    (arg1)->RemoveFromEnd();
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetListCell_Size(void * jarg1) {
    unsigned int jresult ;
    DataStructures::List< Cell > *arg1 = (DataStructures::List< Cell > *) 0 ;
    unsigned int result;
    
    arg1 = (DataStructures::List< Cell > *)jarg1; 
    result = (unsigned int)((DataStructures::List< Cell > const *)arg1)->Size();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListCell_Clear(void * jarg1, unsigned int jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< Cell > *arg1 = (DataStructures::List< Cell > *) 0 ;
    bool arg2 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< Cell > *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Clear(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListCell_Preallocate(void * jarg1, unsigned int jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< Cell > *arg1 = (DataStructures::List< Cell > *) 0 ;
    unsigned int arg2 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< Cell > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Preallocate(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListCell_Compress(void * jarg1, char * jarg2, unsigned int jarg3) {
    DataStructures::List< Cell > *arg1 = (DataStructures::List< Cell > *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned int arg3 ;
    
    arg1 = (DataStructures::List< Cell > *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned int)jarg3; 
    (arg1)->Compress((char const *)arg2,arg3);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetListColumnDescriptor__SWIG_0() {
    void * jresult ;
    DataStructures::List< ColumnDescriptor > *result = 0 ;
    
    result = (DataStructures::List< ColumnDescriptor > *)new DataStructures::List< ColumnDescriptor >();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_RakNetListColumnDescriptor(void * jarg1) {
    DataStructures::List< ColumnDescriptor > *arg1 = (DataStructures::List< ColumnDescriptor > *) 0 ;
    
    arg1 = (DataStructures::List< ColumnDescriptor > *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetListColumnDescriptor__SWIG_1(void * jarg1) {
    void * jresult ;
    DataStructures::List< ColumnDescriptor > *arg1 = 0 ;
    DataStructures::List< ColumnDescriptor > *result = 0 ;
    
    arg1 = (DataStructures::List< ColumnDescriptor > *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< ColumnDescriptor > const & type is null", 0);
      return 0;
    } 
    result = (DataStructures::List< ColumnDescriptor > *)new DataStructures::List< ColumnDescriptor >((DataStructures::List< ColumnDescriptor > const &)*arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListColumnDescriptor_CopyData(void * jarg1, void * jarg2) {
    void * jresult ;
    DataStructures::List< ColumnDescriptor > *arg1 = (DataStructures::List< ColumnDescriptor > *) 0 ;
    DataStructures::List< ColumnDescriptor > *arg2 = 0 ;
    DataStructures::List< ColumnDescriptor > *result = 0 ;
    
    arg1 = (DataStructures::List< ColumnDescriptor > *)jarg1; 
    arg2 = (DataStructures::List< ColumnDescriptor > *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< ColumnDescriptor > const & type is null", 0);
      return 0;
    } 
    result = (DataStructures::List< ColumnDescriptor > *) &(arg1)->operator =((DataStructures::List< ColumnDescriptor > const &)*arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListColumnDescriptor_Get(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    DataStructures::List< ColumnDescriptor > *arg1 = (DataStructures::List< ColumnDescriptor > *) 0 ;
    unsigned int arg2 ;
    ColumnDescriptor *result = 0 ;
    
    arg1 = (DataStructures::List< ColumnDescriptor > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (ColumnDescriptor *) &((DataStructures::List< ColumnDescriptor > const *)arg1)->Get(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListColumnDescriptor_Push(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< ColumnDescriptor > *arg1 = (DataStructures::List< ColumnDescriptor > *) 0 ;
    ColumnDescriptor *arg2 = 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< ColumnDescriptor > *)jarg1; 
    arg2 = (ColumnDescriptor *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ColumnDescriptor const & type is null", 0);
      return ;
    } 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Push((ColumnDescriptor const &)*arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListColumnDescriptor_Pop(void * jarg1) {
    void * jresult ;
    DataStructures::List< ColumnDescriptor > *arg1 = (DataStructures::List< ColumnDescriptor > *) 0 ;
    ColumnDescriptor *result = 0 ;
    
    arg1 = (DataStructures::List< ColumnDescriptor > *)jarg1; 
    result = (ColumnDescriptor *) &(arg1)->Pop();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListColumnDescriptor_Insert__SWIG_0(void * jarg1, void * jarg2, unsigned int jarg3, char * jarg4, unsigned int jarg5) {
    DataStructures::List< ColumnDescriptor > *arg1 = (DataStructures::List< ColumnDescriptor > *) 0 ;
    ColumnDescriptor *arg2 = 0 ;
    unsigned int arg3 ;
    char *arg4 = (char *) 0 ;
    unsigned int arg5 ;
    
    arg1 = (DataStructures::List< ColumnDescriptor > *)jarg1; 
    arg2 = (ColumnDescriptor *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ColumnDescriptor const & type is null", 0);
      return ;
    } 
    arg3 = (unsigned int)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (unsigned int)jarg5; 
    (arg1)->Insert((ColumnDescriptor const &)*arg2,arg3,(char const *)arg4,arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListColumnDescriptor_Insert__SWIG_1(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< ColumnDescriptor > *arg1 = (DataStructures::List< ColumnDescriptor > *) 0 ;
    ColumnDescriptor *arg2 = 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< ColumnDescriptor > *)jarg1; 
    arg2 = (ColumnDescriptor *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ColumnDescriptor const & type is null", 0);
      return ;
    } 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Insert((ColumnDescriptor const &)*arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListColumnDescriptor_Replace__SWIG_0(void * jarg1, void * jarg2, void * jarg3, unsigned int jarg4, char * jarg5, unsigned int jarg6) {
    DataStructures::List< ColumnDescriptor > *arg1 = (DataStructures::List< ColumnDescriptor > *) 0 ;
    ColumnDescriptor *arg2 = 0 ;
    ColumnDescriptor arg3 ;
    unsigned int arg4 ;
    char *arg5 = (char *) 0 ;
    unsigned int arg6 ;
    ColumnDescriptor const *argp3 ;
    
    arg1 = (DataStructures::List< ColumnDescriptor > *)jarg1; 
    arg2 = (ColumnDescriptor *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ColumnDescriptor const & type is null", 0);
      return ;
    } 
    argp3 = (ColumnDescriptor *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null ColumnDescriptor const", 0);
      return ;
    }
    arg3 = *argp3; 
    arg4 = (unsigned int)jarg4; 
    arg5 = (char *)jarg5; 
    arg6 = (unsigned int)jarg6; 
    (arg1)->Replace((ColumnDescriptor const &)*arg2,arg3,arg4,(char const *)arg5,arg6);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListColumnDescriptor_Replace__SWIG_1(void * jarg1, void * jarg2) {
    DataStructures::List< ColumnDescriptor > *arg1 = (DataStructures::List< ColumnDescriptor > *) 0 ;
    ColumnDescriptor *arg2 = 0 ;
    
    arg1 = (DataStructures::List< ColumnDescriptor > *)jarg1; 
    arg2 = (ColumnDescriptor *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "ColumnDescriptor const & type is null", 0);
      return ;
    } 
    (arg1)->Replace((ColumnDescriptor const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListColumnDescriptor_RemoveAtIndex(void * jarg1, unsigned int jarg2) {
    DataStructures::List< ColumnDescriptor > *arg1 = (DataStructures::List< ColumnDescriptor > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< ColumnDescriptor > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveAtIndex(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListColumnDescriptor_RemoveAtIndexFast(void * jarg1, unsigned int jarg2) {
    DataStructures::List< ColumnDescriptor > *arg1 = (DataStructures::List< ColumnDescriptor > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< ColumnDescriptor > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveAtIndexFast(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListColumnDescriptor_RemoveFromEnd__SWIG_0(void * jarg1, unsigned int jarg2) {
    DataStructures::List< ColumnDescriptor > *arg1 = (DataStructures::List< ColumnDescriptor > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< ColumnDescriptor > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveFromEnd(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListColumnDescriptor_RemoveFromEnd__SWIG_1(void * jarg1) {
    DataStructures::List< ColumnDescriptor > *arg1 = (DataStructures::List< ColumnDescriptor > *) 0 ;
    
    arg1 = (DataStructures::List< ColumnDescriptor > *)jarg1; 
    (arg1)->RemoveFromEnd();
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetListColumnDescriptor_Size(void * jarg1) {
    unsigned int jresult ;
    DataStructures::List< ColumnDescriptor > *arg1 = (DataStructures::List< ColumnDescriptor > *) 0 ;
    unsigned int result;
    
    arg1 = (DataStructures::List< ColumnDescriptor > *)jarg1; 
    result = (unsigned int)((DataStructures::List< ColumnDescriptor > const *)arg1)->Size();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListColumnDescriptor_Clear(void * jarg1, unsigned int jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< ColumnDescriptor > *arg1 = (DataStructures::List< ColumnDescriptor > *) 0 ;
    bool arg2 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< ColumnDescriptor > *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Clear(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListColumnDescriptor_Preallocate(void * jarg1, unsigned int jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< ColumnDescriptor > *arg1 = (DataStructures::List< ColumnDescriptor > *) 0 ;
    unsigned int arg2 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< ColumnDescriptor > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Preallocate(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListColumnDescriptor_Compress(void * jarg1, char * jarg2, unsigned int jarg3) {
    DataStructures::List< ColumnDescriptor > *arg1 = (DataStructures::List< ColumnDescriptor > *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned int arg3 ;
    
    arg1 = (DataStructures::List< ColumnDescriptor > *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned int)jarg3; 
    (arg1)->Compress((char const *)arg2,arg3);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetListTableRow__SWIG_0() {
    void * jresult ;
    DataStructures::List< Row > *result = 0 ;
    
    result = (DataStructures::List< Row > *)new DataStructures::List< Row >();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_RakNetListTableRow(void * jarg1) {
    DataStructures::List< Row > *arg1 = (DataStructures::List< Row > *) 0 ;
    
    arg1 = (DataStructures::List< Row > *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetListTableRow__SWIG_1(void * jarg1) {
    void * jresult ;
    DataStructures::List< Row > *arg1 = 0 ;
    DataStructures::List< Row > *result = 0 ;
    
    arg1 = (DataStructures::List< Row > *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< Row > const & type is null", 0);
      return 0;
    } 
    result = (DataStructures::List< Row > *)new DataStructures::List< Row >((DataStructures::List< Row > const &)*arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListTableRow_CopyData(void * jarg1, void * jarg2) {
    void * jresult ;
    DataStructures::List< Row > *arg1 = (DataStructures::List< Row > *) 0 ;
    DataStructures::List< Row > *arg2 = 0 ;
    DataStructures::List< Row > *result = 0 ;
    
    arg1 = (DataStructures::List< Row > *)jarg1; 
    arg2 = (DataStructures::List< Row > *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< Row > const & type is null", 0);
      return 0;
    } 
    result = (DataStructures::List< Row > *) &(arg1)->operator =((DataStructures::List< Row > const &)*arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListTableRow_Get(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    DataStructures::List< Row > *arg1 = (DataStructures::List< Row > *) 0 ;
    unsigned int arg2 ;
    Row *result = 0 ;
    
    arg1 = (DataStructures::List< Row > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (Row *) &((DataStructures::List< Row > const *)arg1)->Get(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListTableRow_Push(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< Row > *arg1 = (DataStructures::List< Row > *) 0 ;
    Row *arg2 = 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< Row > *)jarg1; 
    arg2 = (Row *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Row const & type is null", 0);
      return ;
    } 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Push((Row const &)*arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListTableRow_Pop(void * jarg1) {
    void * jresult ;
    DataStructures::List< Row > *arg1 = (DataStructures::List< Row > *) 0 ;
    Row *result = 0 ;
    
    arg1 = (DataStructures::List< Row > *)jarg1; 
    result = (Row *) &(arg1)->Pop();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListTableRow_Insert__SWIG_0(void * jarg1, void * jarg2, unsigned int jarg3, char * jarg4, unsigned int jarg5) {
    DataStructures::List< Row > *arg1 = (DataStructures::List< Row > *) 0 ;
    Row *arg2 = 0 ;
    unsigned int arg3 ;
    char *arg4 = (char *) 0 ;
    unsigned int arg5 ;
    
    arg1 = (DataStructures::List< Row > *)jarg1; 
    arg2 = (Row *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Row const & type is null", 0);
      return ;
    } 
    arg3 = (unsigned int)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (unsigned int)jarg5; 
    (arg1)->Insert((Row const &)*arg2,arg3,(char const *)arg4,arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListTableRow_Insert__SWIG_1(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< Row > *arg1 = (DataStructures::List< Row > *) 0 ;
    Row *arg2 = 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< Row > *)jarg1; 
    arg2 = (Row *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Row const & type is null", 0);
      return ;
    } 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Insert((Row const &)*arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListTableRow_Replace__SWIG_0(void * jarg1, void * jarg2, void * jarg3, unsigned int jarg4, char * jarg5, unsigned int jarg6) {
    DataStructures::List< Row > *arg1 = (DataStructures::List< Row > *) 0 ;
    Row *arg2 = 0 ;
    Row arg3 ;
    unsigned int arg4 ;
    char *arg5 = (char *) 0 ;
    unsigned int arg6 ;
    Row const *argp3 ;
    
    arg1 = (DataStructures::List< Row > *)jarg1; 
    arg2 = (Row *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Row const & type is null", 0);
      return ;
    } 
    argp3 = (Row *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null Row const", 0);
      return ;
    }
    arg3 = *argp3; 
    arg4 = (unsigned int)jarg4; 
    arg5 = (char *)jarg5; 
    arg6 = (unsigned int)jarg6; 
    (arg1)->Replace((Row const &)*arg2,arg3,arg4,(char const *)arg5,arg6);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListTableRow_Replace__SWIG_1(void * jarg1, void * jarg2) {
    DataStructures::List< Row > *arg1 = (DataStructures::List< Row > *) 0 ;
    Row *arg2 = 0 ;
    
    arg1 = (DataStructures::List< Row > *)jarg1; 
    arg2 = (Row *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Row const & type is null", 0);
      return ;
    } 
    (arg1)->Replace((Row const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListTableRow_RemoveAtIndex(void * jarg1, unsigned int jarg2) {
    DataStructures::List< Row > *arg1 = (DataStructures::List< Row > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< Row > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveAtIndex(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListTableRow_RemoveAtIndexFast(void * jarg1, unsigned int jarg2) {
    DataStructures::List< Row > *arg1 = (DataStructures::List< Row > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< Row > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveAtIndexFast(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListTableRow_RemoveFromEnd__SWIG_0(void * jarg1, unsigned int jarg2) {
    DataStructures::List< Row > *arg1 = (DataStructures::List< Row > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< Row > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveFromEnd(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListTableRow_RemoveFromEnd__SWIG_1(void * jarg1) {
    DataStructures::List< Row > *arg1 = (DataStructures::List< Row > *) 0 ;
    
    arg1 = (DataStructures::List< Row > *)jarg1; 
    (arg1)->RemoveFromEnd();
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetListTableRow_Size(void * jarg1) {
    unsigned int jresult ;
    DataStructures::List< Row > *arg1 = (DataStructures::List< Row > *) 0 ;
    unsigned int result;
    
    arg1 = (DataStructures::List< Row > *)jarg1; 
    result = (unsigned int)((DataStructures::List< Row > const *)arg1)->Size();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListTableRow_Clear(void * jarg1, unsigned int jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< Row > *arg1 = (DataStructures::List< Row > *) 0 ;
    bool arg2 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< Row > *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Clear(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListTableRow_Preallocate(void * jarg1, unsigned int jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< Row > *arg1 = (DataStructures::List< Row > *) 0 ;
    unsigned int arg2 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< Row > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Preallocate(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListTableRow_Compress(void * jarg1, char * jarg2, unsigned int jarg3) {
    DataStructures::List< Row > *arg1 = (DataStructures::List< Row > *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned int arg3 ;
    
    arg1 = (DataStructures::List< Row > *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned int)jarg3; 
    (arg1)->Compress((char const *)arg2,arg3);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetListFileListNode__SWIG_0() {
    void * jresult ;
    DataStructures::List< RakNet::FileListNode > *result = 0 ;
    
    result = (DataStructures::List< RakNet::FileListNode > *)new DataStructures::List< RakNet::FileListNode >();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_RakNetListFileListNode(void * jarg1) {
    DataStructures::List< RakNet::FileListNode > *arg1 = (DataStructures::List< RakNet::FileListNode > *) 0 ;
    
    arg1 = (DataStructures::List< RakNet::FileListNode > *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetListFileListNode__SWIG_1(void * jarg1) {
    void * jresult ;
    DataStructures::List< RakNet::FileListNode > *arg1 = 0 ;
    DataStructures::List< RakNet::FileListNode > *result = 0 ;
    
    arg1 = (DataStructures::List< RakNet::FileListNode > *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< RakNet::FileListNode > const & type is null", 0);
      return 0;
    } 
    result = (DataStructures::List< RakNet::FileListNode > *)new DataStructures::List< RakNet::FileListNode >((DataStructures::List< RakNet::FileListNode > const &)*arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListFileListNode_CopyData(void * jarg1, void * jarg2) {
    void * jresult ;
    DataStructures::List< RakNet::FileListNode > *arg1 = (DataStructures::List< RakNet::FileListNode > *) 0 ;
    DataStructures::List< RakNet::FileListNode > *arg2 = 0 ;
    DataStructures::List< RakNet::FileListNode > *result = 0 ;
    
    arg1 = (DataStructures::List< RakNet::FileListNode > *)jarg1; 
    arg2 = (DataStructures::List< RakNet::FileListNode > *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< RakNet::FileListNode > const & type is null", 0);
      return 0;
    } 
    result = (DataStructures::List< RakNet::FileListNode > *) &(arg1)->operator =((DataStructures::List< RakNet::FileListNode > const &)*arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListFileListNode_Get(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    DataStructures::List< RakNet::FileListNode > *arg1 = (DataStructures::List< RakNet::FileListNode > *) 0 ;
    unsigned int arg2 ;
    RakNet::FileListNode *result = 0 ;
    
    arg1 = (DataStructures::List< RakNet::FileListNode > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (RakNet::FileListNode *) &((DataStructures::List< RakNet::FileListNode > const *)arg1)->Get(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListFileListNode_Push(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< RakNet::FileListNode > *arg1 = (DataStructures::List< RakNet::FileListNode > *) 0 ;
    RakNet::FileListNode *arg2 = 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< RakNet::FileListNode > *)jarg1; 
    arg2 = (RakNet::FileListNode *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::FileListNode const & type is null", 0);
      return ;
    } 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Push((RakNet::FileListNode const &)*arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListFileListNode_Pop(void * jarg1) {
    void * jresult ;
    DataStructures::List< RakNet::FileListNode > *arg1 = (DataStructures::List< RakNet::FileListNode > *) 0 ;
    RakNet::FileListNode *result = 0 ;
    
    arg1 = (DataStructures::List< RakNet::FileListNode > *)jarg1; 
    result = (RakNet::FileListNode *) &(arg1)->Pop();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListFileListNode_Insert__SWIG_0(void * jarg1, void * jarg2, unsigned int jarg3, char * jarg4, unsigned int jarg5) {
    DataStructures::List< RakNet::FileListNode > *arg1 = (DataStructures::List< RakNet::FileListNode > *) 0 ;
    RakNet::FileListNode *arg2 = 0 ;
    unsigned int arg3 ;
    char *arg4 = (char *) 0 ;
    unsigned int arg5 ;
    
    arg1 = (DataStructures::List< RakNet::FileListNode > *)jarg1; 
    arg2 = (RakNet::FileListNode *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::FileListNode const & type is null", 0);
      return ;
    } 
    arg3 = (unsigned int)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (unsigned int)jarg5; 
    (arg1)->Insert((RakNet::FileListNode const &)*arg2,arg3,(char const *)arg4,arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListFileListNode_Insert__SWIG_1(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< RakNet::FileListNode > *arg1 = (DataStructures::List< RakNet::FileListNode > *) 0 ;
    RakNet::FileListNode *arg2 = 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< RakNet::FileListNode > *)jarg1; 
    arg2 = (RakNet::FileListNode *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::FileListNode const & type is null", 0);
      return ;
    } 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Insert((RakNet::FileListNode const &)*arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListFileListNode_Replace__SWIG_0(void * jarg1, void * jarg2, void * jarg3, unsigned int jarg4, char * jarg5, unsigned int jarg6) {
    DataStructures::List< RakNet::FileListNode > *arg1 = (DataStructures::List< RakNet::FileListNode > *) 0 ;
    RakNet::FileListNode *arg2 = 0 ;
    SwigValueWrapper< RakNet::FileListNode > arg3 ;
    unsigned int arg4 ;
    char *arg5 = (char *) 0 ;
    unsigned int arg6 ;
    RakNet::FileListNode const *argp3 ;
    
    arg1 = (DataStructures::List< RakNet::FileListNode > *)jarg1; 
    arg2 = (RakNet::FileListNode *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::FileListNode const & type is null", 0);
      return ;
    } 
    argp3 = (RakNet::FileListNode *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null RakNet::FileListNode const", 0);
      return ;
    }
    arg3 = *argp3; 
    arg4 = (unsigned int)jarg4; 
    arg5 = (char *)jarg5; 
    arg6 = (unsigned int)jarg6; 
    (arg1)->Replace((RakNet::FileListNode const &)*arg2,arg3,arg4,(char const *)arg5,arg6);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListFileListNode_Replace__SWIG_1(void * jarg1, void * jarg2) {
    DataStructures::List< RakNet::FileListNode > *arg1 = (DataStructures::List< RakNet::FileListNode > *) 0 ;
    RakNet::FileListNode *arg2 = 0 ;
    
    arg1 = (DataStructures::List< RakNet::FileListNode > *)jarg1; 
    arg2 = (RakNet::FileListNode *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "RakNet::FileListNode const & type is null", 0);
      return ;
    } 
    (arg1)->Replace((RakNet::FileListNode const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListFileListNode_RemoveAtIndex(void * jarg1, unsigned int jarg2) {
    DataStructures::List< RakNet::FileListNode > *arg1 = (DataStructures::List< RakNet::FileListNode > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< RakNet::FileListNode > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveAtIndex(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListFileListNode_RemoveAtIndexFast(void * jarg1, unsigned int jarg2) {
    DataStructures::List< RakNet::FileListNode > *arg1 = (DataStructures::List< RakNet::FileListNode > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< RakNet::FileListNode > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveAtIndexFast(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListFileListNode_RemoveFromEnd__SWIG_0(void * jarg1, unsigned int jarg2) {
    DataStructures::List< RakNet::FileListNode > *arg1 = (DataStructures::List< RakNet::FileListNode > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< RakNet::FileListNode > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveFromEnd(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListFileListNode_RemoveFromEnd__SWIG_1(void * jarg1) {
    DataStructures::List< RakNet::FileListNode > *arg1 = (DataStructures::List< RakNet::FileListNode > *) 0 ;
    
    arg1 = (DataStructures::List< RakNet::FileListNode > *)jarg1; 
    (arg1)->RemoveFromEnd();
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetListFileListNode_Size(void * jarg1) {
    unsigned int jresult ;
    DataStructures::List< RakNet::FileListNode > *arg1 = (DataStructures::List< RakNet::FileListNode > *) 0 ;
    unsigned int result;
    
    arg1 = (DataStructures::List< RakNet::FileListNode > *)jarg1; 
    result = (unsigned int)((DataStructures::List< RakNet::FileListNode > const *)arg1)->Size();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListFileListNode_Clear(void * jarg1, unsigned int jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< RakNet::FileListNode > *arg1 = (DataStructures::List< RakNet::FileListNode > *) 0 ;
    bool arg2 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< RakNet::FileListNode > *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Clear(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListFileListNode_Preallocate(void * jarg1, unsigned int jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< RakNet::FileListNode > *arg1 = (DataStructures::List< RakNet::FileListNode > *) 0 ;
    unsigned int arg2 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< RakNet::FileListNode > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Preallocate(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListFileListNode_Compress(void * jarg1, char * jarg2, unsigned int jarg3) {
    DataStructures::List< RakNet::FileListNode > *arg1 = (DataStructures::List< RakNet::FileListNode > *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned int arg3 ;
    
    arg1 = (DataStructures::List< RakNet::FileListNode > *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned int)jarg3; 
    (arg1)->Compress((char const *)arg2,arg3);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetListFilterQuery__SWIG_0() {
    void * jresult ;
    DataStructures::List< FilterQuery > *result = 0 ;
    
    result = (DataStructures::List< FilterQuery > *)new DataStructures::List< FilterQuery >();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_RakNetListFilterQuery(void * jarg1) {
    DataStructures::List< FilterQuery > *arg1 = (DataStructures::List< FilterQuery > *) 0 ;
    
    arg1 = (DataStructures::List< FilterQuery > *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetListFilterQuery__SWIG_1(void * jarg1) {
    void * jresult ;
    DataStructures::List< FilterQuery > *arg1 = 0 ;
    DataStructures::List< FilterQuery > *result = 0 ;
    
    arg1 = (DataStructures::List< FilterQuery > *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< FilterQuery > const & type is null", 0);
      return 0;
    } 
    result = (DataStructures::List< FilterQuery > *)new DataStructures::List< FilterQuery >((DataStructures::List< FilterQuery > const &)*arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListFilterQuery_CopyData(void * jarg1, void * jarg2) {
    void * jresult ;
    DataStructures::List< FilterQuery > *arg1 = (DataStructures::List< FilterQuery > *) 0 ;
    DataStructures::List< FilterQuery > *arg2 = 0 ;
    DataStructures::List< FilterQuery > *result = 0 ;
    
    arg1 = (DataStructures::List< FilterQuery > *)jarg1; 
    arg2 = (DataStructures::List< FilterQuery > *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< FilterQuery > const & type is null", 0);
      return 0;
    } 
    result = (DataStructures::List< FilterQuery > *) &(arg1)->operator =((DataStructures::List< FilterQuery > const &)*arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListFilterQuery_Get(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    DataStructures::List< FilterQuery > *arg1 = (DataStructures::List< FilterQuery > *) 0 ;
    unsigned int arg2 ;
    FilterQuery *result = 0 ;
    
    arg1 = (DataStructures::List< FilterQuery > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (FilterQuery *) &((DataStructures::List< FilterQuery > const *)arg1)->Get(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListFilterQuery_Push(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< FilterQuery > *arg1 = (DataStructures::List< FilterQuery > *) 0 ;
    FilterQuery *arg2 = 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< FilterQuery > *)jarg1; 
    arg2 = (FilterQuery *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "FilterQuery const & type is null", 0);
      return ;
    } 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Push((FilterQuery const &)*arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListFilterQuery_Pop(void * jarg1) {
    void * jresult ;
    DataStructures::List< FilterQuery > *arg1 = (DataStructures::List< FilterQuery > *) 0 ;
    FilterQuery *result = 0 ;
    
    arg1 = (DataStructures::List< FilterQuery > *)jarg1; 
    result = (FilterQuery *) &(arg1)->Pop();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListFilterQuery_Insert__SWIG_0(void * jarg1, void * jarg2, unsigned int jarg3, char * jarg4, unsigned int jarg5) {
    DataStructures::List< FilterQuery > *arg1 = (DataStructures::List< FilterQuery > *) 0 ;
    FilterQuery *arg2 = 0 ;
    unsigned int arg3 ;
    char *arg4 = (char *) 0 ;
    unsigned int arg5 ;
    
    arg1 = (DataStructures::List< FilterQuery > *)jarg1; 
    arg2 = (FilterQuery *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "FilterQuery const & type is null", 0);
      return ;
    } 
    arg3 = (unsigned int)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (unsigned int)jarg5; 
    (arg1)->Insert((FilterQuery const &)*arg2,arg3,(char const *)arg4,arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListFilterQuery_Insert__SWIG_1(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< FilterQuery > *arg1 = (DataStructures::List< FilterQuery > *) 0 ;
    FilterQuery *arg2 = 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< FilterQuery > *)jarg1; 
    arg2 = (FilterQuery *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "FilterQuery const & type is null", 0);
      return ;
    } 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Insert((FilterQuery const &)*arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListFilterQuery_Replace__SWIG_0(void * jarg1, void * jarg2, void * jarg3, unsigned int jarg4, char * jarg5, unsigned int jarg6) {
    DataStructures::List< FilterQuery > *arg1 = (DataStructures::List< FilterQuery > *) 0 ;
    FilterQuery *arg2 = 0 ;
    FilterQuery arg3 ;
    unsigned int arg4 ;
    char *arg5 = (char *) 0 ;
    unsigned int arg6 ;
    FilterQuery const *argp3 ;
    
    arg1 = (DataStructures::List< FilterQuery > *)jarg1; 
    arg2 = (FilterQuery *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "FilterQuery const & type is null", 0);
      return ;
    } 
    argp3 = (FilterQuery *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null FilterQuery const", 0);
      return ;
    }
    arg3 = *argp3; 
    arg4 = (unsigned int)jarg4; 
    arg5 = (char *)jarg5; 
    arg6 = (unsigned int)jarg6; 
    (arg1)->Replace((FilterQuery const &)*arg2,arg3,arg4,(char const *)arg5,arg6);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListFilterQuery_Replace__SWIG_1(void * jarg1, void * jarg2) {
    DataStructures::List< FilterQuery > *arg1 = (DataStructures::List< FilterQuery > *) 0 ;
    FilterQuery *arg2 = 0 ;
    
    arg1 = (DataStructures::List< FilterQuery > *)jarg1; 
    arg2 = (FilterQuery *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "FilterQuery const & type is null", 0);
      return ;
    } 
    (arg1)->Replace((FilterQuery const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListFilterQuery_RemoveAtIndex(void * jarg1, unsigned int jarg2) {
    DataStructures::List< FilterQuery > *arg1 = (DataStructures::List< FilterQuery > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< FilterQuery > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveAtIndex(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListFilterQuery_RemoveAtIndexFast(void * jarg1, unsigned int jarg2) {
    DataStructures::List< FilterQuery > *arg1 = (DataStructures::List< FilterQuery > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< FilterQuery > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveAtIndexFast(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListFilterQuery_RemoveFromEnd__SWIG_0(void * jarg1, unsigned int jarg2) {
    DataStructures::List< FilterQuery > *arg1 = (DataStructures::List< FilterQuery > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< FilterQuery > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveFromEnd(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListFilterQuery_RemoveFromEnd__SWIG_1(void * jarg1) {
    DataStructures::List< FilterQuery > *arg1 = (DataStructures::List< FilterQuery > *) 0 ;
    
    arg1 = (DataStructures::List< FilterQuery > *)jarg1; 
    (arg1)->RemoveFromEnd();
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetListFilterQuery_Size(void * jarg1) {
    unsigned int jresult ;
    DataStructures::List< FilterQuery > *arg1 = (DataStructures::List< FilterQuery > *) 0 ;
    unsigned int result;
    
    arg1 = (DataStructures::List< FilterQuery > *)jarg1; 
    result = (unsigned int)((DataStructures::List< FilterQuery > const *)arg1)->Size();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListFilterQuery_Clear(void * jarg1, unsigned int jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< FilterQuery > *arg1 = (DataStructures::List< FilterQuery > *) 0 ;
    bool arg2 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< FilterQuery > *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Clear(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListFilterQuery_Preallocate(void * jarg1, unsigned int jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< FilterQuery > *arg1 = (DataStructures::List< FilterQuery > *) 0 ;
    unsigned int arg2 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< FilterQuery > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Preallocate(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListFilterQuery_Compress(void * jarg1, char * jarg2, unsigned int jarg3) {
    DataStructures::List< FilterQuery > *arg1 = (DataStructures::List< FilterQuery > *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned int arg3 ;
    
    arg1 = (DataStructures::List< FilterQuery > *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned int)jarg3; 
    (arg1)->Compress((char const *)arg2,arg3);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetListSortQuery__SWIG_0() {
    void * jresult ;
    DataStructures::List< SortQuery > *result = 0 ;
    
    result = (DataStructures::List< SortQuery > *)new DataStructures::List< SortQuery >();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_RakNetListSortQuery(void * jarg1) {
    DataStructures::List< SortQuery > *arg1 = (DataStructures::List< SortQuery > *) 0 ;
    
    arg1 = (DataStructures::List< SortQuery > *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetListSortQuery__SWIG_1(void * jarg1) {
    void * jresult ;
    DataStructures::List< SortQuery > *arg1 = 0 ;
    DataStructures::List< SortQuery > *result = 0 ;
    
    arg1 = (DataStructures::List< SortQuery > *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< SortQuery > const & type is null", 0);
      return 0;
    } 
    result = (DataStructures::List< SortQuery > *)new DataStructures::List< SortQuery >((DataStructures::List< SortQuery > const &)*arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListSortQuery_CopyData(void * jarg1, void * jarg2) {
    void * jresult ;
    DataStructures::List< SortQuery > *arg1 = (DataStructures::List< SortQuery > *) 0 ;
    DataStructures::List< SortQuery > *arg2 = 0 ;
    DataStructures::List< SortQuery > *result = 0 ;
    
    arg1 = (DataStructures::List< SortQuery > *)jarg1; 
    arg2 = (DataStructures::List< SortQuery > *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< SortQuery > const & type is null", 0);
      return 0;
    } 
    result = (DataStructures::List< SortQuery > *) &(arg1)->operator =((DataStructures::List< SortQuery > const &)*arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListSortQuery_Get(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    DataStructures::List< SortQuery > *arg1 = (DataStructures::List< SortQuery > *) 0 ;
    unsigned int arg2 ;
    SortQuery *result = 0 ;
    
    arg1 = (DataStructures::List< SortQuery > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (SortQuery *) &((DataStructures::List< SortQuery > const *)arg1)->Get(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListSortQuery_Push(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< SortQuery > *arg1 = (DataStructures::List< SortQuery > *) 0 ;
    SortQuery *arg2 = 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< SortQuery > *)jarg1; 
    arg2 = (SortQuery *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SortQuery const & type is null", 0);
      return ;
    } 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Push((SortQuery const &)*arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListSortQuery_Pop(void * jarg1) {
    void * jresult ;
    DataStructures::List< SortQuery > *arg1 = (DataStructures::List< SortQuery > *) 0 ;
    SortQuery *result = 0 ;
    
    arg1 = (DataStructures::List< SortQuery > *)jarg1; 
    result = (SortQuery *) &(arg1)->Pop();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListSortQuery_Insert__SWIG_0(void * jarg1, void * jarg2, unsigned int jarg3, char * jarg4, unsigned int jarg5) {
    DataStructures::List< SortQuery > *arg1 = (DataStructures::List< SortQuery > *) 0 ;
    SortQuery *arg2 = 0 ;
    unsigned int arg3 ;
    char *arg4 = (char *) 0 ;
    unsigned int arg5 ;
    
    arg1 = (DataStructures::List< SortQuery > *)jarg1; 
    arg2 = (SortQuery *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SortQuery const & type is null", 0);
      return ;
    } 
    arg3 = (unsigned int)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (unsigned int)jarg5; 
    (arg1)->Insert((SortQuery const &)*arg2,arg3,(char const *)arg4,arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListSortQuery_Insert__SWIG_1(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< SortQuery > *arg1 = (DataStructures::List< SortQuery > *) 0 ;
    SortQuery *arg2 = 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< SortQuery > *)jarg1; 
    arg2 = (SortQuery *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SortQuery const & type is null", 0);
      return ;
    } 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Insert((SortQuery const &)*arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListSortQuery_Replace__SWIG_0(void * jarg1, void * jarg2, void * jarg3, unsigned int jarg4, char * jarg5, unsigned int jarg6) {
    DataStructures::List< SortQuery > *arg1 = (DataStructures::List< SortQuery > *) 0 ;
    SortQuery *arg2 = 0 ;
    SortQuery arg3 ;
    unsigned int arg4 ;
    char *arg5 = (char *) 0 ;
    unsigned int arg6 ;
    SortQuery const *argp3 ;
    
    arg1 = (DataStructures::List< SortQuery > *)jarg1; 
    arg2 = (SortQuery *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SortQuery const & type is null", 0);
      return ;
    } 
    argp3 = (SortQuery *)jarg3; 
    if (!argp3) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null SortQuery const", 0);
      return ;
    }
    arg3 = *argp3; 
    arg4 = (unsigned int)jarg4; 
    arg5 = (char *)jarg5; 
    arg6 = (unsigned int)jarg6; 
    (arg1)->Replace((SortQuery const &)*arg2,arg3,arg4,(char const *)arg5,arg6);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListSortQuery_Replace__SWIG_1(void * jarg1, void * jarg2) {
    DataStructures::List< SortQuery > *arg1 = (DataStructures::List< SortQuery > *) 0 ;
    SortQuery *arg2 = 0 ;
    
    arg1 = (DataStructures::List< SortQuery > *)jarg1; 
    arg2 = (SortQuery *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "SortQuery const & type is null", 0);
      return ;
    } 
    (arg1)->Replace((SortQuery const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListSortQuery_RemoveAtIndex(void * jarg1, unsigned int jarg2) {
    DataStructures::List< SortQuery > *arg1 = (DataStructures::List< SortQuery > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< SortQuery > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveAtIndex(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListSortQuery_RemoveAtIndexFast(void * jarg1, unsigned int jarg2) {
    DataStructures::List< SortQuery > *arg1 = (DataStructures::List< SortQuery > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< SortQuery > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveAtIndexFast(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListSortQuery_RemoveFromEnd__SWIG_0(void * jarg1, unsigned int jarg2) {
    DataStructures::List< SortQuery > *arg1 = (DataStructures::List< SortQuery > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< SortQuery > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveFromEnd(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListSortQuery_RemoveFromEnd__SWIG_1(void * jarg1) {
    DataStructures::List< SortQuery > *arg1 = (DataStructures::List< SortQuery > *) 0 ;
    
    arg1 = (DataStructures::List< SortQuery > *)jarg1; 
    (arg1)->RemoveFromEnd();
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetListSortQuery_Size(void * jarg1) {
    unsigned int jresult ;
    DataStructures::List< SortQuery > *arg1 = (DataStructures::List< SortQuery > *) 0 ;
    unsigned int result;
    
    arg1 = (DataStructures::List< SortQuery > *)jarg1; 
    result = (unsigned int)((DataStructures::List< SortQuery > const *)arg1)->Size();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListSortQuery_Clear(void * jarg1, unsigned int jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< SortQuery > *arg1 = (DataStructures::List< SortQuery > *) 0 ;
    bool arg2 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< SortQuery > *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Clear(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListSortQuery_Preallocate(void * jarg1, unsigned int jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< SortQuery > *arg1 = (DataStructures::List< SortQuery > *) 0 ;
    unsigned int arg2 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< SortQuery > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Preallocate(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListSortQuery_Compress(void * jarg1, char * jarg2, unsigned int jarg3) {
    DataStructures::List< SortQuery > *arg1 = (DataStructures::List< SortQuery > *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned int arg3 ;
    
    arg1 = (DataStructures::List< SortQuery > *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned int)jarg3; 
    (arg1)->Compress((char const *)arg2,arg3);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetListCellPointer__SWIG_0() {
    void * jresult ;
    DataStructures::List< Cell * > *result = 0 ;
    
    result = (DataStructures::List< Cell * > *)new DataStructures::List< Cell * >();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_RakNetListCellPointer(void * jarg1) {
    DataStructures::List< Cell * > *arg1 = (DataStructures::List< Cell * > *) 0 ;
    
    arg1 = (DataStructures::List< Cell * > *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetListCellPointer__SWIG_1(void * jarg1) {
    void * jresult ;
    DataStructures::List< Cell * > *arg1 = 0 ;
    DataStructures::List< Cell * > *result = 0 ;
    
    arg1 = (DataStructures::List< Cell * > *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< Cell * > const & type is null", 0);
      return 0;
    } 
    result = (DataStructures::List< Cell * > *)new DataStructures::List< Cell * >((DataStructures::List< Cell * > const &)*arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListCellPointer_CopyData(void * jarg1, void * jarg2) {
    void * jresult ;
    DataStructures::List< Cell * > *arg1 = (DataStructures::List< Cell * > *) 0 ;
    DataStructures::List< Cell * > *arg2 = 0 ;
    DataStructures::List< Cell * > *result = 0 ;
    
    arg1 = (DataStructures::List< Cell * > *)jarg1; 
    arg2 = (DataStructures::List< Cell * > *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< Cell * > const & type is null", 0);
      return 0;
    } 
    result = (DataStructures::List< Cell * > *) &(arg1)->operator =((DataStructures::List< Cell * > const &)*arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListCellPointer_Push(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< Cell * > *arg1 = (DataStructures::List< Cell * > *) 0 ;
    Cell **arg2 = 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    Cell *temp2 = 0 ;
    
    arg1 = (DataStructures::List< Cell * > *)jarg1; 
    temp2 = (Cell *)jarg2;
    arg2 = (Cell **)&temp2; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Push((Cell *const &)*arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListCellPointer_Insert__SWIG_0(void * jarg1, void * jarg2, unsigned int jarg3, char * jarg4, unsigned int jarg5) {
    DataStructures::List< Cell * > *arg1 = (DataStructures::List< Cell * > *) 0 ;
    Cell **arg2 = 0 ;
    unsigned int arg3 ;
    char *arg4 = (char *) 0 ;
    unsigned int arg5 ;
    Cell *temp2 = 0 ;
    
    arg1 = (DataStructures::List< Cell * > *)jarg1; 
    temp2 = (Cell *)jarg2;
    arg2 = (Cell **)&temp2; 
    arg3 = (unsigned int)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (unsigned int)jarg5; 
    (arg1)->Insert((Cell *const &)*arg2,arg3,(char const *)arg4,arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListCellPointer_Insert__SWIG_1(void * jarg1, void * jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< Cell * > *arg1 = (DataStructures::List< Cell * > *) 0 ;
    Cell **arg2 = 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    Cell *temp2 = 0 ;
    
    arg1 = (DataStructures::List< Cell * > *)jarg1; 
    temp2 = (Cell *)jarg2;
    arg2 = (Cell **)&temp2; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Insert((Cell *const &)*arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListCellPointer_Replace__SWIG_0(void * jarg1, void * jarg2, void * jarg3, unsigned int jarg4, char * jarg5, unsigned int jarg6) {
    DataStructures::List< Cell * > *arg1 = (DataStructures::List< Cell * > *) 0 ;
    Cell **arg2 = 0 ;
    Cell *arg3 = (Cell *) (Cell *)0 ;
    unsigned int arg4 ;
    char *arg5 = (char *) 0 ;
    unsigned int arg6 ;
    Cell *temp2 = 0 ;
    
    arg1 = (DataStructures::List< Cell * > *)jarg1; 
    temp2 = (Cell *)jarg2;
    arg2 = (Cell **)&temp2; 
    arg3 = (Cell *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    arg5 = (char *)jarg5; 
    arg6 = (unsigned int)jarg6; 
    (arg1)->Replace((Cell *const &)*arg2,arg3,arg4,(char const *)arg5,arg6);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListCellPointer_Replace__SWIG_1(void * jarg1, void * jarg2) {
    DataStructures::List< Cell * > *arg1 = (DataStructures::List< Cell * > *) 0 ;
    Cell **arg2 = 0 ;
    Cell *temp2 = 0 ;
    
    arg1 = (DataStructures::List< Cell * > *)jarg1; 
    temp2 = (Cell *)jarg2;
    arg2 = (Cell **)&temp2; 
    (arg1)->Replace((Cell *const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListCellPointer_RemoveAtIndex(void * jarg1, unsigned int jarg2) {
    DataStructures::List< Cell * > *arg1 = (DataStructures::List< Cell * > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< Cell * > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveAtIndex(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListCellPointer_RemoveAtIndexFast(void * jarg1, unsigned int jarg2) {
    DataStructures::List< Cell * > *arg1 = (DataStructures::List< Cell * > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< Cell * > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveAtIndexFast(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListCellPointer_RemoveFromEnd__SWIG_0(void * jarg1, unsigned int jarg2) {
    DataStructures::List< Cell * > *arg1 = (DataStructures::List< Cell * > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< Cell * > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveFromEnd(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListCellPointer_RemoveFromEnd__SWIG_1(void * jarg1) {
    DataStructures::List< Cell * > *arg1 = (DataStructures::List< Cell * > *) 0 ;
    
    arg1 = (DataStructures::List< Cell * > *)jarg1; 
    (arg1)->RemoveFromEnd();
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetListCellPointer_GetIndexOf(void * jarg1, void * jarg2) {
    unsigned int jresult ;
    DataStructures::List< Cell * > *arg1 = (DataStructures::List< Cell * > *) 0 ;
    Cell **arg2 = 0 ;
    Cell *temp2 = 0 ;
    unsigned int result;
    
    arg1 = (DataStructures::List< Cell * > *)jarg1; 
    temp2 = (Cell *)jarg2;
    arg2 = (Cell **)&temp2; 
    result = (unsigned int)((DataStructures::List< Cell * > const *)arg1)->GetIndexOf((Cell *const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetListCellPointer_Size(void * jarg1) {
    unsigned int jresult ;
    DataStructures::List< Cell * > *arg1 = (DataStructures::List< Cell * > *) 0 ;
    unsigned int result;
    
    arg1 = (DataStructures::List< Cell * > *)jarg1; 
    result = (unsigned int)((DataStructures::List< Cell * > const *)arg1)->Size();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListCellPointer_Clear(void * jarg1, unsigned int jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< Cell * > *arg1 = (DataStructures::List< Cell * > *) 0 ;
    bool arg2 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< Cell * > *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Clear(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListCellPointer_Preallocate(void * jarg1, unsigned int jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< Cell * > *arg1 = (DataStructures::List< Cell * > *) 0 ;
    unsigned int arg2 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< Cell * > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Preallocate(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListCellPointer_Compress(void * jarg1, char * jarg2, unsigned int jarg3) {
    DataStructures::List< Cell * > *arg1 = (DataStructures::List< Cell * > *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned int arg3 ;
    
    arg1 = (DataStructures::List< Cell * > *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned int)jarg3; 
    (arg1)->Compress((char const *)arg2,arg3);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListCellPointer_GetHelper(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    DataStructures::List< Cell * > *arg1 = (DataStructures::List< Cell * > *) 0 ;
    unsigned int arg2 ;
    Cell *result = 0 ;
    
    arg1 = (DataStructures::List< Cell * > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (Cell *)DataStructures_List_Sl_Cell_Sm__Sg__GetHelper((DataStructures::List< Cell * > const *)arg1,arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListCellPointer_PopHelper(void * jarg1) {
    void * jresult ;
    DataStructures::List< Cell * > *arg1 = (DataStructures::List< Cell * > *) 0 ;
    Cell *result = 0 ;
    
    arg1 = (DataStructures::List< Cell * > *)jarg1; 
    result = (Cell *)DataStructures_List_Sl_Cell_Sm__Sg__PopHelper(arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_UnsignedShortPointer() {
    void * jresult ;
    UnsignedShortPointer *result = 0 ;
    
    result = (UnsignedShortPointer *)new_UnsignedShortPointer();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_UnsignedShortPointer(void * jarg1) {
    UnsignedShortPointer *arg1 = (UnsignedShortPointer *) 0 ;
    
    arg1 = (UnsignedShortPointer *)jarg1; 
    delete_UnsignedShortPointer(arg1);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UnsignedShortPointer_assign(void * jarg1, unsigned short jarg2) {
    UnsignedShortPointer *arg1 = (UnsignedShortPointer *) 0 ;
    unsigned short arg2 ;
    
    arg1 = (UnsignedShortPointer *)jarg1; 
    arg2 = (unsigned short)jarg2; 
    UnsignedShortPointer_assign(arg1,arg2);
  }
  
  
  SWIGEXPORT unsigned short SWIGSTDCALL CSharp_UnsignedShortPointer_value(void * jarg1) {
    unsigned short jresult ;
    UnsignedShortPointer *arg1 = (UnsignedShortPointer *) 0 ;
    unsigned short result;
    
    arg1 = (UnsignedShortPointer *)jarg1; 
    result = (unsigned short)UnsignedShortPointer_value(arg1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_UnsignedShortPointer_cast(void * jarg1) {
    void * jresult ;
    UnsignedShortPointer *arg1 = (UnsignedShortPointer *) 0 ;
    unsigned short *result = 0 ;
    
    arg1 = (UnsignedShortPointer *)jarg1; 
    result = (unsigned short *)UnsignedShortPointer_cast(arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_UnsignedShortPointer_frompointer(void * jarg1) {
    void * jresult ;
    unsigned short *arg1 = (unsigned short *) 0 ;
    UnsignedShortPointer *result = 0 ;
    
    arg1 = (unsigned short *)jarg1; 
    result = (UnsignedShortPointer *)UnsignedShortPointer_frompointer(arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetListUnsignedShort__SWIG_0() {
    void * jresult ;
    DataStructures::List< unsigned short > *result = 0 ;
    
    result = (DataStructures::List< unsigned short > *)new DataStructures::List< unsigned short >();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_RakNetListUnsignedShort(void * jarg1) {
    DataStructures::List< unsigned short > *arg1 = (DataStructures::List< unsigned short > *) 0 ;
    
    arg1 = (DataStructures::List< unsigned short > *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetListUnsignedShort__SWIG_1(void * jarg1) {
    void * jresult ;
    DataStructures::List< unsigned short > *arg1 = 0 ;
    DataStructures::List< unsigned short > *result = 0 ;
    
    arg1 = (DataStructures::List< unsigned short > *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< unsigned short > const & type is null", 0);
      return 0;
    } 
    result = (DataStructures::List< unsigned short > *)new DataStructures::List< unsigned short >((DataStructures::List< unsigned short > const &)*arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListUnsignedShort_CopyData(void * jarg1, void * jarg2) {
    void * jresult ;
    DataStructures::List< unsigned short > *arg1 = (DataStructures::List< unsigned short > *) 0 ;
    DataStructures::List< unsigned short > *arg2 = 0 ;
    DataStructures::List< unsigned short > *result = 0 ;
    
    arg1 = (DataStructures::List< unsigned short > *)jarg1; 
    arg2 = (DataStructures::List< unsigned short > *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< unsigned short > const & type is null", 0);
      return 0;
    } 
    result = (DataStructures::List< unsigned short > *) &(arg1)->operator =((DataStructures::List< unsigned short > const &)*arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListUnsignedShort_GetHelper(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    DataStructures::List< unsigned short > *arg1 = (DataStructures::List< unsigned short > *) 0 ;
    unsigned int arg2 ;
    unsigned short *result = 0 ;
    
    arg1 = (DataStructures::List< unsigned short > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (unsigned short *) &((DataStructures::List< unsigned short > const *)arg1)->Get(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListUnsignedShort_Push(void * jarg1, unsigned short jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< unsigned short > *arg1 = (DataStructures::List< unsigned short > *) 0 ;
    unsigned short *arg2 = 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    unsigned short temp2 ;
    
    arg1 = (DataStructures::List< unsigned short > *)jarg1; 
    temp2 = (unsigned short)jarg2; 
    arg2 = &temp2; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Push((unsigned short const &)*arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListUnsignedShort_PopHelper(void * jarg1) {
    void * jresult ;
    DataStructures::List< unsigned short > *arg1 = (DataStructures::List< unsigned short > *) 0 ;
    unsigned short *result = 0 ;
    
    arg1 = (DataStructures::List< unsigned short > *)jarg1; 
    result = (unsigned short *) &(arg1)->Pop();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListUnsignedShort_Insert__SWIG_0(void * jarg1, unsigned short jarg2, unsigned int jarg3, char * jarg4, unsigned int jarg5) {
    DataStructures::List< unsigned short > *arg1 = (DataStructures::List< unsigned short > *) 0 ;
    unsigned short *arg2 = 0 ;
    unsigned int arg3 ;
    char *arg4 = (char *) 0 ;
    unsigned int arg5 ;
    unsigned short temp2 ;
    
    arg1 = (DataStructures::List< unsigned short > *)jarg1; 
    temp2 = (unsigned short)jarg2; 
    arg2 = &temp2; 
    arg3 = (unsigned int)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (unsigned int)jarg5; 
    (arg1)->Insert((unsigned short const &)*arg2,arg3,(char const *)arg4,arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListUnsignedShort_Insert__SWIG_1(void * jarg1, unsigned short jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< unsigned short > *arg1 = (DataStructures::List< unsigned short > *) 0 ;
    unsigned short *arg2 = 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    unsigned short temp2 ;
    
    arg1 = (DataStructures::List< unsigned short > *)jarg1; 
    temp2 = (unsigned short)jarg2; 
    arg2 = &temp2; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Insert((unsigned short const &)*arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListUnsignedShort_Replace__SWIG_0(void * jarg1, unsigned short jarg2, unsigned short jarg3, unsigned int jarg4, char * jarg5, unsigned int jarg6) {
    DataStructures::List< unsigned short > *arg1 = (DataStructures::List< unsigned short > *) 0 ;
    unsigned short *arg2 = 0 ;
    unsigned short arg3 ;
    unsigned int arg4 ;
    char *arg5 = (char *) 0 ;
    unsigned int arg6 ;
    unsigned short temp2 ;
    
    arg1 = (DataStructures::List< unsigned short > *)jarg1; 
    temp2 = (unsigned short)jarg2; 
    arg2 = &temp2; 
    arg3 = (unsigned short)jarg3; 
    arg4 = (unsigned int)jarg4; 
    arg5 = (char *)jarg5; 
    arg6 = (unsigned int)jarg6; 
    (arg1)->Replace((unsigned short const &)*arg2,arg3,arg4,(char const *)arg5,arg6);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListUnsignedShort_Replace__SWIG_1(void * jarg1, unsigned short jarg2) {
    DataStructures::List< unsigned short > *arg1 = (DataStructures::List< unsigned short > *) 0 ;
    unsigned short *arg2 = 0 ;
    unsigned short temp2 ;
    
    arg1 = (DataStructures::List< unsigned short > *)jarg1; 
    temp2 = (unsigned short)jarg2; 
    arg2 = &temp2; 
    (arg1)->Replace((unsigned short const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListUnsignedShort_RemoveAtIndex(void * jarg1, unsigned int jarg2) {
    DataStructures::List< unsigned short > *arg1 = (DataStructures::List< unsigned short > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< unsigned short > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveAtIndex(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListUnsignedShort_RemoveAtIndexFast(void * jarg1, unsigned int jarg2) {
    DataStructures::List< unsigned short > *arg1 = (DataStructures::List< unsigned short > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< unsigned short > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveAtIndexFast(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListUnsignedShort_RemoveFromEnd__SWIG_0(void * jarg1, unsigned int jarg2) {
    DataStructures::List< unsigned short > *arg1 = (DataStructures::List< unsigned short > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< unsigned short > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveFromEnd(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListUnsignedShort_RemoveFromEnd__SWIG_1(void * jarg1) {
    DataStructures::List< unsigned short > *arg1 = (DataStructures::List< unsigned short > *) 0 ;
    
    arg1 = (DataStructures::List< unsigned short > *)jarg1; 
    (arg1)->RemoveFromEnd();
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetListUnsignedShort_GetIndexOf(void * jarg1, unsigned short jarg2) {
    unsigned int jresult ;
    DataStructures::List< unsigned short > *arg1 = (DataStructures::List< unsigned short > *) 0 ;
    unsigned short *arg2 = 0 ;
    unsigned short temp2 ;
    unsigned int result;
    
    arg1 = (DataStructures::List< unsigned short > *)jarg1; 
    temp2 = (unsigned short)jarg2; 
    arg2 = &temp2; 
    result = (unsigned int)((DataStructures::List< unsigned short > const *)arg1)->GetIndexOf((unsigned short const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetListUnsignedShort_Size(void * jarg1) {
    unsigned int jresult ;
    DataStructures::List< unsigned short > *arg1 = (DataStructures::List< unsigned short > *) 0 ;
    unsigned int result;
    
    arg1 = (DataStructures::List< unsigned short > *)jarg1; 
    result = (unsigned int)((DataStructures::List< unsigned short > const *)arg1)->Size();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListUnsignedShort_Clear(void * jarg1, unsigned int jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< unsigned short > *arg1 = (DataStructures::List< unsigned short > *) 0 ;
    bool arg2 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< unsigned short > *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Clear(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListUnsignedShort_Preallocate(void * jarg1, unsigned int jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< unsigned short > *arg1 = (DataStructures::List< unsigned short > *) 0 ;
    unsigned int arg2 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< unsigned short > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Preallocate(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListUnsignedShort_Compress(void * jarg1, char * jarg2, unsigned int jarg3) {
    DataStructures::List< unsigned short > *arg1 = (DataStructures::List< unsigned short > *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned int arg3 ;
    
    arg1 = (DataStructures::List< unsigned short > *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned int)jarg3; 
    (arg1)->Compress((char const *)arg2,arg3);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_UnsignedIntPointer() {
    void * jresult ;
    UnsignedIntPointer *result = 0 ;
    
    result = (UnsignedIntPointer *)new_UnsignedIntPointer();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_UnsignedIntPointer(void * jarg1) {
    UnsignedIntPointer *arg1 = (UnsignedIntPointer *) 0 ;
    
    arg1 = (UnsignedIntPointer *)jarg1; 
    delete_UnsignedIntPointer(arg1);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_UnsignedIntPointer_assign(void * jarg1, unsigned int jarg2) {
    UnsignedIntPointer *arg1 = (UnsignedIntPointer *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (UnsignedIntPointer *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    UnsignedIntPointer_assign(arg1,arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_UnsignedIntPointer_value(void * jarg1) {
    unsigned int jresult ;
    UnsignedIntPointer *arg1 = (UnsignedIntPointer *) 0 ;
    unsigned int result;
    
    arg1 = (UnsignedIntPointer *)jarg1; 
    result = (unsigned int)UnsignedIntPointer_value(arg1);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_UnsignedIntPointer_cast(void * jarg1) {
    void * jresult ;
    UnsignedIntPointer *arg1 = (UnsignedIntPointer *) 0 ;
    unsigned int *result = 0 ;
    
    arg1 = (UnsignedIntPointer *)jarg1; 
    result = (unsigned int *)UnsignedIntPointer_cast(arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_UnsignedIntPointer_frompointer(void * jarg1) {
    void * jresult ;
    unsigned int *arg1 = (unsigned int *) 0 ;
    UnsignedIntPointer *result = 0 ;
    
    arg1 = (unsigned int *)jarg1; 
    result = (UnsignedIntPointer *)UnsignedIntPointer_frompointer(arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetListUnsignedInt__SWIG_0() {
    void * jresult ;
    DataStructures::List< unsigned int > *result = 0 ;
    
    result = (DataStructures::List< unsigned int > *)new DataStructures::List< unsigned int >();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_RakNetListUnsignedInt(void * jarg1) {
    DataStructures::List< unsigned int > *arg1 = (DataStructures::List< unsigned int > *) 0 ;
    
    arg1 = (DataStructures::List< unsigned int > *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetListUnsignedInt__SWIG_1(void * jarg1) {
    void * jresult ;
    DataStructures::List< unsigned int > *arg1 = 0 ;
    DataStructures::List< unsigned int > *result = 0 ;
    
    arg1 = (DataStructures::List< unsigned int > *)jarg1;
    if (!arg1) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< unsigned int > const & type is null", 0);
      return 0;
    } 
    result = (DataStructures::List< unsigned int > *)new DataStructures::List< unsigned int >((DataStructures::List< unsigned int > const &)*arg1);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListUnsignedInt_CopyData(void * jarg1, void * jarg2) {
    void * jresult ;
    DataStructures::List< unsigned int > *arg1 = (DataStructures::List< unsigned int > *) 0 ;
    DataStructures::List< unsigned int > *arg2 = 0 ;
    DataStructures::List< unsigned int > *result = 0 ;
    
    arg1 = (DataStructures::List< unsigned int > *)jarg1; 
    arg2 = (DataStructures::List< unsigned int > *)jarg2;
    if (!arg2) {
      SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "DataStructures::List< unsigned int > const & type is null", 0);
      return 0;
    } 
    result = (DataStructures::List< unsigned int > *) &(arg1)->operator =((DataStructures::List< unsigned int > const &)*arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListUnsignedInt_GetHelper(void * jarg1, unsigned int jarg2) {
    void * jresult ;
    DataStructures::List< unsigned int > *arg1 = (DataStructures::List< unsigned int > *) 0 ;
    unsigned int arg2 ;
    unsigned int *result = 0 ;
    
    arg1 = (DataStructures::List< unsigned int > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    result = (unsigned int *) &((DataStructures::List< unsigned int > const *)arg1)->Get(arg2);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListUnsignedInt_Push(void * jarg1, unsigned int jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< unsigned int > *arg1 = (DataStructures::List< unsigned int > *) 0 ;
    unsigned int *arg2 = 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    unsigned int temp2 ;
    
    arg1 = (DataStructures::List< unsigned int > *)jarg1; 
    temp2 = (unsigned int)jarg2; 
    arg2 = &temp2; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Push((unsigned int const &)*arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetListUnsignedInt_PopHelper(void * jarg1) {
    void * jresult ;
    DataStructures::List< unsigned int > *arg1 = (DataStructures::List< unsigned int > *) 0 ;
    unsigned int *result = 0 ;
    
    arg1 = (DataStructures::List< unsigned int > *)jarg1; 
    result = (unsigned int *) &(arg1)->Pop();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListUnsignedInt_Insert__SWIG_0(void * jarg1, unsigned int jarg2, unsigned int jarg3, char * jarg4, unsigned int jarg5) {
    DataStructures::List< unsigned int > *arg1 = (DataStructures::List< unsigned int > *) 0 ;
    unsigned int *arg2 = 0 ;
    unsigned int arg3 ;
    char *arg4 = (char *) 0 ;
    unsigned int arg5 ;
    unsigned int temp2 ;
    
    arg1 = (DataStructures::List< unsigned int > *)jarg1; 
    temp2 = (unsigned int)jarg2; 
    arg2 = &temp2; 
    arg3 = (unsigned int)jarg3; 
    arg4 = (char *)jarg4; 
    arg5 = (unsigned int)jarg5; 
    (arg1)->Insert((unsigned int const &)*arg2,arg3,(char const *)arg4,arg5);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListUnsignedInt_Insert__SWIG_1(void * jarg1, unsigned int jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< unsigned int > *arg1 = (DataStructures::List< unsigned int > *) 0 ;
    unsigned int *arg2 = 0 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    unsigned int temp2 ;
    
    arg1 = (DataStructures::List< unsigned int > *)jarg1; 
    temp2 = (unsigned int)jarg2; 
    arg2 = &temp2; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Insert((unsigned int const &)*arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListUnsignedInt_Replace__SWIG_0(void * jarg1, unsigned int jarg2, unsigned int jarg3, unsigned int jarg4, char * jarg5, unsigned int jarg6) {
    DataStructures::List< unsigned int > *arg1 = (DataStructures::List< unsigned int > *) 0 ;
    unsigned int *arg2 = 0 ;
    unsigned int arg3 ;
    unsigned int arg4 ;
    char *arg5 = (char *) 0 ;
    unsigned int arg6 ;
    unsigned int temp2 ;
    
    arg1 = (DataStructures::List< unsigned int > *)jarg1; 
    temp2 = (unsigned int)jarg2; 
    arg2 = &temp2; 
    arg3 = (unsigned int)jarg3; 
    arg4 = (unsigned int)jarg4; 
    arg5 = (char *)jarg5; 
    arg6 = (unsigned int)jarg6; 
    (arg1)->Replace((unsigned int const &)*arg2,arg3,arg4,(char const *)arg5,arg6);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListUnsignedInt_Replace__SWIG_1(void * jarg1, unsigned int jarg2) {
    DataStructures::List< unsigned int > *arg1 = (DataStructures::List< unsigned int > *) 0 ;
    unsigned int *arg2 = 0 ;
    unsigned int temp2 ;
    
    arg1 = (DataStructures::List< unsigned int > *)jarg1; 
    temp2 = (unsigned int)jarg2; 
    arg2 = &temp2; 
    (arg1)->Replace((unsigned int const &)*arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListUnsignedInt_RemoveAtIndex(void * jarg1, unsigned int jarg2) {
    DataStructures::List< unsigned int > *arg1 = (DataStructures::List< unsigned int > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< unsigned int > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveAtIndex(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListUnsignedInt_RemoveAtIndexFast(void * jarg1, unsigned int jarg2) {
    DataStructures::List< unsigned int > *arg1 = (DataStructures::List< unsigned int > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< unsigned int > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveAtIndexFast(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListUnsignedInt_RemoveFromEnd__SWIG_0(void * jarg1, unsigned int jarg2) {
    DataStructures::List< unsigned int > *arg1 = (DataStructures::List< unsigned int > *) 0 ;
    unsigned int arg2 ;
    
    arg1 = (DataStructures::List< unsigned int > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    (arg1)->RemoveFromEnd(arg2);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListUnsignedInt_RemoveFromEnd__SWIG_1(void * jarg1) {
    DataStructures::List< unsigned int > *arg1 = (DataStructures::List< unsigned int > *) 0 ;
    
    arg1 = (DataStructures::List< unsigned int > *)jarg1; 
    (arg1)->RemoveFromEnd();
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetListUnsignedInt_GetIndexOf(void * jarg1, unsigned int jarg2) {
    unsigned int jresult ;
    DataStructures::List< unsigned int > *arg1 = (DataStructures::List< unsigned int > *) 0 ;
    unsigned int *arg2 = 0 ;
    unsigned int temp2 ;
    unsigned int result;
    
    arg1 = (DataStructures::List< unsigned int > *)jarg1; 
    temp2 = (unsigned int)jarg2; 
    arg2 = &temp2; 
    result = (unsigned int)((DataStructures::List< unsigned int > const *)arg1)->GetIndexOf((unsigned int const &)*arg2);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetListUnsignedInt_Size(void * jarg1) {
    unsigned int jresult ;
    DataStructures::List< unsigned int > *arg1 = (DataStructures::List< unsigned int > *) 0 ;
    unsigned int result;
    
    arg1 = (DataStructures::List< unsigned int > *)jarg1; 
    result = (unsigned int)((DataStructures::List< unsigned int > const *)arg1)->Size();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListUnsignedInt_Clear(void * jarg1, unsigned int jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< unsigned int > *arg1 = (DataStructures::List< unsigned int > *) 0 ;
    bool arg2 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< unsigned int > *)jarg1; 
    arg2 = jarg2 ? true : false; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Clear(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListUnsignedInt_Preallocate(void * jarg1, unsigned int jarg2, char * jarg3, unsigned int jarg4) {
    DataStructures::List< unsigned int > *arg1 = (DataStructures::List< unsigned int > *) 0 ;
    unsigned int arg2 ;
    char *arg3 = (char *) 0 ;
    unsigned int arg4 ;
    
    arg1 = (DataStructures::List< unsigned int > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    arg3 = (char *)jarg3; 
    arg4 = (unsigned int)jarg4; 
    (arg1)->Preallocate(arg2,(char const *)arg3,arg4);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetListUnsignedInt_Compress(void * jarg1, char * jarg2, unsigned int jarg3) {
    DataStructures::List< unsigned int > *arg1 = (DataStructures::List< unsigned int > *) 0 ;
    char *arg2 = (char *) 0 ;
    unsigned int arg3 ;
    
    arg1 = (DataStructures::List< unsigned int > *)jarg1; 
    arg2 = (char *)jarg2; 
    arg3 = (unsigned int)jarg3; 
    (arg1)->Compress((char const *)arg2,arg3);
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetPageRow_isLeaf_set(void * jarg1, unsigned int jarg2) {
    DataStructures::Page< unsigned int,Row *,16 > *arg1 = (DataStructures::Page< unsigned int,Row *,16 > *) 0 ;
    bool arg2 ;
    
    arg1 = (DataStructures::Page< unsigned int,Row *,16 > *)jarg1; 
    arg2 = jarg2 ? true : false; 
    if (arg1) (arg1)->isLeaf = arg2;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetPageRow_isLeaf_get(void * jarg1) {
    unsigned int jresult ;
    DataStructures::Page< unsigned int,Row *,16 > *arg1 = (DataStructures::Page< unsigned int,Row *,16 > *) 0 ;
    bool result;
    
    arg1 = (DataStructures::Page< unsigned int,Row *,16 > *)jarg1; 
    result = (bool) ((arg1)->isLeaf);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetPageRow_size_set(void * jarg1, int jarg2) {
    DataStructures::Page< unsigned int,Row *,16 > *arg1 = (DataStructures::Page< unsigned int,Row *,16 > *) 0 ;
    int arg2 ;
    
    arg1 = (DataStructures::Page< unsigned int,Row *,16 > *)jarg1; 
    arg2 = (int)jarg2; 
    if (arg1) (arg1)->size = arg2;
  }
  
  
  SWIGEXPORT int SWIGSTDCALL CSharp_RakNetPageRow_size_get(void * jarg1) {
    int jresult ;
    DataStructures::Page< unsigned int,Row *,16 > *arg1 = (DataStructures::Page< unsigned int,Row *,16 > *) 0 ;
    int result;
    
    arg1 = (DataStructures::Page< unsigned int,Row *,16 > *)jarg1; 
    result = (int) ((arg1)->size);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetPageRow_next_set(void * jarg1, void * jarg2) {
    DataStructures::Page< unsigned int,Row *,16 > *arg1 = (DataStructures::Page< unsigned int,Row *,16 > *) 0 ;
    DataStructures::Page< unsigned int,Row *,16 > *arg2 = (DataStructures::Page< unsigned int,Row *,16 > *) 0 ;
    
    arg1 = (DataStructures::Page< unsigned int,Row *,16 > *)jarg1; 
    arg2 = (DataStructures::Page< unsigned int,Row *,16 > *)jarg2; 
    if (arg1) (arg1)->next = arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetPageRow_next_get(void * jarg1) {
    void * jresult ;
    DataStructures::Page< unsigned int,Row *,16 > *arg1 = (DataStructures::Page< unsigned int,Row *,16 > *) 0 ;
    DataStructures::Page< unsigned int,Row *,16 > *result = 0 ;
    
    arg1 = (DataStructures::Page< unsigned int,Row *,16 > *)jarg1; 
    result = (DataStructures::Page< unsigned int,Row *,16 > *) ((arg1)->next);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetPageRow_previous_set(void * jarg1, void * jarg2) {
    DataStructures::Page< unsigned int,Row *,16 > *arg1 = (DataStructures::Page< unsigned int,Row *,16 > *) 0 ;
    DataStructures::Page< unsigned int,Row *,16 > *arg2 = (DataStructures::Page< unsigned int,Row *,16 > *) 0 ;
    
    arg1 = (DataStructures::Page< unsigned int,Row *,16 > *)jarg1; 
    arg2 = (DataStructures::Page< unsigned int,Row *,16 > *)jarg2; 
    if (arg1) (arg1)->previous = arg2;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetPageRow_previous_get(void * jarg1) {
    void * jresult ;
    DataStructures::Page< unsigned int,Row *,16 > *arg1 = (DataStructures::Page< unsigned int,Row *,16 > *) 0 ;
    DataStructures::Page< unsigned int,Row *,16 > *result = 0 ;
    
    arg1 = (DataStructures::Page< unsigned int,Row *,16 > *)jarg1; 
    result = (DataStructures::Page< unsigned int,Row *,16 > *) ((arg1)->previous);
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetPageRow() {
    void * jresult ;
    DataStructures::Page< unsigned int,Row *,16 > *result = 0 ;
    
    result = (DataStructures::Page< unsigned int,Row *,16 > *)new DataStructures::Page< unsigned int,Row *,16 >();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_RakNetPageRow(void * jarg1) {
    DataStructures::Page< unsigned int,Row *,16 > *arg1 = (DataStructures::Page< unsigned int,Row *,16 > *) 0 ;
    
    arg1 = (DataStructures::Page< unsigned int,Row *,16 > *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_new_RakNetBPlusTreeRow() {
    void * jresult ;
    DataStructures::BPlusTree< unsigned int,Row *,16 > *result = 0 ;
    
    result = (DataStructures::BPlusTree< unsigned int,Row *,16 > *)new DataStructures::BPlusTree< unsigned int,Row *,16 >();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_delete_RakNetBPlusTreeRow(void * jarg1) {
    DataStructures::BPlusTree< unsigned int,Row *,16 > *arg1 = (DataStructures::BPlusTree< unsigned int,Row *,16 > *) 0 ;
    
    arg1 = (DataStructures::BPlusTree< unsigned int,Row *,16 > *)jarg1; 
    delete arg1;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetBPlusTreeRow_SetPoolPageSize(void * jarg1, int jarg2) {
    DataStructures::BPlusTree< unsigned int,Row *,16 > *arg1 = (DataStructures::BPlusTree< unsigned int,Row *,16 > *) 0 ;
    int arg2 ;
    
    arg1 = (DataStructures::BPlusTree< unsigned int,Row *,16 > *)jarg1; 
    arg2 = (int)jarg2; 
    (arg1)->SetPoolPageSize(arg2);
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetBPlusTreeRow_Insert(void * jarg1, unsigned int jarg2, void * jarg3) {
    unsigned int jresult ;
    DataStructures::BPlusTree< unsigned int,Row *,16 > *arg1 = (DataStructures::BPlusTree< unsigned int,Row *,16 > *) 0 ;
    unsigned int arg2 ;
    Row **arg3 = 0 ;
    Row *temp3 = 0 ;
    bool result;
    
    arg1 = (DataStructures::BPlusTree< unsigned int,Row *,16 > *)jarg1; 
    arg2 = (unsigned int)jarg2; 
    temp3 = (Row *)jarg3;
    arg3 = (Row **)&temp3; 
    result = (bool)(arg1)->Insert(arg2,(Row *const &)*arg3);
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetBPlusTreeRow_Clear(void * jarg1) {
    DataStructures::BPlusTree< unsigned int,Row *,16 > *arg1 = (DataStructures::BPlusTree< unsigned int,Row *,16 > *) 0 ;
    
    arg1 = (DataStructures::BPlusTree< unsigned int,Row *,16 > *)jarg1; 
    (arg1)->Clear();
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetBPlusTreeRow_Size(void * jarg1) {
    unsigned int jresult ;
    DataStructures::BPlusTree< unsigned int,Row *,16 > *arg1 = (DataStructures::BPlusTree< unsigned int,Row *,16 > *) 0 ;
    unsigned int result;
    
    arg1 = (DataStructures::BPlusTree< unsigned int,Row *,16 > *)jarg1; 
    result = (unsigned int)((DataStructures::BPlusTree< unsigned int,Row *,16 > const *)arg1)->Size();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RakNetBPlusTreeRow_IsEmpty(void * jarg1) {
    unsigned int jresult ;
    DataStructures::BPlusTree< unsigned int,Row *,16 > *arg1 = (DataStructures::BPlusTree< unsigned int,Row *,16 > *) 0 ;
    bool result;
    
    arg1 = (DataStructures::BPlusTree< unsigned int,Row *,16 > *)jarg1; 
    result = (bool)((DataStructures::BPlusTree< unsigned int,Row *,16 > const *)arg1)->IsEmpty();
    jresult = result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetBPlusTreeRow_GetListHead(void * jarg1) {
    void * jresult ;
    DataStructures::BPlusTree< unsigned int,Row *,16 > *arg1 = (DataStructures::BPlusTree< unsigned int,Row *,16 > *) 0 ;
    DataStructures::Page< unsigned int,Row *,16 > *result = 0 ;
    
    arg1 = (DataStructures::BPlusTree< unsigned int,Row *,16 > *)jarg1; 
    result = (DataStructures::Page< unsigned int,Row *,16 > *)((DataStructures::BPlusTree< unsigned int,Row *,16 > const *)arg1)->GetListHead();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void * SWIGSTDCALL CSharp_RakNetBPlusTreeRow_GetDataHead(void * jarg1) {
    void * jresult ;
    DataStructures::BPlusTree< unsigned int,Row *,16 > *arg1 = (DataStructures::BPlusTree< unsigned int,Row *,16 > *) 0 ;
    Row *result = 0 ;
    
    arg1 = (DataStructures::BPlusTree< unsigned int,Row *,16 > *)jarg1; 
    result = (Row *)((DataStructures::BPlusTree< unsigned int,Row *,16 > const *)arg1)->GetDataHead();
    jresult = (void *)result; 
    return jresult;
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetBPlusTreeRow_PrintLeaves(void * jarg1) {
    DataStructures::BPlusTree< unsigned int,Row *,16 > *arg1 = (DataStructures::BPlusTree< unsigned int,Row *,16 > *) 0 ;
    
    arg1 = (DataStructures::BPlusTree< unsigned int,Row *,16 > *)jarg1; 
    (arg1)->PrintLeaves();
  }
  
  
  SWIGEXPORT void SWIGSTDCALL CSharp_RakNetBPlusTreeRow_PrintGraph(void * jarg1) {
    DataStructures::BPlusTree< unsigned int,Row *,16 > *arg1 = (DataStructures::BPlusTree< unsigned int,Row *,16 > *) 0 ;
    
    arg1 = (DataStructures::BPlusTree< unsigned int,Row *,16 > *)jarg1; 
    (arg1)->PrintGraph();
  }
  
  
  SWIGEXPORT RakNet::RakPeerInterface * SWIGSTDCALL CSharp_RakPeer_SWIGUpcast(RakNet::RakPeer *jarg1) {
      return (RakNet::RakPeerInterface *)jarg1;
  }
  
  SWIGEXPORT RakNet::PluginInterface2 * SWIGSTDCALL CSharp_PacketLogger_SWIGUpcast(RakNet::PacketLogger *jarg1) {
      return (RakNet::PluginInterface2 *)jarg1;
  }
  
  SWIGEXPORT RakNet::PacketLogger * SWIGSTDCALL CSharp_PacketFileLogger_SWIGUpcast(RakNet::PacketFileLogger *jarg1) {
      return (RakNet::PacketLogger *)jarg1;
  }
  
  SWIGEXPORT RakNet::PluginInterface2 * SWIGSTDCALL CSharp_NatTypeDetectionClient_SWIGUpcast(RakNet::NatTypeDetectionClient *jarg1) {
      return (RakNet::PluginInterface2 *)jarg1;
  }
  
  SWIGEXPORT RakNet::NatPunchthroughDebugInterface * SWIGSTDCALL CSharp_NatPunchthroughDebugInterface_Printf_SWIGUpcast(RakNet::NatPunchthroughDebugInterface_Printf *jarg1) {
      return (RakNet::NatPunchthroughDebugInterface *)jarg1;
  }
  
  SWIGEXPORT RakNet::NatPunchthroughDebugInterface * SWIGSTDCALL CSharp_NatPunchthroughDebugInterface_PacketLogger_SWIGUpcast(RakNet::NatPunchthroughDebugInterface_PacketLogger *jarg1) {
      return (RakNet::NatPunchthroughDebugInterface *)jarg1;
  }
  
  SWIGEXPORT RakNet::PluginInterface2 * SWIGSTDCALL CSharp_NatPunchthroughClient_SWIGUpcast(RakNet::NatPunchthroughClient *jarg1) {
      return (RakNet::PluginInterface2 *)jarg1;
  }
  
  SWIGEXPORT RakNet::PluginInterface2 * SWIGSTDCALL CSharp_Router2_SWIGUpcast(RakNet::Router2 *jarg1) {
      return (RakNet::PluginInterface2 *)jarg1;
  }
  
  SWIGEXPORT RakNet::PluginInterface2 * SWIGSTDCALL CSharp_UDPProxyClient_SWIGUpcast(RakNet::UDPProxyClient *jarg1) {
      return (RakNet::PluginInterface2 *)jarg1;
  }
  
  SWIGEXPORT RakNet::PluginInterface2 * SWIGSTDCALL CSharp_FullyConnectedMesh2_SWIGUpcast(RakNet::FullyConnectedMesh2 *jarg1) {
      return (RakNet::PluginInterface2 *)jarg1;
  }
  
  SWIGEXPORT RakNet::PluginInterface2 * SWIGSTDCALL CSharp_ReadyEvent_SWIGUpcast(RakNet::ReadyEvent *jarg1) {
      return (RakNet::PluginInterface2 *)jarg1;
  }
  
  SWIGEXPORT RakNet::PluginInterface2 * SWIGSTDCALL CSharp_TeamManager_SWIGUpcast(RakNet::TeamManager *jarg1) {
      return (RakNet::PluginInterface2 *)jarg1;
  }
  
  SWIGEXPORT RakNet::NatPunchthroughServerDebugInterface * SWIGSTDCALL CSharp_NatPunchthroughServerDebugInterface_Printf_SWIGUpcast(RakNet::NatPunchthroughServerDebugInterface_Printf *jarg1) {
      return (RakNet::NatPunchthroughServerDebugInterface *)jarg1;
  }
  
  SWIGEXPORT RakNet::NatPunchthroughServerDebugInterface * SWIGSTDCALL CSharp_NatPunchthroughServerDebugInterface_PacketLogger_SWIGUpcast(RakNet::NatPunchthroughServerDebugInterface_PacketLogger *jarg1) {
      return (RakNet::NatPunchthroughServerDebugInterface *)jarg1;
  }
  
  SWIGEXPORT RakNet::PluginInterface2 * SWIGSTDCALL CSharp_NatPunchthroughServer_SWIGUpcast(RakNet::NatPunchthroughServer *jarg1) {
      return (RakNet::PluginInterface2 *)jarg1;
  }
  
  SWIGEXPORT RakNet::PluginInterface2 * SWIGSTDCALL CSharp_UDPProxyServer_SWIGUpcast(RakNet::UDPProxyServer *jarg1) {
      return (RakNet::PluginInterface2 *)jarg1;
  }
  
  SWIGEXPORT RakNet::PluginInterface2 * SWIGSTDCALL CSharp_UDPProxyCoordinator_SWIGUpcast(RakNet::UDPProxyCoordinator *jarg1) {
      return (RakNet::PluginInterface2 *)jarg1;
  }
  
  SWIGEXPORT RakNet::PluginInterface2 * SWIGSTDCALL CSharp_NatTypeDetectionServer_SWIGUpcast(RakNet::NatTypeDetectionServer *jarg1) {
      return (RakNet::PluginInterface2 *)jarg1;
  }
  
  SWIGEXPORT RakNet::FileListProgress * SWIGSTDCALL CSharp_FLP_Printf_SWIGUpcast(RakNet::FLP_Printf *jarg1) {
      return (RakNet::FileListProgress *)jarg1;
  }
  
  SWIGEXPORT RakNet::CommandParserInterface * SWIGSTDCALL CSharp_LogCommandParser_SWIGUpcast(RakNet::LogCommandParser *jarg1) {
      return (RakNet::CommandParserInterface *)jarg1;
  }
  
  SWIGEXPORT RakNet::PluginInterface2 * SWIGSTDCALL CSharp_MessageFilter_SWIGUpcast(RakNet::MessageFilter *jarg1) {
      return (RakNet::PluginInterface2 *)jarg1;
  }
  
  SWIGEXPORT RakNet::PluginInterface2 * SWIGSTDCALL CSharp_DirectoryDeltaTransfer_SWIGUpcast(RakNet::DirectoryDeltaTransfer *jarg1) {
      return (RakNet::PluginInterface2 *)jarg1;
  }
  
  SWIGEXPORT RakNet::PluginInterface2 * SWIGSTDCALL CSharp_FileListTransfer_SWIGUpcast(RakNet::FileListTransfer *jarg1) {
      return (RakNet::PluginInterface2 *)jarg1;
  }
  
  SWIGEXPORT RakNet::PacketLogger * SWIGSTDCALL CSharp_ThreadsafePacketLogger_SWIGUpcast(RakNet::ThreadsafePacketLogger *jarg1) {
      return (RakNet::PacketLogger *)jarg1;
  }
  
  SWIGEXPORT RakNet::PacketLogger * SWIGSTDCALL CSharp_PacketConsoleLogger_SWIGUpcast(RakNet::PacketConsoleLogger *jarg1) {
      return (RakNet::PacketLogger *)jarg1;
  }
  
  SWIGEXPORT RakNet::PluginInterface2 * SWIGSTDCALL CSharp_ConnectionGraph2_SWIGUpcast(RakNet::ConnectionGraph2 *jarg1) {
      return (RakNet::PluginInterface2 *)jarg1;
  }
  
  #ifdef __cplusplus
  }
  #endif
  
  