text:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class infomosaic_securexml_Signature */

#ifndef _Included_infomosaic_securexml_Signature
#define _Included_infomosaic_securexml_Signature
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     infomosaic_securexml_Signature
 * Method:    createSignatureObject
 * Signature: ()I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_createSignatureObject
  (JNIEnv *, jobject);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    destroySignatureObject
 * Signature: (I)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_destroySignatureObject
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetEnvelopingFlag
 * Signature: (I)S
 */
JNIEXPORT jshort JNICALL Java_infomosaic_securexml_Signature_CgetEnvelopingFlag
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetEnvelopingFlag
 * Signature: (IS)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetEnvelopingFlag
  (JNIEnv *, jobject, jint, jshort);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetRecipientCertificateStore
 * Signature: (I)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetRecipientCertificateStore
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetRecipientCertificateStore
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetRecipientCertificateStore
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetSignerCertificate
 * Signature: (II)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetSignerCertificate
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetSignerCertificate
 * Signature: (IILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetSignerCertificate
  (JNIEnv *, jobject, jint, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetSignatureID
 * Signature: (II)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetSignatureID
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetSignatureID
 * Signature: (IILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetSignatureID
  (JNIEnv *, jobject, jint, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetProperties
 * Signature: (III)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetProperties
  (JNIEnv *, jobject, jint, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetProperties
 * Signature: (IIILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetProperties
  (JNIEnv *, jobject, jint, jint, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetBase64EncodeXML
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetBase64EncodeXML
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetBase64EncodeXML
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetBase64EncodeXML
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetBase64DecodeXML
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetBase64DecodeXML
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetBase64DecodeXML
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetBase64DecodeXML
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetDocumentURI
 * Signature: (III)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetDocumentURI
  (JNIEnv *, jobject, jint, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetDigestObjectStatus
 * Signature: (III)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetDigestObjectStatus
  (JNIEnv *, jobject, jint, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetLanguage
 * Signature: (I)I
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetLanguage
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetLanguage
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetLanguage
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetSignatureStatus
 * Signature: (II)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetSignatureStatus
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetPhysicalSignatureUsage
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetPhysicalSignatureUsage
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetPhysicalSignatureUsage
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetPhysicalSignatureUsage
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetPhysicalSignatureFile
 * Signature: (I)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetPhysicalSignatureFile
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetPhysicalSignatureFile
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetPhysicalSignatureFile
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetCapturedSignatureFile
 * Signature: (I)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetCapturedSignatureFile
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    Csign
 * Signature: (ILjava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_Csign
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetIncludeCamResponse
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetIncludeCamResponse
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetIncludeCamResponse
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetIncludeCamResponse
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsaveXMLSignature
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsaveXMLSignature
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    Cverify
 * Signature: (ILjava/lang/String;)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_Cverify
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetError
 * Signature: (I)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetError
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetOverwriteFile
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetOverwriteFile
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CpFXExportCertificate
 * Signature: (ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CpFXExportCertificate
  (JNIEnv *, jobject, jint, jstring, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CverifyDetached
 * Signature: (ILjava/lang/String;)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CverifyDetached
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetLastError
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetLastError
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetX509Certificate
 * Signature: (ILjava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetX509Certificate
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CviewCertificate
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CviewCertificate
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetCertificateCount
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetCertificateCount
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetCertificateInfo
 * Signature: (III)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetCertificateInfo
  (JNIEnv *, jobject, jint, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetActiveCertificate
 * Signature: (ILjava/lang/String;)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CsetActiveCertificate
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetSignedDocumentPath
 * Signature: (III)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetSignedDocumentPath
  (JNIEnv *, jobject, jint, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetSignerSubject
 * Signature: (ILjava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetSignerSubject
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetCertIssuer
 * Signature: (ILjava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetCertIssuer
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetCertExpiry
 * Signature: (ILjava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetCertExpiry
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetCertSerialNumber
 * Signature: (ILjava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetCertSerialNumber
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CfileExists
 * Signature: (ILjava/lang/String;)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CfileExists
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetFailedUriCount
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetFailedUriCount
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetTotalUriCount
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetTotalUriCount
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetFailedUriFullPath
 * Signature: (II)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetFailedUriFullPath
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetFailedUriFullPath
 * Signature: (IILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetFailedUriFullPath
  (JNIEnv *, jobject, jint, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetFailedUri
 * Signature: (II)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetFailedUri
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetSignatureCount
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetSignatureCount
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsignXMLStr
 * Signature: (ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CsignXMLStr
  (JNIEnv *, jobject, jint, jstring, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CreadAll
 * Signature: (ILjava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CreadAll
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsaveXMLStr
 * Signature: (ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CsaveXMLStr
  (JNIEnv *, jobject, jint, jstring, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsignHTML
 * Signature: (ILjava/lang/Object;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CsignHTML
  (JNIEnv *, jobject, jint, jobject);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsecureXMLVerify
 * Signature: (ILjava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CsecureXMLVerify
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetCSP
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetCSP
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetSignedHTML
 * Signature: (ILjava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetSignedHTML
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsignFile
 * Signature: (ILjava/lang/String;Ljava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsignFile
  (JNIEnv *, jobject, jint, jstring, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetSignedFileObject
 * Signature: (ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetSignedFileObject
  (JNIEnv *, jobject, jint, jstring, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetStoreName
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetStoreName
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetStoreName
 * Signature: (I)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetStoreName
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsignXMLEnveloped
 * Signature: (ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CsignXMLEnveloped
  (JNIEnv *, jobject, jint, jstring, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetVersion
 * Signature: (I)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetVersion
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetLicenseStatus
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetLicenseStatus
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetPropertyCount
 * Signature: (II)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetPropertyCount
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CviewAnyCertificate
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CviewAnyCertificate
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CselectActiveCertificate
 * Signature: (I)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CselectActiveCertificate
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CverifyXMLStr
 * Signature: (ILjava/lang/String;)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CverifyXMLStr
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetActivePFXFileCert
 * Signature: (ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CsetActivePFXFileCert
  (JNIEnv *, jobject, jint, jstring, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CpFXExportActiveCertificate
 * Signature: (ILjava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CpFXExportActiveCertificate
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetHostName
 * Signature: (I)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetHostName
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetTimeStampURL
 * Signature: (I)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetTimeStampURL
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetTimeStampURL
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetTimeStampURL
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetTimeStamping
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetTimeStamping
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetTimeStamping
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetTimeStamping
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetHostOsType
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetHostOsType
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetCrlChecking
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetCrlChecking
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetCrlChecking
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetCrlChecking
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetSigCertStatus
 * Signature: (IILjava/lang/String;I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetSigCertStatus
  (JNIEnv *, jobject, jint, jint, jstring, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CverifyX509CertCRL
 * Signature: (ILjava/lang/String;Ljava/lang/String;I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CverifyX509CertCRL
  (JNIEnv *, jobject, jint, jstring, jstring, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CverifyPFXCertCRL
 * Signature: (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CverifyPFXCertCRL
  (JNIEnv *, jobject, jint, jstring, jstring, jstring, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetAddWindowImage
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetAddWindowImage
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetAddWindowImage
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetAddWindowImage
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetCRLLocation
 * Signature: (I[Ljava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetCRLLocation
  (JNIEnv *, jobject, jint, jobjectArray);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CverifyActiveCertificate
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CverifyActiveCertificate
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetCertificatePolicy
 * Signature: (I[Ljava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetCertificatePolicy
  (JNIEnv *, jobject, jint, jobjectArray);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetAuthorityConstrainedPolicy
 * Signature: (I)[Ljava/lang/String;
 */
JNIEXPORT jobjectArray JNICALL Java_infomosaic_securexml_Signature_CgetAuthorityConstrainedPolicy
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetUserConstrainedPolicy
 * Signature: (I)[Ljava/lang/String;
 */
JNIEXPORT jobjectArray JNICALL Java_infomosaic_securexml_Signature_CgetUserConstrainedPolicy
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetCertificatePolicyChecking
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetCertificatePolicyChecking
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetCertificateChainValidation
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetCertificateChainValidation
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetCertificatePathLengthChecking
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetCertificatePathLengthChecking
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetConfigFileName
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetConfigFileName
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetDoDCompliance
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetDoDCompliance
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetCertificatePolicyExplicit
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetCertificatePolicyExplicit
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetCertificatePolicyExplicit
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetCertificatePolicyExplicit
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetCertificateTrustExplicit
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetCertificateTrustExplicit
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsignXMLXpathStr
 * Signature: (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CsignXMLXpathStr
  (JNIEnv *, jobject, jint, jstring, jstring, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetUseHMAC
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetUseHMAC
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetUseHMAC
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetUseHMAC
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetHMACPassword
 * Signature: (I)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetHMACPassword
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetHMACPassword
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetHMACPassword
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CchangeOrAddProperty
 * Signature: (ILjava/lang/String;Ljava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CchangeOrAddProperty
  (JNIEnv *, jobject, jint, jstring, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetDetailedVerificationFlag
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetDetailedVerificationFlag
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CcaptureLiveSignature
 * Signature: (I)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CcaptureLiveSignature
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsignDataStr
 * Signature: (ILjava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CsignDataStr
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetExcludeSignerCertificate
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetExcludeSignerCertificate
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CcoSignXMLStr
 * Signature: (ILjava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CcoSignXMLStr
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CcoSignFile
 * Signature: (ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CcoSignFile
  (JNIEnv *, jobject, jint, jstring, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsignFiles
 * Signature: (I[Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CsignFiles
  (JNIEnv *, jobject, jint, jobjectArray, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetRecipientCertificates
 * Signature: (I[Ljava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetRecipientCertificates
  (JNIEnv *, jobject, jint, jobjectArray);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CencryptStr
 * Signature: (ILjava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CencryptStr
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CdecryptStr
 * Signature: (ILjava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CdecryptStr
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CencryptFile
 * Signature: (ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CencryptFile
  (JNIEnv *, jobject, jint, jstring, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CdecryptFile
 * Signature: (ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CdecryptFile
  (JNIEnv *, jobject, jint, jstring, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetTrustedRoots
 * Signature: (I[Ljava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetTrustedRoots
  (JNIEnv *, jobject, jint, jobjectArray);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetRecipientCertificateFiles
 * Signature: (I[Ljava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetRecipientCertificateFiles
  (JNIEnv *, jobject, jint, jobjectArray);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetDetachedObjects
 * Signature: (I[Ljava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetDetachedObjects
  (JNIEnv *, jobject, jint, jobjectArray);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetAttachedObjects
 * Signature: (I[Ljava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetAttachedObjects
  (JNIEnv *, jobject, jint, jobjectArray);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CreadAllBase64
 * Signature: (ILjava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CreadAllBase64
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetDecryptionPFXCertFile
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetDecryptionPFXCertFile
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetDecryptUsingPFXFileCert
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetDecryptUsingPFXFileCert
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetDecryptionPFXPassword
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetDecryptionPFXPassword
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetXpathNamespace
 * Signature: (I[Ljava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetXpathNamespace
  (JNIEnv *, jobject, jint, jobjectArray);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetCamServerHost
 * Signature: (I)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetCamServerHost
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetCamServerHost
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetCamServerHost
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetCamServerPort
 * Signature: (I)S
 */
JNIEXPORT jshort JNICALL Java_infomosaic_securexml_Signature_CgetCamServerPort
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetCamServerPort
 * Signature: (IS)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetCamServerPort
  (JNIEnv *, jobject, jint, jshort);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetUseCam
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetUseCam
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetUseCam
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetUseCam
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetAgencyId
 * Signature: (I)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetAgencyId
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetAgencyId
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetAgencyId
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetCamValidationResponse
 * Signature: (I)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetCamValidationResponse
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetSigPropValueByName
 * Signature: (IILjava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetSigPropValueByName
  (JNIEnv *, jobject, jint, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    Cbase64DecodeBufferToFile
 * Signature: (ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_Cbase64DecodeBufferToFile
  (JNIEnv *, jobject, jint, jstring, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    Cbase64DecodeFileToFile
 * Signature: (ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_Cbase64DecodeFileToFile
  (JNIEnv *, jobject, jint, jstring, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgunZipFile
 * Signature: (ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgunZipFile
  (JNIEnv *, jobject, jint, jstring, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetCertSerialNumberFormat
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetCertSerialNumberFormat
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetCertSerialNumberFormat
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetCertSerialNumberFormat
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsecureXMLVerifyFileToBuffer
 * Signature: (ILjava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CsecureXMLVerifyFileToBuffer
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsecureXMLVerifyFileToFile
 * Signature: (ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CsecureXMLVerifyFileToFile
  (JNIEnv *, jobject, jint, jstring, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CdeleteSignatureFromXMLStr
 * Signature: (ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CdeleteSignatureFromXMLStr
  (JNIEnv *, jobject, jint, jstring, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CdeleteSignatureFromFile
 * Signature: (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CdeleteSignatureFromFile
  (JNIEnv *, jobject, jint, jstring, jstring, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetAllowedCertIssuerNames
 * Signature: (I[Ljava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetAllowedCertIssuerNames
  (JNIEnv *, jobject, jint, jobjectArray);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetCRLCacheDbConnectionString
 * Signature: (I)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetCRLCacheDbConnectionString
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetCRLCacheDbConnectionString
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetCRLCacheDbConnectionString
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetUseCRLCache
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetUseCRLCache
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetUseCRLCache
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetUseCRLCache
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetCRLCacheTimeoutInMinutes
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetCRLCacheTimeoutInMinutes
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetCanonicalizationMethod
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetCanonicalizationMethod
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetNetscapeStorePassword
 * Signature: (I)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetNetscapeStorePassword
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetNetscapeStorePassword
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetNetscapeStorePassword
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetActivePEMFileCert
 * Signature: (ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CsetActivePEMFileCert
  (JNIEnv *, jobject, jint, jstring, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetSecureXMLPath
 * Signature: (I)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetSecureXMLPath
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetSignedDocumentCount
 * Signature: (II)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetSignedDocumentCount
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsignXMLByteArray
 * Signature: (I[BLjava/lang/String;)[B
 */
JNIEXPORT jbyteArray JNICALL Java_infomosaic_securexml_Signature_CsignXMLByteArray
  (JNIEnv *, jobject, jint, jbyteArray, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsaveXMLByteArray
 * Signature: (I[BLjava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CsaveXMLByteArray
  (JNIEnv *, jobject, jint, jbyteArray, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CreadAllByteArray
 * Signature: (ILjava/lang/String;)[B
 */
JNIEXPORT jbyteArray JNICALL Java_infomosaic_securexml_Signature_CreadAllByteArray
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CverifyXMLByteArray
 * Signature: (I[B)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CverifyXMLByteArray
  (JNIEnv *, jobject, jint, jbyteArray);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsecureXMLVerifyByteArray
 * Signature: (I[B)[B
 */
JNIEXPORT jbyteArray JNICALL Java_infomosaic_securexml_Signature_CsecureXMLVerifyByteArray
  (JNIEnv *, jobject, jint, jbyteArray);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsignXMLXpathByteArray
 * Signature: (I[BLjava/lang/String;Ljava/lang/String;)[B
 */
JNIEXPORT jbyteArray JNICALL Java_infomosaic_securexml_Signature_CsignXMLXpathByteArray
  (JNIEnv *, jobject, jint, jbyteArray, jstring, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsignXMLEnvelopedByteArray
 * Signature: (I[BLjava/lang/String;)[B
 */
JNIEXPORT jbyteArray JNICALL Java_infomosaic_securexml_Signature_CsignXMLEnvelopedByteArray
  (JNIEnv *, jobject, jint, jbyteArray, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    Cbase64DecodeByteArrayToFile
 * Signature: (I[BLjava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_Cbase64DecodeByteArrayToFile
  (JNIEnv *, jobject, jint, jbyteArray, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    Cbase64DecodeByteArrayToByteArray
 * Signature: (I[B)[B
 */
JNIEXPORT jbyteArray JNICALL Java_infomosaic_securexml_Signature_Cbase64DecodeByteArrayToByteArray
  (JNIEnv *, jobject, jint, jbyteArray);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    Cbase64EncodeByteArrayToByteArray
 * Signature: (I[B)[B
 */
JNIEXPORT jbyteArray JNICALL Java_infomosaic_securexml_Signature_Cbase64EncodeByteArrayToByteArray
  (JNIEnv *, jobject, jint, jbyteArray);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    Cbase64EncodeByteArrayToFile
 * Signature: (I[BLjava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_Cbase64EncodeByteArrayToFile
  (JNIEnv *, jobject, jint, jbyteArray, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    Cbase64EncodeStrToFile
 * Signature: (ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_Cbase64EncodeStrToFile
  (JNIEnv *, jobject, jint, jstring, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    Cbase64EncodeStrToStr
 * Signature: (ILjava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_Cbase64EncodeStrToStr
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetActivePFXB64Data
 * Signature: (ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CsetActivePFXB64Data
  (JNIEnv *, jobject, jint, jstring, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetFloatingLicense
 * Signature: ()Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetFloatingLicense
  (JNIEnv *env, jobject _this, jint sigObjIndex);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetFloatingLicense
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetFloatingLicense
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetLicensedUserCount
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetLicensedUserCount
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetIncludeCRLInSignature
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetIncludeCRLInSignature
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetUsedCRLList
 * Signature: (I)[Ljava/lang/String;
 */
JNIEXPORT jobjectArray JNICALL Java_infomosaic_securexml_Signature_CgetUsedCRLList
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetErrorDetail
 * Signature: (II)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetErrorDetail
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetPhysicalSignatureB64Str
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetPhysicalSignatureB64Str
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetSignedInfoDigest
 * Signature: (ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetSignedInfoDigest
  (JNIEnv *, jobject, jint, jstring, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetX509CertificateChain
 * Signature: (ILjava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetX509CertificateChain
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetSignerCertificateChain
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetSignerCertificateChain
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetSignatureImageId
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetSignatureImageId
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetSignatureImageId
 * Signature: (I)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetSignatureImageId
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsignSignedInfoDigest
 * Signature: (ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CsignSignedInfoDigest
  (JNIEnv *, jobject, jint, jstring, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CapplySignatureValue
 * Signature: (ILjava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CapplySignatureValue
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetSignedInfoDigestFromByteArray
 * Signature: (I[BLjava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetSignedInfoDigestFromByteArray
  (JNIEnv *, jobject, jint, jbyteArray, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CapplySignatureValueGetByteArray
 * Signature: (ILjava/lang/String;)[B
 */
JNIEXPORT jbyteArray JNICALL Java_infomosaic_securexml_Signature_CapplySignatureValueGetByteArray
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetSignedDocumentB64Str
 * Signature: (III)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetSignedDocumentB64Str
  (JNIEnv *, jobject, jint, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetSignedDocumentByteArray
 * Signature: (III)[B
 */
JNIEXPORT jbyteArray JNICALL Java_infomosaic_securexml_Signature_CgetSignedDocumentByteArray
  (JNIEnv *, jobject, jint, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetCertValidationTransactionId
 * Signature: (I)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetCertValidationTransactionId
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetCertValidationTransactionId
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetCertValidationTransactionId
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetIgnoreIncompleteSignature
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetIgnoreIncompleteSignature
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetIgnoreIncompleteSignature
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetIgnoreIncompleteSignature
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetSignatureIndexToVerify
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetSignatureIndexToVerify
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetSignatureIndexToVerify
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetSignatureIndexToVerify
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetUseOcsp
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetUseOcsp
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetUseOcsp
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetUseOcsp
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetOcspTrustedRespSignerCertPath
 * Signature: (I)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetOcspTrustedRespSignerCertPath
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetOcspTrustedRespSignerCertPath
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetOcspTrustedRespSignerCertPath
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetOcspReqSignerPFXCertPath
 * Signature: (I)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetOcspReqSignerPFXCertPath
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetOcspReqSignerPFXCertPath
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetOcspReqSignerPFXCertPath
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetOcspReqSignerPFXCertPassword
 * Signature: (I)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetOcspReqSignerPFXCertPassword
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetOcspReqSignerPFXCertPassword
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetOcspReqSignerPFXCertPassword
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetOcspResponderURL
 * Signature: (I)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetOcspResponderURL
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetOcspResponderURL
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetOcspResponderURL
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetOcspTextResponse
 * Signature: (I)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetOcspTextResponse
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetOcspB64Response
 * Signature: (I)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetOcspB64Response
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetCertRevocationDate
 * Signature: (I)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_infomosaic_securexml_Signature_CgetCertRevocationDate
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CgetIncludeOcspResponse
 * Signature: (I)I
 */
JNIEXPORT jint JNICALL Java_infomosaic_securexml_Signature_CgetIncludeOcspResponse
  (JNIEnv *, jobject, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetIncludeOcspResponse
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetIncludeOcspResponse
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetProxyHost
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetProxyHost
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetProxyPort
 * Signature: (II)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetProxyPort
  (JNIEnv *, jobject, jint, jint);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetProxyUserName
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetProxyUserName
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetProxyPassword
 * Signature: (ILjava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetProxyPassword
  (JNIEnv *, jobject, jint, jstring);

/*
 * Class:     infomosaic_securexml_Signature
 * Method:    CsetInclusiveNamespacePrefixList
 * Signature: (I[Ljava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_infomosaic_securexml_Signature_CsetInclusiveNamespacePrefixList
  (JNIEnv *, jobject, jint, jobjectArray);

#ifdef __cplusplus
}
#endif
#endif


text:
require 'spec_helper'

module ActionView
  describe Template do
    include_context "mock Rails.application"

    describe "with no overrides defined" do
      before(:each) do
        @updated_at = Time.now - 600
        @template = ActionView::Template.new("
test
", "/some/path/to/file.erb", ActionView::Template::Handlers::ERB, {:virtual_path=>"posts/index", :format=>:html, :updated_at => @updated_at})
        #stub for Rails < 3.1
        unless defined?(@template.updated_at)
          @template.stub(:updated_at).and_return(@updated_at)
        end
      end

      it "should initialize new template object" do
        @template.is_a?(ActionView::Template).should == true
      end

      it "should return unmodified source" do
        @template.source.should == "
test
"
      end

      it "should not change updated_at" do
        @template.updated_at.should == @updated_at
      end

    end

    describe "with a single remove override defined" do
      before(:each) do
        @updated_at = Time.now - 300
        Deface::Override.new(:virtual_path => "posts/index", :name => "Posts#index", :remove => "p", :text => "
Argh!
")
        @template = ActionView::Template.new("
test
<%= raw(text) %>", "/some/path/to/file.erb", ActionView::Template::Handlers::ERB, {:virtual_path=>"posts/index", :format=>:html, :updated_at => @updated_at})
        #stub for Rails < 3.1
        unless defined?(@template.updated_at)
          @template.stub(:updated_at).and_return(@updated_at + 500)
        end
      end

      it "should return modified source" do
        @template.source.should == "<%= raw(text) %>"
      end

      it "should change updated_at" do
        @template.updated_at.should > @updated_at
      end
    end

    describe "method_name" do
      let(:template) { ActionView::Template.new("
test
", "/some/path/to/file.erb", ActionView::Template::Handlers::ERB, {:virtual_path=>"posts/index", :format=>:html, :updated_at => (Time.now - 100)}) }

      it "should return hash of overrides plus original method_name " do
        deface_hash = Deface::Override.digest(:virtual_path => 'posts/index')

        template.send(:method_name).should == "_#{Digest::MD5.new.update("#{deface_hash}_#{template.send(:method_name_without_deface)}").hexdigest}"
      end

      it "should alias original method_name method" do
        template.send(:method_name_without_deface).should match /\A__some_path_to_file_erb_+[0-9]+_+[0-9]+\z/
      end
    end

    describe "non erb or haml template" do
      before(:each) do
        Deface::Override.new(:virtual_path => "posts/index", :name => "Posts#index", :remove => "p")
        @template = ActionView::Template.new("xml.post => :blah", "/some/path/to/file.erb", ActionView::Template::Handlers::Builder, {:virtual_path=>"posts/index", :format=>:xml, :updated_at => (Time.now - 100)})
      end

      it "should return unmodified source" do
        #if processed, source would include "=>"
        @template.source.should == "xml.post => :blah"
      end
    end

    describe "#should_be_defaced?(handler) method" do
      #not so BDD, but it keeps us from making mistakes in the future
      #for instance, we test ActionView::Template here with a handler == ....::Handlers::ERB,
      #while in rails it seems it's an instance of ...::Handlers::ERB
      it "should be truthy only for haml/erb handlers and their instances" do
        expectations = { Haml::Plugin => true,
                         ActionView::Template::Handlers::ERB => true,
                         ActionView::Template::Handlers::ERB.new => true,
                         ActionView::Template::Handlers::Builder => false }
        expectations.each do |handler, expected|
          @template = ActionView::Template.new("xml.post => :blah", "/some/path/to/file.erb", handler, {:virtual_path=>"posts/index", :format=>:xml, :updated_at => (Time.now - 100)})
          @template.is_a?(ActionView::Template).should == true
          syntax = @template.send(:determine_syntax, handler)
          @template.send(:should_be_defaced?, syntax).should eq(expected), "unexpected result for handler "+handler.to_s
        end
      end
    end
  end
end

redpajama_set_name: RedPajamaGithub


text:
package net.craftstars.general.util;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FilenameFilter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.EnumMap;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import net.craftstars.general.General;
import net.craftstars.general.items.Kits;
import net.craftstars.general.items.Kit;
import net.craftstars.general.mobs.MobAlignment;
import net.craftstars.general.mobs.MobData;
import net.craftstars.general.mobs.MobType;
import net.craftstars.general.option.Options;
import net.craftstars.general.teleport.DestinationType;
import net.craftstars.general.teleport.TargetType;

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.World;

import static java.lang.Math.min;
import static org.bukkit.event.EventPriority.MONITOR;

import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.world.WorldLoadEvent;
import org.bukkit.event.world.WorldUnloadEvent;
import org.bukkit.permissions.Permission;
import org.bukkit.permissions.PermissionDefault;
import static org.bukkit.permissions.PermissionDefault.*;
import org.bukkit.plugin.PluginManager;

public class PermissionManager implements Listener {
	private static PermissionManager me = new PermissionManager();
	private PermissionManager() {}

	public static void setup() {
		// Here we set up the complicated container permissions
		PermissionSet.init();
		for(PermissionSet set : PermissionSet.values()) set.build();
		PermissionSet.finish();
		Bukkit.getPluginManager().registerEvents(me, General.plugin);
	}

	public static void refreshItemGroups() {
		Permission perm = Bukkit.getPluginManager().getPermission("general.give.groupless");
		perm.setDefault(Options.OTHERS4ALL.get() ? TRUE : FALSE);
	}

	@EventHandler(priority=MONITOR)
	public void onWorldLoad(@SuppressWarnings("unused") WorldLoadEvent event) {
		// TODO: Is there a more graceful way?
		nukeTeleportPermissions();
		PermissionSet.TARGET_DEST.build();
	}

	@EventHandler(priority=MONITOR)
	public void onWorldUnload(@SuppressWarnings("unused") WorldUnloadEvent event) {
		// TODO: There is a more graceful way. Do it.
		nukeTeleportPermissions();
		PermissionSet.TARGET_DEST.build();
	}

	private void nukeTeleportPermissions() {
		PluginManager pm = Bukkit.getPluginManager();
		Set<Permission> perms = pm.getPermissions();
		for(Permission p : perms) {
			if(p.getName().startsWith("general.teleport") || p.getName().startsWith("general.setspawn"))
				pm.removePermission(p);
		}
	}

	@SuppressWarnings("unused")
	private enum PermissionSet {
		GIVE {
			@Override public void build() {
				// general.give.group.<group>
				Map<String,Map<String,Boolean>> groups = new HashMap<String,Map<String,Boolean>>();
				// general.give.groupless
				Map<String,Boolean> groupless = new HashMap<String,Boolean>();
				// Two nested loops; first Material, then groups
				Set<String> groupNames = Options.ITEM_GROUPS.get();
				for(Material material : Material.values()) {
					String itemName = material.toString().toLowerCase().replace('_', '-');
					String itemPerm = "general.give.item." + itemName;
					// general.give.item.<item-name> (not registered, because that's just insane)
					//register(itemPerm, "Gives permission to give " + itemName);
					boolean gotGroup = false;
					for(String group : groupNames) {
						List<Integer> groupItems = Options.GROUP(group).get();
						if(groupItems.contains(material.getId())) {
							gotGroup = true;
							if(!groups.containsKey(group)) groups.put(group, new HashMap<String,Boolean>());
							groups.get(group).put(itemPerm, true);
						}
					}
					if(!gotGroup) {
						groupless.put(itemPerm, true);
					}
				}
				// general.give.groups
				Map<String,Boolean> allGroups = new HashMap<String,Boolean>();
				for(String group : groups.keySet()) {
					String permission = "general.give.group." + group;
					register(permission, "Gives permission to give items in the " + group +
						" group.", groups.get(group));
					allGroups.put(permission, true);
				}
				register("general.give.groupless", "Gives permission to give items not assigned to a group.",
					Options.OTHERS4ALL.get(), groupless);
				register("general.give.groups", "Gives permission to give items from any item group.", allGroups);
			}
		},
		KIT {
			@Override public void build() {
				// general.kit.<kit>, general.kit.*
				Map<String, Boolean> allKits = new HashMap<String,Boolean>();
				Map<String, Boolean> instants = new HashMap<String,Boolean>();
				for(Kit kit : Kits.all()) {
					String perm = "general.kit." + kit.getName();
					register(perm, "Gives access to the '" + kit.getName() + "' kit.");
					allKits.put(perm, true);
					Map<String,Boolean> instant = new HashMap<String,Boolean>();
					String instantPerm = perm + ".instant";
					instant.put(perm, true);
					register(instantPerm, "Gives instant access to the '" + kit.getName() + "' kit.", instant);
					instants.put(instantPerm, true);
				}
				instants.put("general.kit", true);
				register("general.kit", "Gives access to all kits.", allKits);
				register("general.kit-now", "Gives instant access to all kits.", instants);
			}
		},
		MOBSPAWN {
			@Override public void build() {
				// Three nested loops: alignment, mob, data
				// general.mobspawn
				Map<String,Boolean> all = new HashMap<String,Boolean>();
				// general.mobspawn.basic
				Map<String,Boolean> basics = new HashMap<String,Boolean>();
				for(MobAlignment align : MobAlignment.values()) {
					// general.mobspawn.<alignment>
					Map<String,Boolean> alignments = new HashMap<String,Boolean>();
					// general.mobspawn.<alignment>.basic
					Map<String,Boolean> alignBasics = new HashMap<String,Boolean>();
					for(MobType mob : MobType.byAlignment(align)) {
						// general.mobspawn.<mob>
						Map<String,Boolean> variants = new HashMap<String,Boolean>();
						MobData basicData = mob.getNewData();
						for(String data : basicData.getValues()) {
							// general.mobspawn.<mob>.<data>
							String perm = mob.getPermission() + "." + data;
							register(perm, "Gives permission to spawn " + mob.getPluralName() + " of the " + data +
								" variant.");
							variants.put(perm, true);
							if(data.equals(basicData.getBasic())) {
								alignBasics.put(perm, true);
								basics.put(perm, true);
							}
						}
						register(mob.getPermission(), "Gives permission to spawn any type of " + mob.getName(), variants);
						alignments.put(mob.getPermission(), true);
					}
					String alignName = align.toString().toLowerCase();
					String alignPerm = "general.mobspawn." + alignName;
					register(alignPerm, "Gives permission to spawn any type of" + alignName + " mobs.", alignments);
					register(alignPerm + ".basic", "Gives permission to spawn the basic type of any " + alignName +
						" mobs.", alignBasics);
					all.put(alignPerm, true);
				}
				register("general.mobspawn.basic", "Gives permission to spawn the basic type of any mob.", basics);
				register("general.mobspawn", "Gives permission to spawn any type of mob.", all);
			}
		},
		TELEPORT_BASIC {
			@Override
			public void build() {
				Map<String, Boolean> basics = new HashMap<String, Boolean>();
				for(String node : Options.TELEPORT_BASICS.get())
					basics.put("general.teleport.self.to." + node, true);
				register("general.teleport.basic","Gives basic teleport permissions.",basics);
			}
		},
		TARGET_DEST {
			class Base implements Cloneable {
				private String[] bases = {"general.teleport.?","general.teleport.?.instant","general.setspawn.?"};
				private String[] descrs = {"teleport", "instantly teleport", "set the spawn of"};
				public Base subst(String replacement) {
					Base clone = clone();
					String replace = replacement.isEmpty() ? ".?" : "?";
					for(int i = 0; i < clone.bases.length; i++)
						clone.bases[i] = clone.bases[i].replace(replace, replacement);
					return clone;
				}
				@Override
				public Base clone() {
					Base clone = new Base();
					clone.bases = bases.clone();
					clone.descrs = descrs.clone();
					return clone;
				}
				public Base append(String string) {
					Base clone = clone();
					for(int i = 0; i < clone.bases.length; i++)
						clone.descrs[i] += string;
					return clone;
				}
				public void register() {
					for(int i = 0; i < bases.length; i++)
						PermissionSet.TARGET_DEST.register(bases[i], "Gives permission to " + descrs[i]);
				}
				public void register(Set<Base> children) {
					for(int i = 0; i < bases.length; i++) {
						Map<String, Boolean> map = new HashMap<String, Boolean>();
						for(Base child : children) map.put(child.bases[i], true);
						if(i == 1) map.put(bases[0], true);
						PermissionSet.TARGET_DEST.register(bases[i], "Gives permission to " + descrs[i], map);
					}
				}
			}
			@Override public void build() {
				// Three nested loops; first targets, then worlds, and finally destinations.
				Base base = new Base();
				Set<Base> allChildren = set();
				Map<DestinationType, Set<Base>> destinationsChildren = this.<Set<Base>>destmap();
				Map<World, Set<Base>> worldsChildren = new HashMap<World,Set<Base>>();
				Map<DestinationType, Map<World, Set<Base>>> worldsDestChildren = this.<Map<World,Set<Base>>>destmap();
				for(TargetType targ : TargetType.values()) {
					Base targBase = base.subst(targ.toString().toLowerCase() + ".?");
					targBase = targBase.append(" " + targ.getName());
					Set<Base> targetsChildren = set();
					Map<DestinationType, Set<Base>> targetsDestChildren = this.<Set<Base>>destmap();
					for(World world : Bukkit.getWorlds()) {
						Base worldBase = targBase.subst("into." + world.getName() + ".?");
						worldBase = worldBase.append(" into " + world.getName());
						Set<Base> targetsWorldsChildren = set();
						for(DestinationType dest : DestinationType.values()) {
							// general.<cmd>.<target>.into.<world>.to.<dest>
							Base destBase = worldBase.subst("to." + dest.toString().toLowerCase());
							destBase = destBase.append(" at " + dest.getName(false));
							destBase.register();
							// Other permissions
							targetsWorldsChildren.add(destBase);
							if(!targetsDestChildren.containsKey(dest))
								targetsDestChildren.put(dest, set());
							targetsDestChildren.get(dest).add(destBase);
							if(!destinationsChildren.containsKey(dest))
								destinationsChildren.put(dest, set());
							destinationsChildren.get(dest).add(destBase);
							if(!worldsDestChildren.containsKey(dest))
								worldsDestChildren.put(dest, new HashMap<World, Set<Base>>());
							if(!worldsDestChildren.get(dest).containsKey(world))
								worldsDestChildren.get(dest).put(world, set());
							worldsDestChildren.get(dest).get(world).add(destBase);
						}
						// general.<cmd>.<target>.into.<world>
						Base targetWorldBase = worldBase.subst("");
						targetWorldBase.register(targetsWorldsChildren);
						// Other permissions
						targetsChildren.add(targetWorldBase);
						if(!worldsChildren.containsKey(world))
							worldsChildren.put(world, set());
						worldsChildren.get(world).add(targetWorldBase);

					}
					// general.<cmd>.<target>
					Base targetsBase = targBase.subst("");
					targetsBase.register(targetsChildren);
					// general.<cmd>.<target>.to.<dest>
					for(Entry<DestinationType,Set<Base>> entry : targetsDestChildren.entrySet()) {
						Base targetsDestBase = targBase.subst("to." + entry.getKey().toString().toLowerCase());
						targetsDestBase.register(entry.getValue());
					}
					// Other permissions
					allChildren.add(targetsBase);

				}
				// general.<cmd>
				Base allBase = base.subst("");
				allBase.register(allChildren);
				// general.<cmd>.to.<dest>
				for(Entry<DestinationType,Set<Base>> entry : destinationsChildren.entrySet()) {
					Base destinationsBase = base.subst("to." + entry.getKey().toString().toLowerCase());
					destinationsBase.register(entry.getValue());
				}
				// general.<cmd>.into.<world>
				for(Entry<World,Set<Base>> entry : worldsChildren.entrySet()) {
					Base worldsBase = base.subst("into." + entry.getKey().getName().toLowerCase());
					worldsBase.register(entry.getValue());
				}
				// general.<cmd>.into.<world>.to.<dest>
				for(Entry<DestinationType,Map<World,Set<Base>>> entry : worldsDestChildren.entrySet()) {
					for(Entry<World,Set<Base>> subentry : entry.getValue().entrySet()) {
						Base worldsDestBase = base.subst("into." + subentry.getKey().getName().toLowerCase() + ".?");
						worldsDestBase = worldsDestBase.subst("to." + entry.getKey().toString().toLowerCase());
						worldsDestBase.register(subentry.getValue());
					}
				}
			}
			private Set<Base> set() {
				return new HashSet<Base>();
			}
			private <V> EnumMap<DestinationType,V> destmap() {
				return new EnumMap<DestinationType,V>(DestinationType.class);
			}
		},
		MOTD {
			class Filter implements FilenameFilter {
				@Override
				public boolean accept(File dir, String name) {
					return name.endsWith(".motd");
				}
			}
			Filter filter = new Filter();
			@Override
			public void build() {
				File dir = General.plugin.getDataFolder();
				for(String filename : dir.list(filter)) {
					if(filename.equals("general.motd")) continue;
					filename = filename.replace(".motd", "");
					register("general.motd." + filename, "Shows the " + filename + " MOTD instead of the general " +
						"one when you join.", FALSE);
				}
			}
		},
		;
		public abstract void build();
		private static PrintWriter file = null;

		public static void init() {
			if(!Options.EXPORT_PERMISSIONS.get()) return;
			try {
				file = new PrintWriter(new File(General.plugin.getDataFolder(), "allpermissions.txt"));
			} catch(FileNotFoundException e) {
				file = null;
			}
		}
		public static void finish() {
			if(file != null) {
				List<Permission> ymlPerms = new ArrayList<Permission>(General.plugin.getDescription().getPermissions());
				Collections.sort(ymlPerms, new PermissionsCompare());
				for(Permission perm : ymlPerms) {
					file.println(perm.getName());
					if(Options.EXPORT_PERMISSIONS_CHILDREN.get())
						file.println("    " + perm.getChildren());
				}
				file.close();
			}
		}
		protected void register(String name) {
			register(name, null, null, null);
		}
		protected void register(String name, String desc) {
			register(name, desc, null, null);
		}
		protected void register(String name, PermissionDefault def) {
			register(name, null, def, null);
		}
		protected void register(String name, boolean def) {
			register(name, null, def, null);
		}
		protected void register(String name, String desc, PermissionDefault def) {
			register(name, desc, def, null);
		}
		protected void register(String name, String desc, boolean def) {
			register(name, desc, def, null);
		}
		protected void register(String name, Map<String,Boolean> children) {
			register(name, null, null, children);
		}
		protected void register(String name, String desc, Map<String,Boolean> children) {
			register(name, desc, null, children);
		}
		protected void register(String name, PermissionDefault def, Map<String,Boolean> children) {
			register(name, null, def, children);
		}
		protected void register(String name, boolean def, Map<String,Boolean> children) {
			register(name, null, def, children);
		}
		protected void register(String name, String desc, boolean def, Map<String,Boolean> children) {
			register(name, desc, def ? TRUE : FALSE, children);
		}
		protected void register(String name, String desc, PermissionDefault def, Map<String,Boolean> children) {
			// Welcome to Rome!
			Permission perm = new Permission(name, desc, def, children);
			Bukkit.getPluginManager().addPermission(perm);
			if(file != null) {
				file.println(name);
				if(Options.EXPORT_PERMISSIONS_CHILDREN.get())
					file.println("    " + perm.getChildren());
			}
		}
	}
	private static class PermissionsCompare implements Comparator<Permission> {
		@Override
		public int compare(Permission lhs, Permission rhs) {
			String[] left = lhs.getName().split("\\.");
			String[] right = rhs.getName().split("\\.");
			for(int i = 0; i < min(left.length, right.length); i++) {
				int cmp = left[i].compareTo(right[i]);
				if(cmp != 0) return cmp;
			}
			// If we get this far, they're either exactly equal, or different lengths
			// Thus the shorter one wins
			return Integer.valueOf(left.length).compareTo(right.length);
		}
	}
}


text:
<?php

namespace Oro\Bundle\CalendarBundle\Tests\Unit\Form\Handler;

use Doctrine\Persistence\ManagerRegistry;
use Doctrine\Persistence\ObjectManager;
use Oro\Bundle\ActivityBundle\Manager\ActivityManager;
use Oro\Bundle\CalendarBundle\Entity\Calendar;
use Oro\Bundle\CalendarBundle\Entity\CalendarEvent;
use Oro\Bundle\CalendarBundle\Form\Handler\SystemCalendarEventHandler;
use Oro\Bundle\CalendarBundle\Manager\CalendarEvent\NotificationManager;
use Oro\Bundle\CalendarBundle\Manager\CalendarEventManager;
use Oro\Bundle\FeatureToggleBundle\Checker\FeatureChecker;
use Oro\Bundle\OrganizationBundle\Entity\Organization;
use Oro\Bundle\SecurityBundle\Authentication\TokenAccessorInterface;
use Oro\Bundle\UserBundle\Entity\User;
use Oro\Component\Testing\ReflectionUtil;
use Symfony\Component\Form\Form;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestStack;

class SystemCalendarEventHandlerTest extends \PHPUnit\Framework\TestCase
{
    private const FORM_DATA = ['field' => 'value'];

    /** @var Form|\PHPUnit\Framework\MockObject\MockObject */
    private $form;

    /** @var Request */
    private $request;

    /** @var ObjectManager|\PHPUnit\Framework\MockObject\MockObject */
    private $objectManager;

    /** @var ActivityManager|\PHPUnit\Framework\MockObject\MockObject */
    private $activityManager;

    /** @var CalendarEventManager|\PHPUnit\Framework\MockObject\MockObject */
    private $calendarEventManager;

    /** @var NotificationManager|\PHPUnit\Framework\MockObject\MockObject */
    private $notificationManager;

    /** @var FeatureChecker|\PHPUnit\Framework\MockObject\MockObject */
    private $featureChecker;

    /** @var CalendarEvent */
    private $entity;

    /** @var Organization */
    private $organization;

    /** @var SystemCalendarEventHandler */
    private $handler;

    protected function setUp(): void
    {
        $this->form = $this->createMock(Form::class);
        $this->request = new Request();
        $this->objectManager = $this->createMock(ObjectManager::class);
        $this->activityManager = $this->createMock(ActivityManager::class);
        $this->calendarEventManager = $this->createMock(CalendarEventManager::class);
        $this->notificationManager = $this->createMock(NotificationManager::class);
        $this->featureChecker = $this->createMock(FeatureChecker::class);
        $this->entity = new CalendarEvent();
        $this->organization = new Organization();

        $requestStack = new RequestStack();
        $requestStack->push($this->request);

        $tokenAccessor = $this->createMock(TokenAccessorInterface::class);
        $tokenAccessor->expects($this->any())
            ->method('getOrganization')
            ->willReturn($this->organization);

        $doctrine = $this->createMock(ManagerRegistry::class);
        $doctrine->expects($this->any())
            ->method('getManager')
            ->willReturn($this->objectManager);

        $this->handler = new SystemCalendarEventHandler(
            $requestStack,
            $doctrine,
            $tokenAccessor,
            $this->activityManager,
            $this->calendarEventManager,
            $this->notificationManager,
            $this->featureChecker
        );
        $this->handler->setForm($this->form);
    }

    public function testProcessWithContexts()
    {
        $context = new User();
        ReflectionUtil::setId($context, 123);

        $owner = new User();
        ReflectionUtil::setId($owner, 321);

        $this->request->setMethod('POST');
        $defaultCalendar = $this->createMock(Calendar::class);
        $this->entity->setCalendar($defaultCalendar);

        $this->form->expects($this->any())
            ->method('get')
            ->willReturn($this->form);

        $this->form->expects($this->once())
            ->method('has')
            ->with('contexts')
            ->willReturn(true);

        $this->form->expects($this->once())
            ->method('isValid')
            ->willReturn(true);

        $defaultCalendar->expects($this->once())
            ->method('getOwner')
            ->willReturn($owner);

        $this->form->expects($this->any())
            ->method('getData')
            ->willReturn([$context]);

        $this->activityManager->expects($this->once())
            ->method('setActivityTargets')
            ->with(
                $this->identicalTo($this->entity),
                $this->identicalTo([$context, $owner])
            );

        $this->activityManager->expects($this->never())
            ->method('removeActivityTarget');
        $this->handler->process($this->entity);

        $this->assertSame($defaultCalendar, $this->entity->getCalendar());
    }

    /**
     * @dataProvider supportedMethods
     */
    public function testProcessInvalidData(string $method)
    {
        $this->request->initialize([], self::FORM_DATA);
        $this->request->setMethod($method);

        $this->form->expects($this->once())
            ->method('setData')
            ->with($this->identicalTo($this->entity));
        $this->form->expects($this->once())
            ->method('submit')
            ->with($this->identicalTo(self::FORM_DATA));
        $this->form->expects($this->once())
            ->method('isValid')
            ->willReturn(false);
        $this->calendarEventManager->expects($this->never())
            ->method($this->anything());
        $this->objectManager->expects($this->never())
            ->method($this->anything());

        $this->assertFalse(
            $this->handler->process($this->entity)
        );
    }

    /**
     * @dataProvider supportedMethods
     */
    public function testProcessValidData(string $method)
    {
        $this->request->initialize([], self::FORM_DATA);
        $this->request->setMethod($method);

        $this->form->expects($this->once())
            ->method('setData')
            ->with($this->identicalTo($this->entity));
        $this->form->expects($this->once())
            ->method('submit')
            ->with($this->identicalTo(self::FORM_DATA));
        $this->form->expects($this->once())
            ->method('isValid')
            ->willReturn(true);
        $this->calendarEventManager->expects($this->once())
            ->method('onEventUpdate')
            ->with($this->entity, clone $this->entity, $this->organization, true);
        $this->objectManager->expects($this->once())
            ->method('persist');
        $this->objectManager->expects($this->once())
            ->method('flush');

        $this->assertTrue(
            $this->handler->process($this->entity)
        );
    }

    public function supportedMethods(): array
    {
        return [
            ['POST'],
            ['PUT']
        ];
    }
}


text:
const {resolve} = require('path')
const WebpackShellPlugin = require('webpack-shell-plugin')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const WebpackBrowserPlugin = require('webpack-browser-plugin')
const WebpackMd5Hash = require('webpack-md5-hash')
const WebpackNotifierPlugin = require('webpack-notifier')
const webpackValidator = require('webpack-validator')
const InlineManifestWebpackPlugin = require('inline-manifest-webpack-plugin')
const ScriptExtHtmlWebpackPlugin = require('script-ext-html-webpack-plugin')
// const OfflinePlugin = require('offline-plugin')
const webpack = require('webpack')
const {getIfUtils, removeEmpty} = require('webpack-config-utils')

module.exports = (env) => {
  const {ifProd} = getIfUtils(env)
  const config = webpackValidator({
    context: resolve('src'),
    cache: false,
    devtool: ifProd('source-map', 'inline-source-map'),
    entry: {
      app: './index.js',
      polyfills: ['picturefill']
    },
    output: {
      path: resolve('build'),
      filename: ifProd('[name].bundle.[chunkhash].js', '[name].bundle.js'),
      sourceMapFilename: '[name].map',
      chunkFilename: '[chunkhash].[id].chunk.js',
      publicPath: ''
    },
    module: {
      loaders: [
        {
          test: /\.html$/,
          loader: 'html!html-minify'
        },
        {
          test: /\.json$/,
          loader: 'json-loader'
        },
        {
          test: /\.js$/,
          loaders: ['ng-annotate', 'babel-loader'],
          include: resolve('src'),
          exclude: [/node_module/, /libs/]
        },
        {
          test: /\.(woff|woff2|eot|ttf|svg#.*)$/,
          loader: 'url-loader'
        },
        {
          test: /\.(jpg)$/i,
          loader: 'responsive'
        },
        {
          test: /\.(svg|png|jpg)$/,
          loader: 'url-loader?limit=100000!img?progressive=true'
        },
        {
          test: /\.css$/,
          loaders: ['style-loader', {
            loader: 'css-loader',
            query: { modules: true, localIdentName: '[name]__[local]___[hash:base64:5]' }
          }, 'postcss-loader']
        }
      ]
    },
    plugins: removeEmpty([
      ifProd(new webpack.optimize.CommonsChunkPlugin({
        names: ['polyfills', 'manifest']
      })),
      new HtmlWebpackPlugin({
        cache: true,
        inject: 'head',
        template: 'index.html.ejs'
      }),
      new ScriptExtHtmlWebpackPlugin({
        defaultAttribute: 'defer'
      }),
      ifProd(new InlineManifestWebpackPlugin()),
      new webpack.LoaderOptionsPlugin({
        options: {
          'html-minify-loader': {
            minifyCSS: true
          },
          responsiveLoader: {
            sizes: [320, 640, 1024]
          },
          postcss (webpackInstance) {
            return [
              // require('postcss-autoreset')(),
              require('postcss-smart-import')({
                addDependencyTo: webpackInstance
              }),
              require('postcss-url')({
                url: 'inline' // or "rebase" or "copy"
              }),
              require('postcss-cssnext')({
                features: {
                  rem: {
                    rootValue: 10,
                    html: false
                  }
                }
              }),
              require('postcss-browser-reporter')(),
              require('postcss-reporter')({ clearMessages: true })
            ]
          }
        }
      }),
      new WebpackMd5Hash(),
      ifProd(new WebpackBrowserPlugin()),
      new WebpackNotifierPlugin(),
      ifProd(new WebpackShellPlugin({onBuildStart: ['npm run copy:ico'], onBuildEnd: ['npm run clean:files']})),
      // new OfflinePlugin(),
      new webpack.DefinePlugin({
        'process.env': {
          NODE_ENV: ifProd('"production"', '"development"')
        }
      })
    ]),
    devServer: {
      stats: 'minimal',
      compress: false,
      inline: true,
      historyApiFallback: true,
      port: 8080
    }
  })

  if (env.debug) {
    console.log(config)
    debugger // eslint-disable-line
  }

  return config
}