summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rwxr-xr-xtests/0337.pem45
-rwxr-xr-xtests/0338.pem45
-rwxr-xr-xtests/0339.pem45
-rw-r--r--tests/033B.pem45
-rw-r--r--tests/033C.pem12
-rw-r--r--tests/033D.pem147
-rw-r--r--tests/033E.pem149
-rw-r--r--tests/033F.pem149
-rwxr-xr-xtests/033a.pem45
-rwxr-xr-xtests/64kb.txt307
-rwxr-xr-xtests/Makefile.win36
-rwxr-xr-xtests/add_newconnbin0 -> 979697 bytes
-rwxr-xr-xtests/build.txt1
-rwxr-xr-xtests/ca/ca_config.txt36
-rw-r--r--tests/ca/newtestca.pem16
-rw-r--r--tests/ca/newtestca_pkey.pem18
-rw-r--r--tests/ca/picapica_test_CA.pem54
-rw-r--r--tests/ca/picapica_test_CA_pkey.pem102
-rwxr-xr-xtests/ca/privkey_testnetCA.pem18
-rwxr-xr-xtests/ca/serial1
-rwxr-xr-xtests/ca/serial.old1
-rwxr-xr-xtests/ca/testnetCA.pem15
-rwxr-xr-xtests/ca/testnet_cert_index_db.txt9
-rwxr-xr-xtests/ca/testnet_cert_index_db.txt.attr1
-rwxr-xr-xtests/ca/testnet_cert_index_db.txt.attr.old1
-rwxr-xr-xtests/ca/testnet_cert_index_db.txt.old7
-rwxr-xr-xtests/cert_pkey.pem35
-rwxr-xr-xtests/cert_pkey_3.pem33
-rwxr-xr-xtests/cert_pkey_n2.pem33
-rw-r--r--tests/create_certs_commands.txt6
-rw-r--r--tests/dh2048.pem8
-rw-r--r--tests/dh512.pem4
-rwxr-xr-xtests/fdssizebin0 -> 6674 bytes
-rwxr-xr-xtests/fdssize.c9
-rwxr-xr-xtests/getidbin0 -> 7320 bytes
-rw-r--r--tests/nodeaddrlist_test.txt5
-rwxr-xr-xtests/privkey_tester4.pem18
-rw-r--r--tests/save_nodelist.txt4
-rwxr-xr-xtests/test_addnewconn.c42
-rw-r--r--tests/test_addrconv.c23
-rwxr-xr-xtests/test_clientbin0 -> 34109 bytes
-rwxr-xr-xtests/test_client.c234
-rwxr-xr-xtests/test_client_win.dev79
-rwxr-xr-xtests/test_client_win.exebin0 -> 1090031 bytes
-rwxr-xr-xtests/test_client_win.layout20
-rwxr-xr-xtests/test_getidfromsubstr.c43
-rwxr-xr-xtests/test_msgprocbin0 -> 7390 bytes
-rwxr-xr-xtests/test_msgproc.c18
-rwxr-xr-xtests/test_nodeaddrbin0 -> 8618 bytes
-rw-r--r--tests/test_nodeaddr.c28
-rwxr-xr-xtests/test_randseed.c14
-rwxr-xr-xtests/test_randseed.dev69
-rwxr-xr-xtests/test_randseed.exebin0 -> 339039 bytes
-rw-r--r--tests/tester10_pkey.pem18
-rw-r--r--tests/tester10cert.pem32
-rw-r--r--tests/tester11_pkey.pem18
-rw-r--r--tests/tester11cert.pem30
-rw-r--r--tests/tester12cert.pem96
-rw-r--r--tests/tester12pkey.pem54
-rw-r--r--tests/tester13cert.pem98
-rw-r--r--tests/tester13cert_forged.pem203
-rw-r--r--tests/tester13pkey.pem54
-rw-r--r--tests/tester13pkey_forged.pem54
-rw-r--r--tests/tester13req_forged.pem28
-rwxr-xr-xtests/tester5_privkey.pem18
-rwxr-xr-xtests/tester5cert.pem63
-rwxr-xr-xtests/tester6_privkey.pem18
-rwxr-xr-xtests/tester6cert.pem63
-rwxr-xr-xtests/tester6req.pem10
-rwxr-xr-xtests/tester8_privkey.pem18
-rwxr-xr-xtests/tester8cert.pem63
-rwxr-xr-xtests/tester8req.pem10
-rwxr-xr-xtests/tester9_privkey.pem18
-rwxr-xr-xtests/tester9cert.pem63
-rwxr-xr-xtests/tester9req.pem10
-rw-r--r--tests/trustedCA/newtestca.pem16
-rw-r--r--tests/trustedCA/picapica_test_CA.pem54
-rw-r--r--tests/trustedCA/picapica_test_CA_pkey.pem102
-rwxr-xr-xtests/trustedCA/testnetCA.pem15
-rwxr-xr-xtests/trusted_CA.pem87
-rwxr-xr-xtests/tst_sizeofbin0 -> 7053 bytes
-rwxr-xr-xtests/tst_sizeof.c16
82 files changed, 3359 insertions, 0 deletions
diff --git a/tests/0337.pem b/tests/0337.pem
new file mode 100755
index 0000000..d485b65
--- /dev/null
+++ b/tests/0337.pem
@@ -0,0 +1,45 @@
+Certificate:
+ Data:
+ Version: 1 (0x0)
+ Serial Number: 823 (0x337)
+ Signature Algorithm: md5WithRSAEncryption
+ Issuer: O=TESTNET, CN=TESTNET CA
+ Validity
+ Not Before: Nov 25 17:53:27 2008 GMT
+ Not After : Nov 25 17:53:27 2009 GMT
+ Subject: C=GE, O=TESTNET, CN=5#tester5
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public Key: (1024 bit)
+ Modulus (1024 bit):
+ 00:d8:de:11:ad:7e:09:f7:8a:96:04:7b:4f:87:4b:
+ 3c:44:d7:00:a6:7e:94:1f:33:93:ee:81:f5:20:b0:
+ b3:c3:8d:f6:01:76:44:e7:b0:e9:b5:14:77:d0:4f:
+ df:93:0a:b4:89:e8:bc:a4:e7:b5:61:50:54:d2:ea:
+ af:68:62:6a:6f:84:ab:d8:17:3d:de:6b:8d:13:9c:
+ aa:8d:f2:12:40:49:a5:d9:0b:6f:c7:ce:0b:9c:4f:
+ 89:b3:cb:5d:3f:6a:7c:3a:7d:04:ef:1d:45:df:e1:
+ e2:fa:75:0e:cd:5e:c2:e1:d7:56:db:9f:0d:db:7f:
+ 8f:fe:ad:79:e4:bc:78:69:e7
+ Exponent: 65537 (0x10001)
+ Signature Algorithm: md5WithRSAEncryption
+ 86:37:80:6d:fe:8a:15:38:ed:6b:3e:1d:41:7f:f0:6a:6d:03:
+ f2:45:72:62:52:b1:52:4c:8f:e8:53:24:cf:34:98:13:27:33:
+ 3f:89:cd:c4:f4:d5:cc:ab:59:ad:b0:56:39:a1:92:82:25:8b:
+ 49:bf:36:89:32:86:e7:ad:10:7a:85:d9:c8:ac:50:b9:ae:e8:
+ 60:e6:d2:5e:be:c4:83:0e:e1:34:9c:cb:84:61:3a:59:80:f9:
+ 92:c2:5b:5f:aa:82:97:e1:c0:20:a2:01:15:e9:54:87:98:a5:
+ 05:b9:a7:b5:f8:0b:2c:ff:e7:01:f5:c1:07:ef:ff:e1:23:6f:
+ b2:da
+-----BEGIN CERTIFICATE-----
+MIIByjCCATMCAgM3MA0GCSqGSIb3DQEBBAUAMCcxEDAOBgNVBAoTB1RFU1RORVQx
+EzARBgNVBAMTClRFU1RORVQgQ0EwHhcNMDgxMTI1MTc1MzI3WhcNMDkxMTI1MTc1
+MzI3WjAzMQswCQYDVQQGEwJHRTEQMA4GA1UEChMHVEVTVE5FVDESMBAGA1UEAwwJ
+NSN0ZXN0ZXI1MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDY3hGtfgn3ipYE
+e0+HSzxE1wCmfpQfM5PugfUgsLPDjfYBdkTnsOm1FHfQT9+TCrSJ6Lyk57VhUFTS
+6q9oYmpvhKvYFz3ea40TnKqN8hJASaXZC2/HzgucT4mzy10/anw6fQTvHUXf4eL6
+dQ7NXsLh11bbnw3bf4/+rXnkvHhp5wIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAIY3
+gG3+ihU47Ws+HUF/8GptA/JFcmJSsVJMj+hTJM80mBMnMz+JzcT01cyrWa2wVjmh
+koIli0m/NokyhuetEHqF2cisULmu6GDm0l6+xIMO4TScy4RhOlmA+ZLCW1+qgpfh
+wCCiARXpVIeYpQW5p7X4Cyz/5wH1wQfv/+Ejb7La
+-----END CERTIFICATE-----
diff --git a/tests/0338.pem b/tests/0338.pem
new file mode 100755
index 0000000..ff2fac2
--- /dev/null
+++ b/tests/0338.pem
@@ -0,0 +1,45 @@
+Certificate:
+ Data:
+ Version: 1 (0x0)
+ Serial Number: 824 (0x338)
+ Signature Algorithm: md5WithRSAEncryption
+ Issuer: O=TESTNET, CN=TESTNET CA
+ Validity
+ Not Before: Nov 25 18:08:24 2008 GMT
+ Not After : Nov 25 18:08:24 2009 GMT
+ Subject: O=TESTNET, CN=6#tester6
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public Key: (1024 bit)
+ Modulus (1024 bit):
+ 00:9e:22:94:99:93:d7:7e:d9:08:b3:e4:eb:54:c7:
+ 66:17:ee:e7:a1:d5:4c:e9:3f:36:1e:72:d7:87:56:
+ 1d:10:79:b9:46:20:11:ce:4d:d5:8d:15:5b:e5:58:
+ 0b:11:67:96:ba:56:44:e6:2f:b3:6f:02:f2:a0:22:
+ f6:fb:ae:22:04:9e:1f:0f:0b:a0:84:8d:94:4d:b3:
+ 12:00:78:bf:1a:a2:18:85:fc:45:61:37:66:df:90:
+ a9:01:33:a4:d8:a5:43:b8:82:f8:3d:2f:d7:f2:fd:
+ b0:0d:3b:fa:a0:2d:be:24:fc:fa:81:eb:26:59:3f:
+ fa:b6:57:64:1a:33:1b:3d:65
+ Exponent: 65537 (0x10001)
+ Signature Algorithm: md5WithRSAEncryption
+ 6e:35:5f:f5:b8:fb:54:ba:b7:44:d1:7f:e4:72:32:9d:06:8f:
+ 8f:46:e3:e1:5a:f1:e7:e2:4f:b3:55:fb:4a:37:fa:6d:c2:cf:
+ 43:7c:67:12:bf:c2:3a:73:d2:60:40:cc:f2:38:a9:19:4b:bf:
+ 3c:58:3b:98:59:d1:05:1a:1d:ce:11:9e:51:b2:f9:99:eb:65:
+ 38:f1:b1:95:d5:ad:fa:a1:0b:5c:70:98:19:6b:19:5f:53:62:
+ 58:ad:2d:0f:ed:dd:04:94:ce:81:c6:25:53:4a:7f:28:e4:9d:
+ f1:6a:ce:c4:fa:2d:42:5c:8a:12:c3:b5:a8:c0:ca:bf:3b:00:
+ 3c:27
+-----BEGIN CERTIFICATE-----
+MIIBvTCCASYCAgM4MA0GCSqGSIb3DQEBBAUAMCcxEDAOBgNVBAoTB1RFU1RORVQx
+EzARBgNVBAMTClRFU1RORVQgQ0EwHhcNMDgxMTI1MTgwODI0WhcNMDkxMTI1MTgw
+ODI0WjAmMRAwDgYDVQQKEwdURVNUTkVUMRIwEAYDVQQDDAk2I3Rlc3RlcjYwgZ8w
+DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJ4ilJmT137ZCLPk61THZhfu56HVTOk/
+Nh5y14dWHRB5uUYgEc5N1Y0VW+VYCxFnlrpWROYvs28C8qAi9vuuIgSeHw8LoISN
+lE2zEgB4vxqiGIX8RWE3Zt+QqQEzpNilQ7iC+D0v1/L9sA07+qAtviT8+oHrJlk/
++rZXZBozGz1lAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAbjVf9bj7VLq3RNF/5HIy
+nQaPj0bj4Vrx5+JPs1X7Sjf6bcLPQ3xnEr/COnPSYEDM8jipGUu/PFg7mFnRBRod
+zhGeUbL5metlOPGxldWt+qELXHCYGWsZX1NiWK0tD+3dBJTOgcYlU0p/KOSd8WrO
+xPotQlyKEsO1qMDKvzsAPCc=
+-----END CERTIFICATE-----
diff --git a/tests/0339.pem b/tests/0339.pem
new file mode 100755
index 0000000..77d09ae
--- /dev/null
+++ b/tests/0339.pem
@@ -0,0 +1,45 @@
+Certificate:
+ Data:
+ Version: 1 (0x0)
+ Serial Number: 825 (0x339)
+ Signature Algorithm: md5WithRSAEncryption
+ Issuer: O=TESTNET, CN=TESTNET CA
+ Validity
+ Not Before: Dec 23 22:48:58 2008 GMT
+ Not After : Dec 23 22:48:58 2009 GMT
+ Subject: O=TESTNET, CN=8#tester8
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public Key: (1024 bit)
+ Modulus (1024 bit):
+ 00:d8:30:82:43:97:15:a9:ce:c2:ed:dd:55:8e:26:
+ 5e:83:57:31:a8:e8:a7:63:0d:5e:6d:e1:bc:03:f6:
+ e1:c6:2b:c4:7e:d0:04:ee:a7:9f:9d:6d:a1:68:1c:
+ 31:c1:7f:70:0e:e3:51:48:46:d5:01:33:bc:f9:b1:
+ bc:1e:bb:ac:85:de:10:65:1d:55:da:51:b9:d4:c0:
+ 4d:07:1f:65:fe:8e:ab:7b:ef:d6:16:67:ab:62:6e:
+ 42:f9:98:a6:f2:02:a2:c9:4e:d5:db:fc:3a:cb:df:
+ 2b:75:7e:ae:55:8d:7d:6e:a1:4b:95:c4:76:c5:a6:
+ 87:6a:12:25:1a:dd:e1:be:a3
+ Exponent: 65537 (0x10001)
+ Signature Algorithm: md5WithRSAEncryption
+ 6d:5c:44:a1:e9:98:f8:ed:e7:b9:d9:3f:77:64:de:03:76:4e:
+ 34:82:22:73:cb:f0:77:1b:b5:52:ff:72:64:1d:b7:cf:ad:b1:
+ 68:eb:51:50:ca:af:1b:4c:db:d6:3e:cf:b6:45:01:1c:8c:14:
+ f0:68:31:5e:38:8c:5a:49:69:0a:bd:9d:5d:8d:7a:a0:8e:03:
+ 73:86:79:ab:49:f6:4b:ff:96:12:a4:ee:cf:69:b5:33:21:03:
+ 2c:d2:58:31:33:9b:be:c1:a2:17:f9:06:16:f5:c0:07:e3:a5:
+ e5:e5:41:46:40:47:14:58:f9:33:91:08:2f:ae:63:96:47:0f:
+ 0a:82
+-----BEGIN CERTIFICATE-----
+MIIBvTCCASYCAgM5MA0GCSqGSIb3DQEBBAUAMCcxEDAOBgNVBAoTB1RFU1RORVQx
+EzARBgNVBAMTClRFU1RORVQgQ0EwHhcNMDgxMjIzMjI0ODU4WhcNMDkxMjIzMjI0
+ODU4WjAmMRAwDgYDVQQKEwdURVNUTkVUMRIwEAYDVQQDDAk4I3Rlc3RlcjgwgZ8w
+DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANgwgkOXFanOwu3dVY4mXoNXMajop2MN
+Xm3hvAP24cYrxH7QBO6nn51toWgcMcF/cA7jUUhG1QEzvPmxvB67rIXeEGUdVdpR
+udTATQcfZf6Oq3vv1hZnq2JuQvmYpvICoslO1dv8OsvfK3V+rlWNfW6hS5XEdsWm
+h2oSJRrd4b6jAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAbVxEoemY+O3nudk/d2Te
+A3ZONIIic8vwdxu1Uv9yZB23z62xaOtRUMqvG0zb1j7PtkUBHIwU8GgxXjiMWklp
+Cr2dXY16oI4Dc4Z5q0n2S/+WEqTuz2m1MyEDLNJYMTObvsGiF/kGFvXAB+Ol5eVB
+RkBHFFj5M5EIL65jlkcPCoI=
+-----END CERTIFICATE-----
diff --git a/tests/033B.pem b/tests/033B.pem
new file mode 100644
index 0000000..11d38b6
--- /dev/null
+++ b/tests/033B.pem
@@ -0,0 +1,45 @@
+Certificate:
+ Data:
+ Version: 1 (0x0)
+ Serial Number: 827 (0x33b)
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: O=Testing certificates, CN=TEST ROOT CERT
+ Validity
+ Not Before: Aug 1 23:51:12 2009 GMT
+ Not After : Dec 26 23:51:12 2010 GMT
+ Subject: O=TESTLAB, CN=10#tester10
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public Key: (1024 bit)
+ Modulus (1024 bit):
+ 00:fa:d3:3f:4b:11:b2:ec:e6:a9:be:68:22:9c:ee:
+ e3:ad:58:b1:bf:95:33:7b:0e:cc:3a:30:51:ad:be:
+ a2:af:c7:89:1d:70:4b:98:f4:e5:db:d8:34:09:30:
+ 85:0e:7d:6b:0e:bb:21:73:38:dc:cb:41:92:2a:5f:
+ b6:9f:53:80:a0:0f:a7:dd:86:17:02:ea:5a:fe:88:
+ df:c9:3e:72:20:e3:3d:3d:9b:60:99:8f:bf:3a:34:
+ 26:5d:07:e8:02:3c:32:ea:7d:48:ce:ee:1a:43:01:
+ 64:cc:55:81:6b:11:ec:61:1a:e6:07:be:06:b6:4a:
+ 7e:75:76:05:f1:d3:60:00:ff
+ Exponent: 65537 (0x10001)
+ Signature Algorithm: sha1WithRSAEncryption
+ 00:1e:27:4c:bf:cb:95:f4:89:2c:b3:d2:52:6b:04:2f:87:91:
+ 07:b2:75:a7:00:7d:82:37:e8:a7:f8:6a:87:cb:27:76:11:05:
+ 0f:fb:25:f7:03:6e:60:44:6d:92:09:96:5f:f4:15:ce:26:37:
+ 8c:cc:36:92:49:1a:c9:5f:7b:1e:b0:3e:f5:bc:41:2e:0a:b0:
+ 6e:e1:5b:73:c6:26:f7:f3:8b:17:11:70:71:d5:5d:f4:32:7a:
+ 2a:ed:43:38:bf:5a:73:42:d6:f8:44:78:24:79:d5:ea:cf:cd:
+ 64:54:d4:df:7e:e3:05:9c:de:d9:8c:71:3a:62:27:30:cd:74:
+ 3c:15
+-----BEGIN CERTIFICATE-----
+MIIB0DCCATkCAgM7MA0GCSqGSIb3DQEBBQUAMDgxHTAbBgNVBAoTFFRlc3Rpbmcg
+Y2VydGlmaWNhdGVzMRcwFQYDVQQDEw5URVNUIFJPT1QgQ0VSVDAeFw0wOTA4MDEy
+MzUxMTJaFw0xMDEyMjYyMzUxMTJaMCgxEDAOBgNVBAoTB1RFU1RMQUIxFDASBgNV
+BAMMCzEwI3Rlc3RlcjEwMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD60z9L
+EbLs5qm+aCKc7uOtWLG/lTN7Dsw6MFGtvqKvx4kdcEuY9OXb2DQJMIUOfWsOuyFz
+ONzLQZIqX7afU4CgD6fdhhcC6lr+iN/JPnIg4z09m2CZj786NCZdB+gCPDLqfUjO
+7hpDAWTMVYFrEexhGuYHvga2Sn51dgXx02AA/wIDAQABMA0GCSqGSIb3DQEBBQUA
+A4GBAAAeJ0y/y5X0iSyz0lJrBC+HkQeydacAfYI36Kf4aofLJ3YRBQ/7JfcDbmBE
+bZIJll/0Fc4mN4zMNpJJGslfex6wPvW8QS4KsG7hW3PGJvfzixcRcHHVXfQyeirt
+Qzi/WnNC1vhEeCR51erPzWRU1N9+4wWc3tmMcTpiJzDNdDwV
+-----END CERTIFICATE-----
diff --git a/tests/033C.pem b/tests/033C.pem
new file mode 100644
index 0000000..d8c86d4
--- /dev/null
+++ b/tests/033C.pem
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIB2zCCAUQCAgM8MA0GCSqGSIb3DQEBBQUAMDgxHTAbBgNVBAoTFFRlc3Rpbmcg
+Y2VydGlmaWNhdGVzMRcwFQYDVQQDEw5URVNUIFJPT1QgQ0VSVDAeFw0wOTA4MDMw
+NDQ1MDlaFw0xMDEyMjgwNDQ1MDlaMDMxGzAZBgNVBAoTElRFU1RFUiBDRVJUSUZJ
+Q0FURTEUMBIGA1UEAwwLMTEjdGVzdGVyMTEwgZ8wDQYJKoZIhvcNAQEBBQADgY0A
+MIGJAoGBAJQ/Jxi48pGxbV0Tt8hUZVfBq2IrTUf+2TZVf0QWKHpVnWFkdEQQVAvZ
+LJI0H9j0IJva/5vaa7X5gmmXP6fubkmQVAwzZVYRiLq87wvwErZBgG1cwEbmfE90
+xrcPSuOPUpm120BbcSg1xEYiSHHCR2mTT4D/d2PQao9/4lC2qk5NAgMBAAEwDQYJ
+KoZIhvcNAQEFBQADgYEAh7dzS6D0Xe7XMSxBJAStcgd5GgyFoUr4lT22KowY1UPM
+SuHCfTv9S8B3MvmnRedflPyMGdzcAM2ak8kH0hOImWESeUHGWLs6222R1XxCX2QB
+jB+RBxU4HlCZaCzOrHtsvykcjgCUEgbDIOH4Qg7RacV8GtoF+p0upjHNrqoaito=
+-----END CERTIFICATE-----
diff --git a/tests/033D.pem b/tests/033D.pem
new file mode 100644
index 0000000..1c11dc2
--- /dev/null
+++ b/tests/033D.pem
@@ -0,0 +1,147 @@
+Certificate:
+ Data:
+ Version: 1 (0x0)
+ Serial Number: 829 (0x33d)
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=GE, ST=Georgia, CN=Pica Pica Test CA
+ Validity
+ Not Before: Mar 6 20:40:52 2011 GMT
+ Not After : Apr 7 20:40:52 2021 GMT
+ Subject: ST=Georgia, CN=12#\xD1\x82\xD0\xB5\xD1\x81\xD1\x82\xD0\xB5\xD1\x8012
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public Key: (4096 bit)
+ Modulus (4096 bit):
+ 00:92:bc:3b:f1:a7:33:44:ea:9a:a2:90:f5:a2:ec:
+ 30:41:83:4d:63:2a:28:00:9e:bb:37:f6:05:e8:84:
+ e2:d0:9b:1e:cf:db:49:6f:bc:f1:71:2a:62:ce:6b:
+ aa:d1:c8:aa:75:79:eb:e0:0b:ef:12:19:8b:44:d8:
+ dd:71:ca:ef:6d:6e:db:38:18:e0:56:6a:2c:66:76:
+ 86:73:fa:97:06:2e:8e:d8:bf:5f:b5:eb:65:4c:a8:
+ fd:6b:b5:3e:8f:db:e4:0f:2a:e6:9e:a1:3e:55:a0:
+ 74:d6:0d:55:ca:8f:bc:39:75:fb:29:f3:4d:10:7a:
+ b8:c9:e5:4d:bf:8b:b6:7d:c6:26:e5:12:2d:94:fb:
+ 87:1f:da:cb:c3:c8:0e:20:64:0f:e8:d8:4e:8d:1a:
+ 51:76:b0:6a:fc:25:b8:bf:5c:7a:b4:05:ce:5e:52:
+ bb:e9:1f:4d:b8:20:02:80:74:94:3c:92:de:f0:4b:
+ 98:6e:d0:93:94:b8:ff:79:c1:22:86:81:b9:d6:64:
+ 8c:cf:91:20:7c:f8:89:88:f0:04:63:86:55:f0:ed:
+ b9:fa:c8:b6:1c:5b:1d:e8:7d:16:84:90:fc:21:f2:
+ ce:b7:ad:f3:1b:16:04:3c:1d:d2:0f:8c:90:2d:20:
+ e8:93:b3:a9:3b:91:47:f9:cb:32:c8:4d:00:fb:ce:
+ a0:8d:e2:79:61:2a:20:ab:3e:c3:4b:3f:ea:c2:c2:
+ d0:78:48:8c:62:92:02:6d:6e:0c:a9:5e:52:c8:b1:
+ 3a:e8:0c:2e:4b:53:db:b2:f6:c1:86:96:32:11:34:
+ 88:ae:9a:a0:f5:9c:15:77:26:11:8c:30:be:67:d4:
+ ac:f4:44:f3:28:f2:01:35:69:d4:72:e0:d8:bc:b5:
+ f1:11:70:39:7a:04:68:d6:8e:e2:52:2e:ff:07:26:
+ 27:72:8e:c3:c6:54:6b:cc:ea:e1:dc:74:4d:7c:f8:
+ d7:0e:02:18:80:48:a7:cb:78:30:00:59:61:27:9b:
+ 9c:74:d0:7c:ea:56:f9:78:25:d8:3c:38:f3:20:2d:
+ b5:dc:71:7b:2c:5c:76:eb:0e:07:33:f1:03:76:98:
+ 4b:c2:02:c7:1c:b9:7d:c3:55:4e:9d:f8:b8:f7:99:
+ a3:d2:ea:f0:21:77:a3:35:bc:09:a8:7e:af:6a:b7:
+ 10:0b:a6:c8:50:ea:52:6f:c7:c3:83:8a:7e:7f:22:
+ 22:cd:40:d9:0a:33:0d:68:b3:b2:c8:84:7e:47:8c:
+ 23:0a:b1:f0:b9:6b:92:b8:7e:a9:80:92:06:7f:8a:
+ 4b:9e:1a:22:24:d2:98:38:38:92:ab:b1:8f:b1:a3:
+ 1d:f6:e0:4c:21:44:d5:81:8f:98:62:68:f2:c6:7c:
+ 53:c8:07
+ Exponent: 65537 (0x10001)
+ Signature Algorithm: sha1WithRSAEncryption
+ 68:55:c8:31:fc:df:a8:30:ec:b5:cf:88:26:38:e5:39:34:85:
+ 08:4f:c3:f0:17:ca:d4:1a:62:5d:8e:98:ac:1d:b7:16:a3:74:
+ 78:1f:e6:e2:f6:12:1e:14:1d:e3:86:68:52:2c:11:80:41:3e:
+ ed:2e:be:23:53:40:d8:8e:17:20:af:7f:e3:20:7b:f4:2c:b2:
+ 84:93:3c:31:19:2a:70:b4:e7:a3:f7:dd:19:45:f8:5d:c2:da:
+ 1a:56:22:48:26:4e:d2:cc:be:60:ba:00:c3:3c:c4:77:56:8e:
+ 1d:33:7d:0b:c1:6f:bc:61:5a:2f:a4:19:91:3a:5b:d2:d9:9e:
+ 7e:87:6a:79:80:f4:69:66:a0:77:61:d3:33:de:c1:1f:09:e3:
+ 3b:9e:b1:c3:c8:3d:e5:ae:76:b8:7d:73:4e:2b:ca:b2:e7:dc:
+ 01:5a:fa:b1:0b:e3:0d:af:2a:65:86:66:a3:0d:9d:7a:bc:f1:
+ 55:f0:24:45:a0:ed:01:f0:b4:79:cb:13:b6:48:4d:12:8b:ed:
+ bf:96:5b:b8:89:4d:15:96:75:1c:2b:91:0a:ff:43:6a:c0:8a:
+ 1c:fd:da:25:f2:a5:c4:83:2f:36:6a:3a:50:72:2a:e2:bd:31:
+ c4:fb:56:5b:b5:b1:25:d3:7e:25:35:b9:08:c1:cf:4d:5f:29:
+ 86:a5:1e:a9:9b:6b:14:75:63:fe:fd:47:24:df:10:2d:1a:3e:
+ f5:28:f4:0f:80:6c:d3:37:d3:66:9d:08:dc:c4:30:7a:76:8d:
+ 32:b3:a1:ee:c5:e9:8d:dd:93:87:c6:91:8b:94:af:7f:a2:b3:
+ b5:91:53:2c:c6:b7:2a:05:a1:74:b2:5c:12:80:43:cc:1a:6b:
+ 6c:f5:66:d7:60:b2:04:e5:cf:e2:59:2e:44:5b:c9:48:b4:d3:
+ 4d:76:15:c7:85:2d:38:de:64:b3:03:7d:7d:82:8a:5f:a4:04:
+ ed:f3:21:35:4d:7e:de:a0:08:f8:b0:c5:9e:a0:d5:a9:a4:bd:
+ ac:c0:9a:cd:c4:21:75:52:cc:0c:53:87:b7:68:f8:6c:c0:49:
+ 0b:30:fd:20:6e:05:de:56:55:30:d8:ce:f9:62:60:50:af:5d:
+ 59:fa:d0:f5:76:e1:42:50:7c:59:8f:b6:a4:b9:de:3d:72:f9:
+ d7:86:11:1f:f3:d0:b4:c9:30:b1:3e:37:04:5d:aa:09:06:53:
+ 3a:67:be:1d:8a:95:99:d7:ee:4a:69:9f:7a:a2:52:65:b0:87:
+ 89:2f:e2:dc:47:af:9d:4b:d0:0b:29:1b:d6:1d:95:a7:44:18:
+ 99:c1:31:58:d7:96:6c:68:56:78:14:4a:27:ad:79:2c:c4:f7:
+ 72:ae:b3:63:71:e1:10:f2:36:4e:0e:0b:3d:05:18:71:0b:3d:
+ 2d:44:a9:48:03:83:7c:72:51:5d:78:55:9d:f2:8c:32:56:d1:
+ 60:51:d1:53:8a:c0:56:e2:39:15:c3:c3:fb:57:e4:5f:3d:1c:
+ b5:62:e2:e3:da:ea:fe:b3:54:24:7e:44:55:24:56:29:91:2f:
+ 56:ce:ef:f7:da:f1:ad:04:48:92:94:cb:3e:45:3f:34:bf:78:
+ 0a:f6:42:bd:2d:fc:c0:c1:a6:c3:00:9a:29:7a:c0:b7:06:23:
+ 3b:28:44:fd:e3:6b:b7:0e:aa:39:1f:20:aa:22:b1:56:0b:d1:
+ 67:e6:8a:95:cb:f6:76:9d:87:1e:01:0e:dd:0c:d9:13:3b:ca:
+ 54:0d:f1:c4:5a:49:05:ba:d5:ad:38:12:2e:81:7d:6f:c3:12:
+ 34:6a:02:28:b2:8f:b0:76:02:98:ab:a8:a4:f5:97:d7:5f:84:
+ 94:87:f7:35:c0:ab:53:01:98:1c:63:35:eb:f5:bc:6f:6f:68:
+ 7f:ba:5b:b2:32:fb:11:15:6b:1e:ae:8a:07:cd:43:4e:b1:4c:
+ e2:4c:ab:46:be:8f:76:6f:40:8b:7a:f3:43:7c:3e:8b:7c:2b:
+ 90:6d:d1:ac:11:4c:69:5d:ea:2a:78:46:bd:f2:5f:9e:f0:26:
+ d4:8f:63:4f:fd:69:5b:ce:52:bf:91:0a:3a:42:bd:c1:66:00:
+ fb:49:38:9b:ba:b1:b1:b2:36:7b:e9:e7:c4:de:45:1e:46:6d:
+ 05:26:8a:31:cc:45:dc:bc:ab:b2:4c:40:3c:e3:d8:48:c9:ea:
+ 31:36:85:6b:ce:3a:de:f8:50:4c:57:de:10:74:6f:c7:69:3c:
+ f4:90:98:b1:6e:7d:44:d4:58:e4:8e:89:a8:96:50:a5:f9:20:
+ 5c:77:6f:7f:12:c9:e6:93:0c:0c:96:c2:1a:87:87:ca:44:c9:
+ 5a:e2:c6:b3:9d:65:b6:af:69:75:5c:1f:2e:a9:76:85:af:df:
+ ba:a4:d7:be:1d:96:de:bf:19:fe:46:6a:9e:8c:1e:0a:f2:19:
+ 53:e2:0a:74:84:3c:24:53:95:fb:4a:66:5e:4a:e9:e7:ef:dd:
+ eb:99:bb:66:a2:26:2f:ef:0a:00:9a:8b:d8:c4:c1:d8:d5:7c:
+ 46:c0:aa:2d:c1:c4:3c:31:ee:6e:6a:54:27:a0:e2:67:76:b9:
+ 2b:55:33:a7:01:06:7b:0c:94:4e:72:d3:11:63:63:ae:a5:b6:
+ a5:cc:81:9b:c8:70:5a:25:c0:2c:20:23:d5:5f:9e:b0:21:5d:
+ 64:59:67:22:ee:19:7a:c1:05:69:03:f0:64:22:dc:af:25:46:
+ 39:a0:0e:0e:ba:f8:86:55:cd:44:15:0a:be:b0:99:9f
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
diff --git a/tests/033E.pem b/tests/033E.pem
new file mode 100644
index 0000000..cb66a01
--- /dev/null
+++ b/tests/033E.pem
@@ -0,0 +1,149 @@
+Certificate:
+ Data:
+ Version: 1 (0x0)
+ Serial Number: 830 (0x33e)
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=GE, ST=Georgia, CN=Pica Pica Test CA
+ Validity
+ Not Before: Mar 6 20:45:25 2011 GMT
+ Not After : Apr 7 20:45:25 2021 GMT
+ Subject: C=GE, ST=Georgia, O=\xD1\x82\xD0\xB5\xD1\x81\xD1\x82\xD0\xBE\xD0\xB2\xD0\xB0\xD1\x8F \xD0\xBB\xD0\xB0\xD0\xB1\xD0\xBE\xD1\x80\xD0\xB0\xD1\x82\xD0\xBE\xD1\x80\xD0\xB8\xD1\x8F, CN=13#\xE1\x83\xA2\xE1\x83\x94\xE1\x83\xA1\xE1\x83\xA2\xE1\x83\x94\xE1\x83\xA0\xE1\x83\x98N13
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public Key: (4096 bit)
+ Modulus (4096 bit):
+ 00:ce:32:c4:c9:fc:3e:9d:da:94:a8:8d:b6:f0:1a:
+ 45:4b:8d:14:51:86:bc:c4:05:d3:3c:d3:5f:17:e3:
+ 60:7e:71:63:51:7c:f4:5c:23:9b:d4:61:c7:49:93:
+ 04:c2:11:d5:a6:95:25:00:14:f2:c2:b1:03:5a:39:
+ 31:00:85:7f:7f:35:25:e2:7d:02:41:92:cc:10:12:
+ a8:6e:ce:15:d5:26:17:c7:44:7a:f1:b4:37:01:57:
+ f9:c9:ad:9c:31:9d:27:a2:e1:15:e9:a9:d0:bb:4c:
+ a9:2d:91:99:4c:42:a1:fd:36:66:1a:17:dd:0c:96:
+ 51:ca:d0:16:83:45:6b:28:8b:89:f1:5d:3b:e1:55:
+ 18:e2:a5:2b:b6:c5:ac:a9:5f:f7:0f:9c:3a:5c:b0:
+ 4a:37:67:9e:79:46:dc:7e:10:6e:af:fd:82:3c:9a:
+ 19:ad:2d:9c:b4:b8:b8:61:6b:6a:53:62:82:97:04:
+ 16:98:f2:ee:f4:e1:2d:25:39:d8:37:e9:f4:b2:1e:
+ 33:22:c5:5f:56:11:3b:4c:34:ef:df:1f:ff:3c:65:
+ 79:15:8c:53:64:ad:d9:a1:38:e2:80:ab:a0:2f:ac:
+ d0:26:3a:b0:cc:cd:28:92:59:69:4a:bd:66:e7:4b:
+ 15:db:a9:8c:af:18:e6:d6:9d:b8:be:47:88:9c:b7:
+ 75:c8:6e:bd:01:12:23:93:ce:37:86:01:fc:b1:ff:
+ d5:54:38:bf:ff:ac:aa:50:d4:4f:bf:0b:86:0f:08:
+ bf:1e:4b:8a:3f:cb:3b:21:3b:5a:0d:39:dd:fe:f1:
+ ed:38:d1:56:fe:8e:27:a0:f2:ab:96:e7:07:5b:49:
+ 67:0d:e3:b4:bf:2c:35:55:15:e0:25:38:49:89:79:
+ 71:6c:12:0b:53:ab:8a:b5:73:3f:4b:3f:38:c4:63:
+ 76:c9:3f:db:34:70:fd:ba:a7:a6:7f:e1:8f:c5:1e:
+ e0:59:1c:1a:3f:d7:3b:e6:a6:97:03:d2:e1:bf:d9:
+ 6c:b5:54:04:4f:0b:22:d9:43:c5:71:b7:47:df:a3:
+ 5f:c1:f4:15:03:ad:5a:25:af:0c:9b:ca:14:f3:ec:
+ e1:c4:37:50:64:70:10:e9:9f:c7:35:88:d3:93:49:
+ ce:18:35:69:ce:70:e3:4d:f8:04:0e:e1:88:d8:c3:
+ f5:0c:e3:20:32:e8:4d:b5:67:22:6e:bc:38:6d:54:
+ 65:73:a7:e4:83:fc:2c:dc:88:27:ef:08:98:9a:31:
+ 3e:61:90:87:55:e4:a0:28:a7:13:aa:b9:4e:3a:b7:
+ 31:71:6e:6e:b9:e0:f1:c1:b7:38:3d:3b:f4:fb:8e:
+ 6d:f8:ce:8b:52:e2:9b:2b:7c:c1:db:5e:3b:86:47:
+ e4:18:15
+ Exponent: 65537 (0x10001)
+ Signature Algorithm: sha1WithRSAEncryption
+ 56:f0:e1:9d:66:e3:a1:05:c5:2e:73:89:32:a2:48:05:4e:cd:
+ 31:2e:32:70:09:4e:73:b1:c5:2e:c7:cf:11:a3:76:6b:b2:d9:
+ 95:c5:69:66:40:a2:e2:a2:91:06:bc:62:38:f2:30:81:9f:fe:
+ ea:7b:27:9a:81:8e:0d:ba:6e:fa:72:3b:a1:d7:33:25:98:e0:
+ 74:31:fe:fa:bf:a6:14:8f:f2:10:a9:b9:c4:63:d9:3c:4f:c1:
+ cb:6f:8d:7d:57:3a:b4:99:b2:4d:58:9f:60:3f:bf:82:2e:5a:
+ c2:0e:66:83:cb:66:30:1e:41:67:1b:6d:1b:d5:34:ca:00:f6:
+ 71:69:68:1c:4e:7e:0d:1a:14:b3:ec:61:a2:9c:98:f6:17:f0:
+ 6f:b6:64:f7:b6:88:4a:63:86:c1:b3:16:40:ef:80:22:a9:ae:
+ 28:4e:f1:48:1a:3b:14:a9:b5:ce:4d:7a:ab:56:13:cc:1c:86:
+ 1a:b1:d9:9b:ae:93:ce:08:e6:b7:d1:5c:bd:7f:19:90:b1:39:
+ 61:2d:06:2b:a8:b5:07:dd:d9:f3:10:7e:9f:b8:9b:38:e6:7b:
+ c6:e3:f4:ba:1b:9d:a3:1d:42:06:53:0d:22:9a:a7:68:ac:25:
+ 17:b7:e8:be:42:e8:86:2b:b6:68:51:47:86:13:7e:83:57:aa:
+ 6b:66:35:31:ad:ac:ce:2c:bf:8c:ad:92:2e:41:9c:a9:7a:63:
+ 1a:2c:85:29:da:b3:23:54:de:cb:23:0c:1d:b1:23:b6:4c:fd:
+ c2:29:e3:69:50:93:6a:cc:b0:9f:f8:b8:5c:80:61:b3:a8:0d:
+ 48:33:b8:7f:04:94:ea:23:35:e0:29:10:16:a6:b4:52:87:34:
+ dd:5b:0e:d2:c0:03:65:48:ed:4c:fb:d1:97:04:de:5f:b3:d6:
+ 78:44:41:95:7a:4e:fd:4f:12:83:c3:e5:b8:95:76:57:83:8d:
+ a1:96:1d:35:b6:4c:25:3e:1b:66:07:46:38:22:6d:c1:6a:21:
+ 68:31:e1:29:a0:ee:b4:dd:a0:48:03:ce:72:aa:2a:e5:a0:ec:
+ d6:a6:ca:1e:a9:fc:2f:35:e5:3d:f8:e6:f4:d4:cf:ed:4b:f0:
+ 65:36:f4:3c:ef:32:c8:17:18:18:62:4a:06:61:92:59:80:3e:
+ c5:c0:1e:4a:37:fa:70:68:c0:62:e0:ee:4b:51:ec:87:02:e5:
+ 2f:2b:48:a5:72:f2:91:c8:fd:10:4b:a5:6f:ea:93:01:af:db:
+ 05:3a:f7:7c:07:53:98:da:c5:c0:7d:df:45:7e:3e:09:54:b9:
+ 77:20:85:b9:41:35:7d:29:f7:c9:f6:f6:4f:db:bd:04:03:8c:
+ 04:5c:35:7f:7c:5d:b6:6d:7a:3e:ef:6c:4d:44:b5:24:0d:80:
+ fe:e4:23:e2:ec:3b:22:41:8a:9b:c5:c5:f3:d3:47:ef:89:e9:
+ 64:e1:96:e6:59:0e:06:ba:65:98:2a:04:05:e7:1a:7b:8c:ea:
+ 16:e0:31:a3:33:76:62:f6:33:87:20:57:85:9c:b5:05:cc:7b:
+ 31:a4:cc:4c:92:47:14:bb:80:45:90:b4:b4:9e:17:09:52:0e:
+ 82:bd:6e:41:53:6f:cb:23:3f:76:6c:c2:4b:65:53:bb:f1:8d:
+ b7:61:d5:71:85:0b:4e:d0:4d:f8:59:48:b1:39:23:d1:53:87:
+ c6:f9:e4:64:09:b4:30:42:bd:67:60:b9:77:3c:57:90:96:db:
+ f1:ef:fa:33:4c:28:85:5b:eb:32:be:ed:cc:73:f7:4e:9c:08:
+ 86:40:b0:fe:dd:0d:48:89:22:e5:b8:4f:ab:e2:08:43:08:02:
+ a7:8a:2a:56:40:6d:53:b7:3e:7d:66:6c:dc:03:4c:b6:81:41:
+ d7:b6:9d:82:b4:ba:04:44:f2:3a:c6:f7:aa:29:3a:4e:81:5b:
+ 77:b7:c8:f0:fb:64:79:30:f6:87:55:12:d6:a2:d8:b3:44:bf:
+ 71:2e:52:dd:b2:3b:d6:f8:7a:c5:24:bc:3c:76:82:8c:0b:90:
+ 9b:1f:a1:4a:68:a8:1b:1d:5b:34:d0:e3:30:2a:2a:8a:35:dd:
+ ad:ec:2d:53:4e:cc:57:47:ff:16:ad:af:be:75:06:4f:dd:e4:
+ 15:b1:8a:77:fb:bd:43:2f:45:63:a4:4f:53:ea:5f:09:43:ca:
+ 27:3d:47:55:96:c7:1f:d1:df:1b:1b:fe:bc:54:af:ac:10:6f:
+ 4b:ff:df:47:a9:d3:e7:44:85:8c:7c:77:97:11:78:40:e0:ce:
+ 1a:ca:7a:98:20:ff:36:7f:e1:37:a2:f2:f1:c4:a9:4f:68:1f:
+ e6:91:fc:9d:32:61:6a:59:9a:55:09:07:e9:b1:6e:4f:22:ad:
+ d9:1b:83:25:be:11:e3:54:dc:a5:f0:fb:74:5a:62:67:4f:6b:
+ bb:26:fb:61:ae:76:fb:2c:26:3a:d3:1e:bf:3b:c8:bb:99:78:
+ 62:76:b2:76:6a:1b:91:25:c7:ee:5c:cb:51:6f:e8:24:ba:78:
+ ec:3f:c3:56:90:9f:fb:0c:d7:b6:59:28:7b:49:93:f4:3f:d5:
+ 91:37:e5:ac:a9:d0:0b:93:6c:1b:bd:7b:27:11:6f:40:82:1d:
+ 0d:83:4c:f9:20:27:6e:b9:a0:9b:36:ef:db:12:fc:7c:58:f5:
+ a4:bc:86:1d:66:4a:a1:40:13:1f:36:f1:4e:01:f5:02:95:69:
+ 47:34:3d:43:18:b2:0d:ba:f3:83:b1:27:d6:17:cf:ca
+-----BEGIN CERTIFICATE-----
+MIIHJzCCAw8CAgM+MA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAkdFMRAwDgYD
+VQQIEwdHZW9yZ2lhMRowGAYDVQQDExFQaWNhIFBpY2EgVGVzdCBDQTAeFw0xMTAz
+MDYyMDQ1MjVaFw0yMTA0MDcyMDQ1MjVaMHcxCzAJBgNVBAYTAkdFMRAwDgYDVQQI
+EwdHZW9yZ2lhMTAwLgYDVQQKDCfRgtC10YHRgtC+0LLQsNGPINC70LDQsdC+0YDQ
+sNGC0L7RgNC40Y8xJDAiBgNVBAMMGzEzI+GDouGDlOGDoeGDouGDlOGDoOGDmE4x
+MzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAM4yxMn8Pp3alKiNtvAa
+RUuNFFGGvMQF0zzTXxfjYH5xY1F89Fwjm9Rhx0mTBMIR1aaVJQAU8sKxA1o5MQCF
+f381JeJ9AkGSzBASqG7OFdUmF8dEevG0NwFX+cmtnDGdJ6LhFemp0LtMqS2RmUxC
+of02ZhoX3QyWUcrQFoNFayiLifFdO+FVGOKlK7bFrKlf9w+cOlywSjdnnnlG3H4Q
+bq/9gjyaGa0tnLS4uGFralNigpcEFpjy7vThLSU52Dfp9LIeMyLFX1YRO0w0798f
+/zxleRWMU2St2aE44oCroC+s0CY6sMzNKJJZaUq9ZudLFdupjK8Y5taduL5HiJy3
+dchuvQESI5PON4YB/LH/1VQ4v/+sqlDUT78Lhg8Ivx5Lij/LOyE7Wg053f7x7TjR
+Vv6OJ6Dyq5bnB1tJZw3jtL8sNVUV4CU4SYl5cWwSC1OrirVzP0s/OMRjdsk/2zRw
+/bqnpn/hj8Ue4FkcGj/XO+amlwPS4b/ZbLVUBE8LItlDxXG3R9+jX8H0FQOtWiWv
+DJvKFPPs4cQ3UGRwEOmfxzWI05NJzhg1ac5w4034BA7hiNjD9QzjIDLoTbVnIm68
+OG1UZXOn5IP8LNyIJ+8ImJoxPmGQh1XkoCinE6q5Tjq3MXFubrng8cG3OD079PuO
+bfjOi1Limyt8wdteO4ZH5BgVAgMBAAEwDQYJKoZIhvcNAQEFBQADggQBAFbw4Z1m
+46EFxS5ziTKiSAVOzTEuMnAJTnOxxS7HzxGjdmuy2ZXFaWZAouKikQa8YjjyMIGf
+/up7J5qBjg26bvpyO6HXMyWY4HQx/vq/phSP8hCpucRj2TxPwctvjX1XOrSZsk1Y
+n2A/v4IuWsIOZoPLZjAeQWcbbRvVNMoA9nFpaBxOfg0aFLPsYaKcmPYX8G+2ZPe2
+iEpjhsGzFkDvgCKprihO8UgaOxSptc5NeqtWE8wchhqx2Zuuk84I5rfRXL1/GZCx
+OWEtBiuotQfd2fMQfp+4mzjme8bj9LobnaMdQgZTDSKap2isJRe36L5C6IYrtmhR
+R4YTfoNXqmtmNTGtrM4sv4ytki5BnKl6YxoshSnasyNU3ssjDB2xI7ZM/cIp42lQ
+k2rMsJ/4uFyAYbOoDUgzuH8ElOojNeApEBamtFKHNN1bDtLAA2VI7Uz70ZcE3l+z
+1nhEQZV6Tv1PEoPD5biVdleDjaGWHTW2TCU+G2YHRjgibcFqIWgx4Smg7rTdoEgD
+znKqKuWg7Namyh6p/C815T345vTUz+1L8GU29DzvMsgXGBhiSgZhklmAPsXAHko3
++nBowGLg7ktR7IcC5S8rSKVy8pHI/RBLpW/qkwGv2wU693wHU5jaxcB930V+PglU
+uXcghblBNX0p98n29k/bvQQDjARcNX98XbZtej7vbE1EtSQNgP7kI+LsOyJBipvF
+xfPTR++J6WThluZZDga6ZZgqBAXnGnuM6hbgMaMzdmL2M4cgV4WctQXMezGkzEyS
+RxS7gEWQtLSeFwlSDoK9bkFTb8sjP3ZswktlU7vxjbdh1XGFC07QTfhZSLE5I9FT
+h8b55GQJtDBCvWdguXc8V5CW2/Hv+jNMKIVb6zK+7cxz906cCIZAsP7dDUiJIuW4
+T6viCEMIAqeKKlZAbVO3Pn1mbNwDTLaBQde2nYK0ugRE8jrG96opOk6BW3e3yPD7
+ZHkw9odVEtai2LNEv3EuUt2yO9b4esUkvDx2gowLkJsfoUpoqBsdWzTQ4zAqKoo1
+3a3sLVNOzFdH/xatr751Bk/d5BWxinf7vUMvRWOkT1PqXwlDyic9R1WWxx/R3xsb
+/rxUr6wQb0v/30ep0+dEhYx8d5cReEDgzhrKepgg/zZ/4Tei8vHEqU9oH+aR/J0y
+YWpZmlUJB+mxbk8irdkbgyW+EeNU3KXw+3RaYmdPa7sm+2GudvssJjrTHr87yLuZ
+eGJ2snZqG5Elx+5cy1Fv6CS6eOw/w1aQn/sM17ZZKHtJk/Q/1ZE35ayp0AuTbBu9
+eycRb0CCHQ2DTPkgJ265oJs279sS/HxY9aS8hh1mSqFAEx828U4B9QKVaUc0PUMY
+sg2684OxJ9YXz8o=
+-----END CERTIFICATE-----
diff --git a/tests/033F.pem b/tests/033F.pem
new file mode 100644
index 0000000..398a75c
--- /dev/null
+++ b/tests/033F.pem
@@ -0,0 +1,149 @@
+Certificate:
+ Data:
+ Version: 1 (0x0)
+ Serial Number: 831 (0x33f)
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=GE, ST=Georgia, CN=Pica Pica Test CA
+ Validity
+ Not Before: May 25 21:19:01 2012 GMT
+ Not After : Jun 27 21:19:01 2022 GMT
+ Subject: C=GE, ST=Georgia, O=\xD1\x82\xD0\xB5\xD1\x81\xD1\x82\xD0\xBE\xD0\xB2\xD0\xB0\xD1\x8F \xD0\xBB\xD0\xB0\xD0\xB1\xD0\xBE\xD1\x80\xD0\xB0\xD1\x82\xD0\xBE\xD1\x80\xD0\xB8\xD1\x8F, CN=13#\xE1\x83\xA2\xE1\x83\x94\xE1\x83\xA1\xE1\x83\xA2\xE1\x83\x94\xE1\x83\xA0\xE1\x83\x98N13
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (4096 bit)
+ Modulus:
+ 00:a5:cf:04:3d:4c:c4:55:83:b4:de:d6:ac:8c:50:
+ bd:5b:16:99:ca:ee:f6:ed:9f:ca:0d:f8:4e:94:b5:
+ 56:dc:db:af:cf:af:10:7b:07:b9:b0:80:e0:66:5b:
+ d7:78:9b:cb:84:f7:4e:8c:31:e8:b4:3d:eb:dd:c9:
+ e0:20:22:9a:9c:ae:f3:35:2a:cd:66:6f:c5:bd:9e:
+ 75:a5:a3:a2:94:5b:dc:40:12:7a:bc:0d:7d:c6:89:
+ 55:15:eb:56:d6:5d:e7:54:29:ce:31:b9:30:a4:d9:
+ ee:da:72:c6:96:be:80:b4:1e:7c:7c:6e:6a:7f:7a:
+ 10:66:ed:a8:79:52:f2:3e:43:ca:97:8e:88:03:92:
+ 9e:fa:62:fd:f8:52:39:eb:20:09:71:ea:01:fc:97:
+ 6d:61:5e:8f:9d:44:6d:33:fc:de:01:df:87:42:ab:
+ b1:0a:99:e8:3a:06:67:ce:3d:06:68:90:60:8f:18:
+ 79:ec:52:35:2a:1e:1d:05:75:e9:c0:33:62:15:8e:
+ 3a:3c:e9:ec:d0:0c:4c:63:d9:82:27:46:71:2b:91:
+ 8c:e3:12:ce:75:35:52:44:a4:2b:23:65:8c:19:cf:
+ f1:37:8d:fc:a7:a8:98:0c:4a:77:82:70:ee:fe:06:
+ c5:b0:db:25:fb:b0:79:76:ec:5f:e0:3a:05:80:cb:
+ b0:17:61:18:06:6c:0c:9f:0a:cc:f1:b7:41:74:8f:
+ de:e6:3a:0c:ad:c3:ea:7d:15:b0:f1:57:61:cd:f4:
+ 91:e3:bd:e3:aa:f2:59:96:0d:1f:67:2a:50:c9:12:
+ 9e:11:3e:bf:2c:b8:4b:f7:d5:1a:ba:64:17:49:e8:
+ d7:cc:72:28:c0:1c:47:3e:c0:f7:b6:f6:7f:f1:58:
+ d5:90:db:a4:20:94:9e:8f:4c:9d:95:1f:65:98:ac:
+ c9:e8:d7:81:86:e1:bd:4d:c4:e9:c1:54:e2:92:2d:
+ fd:6b:0e:02:45:b9:a0:48:7c:74:39:ff:09:c4:ca:
+ d3:d6:22:b6:e3:b2:5a:93:82:c1:4c:db:89:41:f3:
+ 08:f1:1c:2a:dd:a7:52:be:08:d2:e0:79:a8:61:bf:
+ 3a:5d:4f:3d:e7:28:df:71:db:d9:97:5e:ac:3f:c1:
+ dd:2f:bd:9b:2c:50:69:f2:cb:1b:2c:63:86:81:2d:
+ 28:fb:15:40:85:39:d2:01:13:0f:26:bb:e5:e7:a4:
+ e9:7c:1e:02:4c:ef:2b:dc:7f:0c:48:b5:f1:ca:55:
+ 8c:59:70:24:01:3a:31:21:53:59:94:d6:e6:5c:c9:
+ 14:41:2b:f2:78:95:6c:eb:ac:eb:0d:05:38:8f:5f:
+ 93:57:0a:fc:04:d4:68:e0:89:72:ac:4d:37:c8:e6:
+ 6d:72:bd
+ Exponent: 65537 (0x10001)
+ Signature Algorithm: sha1WithRSAEncryption
+ 9d:73:26:a1:0a:7c:84:42:d8:27:2f:8d:00:6a:97:21:2b:2c:
+ d5:7a:dc:59:24:cb:ce:4a:c5:c1:94:82:1e:e0:06:1b:76:cf:
+ c9:81:5c:a5:32:0d:cf:c1:25:27:c9:6c:5c:d7:b7:28:ec:1b:
+ 87:e8:1d:6e:60:c9:5f:48:e2:9a:a8:0f:ee:9d:c2:a3:b8:af:
+ a1:cc:10:97:0e:b5:c4:11:62:67:c5:ea:eb:84:01:6d:33:61:
+ 84:ee:51:05:a8:1e:c8:a2:60:c0:e8:23:c1:80:26:00:03:6d:
+ fb:77:60:67:cb:c9:db:f4:e0:ac:83:87:93:25:ce:ea:7a:61:
+ d3:72:4c:b9:fa:62:bc:42:87:57:4c:58:6a:72:3b:79:24:91:
+ d3:31:ae:7a:04:7e:df:e5:8b:75:2a:41:de:45:17:d3:12:1b:
+ 91:fd:85:cc:c2:66:b2:77:b8:fd:c9:51:9c:78:05:85:e6:11:
+ a4:52:f9:8a:52:96:bd:ad:58:51:8d:53:ee:f4:a2:80:95:4f:
+ f7:02:24:9d:8e:7c:c8:d9:dc:87:eb:d5:2f:6b:12:9c:04:31:
+ df:a4:f6:b1:b3:86:49:c3:28:0f:df:d5:64:fa:b9:25:42:e8:
+ 25:a3:27:d8:09:d5:02:ab:31:7c:ad:c1:1e:af:91:51:64:0d:
+ 35:28:df:e2:2d:20:6c:04:5c:5c:de:7e:8d:8a:19:54:c1:c3:
+ 20:b3:80:12:e9:68:53:2d:05:72:f0:c0:a7:31:70:29:03:f1:
+ ef:57:40:8d:94:dd:ee:4d:2a:e0:29:6b:1e:82:e0:8a:9a:06:
+ 62:df:34:06:14:e7:b0:ea:7e:a8:0b:1a:20:64:83:58:dd:22:
+ f4:fe:6d:2a:8b:1a:24:e7:03:41:5f:bf:68:0b:8a:74:4a:38:
+ 49:a3:c3:e7:e9:5c:c7:78:95:23:c0:cd:2e:5e:41:ce:d5:aa:
+ 11:e4:80:84:53:24:00:5a:53:a4:06:22:fb:3d:a1:7c:95:a4:
+ 69:d7:23:23:94:2e:7f:92:c2:8a:d7:5c:46:bc:9c:43:d0:2d:
+ 57:43:9d:5e:34:a3:e3:68:dd:47:5f:ec:a2:97:3d:22:cd:01:
+ 05:2d:ee:04:c6:3d:df:c2:6c:e3:19:de:0d:3a:fb:e1:31:64:
+ 5b:60:7c:ae:5f:53:6a:fd:d9:a1:c0:58:0b:4c:32:97:57:fd:
+ 4b:a2:cc:0d:6f:0c:cf:b3:5c:9b:be:52:2e:08:35:a9:d1:14:
+ 8c:8a:1f:23:02:c2:f2:c4:9b:e7:72:bb:8d:e9:7d:c2:e5:9b:
+ ac:8f:85:3d:86:d2:46:a8:eb:a3:2f:b9:54:1e:57:03:bc:dc:
+ 44:4a:c2:c5:f3:9e:2c:01:75:e4:08:f2:c2:e6:55:2e:38:4e:
+ 49:72:79:ca:52:5c:8f:df:41:ae:d2:63:5a:1b:f5:2c:19:d7:
+ 09:c5:a2:aa:27:2a:b7:eb:cc:eb:92:74:d5:ba:ab:a5:e6:77:
+ 83:31:ee:de:4e:0d:1d:72:1d:22:66:47:d8:f1:b8:9a:b9:b3:
+ b8:ea:94:d6:2e:8b:4e:84:57:9d:71:cc:6c:8b:d1:73:9d:eb:
+ f8:7c:2a:c0:16:59:b1:14:31:b1:24:0b:6d:bf:f1:2e:7c:f8:
+ af:8e:b4:1b:25:5d:b3:52:3d:33:45:54:13:a0:86:ae:5d:c1:
+ 81:f9:e4:48:a3:12:16:b6:e3:22:e1:ec:3f:e3:fb:9a:ca:54:
+ c6:02:ea:7b:58:1e:2b:9b:f6:8a:15:9e:c3:ad:b3:ed:f8:0b:
+ c0:6f:b9:95:ea:ea:4a:25:fe:5e:9d:9e:4c:f5:8d:b2:63:d3:
+ 98:88:1d:22:ce:ea:12:89:fd:31:85:5e:54:a6:3a:56:4a:cf:
+ c1:e2:70:ed:9f:bd:9d:e8:ea:ac:a2:77:bc:fb:63:cf:83:d0:
+ c4:83:6a:8f:a5:b2:a6:78:ae:60:c7:06:55:d6:7d:3d:5a:5d:
+ 88:4b:9f:87:bd:25:b6:1a:4a:18:28:a1:36:c0:ab:5b:87:0b:
+ b3:26:68:6a:12:6e:ba:1b:d5:98:e7:b7:0e:6b:22:35:de:ca:
+ 09:84:69:bd:7f:0b:fa:0b:2e:12:60:48:37:5d:ba:c1:67:04:
+ 93:40:95:fc:fa:40:c8:79:fe:7a:2d:ff:a8:3d:80:96:19:10:
+ 36:eb:6f:30:93:b7:c4:77:29:51:c3:99:8a:e0:50:00:b0:d5:
+ d6:ee:33:b8:a1:b4:eb:d4:35:35:66:bd:2f:2d:64:d7:67:c6:
+ 49:b5:59:77:83:28:08:56:0e:68:e8:e8:35:7d:43:b2:b8:c7:
+ b4:e6:8b:df:14:f0:a2:67:b9:b2:97:29:b5:e3:e5:46:39:ec:
+ 59:35:90:1b:1f:67:c0:fc:68:8e:25:83:67:73:8f:47:24:60:
+ bf:3d:21:06:25:e0:69:8c:7f:7d:5e:b5:4d:ab:cc:37:8f:65:
+ 51:9c:6d:7f:31:eb:12:09:82:da:32:26:98:77:6f:50:fa:5e:
+ 0c:dd:76:73:fa:14:e2:cf:81:e2:5a:a7:b5:67:f7:cd:73:b6:
+ e7:e0:27:10:b6:64:ef:92:7f:df:e4:cd:2b:89:02:27:a4:d5:
+ 29:f5:62:29:56:80:2e:53:a1:e7:b9:6c:a2:02:36:c4:59:62:
+ d2:d2:7e:d5:8c:8d:c8:93:e5:cd:b6:4f:24:30:e3:0e:06:94:
+ 25:50:f5:d0:a4:ae:24:07:4c:f5:b0:e6:54:58:fd:46
+-----BEGIN CERTIFICATE-----
+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
+riQHTPWw5lRY/UY=
+-----END CERTIFICATE-----
diff --git a/tests/033a.pem b/tests/033a.pem
new file mode 100755
index 0000000..f3091f9
--- /dev/null
+++ b/tests/033a.pem
@@ -0,0 +1,45 @@
+Certificate:
+ Data:
+ Version: 1 (0x0)
+ Serial Number: 826 (0x33a)
+ Signature Algorithm: md5WithRSAEncryption
+ Issuer: O=TESTNET, CN=TESTNET CA
+ Validity
+ Not Before: Dec 23 22:49:35 2008 GMT
+ Not After : Dec 23 22:49:35 2009 GMT
+ Subject: O=TESTNET, CN=9#tester9
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public Key: (1024 bit)
+ Modulus (1024 bit):
+ 00:b0:d2:ba:8f:cb:8d:f3:5e:a9:05:e9:22:a0:60:
+ a8:3c:6b:c2:71:d9:f4:eb:85:d6:fd:5d:7a:8a:b4:
+ e3:1c:83:57:a7:77:56:c9:0c:20:4c:33:d9:40:92:
+ 64:f6:a2:8c:a9:77:1d:fe:b2:b9:ae:30:c8:b2:47:
+ d4:2e:2f:52:30:d8:14:e3:33:8a:47:27:68:47:4e:
+ 9c:c0:72:08:98:27:c4:d1:40:eb:97:8f:e7:75:2a:
+ f3:26:ea:7f:d4:01:3d:92:2f:e0:45:b3:97:b0:ed:
+ 19:b2:5b:f8:49:52:38:3a:c3:33:cc:c0:15:42:2b:
+ dc:f9:cb:73:94:1b:23:92:cf
+ Exponent: 65537 (0x10001)
+ Signature Algorithm: md5WithRSAEncryption
+ 5a:17:8d:3c:f4:82:2e:1e:de:37:f7:21:49:2f:65:ca:88:c9:
+ 7e:cf:a4:92:6a:25:d7:1b:3d:35:b1:88:ca:41:6a:a7:d2:ea:
+ 45:53:39:b0:eb:99:ed:ab:10:46:71:0a:61:a4:a2:6f:9a:c1:
+ 2c:87:9e:c3:0a:b6:36:10:e9:91:e8:25:6b:da:9a:ec:09:55:
+ ea:51:6c:c9:07:21:b1:e6:83:33:1d:3a:91:4f:26:bd:d6:29:
+ e9:72:0f:72:51:31:c4:2a:29:92:ca:bb:5e:73:5c:f9:4d:19:
+ 57:d0:95:ab:bc:f0:30:6c:9f:bd:5e:a7:4d:16:0f:b3:9e:20:
+ 79:16
+-----BEGIN CERTIFICATE-----
+MIIBvTCCASYCAgM6MA0GCSqGSIb3DQEBBAUAMCcxEDAOBgNVBAoTB1RFU1RORVQx
+EzARBgNVBAMTClRFU1RORVQgQ0EwHhcNMDgxMjIzMjI0OTM1WhcNMDkxMjIzMjI0
+OTM1WjAmMRAwDgYDVQQKEwdURVNUTkVUMRIwEAYDVQQDDAk5I3Rlc3RlcjkwgZ8w
+DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALDSuo/LjfNeqQXpIqBgqDxrwnHZ9OuF
+1v1deoq04xyDV6d3VskMIEwz2UCSZPaijKl3Hf6yua4wyLJH1C4vUjDYFOMzikcn
+aEdOnMByCJgnxNFA65eP53Uq8ybqf9QBPZIv4EWzl7DtGbJb+ElSODrDM8zAFUIr
+3PnLc5QbI5LPAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAWheNPPSCLh7eN/chSS9l
+yojJfs+kkmol1xs9NbGIykFqp9LqRVM5sOuZ7asQRnEKYaSib5rBLIeewwq2NhDp
+kegla9qa7AlV6lFsyQchseaDMx06kU8mvdYp6XIPclExxCopksq7XnNc+U0ZV9CV
+q7zwMGyfvV6nTRYPs54geRY=
+-----END CERTIFICATE-----
diff --git a/tests/64kb.txt b/tests/64kb.txt
new file mode 100755
index 0000000..73aed9d
--- /dev/null
+++ b/tests/64kb.txt
@@ -0,0 +1,307 @@
+64KB_START-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-lksadddddddddddddddddjfsjdfjoaijffihbwieughwiuoehgggweghnegiowehriouuufgwueeeeeeeeeeeeeefgioasghsooooooooooofl;askdjffffff;sadlllllllllllllllllllllllllllfjjjjjjjjjjjjjjjjjjjjjjjjjjjjsaoojfoiu89390283092309203203
+-789789788888888888888888888888888899999997689996777855566666 \ No newline at end of file
diff --git a/tests/Makefile.win b/tests/Makefile.win
new file mode 100755
index 0000000..f3ecdc5
--- /dev/null
+++ b/tests/Makefile.win
@@ -0,0 +1,36 @@
+# Project: test_client_win
+# Makefile created by Dev-C++ 4.9.9.2
+
+CPP = g++.exe
+CC = gcc.exe
+WINDRES = windres.exe
+RES =
+OBJ = test_client.o ../CACA_client.o ../CACA_msgproc.o $(RES)
+LINKOBJ = test_client.o ../CACA_client.o ../CACA_msgproc.o $(RES)
+LIBS = -L"D:/Dev-Cpp/lib" ../../home_mdv_root_jr/Downloads/openssl-0.9.8h/openssl-0.9.8h/lib_a_win/libssl.a ../../../Dev-Cpp/lib/libgdi32.a ../../../Dev-Cpp/lib/libws2_32.a ../../home_mdv_root_jr/Downloads/openssl-0.9.8h/openssl-0.9.8h/lib_a_win/libcrypto.a ../../../Dev-Cpp/lib/libgdi32.a ../../../Dev-Cpp/lib/libws2_32.a
+INCS = -I"D:/Dev-Cpp/include" -I"D:/pract/home_mdv_root_jr/Downloads/openssl-0.9.8h/openssl-0.9.8h/include"
+CXXINCS = -I"D:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"D:/Dev-Cpp/include/c++/3.4.2/backward" -I"D:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"D:/Dev-Cpp/include/c++/3.4.2" -I"D:/Dev-Cpp/include" -I"D:/pract/home_mdv_root_jr/Downloads/openssl-0.9.8h/openssl-0.9.8h/include"
+BIN = test_client_win.exe
+CXXFLAGS = $(CXXINCS)
+CFLAGS = $(INCS)
+RM = rm -f
+
+.PHONY: all all-before all-after clean clean-custom
+
+all: all-before test_client_win.exe all-after
+
+
+clean: clean-custom
+ ${RM} $(OBJ) $(BIN)
+
+$(BIN): $(OBJ)
+ $(CC) $(LINKOBJ) -o "test_client_win.exe" $(LIBS)
+
+test_client.o: test_client.c
+ $(CC) -c test_client.c -o test_client.o $(CFLAGS)
+
+../CACA_client.o: ../CACA_client.c
+ $(CC) -c ../CACA_client.c -o ../CACA_client.o $(CFLAGS)
+
+../CACA_msgproc.o: ../CACA_msgproc.c
+ $(CC) -c ../CACA_msgproc.c -o ../CACA_msgproc.o $(CFLAGS)
diff --git a/tests/add_newconn b/tests/add_newconn
new file mode 100755
index 0000000..1e25567
--- /dev/null
+++ b/tests/add_newconn
Binary files differ
diff --git a/tests/build.txt b/tests/build.txt
new file mode 100755
index 0000000..3a3b3b1
--- /dev/null
+++ b/tests/build.txt
@@ -0,0 +1 @@
+gcc -o add_newconn test_addnewconn.c ../CACA_node.c -l ssl -l crypto -I /mnt/win_c3/pract/home_mdv_root_jr/Downloads/openssl-0.9.8h/openssl-0.9.8h/include/ -L ../../home_mdv_root_jr/Downloads/openssl-0.9.8h/openssl-0.9.8h/
diff --git a/tests/ca/ca_config.txt b/tests/ca/ca_config.txt
new file mode 100755
index 0000000..bcf4e9b
--- /dev/null
+++ b/tests/ca/ca_config.txt
@@ -0,0 +1,36 @@
+
+
+[ ca ]
+default_ca = CA_default # The default ca section
+
+[ CA_default ]
+
+dir = ./ # top dir
+database = $dir/testnet_cert_index_db.txt # index file.
+new_certs_dir = $dir/../ # new certs dir
+
+#certificate = $dir/testnetCA.pem # The CA cert
+certificate = $dir/picapica_test_CA.pem
+serial = $dir/serial # serial no file
+#private_key = $dir/privkey_testnetCA.pem # CA private key
+private_key = $dir/picapica_test_CA_pkey.pem # CA private key
+RANDFILE = /dev/urandom # random number file
+
+default_days = 3685 # how long to certify for
+default_crl_days= 30 # how long before next CRL
+default_md = sha1 # md to use
+
+policy = policy_any # default policy
+email_in_dn = no # Don't add the email into cert DN
+
+name_opt = ca_default # Subject name display option
+cert_opt = ca_default # Certificate display option
+copy_extensions = none # Don't copy extensions from request
+
+[ policy_any ]
+countryName = optional
+stateOrProvinceName = optional
+organizationName = optional
+organizationalUnitName = optional
+commonName = supplied
+emailAddress = optional
diff --git a/tests/ca/newtestca.pem b/tests/ca/newtestca.pem
new file mode 100644
index 0000000..9bba2c9
--- /dev/null
+++ b/tests/ca/newtestca.pem
@@ -0,0 +1,16 @@
+-----BEGIN CERTIFICATE-----
+MIICiTCCAfKgAwIBAgIJAJACtwPaX6NqMA0GCSqGSIb3DQEBBQUAMDgxHTAbBgNV
+BAoTFFRlc3RpbmcgY2VydGlmaWNhdGVzMRcwFQYDVQQDEw5URVNUIFJPT1QgQ0VS
+VDAeFw0wOTA4MDEyMzI4NThaFw0xMDEyMjYyMzI4NThaMDgxHTAbBgNVBAoTFFRl
+c3RpbmcgY2VydGlmaWNhdGVzMRcwFQYDVQQDEw5URVNUIFJPT1QgQ0VSVDCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1YFmjCqUUt6qJkqJgAiZV1p+xdYKB75J
+iLTSwUVD21ebh2dwshYtVhYHLTrNZE3yLvsUrc/EVu4525Xz08XDyJnMtSSroeoY
+MbPMrdJ31JxOr3XOsq0O98WY8ZcZRJ6vZ4LcYZQAgkQXnHnIDFTQocf3VxXp69dq
+XNhY53axjkkCAwEAAaOBmjCBlzAdBgNVHQ4EFgQUz1SvyKy3WjTGqbpKa791Jz20
+GacwaAYDVR0jBGEwX4AUz1SvyKy3WjTGqbpKa791Jz20GaehPKQ6MDgxHTAbBgNV
+BAoTFFRlc3RpbmcgY2VydGlmaWNhdGVzMRcwFQYDVQQDEw5URVNUIFJPT1QgQ0VS
+VIIJAJACtwPaX6NqMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAwjjG
+qoE1mzNumupkMozPkZHeNUp9FL+8iKKyC6RTJ3hA5KXgOayiX9i82BeG+OSox1qs
+t1u6ygx253+m9+TZmaHqeJc1gtHOJKINN3Tu6rWYu6wCjT+f7exu0o9q/1xGB1Nr
+lBPHPKTQAQxbvuoRGNKfjEXlVHXwFd+BobKAqjw=
+-----END CERTIFICATE-----
diff --git a/tests/ca/newtestca_pkey.pem b/tests/ca/newtestca_pkey.pem
new file mode 100644
index 0000000..488164a
--- /dev/null
+++ b/tests/ca/newtestca_pkey.pem
@@ -0,0 +1,18 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,7454C45A7135853F
+
+ejRxgOk3mXWPWHMut1kXTVKKsu7sitXJscvU2vAEPPU//Yd1lu8vc6v2n7jcSifT
+WnYifBO+UISmVkfVA9vBjSMP4gR93cs7JzljzwYBpzXiW8RDKVFXBqZjEfsquiRA
+oQuk8ZQJe3Gd8LWTMziSO+vXGRpmNikeUgFDhdb+hXkDk9c4fIA7U6mFe548bWCE
+C/E6Z2jw8adYmLYHT3dcuE3qHoQMDJ6mJVUBhuEY4XiVp2eVEq/ls0N0CBSraBN8
+p7g5php94rrk6wWvKc58rNNoIGutGRNzLuRd5B6c7ojS/IfmsHITBA/6YfcqnNoK
+1DRrkXHE5R2x+v2IEDYO8ir+OWMF73GSFkcwNimkyIcgLeTEoYn95z6g1jNN4cFm
+5H3jbAyjqdNfV8EC3ettdYYW4vtsz1P9oBdDIQh6vmWzJjCKrtkeTRdTolWkJT6O
+rnYVSjwRTGpV98XuDMprew7aHU4FnQdvrKGQ/ZiDSyxkzzW2vvUdpULL1XeOz1/H
+cSPfWhhPDZ5XtOtxbExPOKYQqagaqNwB4VK+S11/mqsoW8tyS7rjwiRFqhmWn/Hf
+AMMuFtf4+zx9W12LcCdFYux6cd342rujhzQ+VEoURZjN/41vOemGWDGMw26y50e3
+mYAyMcZG+wV02ahO2HezH84oG0PPVDtRBDHZox3aMh/FZKQ83vfg1pVr02zQ82c4
+4KdsX+F+0tqFScZcD5ylelcQk5IR0IPLvHSpfiCotcycmKaFBV68SGyM1B0hbo6/
+GU3RhLFC154nAkhr/7ewCCLl/eACuCA6HH00yTK68pLcG281hbHr3A==
+-----END RSA PRIVATE KEY-----
diff --git a/tests/ca/picapica_test_CA.pem b/tests/ca/picapica_test_CA.pem
new file mode 100644
index 0000000..f11826f
--- /dev/null
+++ b/tests/ca/picapica_test_CA.pem
@@ -0,0 +1,54 @@
+-----BEGIN CERTIFICATE-----
+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
+qStgK39Nj5myPko=
+-----END CERTIFICATE-----
diff --git a/tests/ca/picapica_test_CA_pkey.pem b/tests/ca/picapica_test_CA_pkey.pem
new file mode 100644
index 0000000..d908370
--- /dev/null
+++ b/tests/ca/picapica_test_CA_pkey.pem
@@ -0,0 +1,102 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,6B353E4D75711879
+
+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
+-----END RSA PRIVATE KEY-----
diff --git a/tests/ca/privkey_testnetCA.pem b/tests/ca/privkey_testnetCA.pem
new file mode 100755
index 0000000..3c1eefd
--- /dev/null
+++ b/tests/ca/privkey_testnetCA.pem
@@ -0,0 +1,18 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,3668506F4CD68874
+
+tRhztkNOy7lYKl3Pa980tEMHzrhi4NmYHMBgqkz89Nvgcb7xxBhoFA3TL01p+r8X
+jJxnuJV6RtfX1HLcvJ627wB1rcelqFmUauBsfRN0cGCPdUv/P85uLRAW4XuL5HPt
+HB9Yks8YC946elhsGSJI9+3SsQRiDFqj6uFyaJ4AGrUio3vQa+hE3cRIxCQ+EXHJ
+S4WyCuWm3zdSkcavzfucrPzKpFtQ/b84dHcp44ON+4TePCSE1ztJjcrG9+CG16Qn
+j6IgJ0O2Xd5aTZIRKyBB1k4mCWnlLxZdVvQ07Zx9sj/M3q1bpopO7+Yb0bMllb3x
+X/O/T65bS+d+XpvSK3JyncLIGqsV92uNUYuTnGwr8hEHfdFa7BsgOivbzPK1trWD
+1u3L+uVHPzFeErcgXPncl4xrm4SqcRLMDEfIttyZT6xOhctEf/O+0limL6Ho7L5g
+zb6HBprS8KyRgVsEOxfWZtvFw/H5ZpCGzyUNoyqRbbemaGYaiMDGW6/tqtgLVAbs
+cr3OfDlIcdn05YujhtUP4GQ+7N+mdZKBSag8PFfajwteuFUMOtx3jWZFM6i5N1eM
+GQUO6QfFcgvI4jEWM+Ub5wdUOOozxO4ci+f0TECJ1zyI3CyDimfoUn6qxUharj+Y
+qMuCW5Qyf4qRJUHB4hl3C7uGIoAIqyNQ1JIwlIl0G3qHOY4llwLJFfSAMxBMk4aP
+5UIg8oU3/XgL7YGwqRMW8qrlIHsx+z8irTE0DLCKZULpcfO1tTUKgjyYGTy6R3vd
+o4e0DxdNLfBLE8+8j3RdgEV9/56RLsTyPY0afBEPBs1wI2E4m5bQ9g==
+-----END RSA PRIVATE KEY-----
diff --git a/tests/ca/serial b/tests/ca/serial
new file mode 100755
index 0000000..8a9ded8
--- /dev/null
+++ b/tests/ca/serial
@@ -0,0 +1 @@
+0340
diff --git a/tests/ca/serial.old b/tests/ca/serial.old
new file mode 100755
index 0000000..e5b67e0
--- /dev/null
+++ b/tests/ca/serial.old
@@ -0,0 +1 @@
+033E
diff --git a/tests/ca/testnetCA.pem b/tests/ca/testnetCA.pem
new file mode 100755
index 0000000..81a4e87
--- /dev/null
+++ b/tests/ca/testnetCA.pem
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICVjCCAb+gAwIBAgIJAIwFS1tZBlNfMA0GCSqGSIb3DQEBBQUAMCcxEDAOBgNV
+BAoTB1RFU1RORVQxEzARBgNVBAMTClRFU1RORVQgQ0EwHhcNMDgxMTI1MTcxMzQ1
+WhcNMDgxMjI1MTcxMzQ1WjAnMRAwDgYDVQQKEwdURVNUTkVUMRMwEQYDVQQDEwpU
+RVNUTkVUIENBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2Jn0QVBOoOtoH
+vr8+HZZZqmPZnlG0Rrb1pNUEzScMIm48hDChMEifTWtAr3NHnL9mzkL08BQKnrH5
+VYPkkh5NLFarxanE9sACuI3K6m2UvNK8X0ZPkLt4bQ6A6L7hHD63LSG5fvouGhAQ
+CVgxastn7/qs9RKIRp5GpZTj6um+8wIDAQABo4GJMIGGMB0GA1UdDgQWBBSiFul4
+NNvxHsJ0hDiv7A+FWnSsXTBXBgNVHSMEUDBOgBSiFul4NNvxHsJ0hDiv7A+FWnSs
+XaErpCkwJzEQMA4GA1UEChMHVEVTVE5FVDETMBEGA1UEAxMKVEVTVE5FVCBDQYIJ
+AIwFS1tZBlNfMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAK9AeX2Hv
+DBUWKAF7RI/an2GOOTECLgeDIgzGLjDWFo4CAhrvYSpiyblbAadSQclSWgQalpUH
+OQbAVqB4A8LmXvF/Niixu5QsmG6bCQlrT89khYOQ2GwEnrDpDCB+5t41gZNHmuMX
+r1urVCbUPDo71Hf/TjsPMh/QpY4pAI1BGTc=
+-----END CERTIFICATE-----
diff --git a/tests/ca/testnet_cert_index_db.txt b/tests/ca/testnet_cert_index_db.txt
new file mode 100755
index 0000000..abf6631
--- /dev/null
+++ b/tests/ca/testnet_cert_index_db.txt
@@ -0,0 +1,9 @@
+V 091125175327Z 0337 unknown /C=GE/O=TESTNET/CN=5#tester5
+V 091125180824Z 0338 unknown /O=TESTNET/CN=6#tester6
+V 091223224858Z 0339 unknown /O=TESTNET/CN=8#tester8
+V 091223224935Z 033A unknown /O=TESTNET/CN=9#tester9
+V 101226235112Z 033B unknown /O=TESTLAB/CN=10#tester10
+V 101228044509Z 033C unknown /O=TESTER CERTIFICATE/CN=11#tester11
+V 210407204052Z 033D unknown /ST=Georgia/CN=12#\xD1\x82\xD0\xB5\xD1\x81\xD1\x82\xD0\xB5\xD1\x8012
+V 210407204525Z 033E unknown /C=GE/ST=Georgia/O=\xD1\x82\xD0\xB5\xD1\x81\xD1\x82\xD0\xBE\xD0\xB2\xD0\xB0\xD1\x8F \xD0\xBB\xD0\xB0\xD0\xB1\xD0\xBE\xD1\x80\xD0\xB0\xD1\x82\xD0\xBE\xD1\x80\xD0\xB8\xD1\x8F/CN=13#\xE1\x83\xA2\xE1\x83\x94\xE1\x83\xA1\xE1\x83\xA2\xE1\x83\x94\xE1\x83\xA0\xE1\x83\x98N13
+V 220627211901Z 033F unknown /C=GE/ST=Georgia/O=\xD1\x82\xD0\xB5\xD1\x81\xD1\x82\xD0\xBE\xD0\xB2\xD0\xB0\xD1\x8F \xD0\xBB\xD0\xB0\xD0\xB1\xD0\xBE\xD1\x80\xD0\xB0\xD1\x82\xD0\xBE\xD1\x80\xD0\xB8\xD1\x8F/CN=13#\xE1\x83\xA2\xE1\x83\x94\xE1\x83\xA1\xE1\x83\xA2\xE1\x83\x94\xE1\x83\xA0\xE1\x83\x98N13
diff --git a/tests/ca/testnet_cert_index_db.txt.attr b/tests/ca/testnet_cert_index_db.txt.attr
new file mode 100755
index 0000000..3a7e39e
--- /dev/null
+++ b/tests/ca/testnet_cert_index_db.txt.attr
@@ -0,0 +1 @@
+unique_subject = no
diff --git a/tests/ca/testnet_cert_index_db.txt.attr.old b/tests/ca/testnet_cert_index_db.txt.attr.old
new file mode 100755
index 0000000..3a7e39e
--- /dev/null
+++ b/tests/ca/testnet_cert_index_db.txt.attr.old
@@ -0,0 +1 @@
+unique_subject = no
diff --git a/tests/ca/testnet_cert_index_db.txt.old b/tests/ca/testnet_cert_index_db.txt.old
new file mode 100755
index 0000000..180835d
--- /dev/null
+++ b/tests/ca/testnet_cert_index_db.txt.old
@@ -0,0 +1,7 @@
+V 091125175327Z 0337 unknown /C=GE/O=TESTNET/CN=5#tester5
+V 091125180824Z 0338 unknown /O=TESTNET/CN=6#tester6
+V 091223224858Z 0339 unknown /O=TESTNET/CN=8#tester8
+V 091223224935Z 033A unknown /O=TESTNET/CN=9#tester9
+V 101226235112Z 033B unknown /O=TESTLAB/CN=10#tester10
+V 101228044509Z 033C unknown /O=TESTER CERTIFICATE/CN=11#tester11
+V 210407204052Z 033D unknown /ST=Georgia/CN=12#\xD1\x82\xD0\xB5\xD1\x81\xD1\x82\xD0\xB5\xD1\x8012
diff --git a/tests/cert_pkey.pem b/tests/cert_pkey.pem
new file mode 100755
index 0000000..94dd0d4
--- /dev/null
+++ b/tests/cert_pkey.pem
@@ -0,0 +1,35 @@
+-----BEGIN CERTIFICATE-----
+MIICiTCCAfKgAwIBAgIJAJBNaow2UqG9MA0GCSqGSIb3DQEBBQUAMDgxEDAOBgNV
+BAoTB1RFU1RORVQxCzAJBgNVBAsTAkNBMRcwFQYDVQQDDA4xI9GC0LXRgdGC0LXR
+gDAeFw0wODEwMTkyMzQ2MjhaFw0wODExMTgyMzQ2MjhaMDgxEDAOBgNVBAoTB1RF
+U1RORVQxCzAJBgNVBAsTAkNBMRcwFQYDVQQDDA4xI9GC0LXRgdGC0LXRgDCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0R7D4aOP/36NBKLaLSP4bvXdXYCRLXxZ
+6zflIpFQEItxwmom8uwhwf1y3PEgHf8qiXfrfbwQNJ5pZaIXomkLA5syZABkG30D
+yKuGaR+/a64C+1WWd+wmt49GK9ZUALdRNiVNS6H9DpDUain+fq1a1MLoLS91zELu
+6z+brEy3ds0CAwEAAaOBmjCBlzAdBgNVHQ4EFgQUFXiV3280OEg3ydwiNi1KS01L
+DDMwaAYDVR0jBGEwX4AUFXiV3280OEg3ydwiNi1KS01LDDOhPKQ6MDgxEDAOBgNV
+BAoTB1RFU1RORVQxCzAJBgNVBAsTAkNBMRcwFQYDVQQDDA4xI9GC0LXRgdGC0LXR
+gIIJAJBNaow2UqG9MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAdxVj
+2yqNr0qwx5V0kdOwMVDUUqV9zuDT3MiOMePzB1f7cDxxNiFWrR5MubDE0BRWDGzr
+OmCW3Omze9mVmm8/ngtXCXID9K4VmqDr0rHtzRpEFWIFfCn5PKFZQ3ethudAnykN
+fsCu7sIM8qV0bwNuzX0O/FXjhZVcOymeVDl326s=
+-----END CERTIFICATE-----
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,1150D7177CE04947
+
+S2mgnilS3+mJ6wi0aGT0blqVlB4o9m3mGO+MiaeVk34H0xZnuQzgM9VUlNjKepRx
+3izhCUoYJJFc0Ku/LgBqjdLnRs84u+TrutnuKLjhwjotlp0YgP7DFGaG4MJp6VC5
+BNAm4+ogAeaKNbsJGKB3gv1Rc3ENNDqLBqDHk1EGVgV3gCO1n1VX5EKwGvpRJl4A
+52HNusEUFLU2c4LVin8hPVh8TuWMnqptZs1+6kTlxUFAany1UpUfhY8A4wMbX7Af
+FoGhoLrmatqJMdoDkVcjpxf32xD6G4JCoC8DbJBA5cHoODeI9Zi1qpEhDu08uQk8
+qlyb2eKc69MGzJmNnTLZrg9bjlxTvERPx9NwYKdH2euZW1+NgC6tHdYIBiq1sNPv
+3ftkOXDFVnWRXSRddM2sKKdXuSrfckGM5BW8BlNHrJrRiJUTdfhrKExlLk4QYf2m
+0WDcEoTHqJQOI9/K6k7gSBq9aO2UuRpUUmcVYn11HIvy1xyVLqkQ7EOOG7uWypQD
+dpYGgTZJc5JmjNUUf92ViKNLi1R9KH2wVS7JqjSOBT8Lc3Ya6ET0vzRim5DcWq6R
+ZbeWB/G+2HKwgmvecJt0KSIQclOqOaKWT0JzhtYScWCaRQ0KoMV33n++G/YYn6qv
+RbJ3LQFCz2P/luVLXTq64whFhxt7W5kIqeS9zBv/DlbNZ0ZIPPOk+pHQRyTfz7HD
+Yd4VS0yP/rPA40VNV9C8DhW5cTjiex41LMV2j/XIy/Gi/nbQLu/TbGEOFLMhqvG2
+XTybvKiB9pNr/kQyl+lDjMgfCmNRU1MWCwMqsS3Gbiltn8dJoDf7Ew==
+-----END RSA PRIVATE KEY-----
+
diff --git a/tests/cert_pkey_3.pem b/tests/cert_pkey_3.pem
new file mode 100755
index 0000000..b5feb4a
--- /dev/null
+++ b/tests/cert_pkey_3.pem
@@ -0,0 +1,33 @@
+-----BEGIN CERTIFICATE-----
+MIICUzCCAbygAwIBAgIJAJDyXELw2qhuMA0GCSqGSIb3DQEBBQUAMCYxEDAOBgNV
+BAoTB1RFU1RORVQxEjAQBgNVBAMMCTMjdGVzdGVyMzAeFw0wODExMjQyMjQ5MDla
+Fw0wODEyMjQyMjQ5MDlaMCYxEDAOBgNVBAoTB1RFU1RORVQxEjAQBgNVBAMMCTMj
+dGVzdGVyMzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA62eJqbk5GQfsp7FC
+SRddaqOepcEp8V5QgJp2wOnLv6W1PpO51Rn0behsTpDXdRoH4Suh7v0KRURhUW4q
+ipX8cNJpC5+u0lS9QFs1hndXWOZu9uJc9MNWN8IVsHEQRCuaK5Ak2xVaW3H6Pcqb
+ui6a8xSX5B90iugchlOIbz7gm3ECAwEAAaOBiDCBhTAdBgNVHQ4EFgQUEV4pVOpG
+egXduClZQvo1/Qp8kxIwVgYDVR0jBE8wTYAUEV4pVOpGegXduClZQvo1/Qp8kxKh
+KqQoMCYxEDAOBgNVBAoTB1RFU1RORVQxEjAQBgNVBAMMCTMjdGVzdGVyM4IJAJDy
+XELw2qhuMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAaYUntGSAdIHT
+kn760cIVExbL4RHyHS52p3BEoaIKoKmQS6yZXRGpg/Nf4EFR0JMMlRYd910U5p52
+7+iEsDIQpN2KccbXCcgLPX0Tc+CBIy8gUHav543bNpGxBYXSx+fQcg6qfwLHPzns
+HBlCox2a+iavbgz5q7QFEltZteUrhZw=
+-----END CERTIFICATE-----
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,72D7A6C4E5B1381E
+
+VPdWzksaFY3pRP6iTVv/yGJULx8/2wm+9bTLLVh/a5h4KiGi7TXs9VpoOsbUtsOw
+iDJgau7nvqsMk9k7EUVwuCTWo1O14NAn6Q5tnTq+S3bnmHHxsJz9lBtewFmJp485
+NUoDczLvZdZ5ErD2h8pldRzCZpk4WvYfrpG5H+QrG4QQt+6Ur0/3iFV+tCn9vt3A
+mc6Nh5uX3MzYrV8vco+vSPOBryZK7c8zE6eqlwo1liOtp5+YDY3C/8Ne/uqXNe7I
+M2IcuVjxdW+ZdQLXIWoacHOnOGwl044WcBfXfN0TrcJbr5NpRgUqxSD8sXpdmKuP
+9KwrQwQaNZFa7OhMWkk7n1xgttKiWHmXjC8v99Lgd1GQ79VlE1uan4kchNMfpLJQ
+XlyjJolXICxG7qFSZYRqkLbpWtMY9mUu9qLUCn0DpTMO/eGIclFS51DQj1IusGil
+WG+YIZ5oIDTPG78i6xgIOG5CIyklusoGJlssFeMgLXSCSFLXJACb0XzfdECgD21T
+gKVTskA0qgf32VewBHbsV27Qc4qKE5HuJjEXRekeqn9h+YJgnqzW3o6xTXehqbgG
+f0qZSzE8tF9qiOXjXGxGqsoS9+7XohQ/U0+fVmfcnDJaCiMtaCtm5XATuwkz96ZI
+Lzj3CEgEFPi8oA/WwMFcn+bMWiH+Rla5ps4MZB1fb1ZBrHCjVBvX9QaKDbGQbFaG
+bT2mGElmTd/K5aDEN8iJ9pIrJdon8ifdqFj7wGjBu/2Y8TMdSU0+m0qjK6RqRXpk
+RwB8ORHTwamC63/Gf73BUBYZB+OLC9PcDfoS7uCX9AHXuFqlRs+itA==
+-----END RSA PRIVATE KEY-----
diff --git a/tests/cert_pkey_n2.pem b/tests/cert_pkey_n2.pem
new file mode 100755
index 0000000..6f26745
--- /dev/null
+++ b/tests/cert_pkey_n2.pem
@@ -0,0 +1,33 @@
+-----BEGIN CERTIFICATE-----
+MIICUzCCAbygAwIBAgIJAIdo5URyPPpNMA0GCSqGSIb3DQEBBQUAMCYxEDAOBgNV
+BAoTB1RFU1RORVQxEjAQBgNVBAMMCTIjdGVzdGVyMjAeFw0wODExMTgxMjM5MjRa
+Fw0wODEyMTgxMjM5MjRaMCYxEDAOBgNVBAoTB1RFU1RORVQxEjAQBgNVBAMMCTIj
+dGVzdGVyMjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAkauUtDyMh+zf9VV1
+K1wjLpz3+5nHzvVckJuFmB0X7leUUJ3Hw45qMFkf270EKMoXuJHsy09gWIHWwciE
+uit/hXeD4k+MjgxL/CqvotCVIORlCwu9d+07d2DmawySjHaHgEgz/mm4Bym5oo6Y
+tyB8is6D1fGJY2ysg2d3L2S5QMsCAwEAAaOBiDCBhTAdBgNVHQ4EFgQUEFoG9GRa
+F6tGN8LrUmmtwiWoF3MwVgYDVR0jBE8wTYAUEFoG9GRaF6tGN8LrUmmtwiWoF3Oh
+KqQoMCYxEDAOBgNVBAoTB1RFU1RORVQxEjAQBgNVBAMMCTIjdGVzdGVyMoIJAIdo
+5URyPPpNMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAOjHi8b+QQWyn
+jR44HcCpYp8U8F5Pbxu8IUgBoGOqZxGYUS894WXUtLH48TbP74toB/edLRrXBdCq
+6D+yqCkZgx8ObcibV1j4xmvBMPsrBbzWa1g9nueVqM6/oVfm5gA0jdMdsvVUuz8G
+1s+AwyTQw63Kf8vToWu+U5A2a01sfXM=
+-----END CERTIFICATE-----
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,B68E22013A5B5F7A
+
+DO7bFosxptJyxfn8B1DYICoPgvPTfQmL5/n20JQEel1llHY/pS24rQIx/1rEq2DH
+r+ekGxAjzV3psCqhZ1SSr3ch36sXBEHPD7pr0LaamW2VxQKwLsVuDCZO4fBkfLuj
+14NUxVg5oKm2q0lY38psEQUqZDoQ6ji1hGR1BGh+s4EferFmDJuPUgo0KOfjHOzT
+xVY+m5LkuPvP3Zc7LNrOYootc6L0Z5+q1/ObX78eoWKEIfS5uDEO72qGBnnszNgz
+AidGcG0v8skaZogogjEkrdCKtbeFzUNcN9+5PhBHWNba5Xvru4GU9h2XCHFKxIx/
+8qImd0zbUhn/8QgyhyaQWpYvpzMrxIazfxAOboHBqumLDXkUhI7f2dt2YO6iYcSH
+AsHnobDK68bcLzHsZrMyvzlT2LBNN+ZGwlspYLTtj/7AhocSOmj016WDqEE6WmNy
+kRXp7yTl7dMi++U713QldnRQs7WdKe4Jz/kG4uKO+eSvbwHTcfja9RkFRqrr7XEs
+V1IzzVWhl2wkSRmQ6TKHZVR9mmZaqIliEb8QG1u8M0KJjgpqJlNbmsLpWYISoY3n
+sZNQOfyTODifNf0l4g97GXbfk4uZZLhhzzVRCqXWgHZEKoStbh0d+sJQKcXg6IdZ
+uO2RJc8QjeE5Kn8dPAY048dSP5uNRdFme8oZ1KePz/wiHljqm0oEj71Bt0bdW/es
+LJSKjtyXc0NpRdf5V9q+sY48VK292Whfoql0cyEr6RyAy/numL9xbjNW/lHp0VQM
+2ZY+6BlOpp9Um5hs0ORz5xH3EAaGhVhLWRmcqCWPjIqduj7Ls85tVQ==
+-----END RSA PRIVATE KEY-----
diff --git a/tests/create_certs_commands.txt b/tests/create_certs_commands.txt
new file mode 100644
index 0000000..97fbbcd
--- /dev/null
+++ b/tests/create_certs_commands.txt
@@ -0,0 +1,6 @@
+
+openssl req -out picapica_test_CA.pem -newkey rsa:8192 -keyout picapica_test_CA_pkey.pem -x509 -days 3680 -utf8
+
+openssl req -out tester13req.pem -newkey rsa:4096 -keyout tester13pkey.pem -new -days 3680 -utf8
+
+openssl ca -config ca_config.txt -in tester13req.pem -out tester13cert.pem -utf8
diff --git a/tests/dh2048.pem b/tests/dh2048.pem
new file mode 100644
index 0000000..ea0fa4c
--- /dev/null
+++ b/tests/dh2048.pem
@@ -0,0 +1,8 @@
+-----BEGIN DH PARAMETERS-----
+MIIBCAKCAQEA4SNgEbmfDYLh6IHkDIBJUHSUu9NkvpAnT6s5yJOKvKYzulZH/ENv
+EUckfrOZA+aWapy/Jz1ogJMXDwWb8Vz/TzeClZQ8wGFsATwkl/YLcBjn/TL0SxKP
+fU28+LVczvtzv5zctcWrrZzzrkxS3v3Ap5GBEJ5Us18ZLhs1RM1iLSK1DdgAu7Z3
+3u4f/YtRq9FyQqOgg5skFsYuqYXW0PbEzBWX4AkR/uEgWTZGH+xJIarZvb+cmPSv
+DtygutDStxEGAiifEaXjgvMUI+ayZ5qn/azIBO9/2Zwekng36ZsC+CgW5kZJzCrX
+4SEijqbODgzAMK2Z1SGt+QRllzhjj/oC4wIBAg==
+-----END DH PARAMETERS-----
diff --git a/tests/dh512.pem b/tests/dh512.pem
new file mode 100644
index 0000000..c072c78
--- /dev/null
+++ b/tests/dh512.pem
@@ -0,0 +1,4 @@
+-----BEGIN DH PARAMETERS-----
+MEYCQQCTMDVkfkH8eEae0Y87LWzpuOjuAh29cC215AI+nS1Ymlswn0Mo1IjbhzIN
+Bh0VxjknSpZaNjdFFgago0tDADuLAgEC
+-----END DH PARAMETERS-----
diff --git a/tests/fdssize b/tests/fdssize
new file mode 100755
index 0000000..96be1de
--- /dev/null
+++ b/tests/fdssize
Binary files differ
diff --git a/tests/fdssize.c b/tests/fdssize.c
new file mode 100755
index 0000000..56562e7
--- /dev/null
+++ b/tests/fdssize.c
@@ -0,0 +1,9 @@
+#include <stdio.h>
+#include <sys/select.h>
+
+
+int main()
+{
+ printf("FD_SETSIZE=%u\n",FD_SETSIZE);
+ return 0;
+}
diff --git a/tests/getid b/tests/getid
new file mode 100755
index 0000000..93e127c
--- /dev/null
+++ b/tests/getid
Binary files differ
diff --git a/tests/nodeaddrlist_test.txt b/tests/nodeaddrlist_test.txt
new file mode 100644
index 0000000..65cf026
--- /dev/null
+++ b/tests/nodeaddrlist_test.txt
@@ -0,0 +1,5 @@
+::1 5859 0
+aaa.mydns.com 5000 1
+localhost 5859 0
+veryverylongdomainname.aaaaaaaaaaaaaaaaaaaaaaaaaaa.com 65000 0
+
diff --git a/tests/privkey_tester4.pem b/tests/privkey_tester4.pem
new file mode 100755
index 0000000..4afa942
--- /dev/null
+++ b/tests/privkey_tester4.pem
@@ -0,0 +1,18 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,EF3C10295057B32F
+
+NzBcTqDlCq575j/EOEZSd/lEcni2Z8FU5LTNyiRZpTPofKwXXmKUBdZ0j8VQPgdc
+eY6ZnubMqfGAFXYKU9yyB8TmSOI0rCFlRcaCzef8l5Qm2Kk3XDvWxYeZBNdZAF7/
+dYygU+5h92+jtEWLeVA4AbkW9FhZsaUhjH6G4Z4xw1Vpdx1SkLcPIE676D654x46
+HynqQWFi7HDP6/Oyw+3NkLQDihzyYtkSz8G9VEgLZwwHB3SpBgHJBzbzljzlhBUP
+7s5vftTZvGMDEqgota2VrIcVKO7Vo8c6HbiSOGMuyHZyz2xQ10ryB2pX9tZEEapU
+ukos+fLMeE3Wv32dXAEiX9H8G1ctiMO/4oMP+/Oy2kgGQUwxlB3Z21PO5Vh4ZU+j
+F/eXTYnjSBHLfQu7eZSkx9Xp76L1WwhDjvhsW4Vl766fwaWzeOMT1T5/vSRcMJ6U
+Cdtf9cWJtr0LuJmpI1ZS4QcPC3hzB6XtIIAFx0naZS3TEjeBNw988vbXOp/cKp4k
+U142CC9eVNSci/rW/NZRiKm1ylDq0Sq6SIy8gcPdAnGfipTLUKaWOVG8eAiU5yqg
+NZ1UALAvSwpA6936s94lDwbiZH985xEmHHwR3P16SXUYYcpa7jJLcK6XKNuIbbuI
+L3SX3IIrj+XLFUqRyG/z8PK0vMOllk/1FguHLKtA8r4JRUahxFIHx5xllqYQW4EH
+Df71iYd0QmN7uzgXesnixh2DmC+TogMWRsYIfjuuuWQnfQoHFxSCyGnq1Eb8pipS
+tHV5SHc7vaWSrRXltJx6EPljvOsadKiEtelHqqbgX6E=
+-----END RSA PRIVATE KEY-----
diff --git a/tests/save_nodelist.txt b/tests/save_nodelist.txt
new file mode 100644
index 0000000..604604d
--- /dev/null
+++ b/tests/save_nodelist.txt
@@ -0,0 +1,4 @@
+::1 5859 0
+aaa.mydns.com 5000 1
+localhost 5859 0
+veryverylongdomainname.aaaaaaaaaaaaaaaaaaaaaaaaaaa.com 65000 0
diff --git a/tests/test_addnewconn.c b/tests/test_addnewconn.c
new file mode 100755
index 0000000..a8acbfd
--- /dev/null
+++ b/tests/test_addnewconn.c
@@ -0,0 +1,42 @@
+#include <stdio.h>
+ #include "../PICA_node.h"
+
+struct newconn* add_newconn(struct newconn *ncs,int *pos);
+
+struct newconn t1[64];
+
+
+int main()
+{
+int tpos=0,i;
+struct newconn *nc;
+
+printf(" t1=%X\n",t1);
+
+nc=add_newconn(t1,&tpos);
+printf("1) nc=%X tpos=%i\n",nc,tpos);
+
+tpos=0;
+t1[0].sck=1;
+
+nc=add_newconn(t1,&tpos);
+printf("2) nc=%X tpos=%i\n",nc,tpos);
+
+tpos=64;
+nc=add_newconn(t1,&tpos);
+printf("3) nc=%X tpos=%i\n",nc,tpos);
+
+for (i=0;i<64;i++)
+{
+t1[i].sck=65536;
+t1[i].tmst=100+i;
+}
+
+t1[63].tmst=5;
+
+nc=add_newconn(t1,&tpos);
+printf("4) nc=%X tpos=%i\n",nc,tpos);
+
+
+return 0;
+}
diff --git a/tests/test_addrconv.c b/tests/test_addrconv.c
new file mode 100644
index 0000000..a5e4a15
--- /dev/null
+++ b/tests/test_addrconv.c
@@ -0,0 +1,23 @@
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+
+
+#include <stdio.h>
+
+int main()
+{
+int ret;
+char buf[256];
+
+
+gets(buf);
+
+
+ret=inet_aton(buf,(struct in_addr*)(buf+128));
+
+printf("inet_aton()=%i\n",ret);
+
+return 0;
+} \ No newline at end of file
diff --git a/tests/test_client b/tests/test_client
new file mode 100755
index 0000000..e3723b6
--- /dev/null
+++ b/tests/test_client
Binary files differ
diff --git a/tests/test_client.c b/tests/test_client.c
new file mode 100755
index 0000000..89e0c8c
--- /dev/null
+++ b/tests/test_client.c
@@ -0,0 +1,234 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "../PICA_client.h"
+
+
+struct sockaddr_in a;
+struct PICA_conninfo *c;
+struct PICA_chaninfo *chn;
+
+int _outgoing_chnl=0;
+
+unsigned char buf[64*1024];
+
+int accept_cb(unsigned int id)
+{
+printf("accept_cb: %u\n",id);
+return 1;
+}
+
+//получение сообщения.
+void newmsg_cb(unsigned int peer_id,char* msgbuf,unsigned int nb,int type)
+{
+memcpy(buf,msgbuf,nb);
+buf[nb]=0;
+printf(" %u: ",peer_id);
+puts(buf);
+}
+//получение подтверждения о доставке сообщения
+void msgok_cb(unsigned int peer_id)
+{
+puts("[V]");
+}
+//создание канала с собеседником
+void channel_established_cb(unsigned int peer_id)
+{
+puts("channel_established_cb");
+}
+
+void channel_failed_cb(unsigned int peer_id)
+{
+printf("Failed to create channel to %u\n",peer_id);
+chn=0;
+}
+
+//входящий запрос на создание канала от пользователя с номером caller_id
+//<<int accept_cb(unsigned int caller_id);
+//запрошенный пользователь не найден, в оффлайне или отказался от общения
+void notfound_cb(unsigned int callee_id)
+{
+puts("notfound_cb");
+}
+
+void channel_closed_cb(unsigned int peer_id, int reason)
+{
+printf("channel_closed_cb( peer_id = %u, reason = %i)\n", peer_id, reason);
+}
+
+void nodelist_cb(int type, void *addr_bin, const char *addr_str, unsigned int port)
+{
+switch(type)
+ {
+ case 0xA0:
+ printf("node (IP %s port %u)\n", addr_str, port);
+ break;
+
+ case 0xA1:
+ printf("node (IPv6 %s port %u)", addr_str, port);
+ break;
+
+ case 0xA2:
+ printf("node (hostname %s port %u)\n", addr_str, port);
+ break;
+
+ default:
+ puts("unknown node address type");
+ return;
+ }
+}
+
+int peer_cert_verify_cb(unsigned int peer_id, const char *cert_pem, unsigned int nb)
+{
+ printf("peer's certificate (%u): \n%.*s\n", peer_id, nb,cert_pem);
+ return 1;
+}
+
+struct PICA_client_callbacks cbs = {
+ newmsg_cb,
+ msgok_cb,
+ channel_established_cb,
+ channel_failed_cb,
+ accept_cb,
+ notfound_cb,
+ channel_closed_cb,
+ nodelist_cb,
+ peer_cert_verify_cb
+};
+
+int main(int argc,char** argv)
+{
+int ret;
+unsigned int peer_id;
+
+if (argc<3)
+ {
+ puts("usage: test_client address cert_filename [peer id]");
+ return 0;
+ }
+
+puts(SSLeay_version(SSLEAY_VERSION));
+printf("Calling PICA_init...\n");
+
+PICA_client_init(&cbs);
+
+// printf("setting address...\n");
+//
+// memset(&a,0,sizeof(a));
+//
+// a.sin_family = AF_INET;
+// a.sin_addr.s_addr = inet_addr (argv[1]);//("127.0.0.1");
+// a.sin_port = htons(51914);
+
+
+printf("making connection...\n");
+
+//PICA_new_connection(const char *nodeaddr, unsigned int port, const char *CA_file, const char *cert_file, const char *pkey_file, const char* password, struct PICA_conninfo **ci)
+ret=PICA_new_connection(argv[1], 51914,"trusted_CA.pem",argv[2],argv[2],NULL,&c);
+
+ERR_print_errors_fp(stdout);
+
+if (ret==PICA_OK)
+printf("PICA_OK Connected to server...\n");
+else
+{
+printf("PICA_new_connection: ret=%i\n",ret);
+return 1;
+}
+
+if (argc==4)
+ {
+ peer_id=atoi(argv[3]);
+ printf("Creating channel to %u...\n",peer_id);
+
+ ret=PICA_create_channel(c,peer_id,&chn);
+ //sleep(17);//timeout test
+ if (ret!=PICA_OK)
+ {
+ printf("error: ret=%i\n",ret);
+ return 1;
+ }
+
+ }
+
+do
+ {
+ if (chn && chn->state==PICA_CHANSTATE_ACTIVE)
+ {
+ unsigned int msglen;
+ gets(buf);
+ msglen=strlen(buf);
+
+ ret=PICA_send_msg(chn,buf,msglen);
+
+ if (ret!=PICA_OK)
+ printf("PICA_send_msg ret=%i\n",ret);
+ }
+ }
+while(PICA_read(c,100000) == PICA_OK && PICA_write(c) == PICA_OK);
+
+/*
+puts("Enter peer_id to talk with or . for waiting incoming sessions:");
+gets(buf);
+if (buf[0]=='.')
+ {
+ unsigned int br;
+ ret=PICA_read_conn(c,accept_cb,&chn);
+
+ if (ret==PICA_NEWCHAN)
+ {
+ puts("PICA_NEWCHAN!");
+ }
+ else
+ printf("read_conn error: ret=%i\n",ret);
+
+ ret=PICA_read_msg(chn,buf,&br);
+ switch(ret)
+ {
+ case PICA_MSGUTF8:
+ printf("%u (%u bytes): ",c->id,br);
+ puts(buf);
+ break;
+ case PICA_MSGOK:
+ puts("[v]");
+ break;
+ default:
+ printf("PICA_read_msg ret=%i\n",ret);
+ }
+ }
+else
+ {
+ peer_id=atoi(buf);
+ printf("Creating channel to %u...\n",peer_id);
+
+ ret=PICA_create_channel(c,peer_id,&chn,1);
+
+ if (ret==PICA_OK)
+ {
+ unsigned int msglen;
+ puts("Channel established...");
+ gets(buf);
+ msglen=strlen(buf);
+
+ ret=PICA_send_msg(chn,buf,msglen);
+ if (ret!=PICA_OK)
+ printf("PICA_send_msg ret=%i\n",ret);
+ }
+ else
+ printf("error: ret=%i\n",ret);
+ }
+
+*/
+sleep(10);
+
+if (chn)
+ {
+ puts("--------");
+ PICA_close_channel(chn);
+ }
+
+PICA_close_connection(c);
+
+return 0;
+}
diff --git a/tests/test_client_win.dev b/tests/test_client_win.dev
new file mode 100755
index 0000000..fa7db72
--- /dev/null
+++ b/tests/test_client_win.dev
@@ -0,0 +1,79 @@
+[Project]
+FileName=test_client_win.dev
+Name=test_client_win
+UnitCount=3
+Type=1
+Ver=1
+ObjFiles=
+Includes=D:\pract\home_mdv_root_jr\Downloads\openssl-0.9.8h\openssl-0.9.8h\include
+Libs=
+PrivateResource=
+ResourceIncludes=
+MakeIncludes=
+Compiler=
+CppCompiler=
+Linker=../../home_mdv_root_jr/Downloads/openssl-0.9.8h/openssl-0.9.8h/lib_a_win/libssl.a_@@_../../../Dev-Cpp/lib/libgdi32.a_@@_../../../Dev-Cpp/lib/libws2_32.a_@@_../../home_mdv_root_jr/Downloads/openssl-0.9.8h/openssl-0.9.8h/lib_a_win/libcrypto.a_@@_../../../Dev-Cpp/lib/libgdi32.a_@@_../../../Dev-Cpp/lib/libws2_32.a_@@_
+IsCpp=0
+Icon=
+ExeOutput=..\tests
+ObjectOutput=
+OverrideOutput=1
+OverrideOutputName=test_client_win.exe
+HostApplication=
+Folders=
+CommandLine=
+UseCustomMakefile=0
+CustomMakefile=
+IncludeVersionInfo=0
+SupportXPThemes=0
+CompilerSet=0
+CompilerSettings=0000000000000000000000
+
+[Unit1]
+FileName=test_client.c
+CompileCpp=0
+Folder=test_client_win
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=$(CC) -c test_client.c ../CACA_client.c -o test_client.o $(CFLAGS)
+
+[VersionInfo]
+Major=0
+Minor=1
+Release=1
+Build=1
+LanguageID=1033
+CharsetID=1252
+CompanyName=
+FileVersion=
+FileDescription=Developed using the Dev-C++ IDE
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=
+AutoIncBuildNr=0
+
+[Unit2]
+FileName=..\CACA_client.c
+CompileCpp=0
+Folder=test_client_win
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[Unit3]
+FileName=..\CACA_msgproc.c
+CompileCpp=0
+Folder=test_client_win
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
diff --git a/tests/test_client_win.exe b/tests/test_client_win.exe
new file mode 100755
index 0000000..d37b15c
--- /dev/null
+++ b/tests/test_client_win.exe
Binary files differ
diff --git a/tests/test_client_win.layout b/tests/test_client_win.layout
new file mode 100755
index 0000000..0f3e415
--- /dev/null
+++ b/tests/test_client_win.layout
@@ -0,0 +1,20 @@
+[Editor_0]
+CursorCol=1
+CursorRow=5
+TopLine=11
+LeftChar=1
+Open=1
+Top=0
+[Editors]
+Order=0,-1
+Focused=-1
+[Editor_1]
+Open=1
+Top=1
+CursorCol=27
+CursorRow=1114
+TopLine=1111
+LeftChar=1
+[Editor_2]
+Open=0
+Top=0
diff --git a/tests/test_getidfromsubstr.c b/tests/test_getidfromsubstr.c
new file mode 100755
index 0000000..2e33a67
--- /dev/null
+++ b/tests/test_getidfromsubstr.c
@@ -0,0 +1,43 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <limits.h>
+#include <string.h>
+
+int get_id_fromsubjstr(char* DN_str,unsigned int* id)
+{
+ char* tmp1;
+ char* tmp2;
+
+ tmp1=strstr(DN_str,"/CN=");
+
+ if (!tmp1)
+ return 0;
+
+ tmp2=strchr(tmp1,'#');
+
+ if (!tmp2)
+ return 0;
+
+ *tmp2=0;
+
+ tmp1+=4;
+
+ if (tmp1==tmp2)
+ return 0;
+
+ *id=(unsigned int)strtol(tmp1,0,10);
+
+ *tmp2='#';
+ return 1;
+}
+
+int main()
+{
+ int ret;unsigned int id;
+ char dnstr[]="/O=TESTNET/OU=CA/CN=#\xD1\x82\xD0\xB5\xD1\x81\xD1\x82\xD0\xB5\xD1\x80";
+
+ ret=get_id_fromsubjstr(dnstr,&id);
+ printf("dnstr=%s, ret=%i, id=%u \n",dnstr,ret,id);
+
+return 0;
+}
diff --git a/tests/test_msgproc b/tests/test_msgproc
new file mode 100755
index 0000000..01c6614
--- /dev/null
+++ b/tests/test_msgproc
Binary files differ
diff --git a/tests/test_msgproc.c b/tests/test_msgproc.c
new file mode 100755
index 0000000..497d862
--- /dev/null
+++ b/tests/test_msgproc.c
@@ -0,0 +1,18 @@
+#include <stdio.h>
+
+#include "../PICA_msgproc.h"
+
+ unsigned int _PICA_msginfo_arr_size=1;
+
+ struct PICA_msginfo _PICA_msginfo_arr[1]={0xCF,PICA_MSG_VAR_SIZE,3};
+
+char tstpck[12]={0xCF,0xCF,0x03,0x01,1,0,0,0,0,0,0,0};
+
+int main()
+{
+printf("nb=1 ret=%u\n",PICA_msggetsize(tstpck,1));
+printf("nb=4 ret=%u\n",PICA_msggetsize(tstpck,4));
+printf("nb=12 ret=%X\n",PICA_msggetsize(tstpck,12));
+
+return 0;
+} \ No newline at end of file
diff --git a/tests/test_nodeaddr b/tests/test_nodeaddr
new file mode 100755
index 0000000..65cdcd2
--- /dev/null
+++ b/tests/test_nodeaddr
Binary files differ
diff --git a/tests/test_nodeaddr.c b/tests/test_nodeaddr.c
new file mode 100644
index 0000000..882dbf5
--- /dev/null
+++ b/tests/test_nodeaddr.c
@@ -0,0 +1,28 @@
+#include "../PICA_nodeaddrlist.h"
+#include <stdio.h>
+
+
+struct PICA_nodeaddr *head=0,*end=0;
+
+int main(int argc,char* argv[])
+{
+unsigned int N,ret;
+if (argc==1)
+ {
+ puts("test_nodeaddrlist load_list_filename [save_list_filename]");
+ }
+else
+ {
+ puts(argv[1]);
+ N=PICA_nodeaddrlist_load(argv[1],&head,&end);
+ printf("N=%u\n",N);
+
+ if (argc==3)
+ {
+ ret=PICA_nodeaddrlist_save(argv[2],head);
+ printf("save=%i to %s \n",ret,argv[2]);
+ }
+ }
+
+return 0;
+}
diff --git a/tests/test_randseed.c b/tests/test_randseed.c
new file mode 100755
index 0000000..a6318d6
--- /dev/null
+++ b/tests/test_randseed.c
@@ -0,0 +1,14 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+#define DEBUG_RAND
+
+#include "..\PICA_rand_seed.h"
+
+int main(int argc, char *argv[])
+{
+ PICA_rand_seed();
+
+ system("PAUSE");
+ return 0;
+}
diff --git a/tests/test_randseed.dev b/tests/test_randseed.dev
new file mode 100755
index 0000000..11d4c85
--- /dev/null
+++ b/tests/test_randseed.dev
@@ -0,0 +1,69 @@
+[Project]
+FileName=test_randseed.dev
+Name=test_randseed
+UnitCount=2
+Type=1
+Ver=1
+ObjFiles=
+Includes=
+Libs=
+PrivateResource=
+ResourceIncludes=
+MakeIncludes=
+Compiler=
+CppCompiler=
+Linker=../../home_mdv_root_jr/Downloads/openssl-0.9.8h/openssl-0.9.8h/libcrypto.a_@@_../../../Dev-Cpp/lib/libgdi32.a_@@_
+IsCpp=0
+Icon=
+ExeOutput=
+ObjectOutput=
+OverrideOutput=0
+OverrideOutputName=test_randseed.exe
+HostApplication=
+Folders=
+CommandLine=
+UseCustomMakefile=0
+CustomMakefile=
+IncludeVersionInfo=0
+SupportXPThemes=0
+CompilerSet=0
+CompilerSettings=0000000000000000000000
+
+[Unit1]
+FileName=test_randseed.c
+CompileCpp=0
+Folder=
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
+[VersionInfo]
+Major=0
+Minor=1
+Release=1
+Build=1
+LanguageID=1033
+CharsetID=1252
+CompanyName=
+FileVersion=
+FileDescription=Developed using the Dev-C++ IDE
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=
+AutoIncBuildNr=0
+
+[Unit2]
+FileName=..\CACA_rand_seed.c
+CompileCpp=0
+Folder=test_randseed
+Compile=1
+Link=1
+Priority=1000
+OverrideBuildCmd=0
+BuildCmd=
+
diff --git a/tests/test_randseed.exe b/tests/test_randseed.exe
new file mode 100755
index 0000000..f081ca8
--- /dev/null
+++ b/tests/test_randseed.exe
Binary files differ
diff --git a/tests/tester10_pkey.pem b/tests/tester10_pkey.pem
new file mode 100644
index 0000000..0cc0871
--- /dev/null
+++ b/tests/tester10_pkey.pem
@@ -0,0 +1,18 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,32AB002331BE4176
+
+MUrtioO6Xuctc37EiL1kA/Y8Ge5wB+WNZP0zohAi8najzbgjeaCM3QBZFQp/TCOp
+FrMd2FSjdGBdSzWjv9UiAUb/XAcGHPuwONGXPAokkt3d/T/szFsPhYfHz5B2qCmM
+kzrjIEwVm8UVxpbSJypRCQN/YGS94GZJ9DrtRNfH4Uks5sGu9PdDYWlPuMK1HGdy
+QgCSDAquSzg6feDgIfhy2oBt5m539nx1yYUzwnsfm7sixTUoohb+fMpFw5AerFEs
+z3BOs+DlIWzqT1kHfuENYGANMsBbkD+IIW/qBxifBk6wdY8YLUrhbfVuFeAlUxU2
+Uhxrs5mqyXv7FqJbjL734NbkzetCAyyNu1G9d/lHibm2OTMMmLBECpcEMOB6B6vX
+9ejceszRmEsAk9cZrKEnTJH+Z5c003Z7+AknB8j5Dre5pmCIqIhdE9R2JT0PN1Kv
+YoYkHKW6lT4EhHblr0STMG8oAJQ4U/CH489GMJ25Y2FGx4kD9U8EQerJxoFdDeti
+Ft8kpY78SRf4boVJ3P2mWU4dMGJotAvlDPbfIwBcd4l2r/M3uOTvUwEC9iJ0WpdC
+2twSfXZ7AuO2ZsKs+cYflKPaxBTbCjscKV4h+TxpNN2xCxLa0eEtjYoxxUbjBAv0
++z04Zc1JxEbA4tjmjudiPCFGVuc9bVBKsSlRqAyWNMipIksWr4Ke1XPo2xQh2Lny
+Do1+HuipzcYCqt8JX1RMdVEAdIxkBpmspzbHfbEe7fs1NnPPAJ6YUCzey412O/IC
+nxWG4DGPk6+73ND35wogClgU6EhuBGfULBAa0dhvQCEVejGgyr9VNQ==
+-----END RSA PRIVATE KEY-----
diff --git a/tests/tester10cert.pem b/tests/tester10cert.pem
new file mode 100644
index 0000000..4ef0829
--- /dev/null
+++ b/tests/tester10cert.pem
@@ -0,0 +1,32 @@
+-----BEGIN CERTIFICATE-----
+MIIB0DCCATkCAgM7MA0GCSqGSIb3DQEBBQUAMDgxHTAbBgNVBAoTFFRlc3Rpbmcg
+Y2VydGlmaWNhdGVzMRcwFQYDVQQDEw5URVNUIFJPT1QgQ0VSVDAeFw0wOTA4MDEy
+MzUxMTJaFw0xMDEyMjYyMzUxMTJaMCgxEDAOBgNVBAoTB1RFU1RMQUIxFDASBgNV
+BAMMCzEwI3Rlc3RlcjEwMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD60z9L
+EbLs5qm+aCKc7uOtWLG/lTN7Dsw6MFGtvqKvx4kdcEuY9OXb2DQJMIUOfWsOuyFz
+ONzLQZIqX7afU4CgD6fdhhcC6lr+iN/JPnIg4z09m2CZj786NCZdB+gCPDLqfUjO
+7hpDAWTMVYFrEexhGuYHvga2Sn51dgXx02AA/wIDAQABMA0GCSqGSIb3DQEBBQUA
+A4GBAAAeJ0y/y5X0iSyz0lJrBC+HkQeydacAfYI36Kf4aofLJ3YRBQ/7JfcDbmBE
+bZIJll/0Fc4mN4zMNpJJGslfex6wPvW8QS4KsG7hW3PGJvfzixcRcHHVXfQyeirt
+Qzi/WnNC1vhEeCR51erPzWRU1N9+4wWc3tmMcTpiJzDNdDwV
+-----END CERTIFICATE-----
+
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,32AB002331BE4176
+
+MUrtioO6Xuctc37EiL1kA/Y8Ge5wB+WNZP0zohAi8najzbgjeaCM3QBZFQp/TCOp
+FrMd2FSjdGBdSzWjv9UiAUb/XAcGHPuwONGXPAokkt3d/T/szFsPhYfHz5B2qCmM
+kzrjIEwVm8UVxpbSJypRCQN/YGS94GZJ9DrtRNfH4Uks5sGu9PdDYWlPuMK1HGdy
+QgCSDAquSzg6feDgIfhy2oBt5m539nx1yYUzwnsfm7sixTUoohb+fMpFw5AerFEs
+z3BOs+DlIWzqT1kHfuENYGANMsBbkD+IIW/qBxifBk6wdY8YLUrhbfVuFeAlUxU2
+Uhxrs5mqyXv7FqJbjL734NbkzetCAyyNu1G9d/lHibm2OTMMmLBECpcEMOB6B6vX
+9ejceszRmEsAk9cZrKEnTJH+Z5c003Z7+AknB8j5Dre5pmCIqIhdE9R2JT0PN1Kv
+YoYkHKW6lT4EhHblr0STMG8oAJQ4U/CH489GMJ25Y2FGx4kD9U8EQerJxoFdDeti
+Ft8kpY78SRf4boVJ3P2mWU4dMGJotAvlDPbfIwBcd4l2r/M3uOTvUwEC9iJ0WpdC
+2twSfXZ7AuO2ZsKs+cYflKPaxBTbCjscKV4h+TxpNN2xCxLa0eEtjYoxxUbjBAv0
++z04Zc1JxEbA4tjmjudiPCFGVuc9bVBKsSlRqAyWNMipIksWr4Ke1XPo2xQh2Lny
+Do1+HuipzcYCqt8JX1RMdVEAdIxkBpmspzbHfbEe7fs1NnPPAJ6YUCzey412O/IC
+nxWG4DGPk6+73ND35wogClgU6EhuBGfULBAa0dhvQCEVejGgyr9VNQ==
+-----END RSA PRIVATE KEY-----
+
diff --git a/tests/tester11_pkey.pem b/tests/tester11_pkey.pem
new file mode 100644
index 0000000..6cd6fbe
--- /dev/null
+++ b/tests/tester11_pkey.pem
@@ -0,0 +1,18 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,57E31D0A675E913A
+
+S4v09hyzG23Ouv8+3dqtt0k3mi7xn4YslHD27gDSuwvty11i38ui+dv7hNe5Y1mt
+1gb3PIFwBqiGYToNamdwI2ITNpvR7dVyC++J1IUAa1D8IlYhNY/EQI3k/P5MZbQl
+WViGGLIn7EWTVwavmdYInOj+jGf8J44Hu1SOdeftQGq95nbdDCxSbemo7bigO5r/
+aCoCLV6iasbi/JiJNuB/Kq96R1KeZVbka1rKuZIXL5+nqPP/UesCW8/+r84Xdx/P
+7GDN7x0XgwQwxu7/AJtLF1ID08kkoyL6PiijIN2zRk4vP5iMWjpFdlVgjpKngoo1
++nMzEGpViJcyaVtiVn5XeJPPEGevupuk+UZQmidcerCEF6S6SM29Xhw4VOuEce8R
+XnXZdwPBaVps25/Pf0rzZ5NkSQf9fXY0BiT8dMBtD1c6IgvpOlGgVIyKgAEUFyMj
+rUH3fYTkZ6SfFoSXZSmvsXGzHcYLQhcsrSzdEKZ+V3WMPSlKXuYPbvDZqwp32KhJ
+ajxPJuAr47p7Qp/Nrn0pESK8KN+fXeA8blDqu9YKlJSZ+81WreFh5RtRBTRjyAq7
+zP7pEwZAQQTch7jY3IklAzBffPj+WOV1Xo+VU4dSVdbP5vukwKxEMnIaECZHw9N6
+sE2fD5FFOCltPgwVXO6d79nyKYxmS8wxmH7aGwpzJ6DYS2y0TWwkp96PS+3zlBZb
+vW06RxxTolEBDkC75JAo2l+kjd8MjQfDkW2FbtB5TN9o6M/mmRJ5nRlUdlU8/SJL
+05zhsHTPb+Cpk6ajefNAb/8r2p6MLr5QnRHe7CoIXFOWHt1F7qYjBg==
+-----END RSA PRIVATE KEY-----
diff --git a/tests/tester11cert.pem b/tests/tester11cert.pem
new file mode 100644
index 0000000..6f58dd4
--- /dev/null
+++ b/tests/tester11cert.pem
@@ -0,0 +1,30 @@
+-----BEGIN CERTIFICATE-----
+MIIB2zCCAUQCAgM8MA0GCSqGSIb3DQEBBQUAMDgxHTAbBgNVBAoTFFRlc3Rpbmcg
+Y2VydGlmaWNhdGVzMRcwFQYDVQQDEw5URVNUIFJPT1QgQ0VSVDAeFw0wOTA4MDMw
+NDQ1MDlaFw0xMDEyMjgwNDQ1MDlaMDMxGzAZBgNVBAoTElRFU1RFUiBDRVJUSUZJ
+Q0FURTEUMBIGA1UEAwwLMTEjdGVzdGVyMTEwgZ8wDQYJKoZIhvcNAQEBBQADgY0A
+MIGJAoGBAJQ/Jxi48pGxbV0Tt8hUZVfBq2IrTUf+2TZVf0QWKHpVnWFkdEQQVAvZ
+LJI0H9j0IJva/5vaa7X5gmmXP6fubkmQVAwzZVYRiLq87wvwErZBgG1cwEbmfE90
+xrcPSuOPUpm120BbcSg1xEYiSHHCR2mTT4D/d2PQao9/4lC2qk5NAgMBAAEwDQYJ
+KoZIhvcNAQEFBQADgYEAh7dzS6D0Xe7XMSxBJAStcgd5GgyFoUr4lT22KowY1UPM
+SuHCfTv9S8B3MvmnRedflPyMGdzcAM2ak8kH0hOImWESeUHGWLs6222R1XxCX2QB
+jB+RBxU4HlCZaCzOrHtsvykcjgCUEgbDIOH4Qg7RacV8GtoF+p0upjHNrqoaito=
+-----END CERTIFICATE-----
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,57E31D0A675E913A
+
+S4v09hyzG23Ouv8+3dqtt0k3mi7xn4YslHD27gDSuwvty11i38ui+dv7hNe5Y1mt
+1gb3PIFwBqiGYToNamdwI2ITNpvR7dVyC++J1IUAa1D8IlYhNY/EQI3k/P5MZbQl
+WViGGLIn7EWTVwavmdYInOj+jGf8J44Hu1SOdeftQGq95nbdDCxSbemo7bigO5r/
+aCoCLV6iasbi/JiJNuB/Kq96R1KeZVbka1rKuZIXL5+nqPP/UesCW8/+r84Xdx/P
+7GDN7x0XgwQwxu7/AJtLF1ID08kkoyL6PiijIN2zRk4vP5iMWjpFdlVgjpKngoo1
++nMzEGpViJcyaVtiVn5XeJPPEGevupuk+UZQmidcerCEF6S6SM29Xhw4VOuEce8R
+XnXZdwPBaVps25/Pf0rzZ5NkSQf9fXY0BiT8dMBtD1c6IgvpOlGgVIyKgAEUFyMj
+rUH3fYTkZ6SfFoSXZSmvsXGzHcYLQhcsrSzdEKZ+V3WMPSlKXuYPbvDZqwp32KhJ
+ajxPJuAr47p7Qp/Nrn0pESK8KN+fXeA8blDqu9YKlJSZ+81WreFh5RtRBTRjyAq7
+zP7pEwZAQQTch7jY3IklAzBffPj+WOV1Xo+VU4dSVdbP5vukwKxEMnIaECZHw9N6
+sE2fD5FFOCltPgwVXO6d79nyKYxmS8wxmH7aGwpzJ6DYS2y0TWwkp96PS+3zlBZb
+vW06RxxTolEBDkC75JAo2l+kjd8MjQfDkW2FbtB5TN9o6M/mmRJ5nRlUdlU8/SJL
+05zhsHTPb+Cpk6ajefNAb/8r2p6MLr5QnRHe7CoIXFOWHt1F7qYjBg==
+-----END RSA PRIVATE KEY-----
diff --git a/tests/tester12cert.pem b/tests/tester12cert.pem
new file mode 100644
index 0000000..b859436
--- /dev/null
+++ b/tests/tester12cert.pem
@@ -0,0 +1,96 @@
+
+-----BEGIN CERTIFICATE-----
+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
+-----END CERTIFICATE-----
+
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,D674B78762D889A4
+
+PHOLZ8vpaEa7pY9IssAgZ24aM7IFHT/riJj/8PyOewqkvQR4f+euDd3HVW8U5Zsl
+O1ECnb9I8ryo4/Gc6xYE5gJtTaxZKQ3QL1YrREkOhitrPl/IpBV7HivNqp4gEIo2
+2NS8L26XU5yIH2guEK3xVJgoco3m18P8R+zm6nQWKNIZ7e+nKbrs/NFWE6BNkvJR
+1PCf2UUSm+Z+OzqcDMXEiYhvUFpCucllhZ9ldWGScprs21revAiRBG8PLBhtHxaY
+yGKIKO0v4LaUyFeJvfKqbih5Zk74JmFwPK+kEbSFk4fYHJlEJdyltVmV6f89jVdc
+ybvqJeUoji/KPvb3VE8XJxb14JleE6uU1ZhWGPdjHcd5RwiK+0mG9r6fSBz1tBm1
+h6Wau4y+4m8x23hXMopqJr9K0I99dvNYZMpL0NvDclKM9UgxusIiJ/Hw54AM7WvO
+VxLBVMXH6v9HtlifUTi5ad2zGT5udlpa36uDWUxB0zVzBuF1NrA7XIMnwwkdfFUK
+ryzk2bcr9Y6APQ3g3xE0u/+2NyH2fp4rpn1p63z8F+avIcV+qWqJd0SrshY2KtIb
+gOE8vb//cFz2f6MVT+1uZjLXpAsoXCe6XBiBhqccRX91QKe+vDNExE6N2pHmecGk
+Oh/CLliGQN0lm+25UTAaKs0bBI4UC+DVX2fmSRZev4+Cl17lONFWdQTpVO4JAGgT
+atJN8b8mkpOlUARWksGS64dbMQ6jGodzUGMxSlyHpd4xT6lMeqq9zNP7IvHQfi/L
+1APahYsY/nzIXymUmsZ+vbHTUl03crjP0RD+CDQmOBFnTkgdKOUhndaGhIaPhYTB
+VmoQV+zOyuL1RdsD09tLb8vpPVr7g6o+QSkLm1LXSdiXQQAsOJPN6SD/85EghaBo
+TKJ9ITS7HmexQp64y6vvZ8cL9mKK/yd3Cbc2yhnzKMZT9oGTwmXGU9SlZG2M282t
+pA97u67/kou7mm17cVQm8iHY/5FMhfknrVw5EeVbVefitS47qV4ASKvJG4l6y7xf
+5767OB3QGkd1fznpgEb09Euam41hrvpDd9Vg9Xk8ldGLQUN3HZocUMbOboPVparP
+84+As5koFlRc0VS8h/7vndqfHZ27RzHh1xJHH/rzE0Ugxfqaj+mTRASc1mVXUUqd
+p7hcoxT5Y14vIei7eljzMAUTxWzAo84RXyiaMb65wi6+lqyV0m4mqmlUzCXQYJEw
+NIKWZZE20XK84iCfFLcsQDaxFat4i+9CTAgB6bh7tnlUWDeZlxZsiJ5gIHnmXZ9g
+7NMnfiamyi4IjeRE0zYtILN0EDuymjGinNutFTxxgWUAGcOFK+eMb+8oZPqBw3SB
+AFn4lACH557AMsB6qtbnEqTuyNFmZ+bA9FBGuS3mUicZqG8asoCk+/BzFqh3Ieg2
+GEdSw38sjkyXS5DrWtHni68fsNoUD8CKp09o6DbRrWJr0MPtFFdCo6eut+F7zg1K
+5aW7CRzVDj4nlPrKNRPzOPeorrNJCyjDicqaICnRKZ85ZZGVlFLhPqBW4laDSx2+
+zP8RhjYmuT8BHqbDqBr7zkqpt2791MshoZmvANC8bOp2EU0KrR3kCC0GqEj+OaWX
+77XFnv07kV2ococmw0razhhFFi+8656cVqIafEjoCm8KisAdm4zrQRuLoEfaHt61
+mNObySFoQgHFCkuFTtWsZAyFJfw8+NY/tNuhQIucJROcyyZ5nbIFALC1A/ES4706
+jO8MHcGUuQTRg8P8l/H4cvhRiS0ldO2nuMgLj89aedDcSkPt821DNS/siP68DeDZ
+dXLVUKvZRV7QHVArjHCXuc26sUBY45HWMSk/xil24n05jr966hge7TLsyXfXuXTj
+UbADCcr0qHSeiDsI/hbIr1EMKuQeyQphukntEaINiRB4GD9ppiox9XygjrfSojGm
+i3Oj7oq+q4uaauyMlUl5jqyu9vpfHAHSt53wlPr4boALHXcy2STs/RiLFglQPHtH
+6O3y58yL5CfnFTnxSATKiC+yqK6GswfanWKyx5g62m2m+qMiyGCTxTSOEmnScGav
+LMmoJGvnsOuW+RVsMknmDnBv24fa+02NTTBTkZCeRaTQ6RmwUeMfHJ+wobNR3o0a
+GXErMJEaN0Zn9Y72xhQx/l3bK1M7YnOrHMITRRhKJhPHIwTiyCy+tkx+rzuXX2Ib
+bLvmD7PmaFf2/sYxfUaGJrz7vFeGIjfE89aGYXRgBCTL8Dn3TC51xTFInoiTxatJ
+PRZEr5m9vsFGPZnSFbX+wdleB1LQus3xVr8b1cb8SlOSbXY+lxfHycDurcqoyUeK
+GDqahCjBUtlhu08hhKXhkBlYFMFlRw5UIGJM2OzfXuTfKO6IuNHrR8GJGYl938ZO
+4y5HDutBJ2CirW4B8gQdzubdkNfER600jALZoYZRJPpqsqSwEWRAmPO0L1MAfKDR
+WSErXyaTeIWjpRzmNhXO9Hz1DySyAvsZpEE23a62M40dutlOzVViCsxIZGvyHcUd
+YlEzkgl2UMxaPbc5ELOfTWu51E5DsdOpSYb5h9RniQN1ko2+bOrjd0wIPkDK265Z
+IMdVasidyrd32B4vo1i6lQjuLadbiH4oe50la+8OWuiX4TO8IspQ0755PEi7tSUW
+eDB9wAm2PTaxYsvEHLylPaoJ4v5nMsqk2B9kh5T1zC2Pr8xObHGY+qByFA598j7u
+EpGI55qgGOlFwY7xnEZ7okKD5DrQD1cJwbWpmGHCWL2tbQmlrcKgzYgVlHndvDRd
+NpIrcgkVcdpKariT7z4W5KQi1MA3TGOhC58M7H3q2nY/Pcuh96ZZqBCPl+B9Rj8V
+21W5xsBQ+vrppCmXkqqMuTUAEDoe3EyLAq8+goKTg13uQruvlsI56ymA1h6pGmNN
+jn4BCNBgG+xL5p2vPgriNSp93POZfSCVysV+dEprtcwFK7bRuSFI4fQCruaLyB8+
+dfhlMj3kHt45VBXDIFCRsFnBuOuf07SoLKTS2R3gm/mpk5VG7J1p8TBbVIksXUjx
+tylfftDibKARYew6hKvivFUBS6tC8uW8E7WOUCljNhR+Ffy+Coh6C2j+E7VXiqVK
+2NpqH4wrTmjzuq3AZfBVbgAZ03HLG/tiiV9ek30UEWY2CrOgcGRv27n/wUj7mrin
+-----END RSA PRIVATE KEY-----
+
diff --git a/tests/tester12pkey.pem b/tests/tester12pkey.pem
new file mode 100644
index 0000000..76e5a0d
--- /dev/null
+++ b/tests/tester12pkey.pem
@@ -0,0 +1,54 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,D674B78762D889A4
+
+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
+-----END RSA PRIVATE KEY-----
diff --git a/tests/tester13cert.pem b/tests/tester13cert.pem
new file mode 100644
index 0000000..09f907c
--- /dev/null
+++ b/tests/tester13cert.pem
@@ -0,0 +1,98 @@
+
+-----BEGIN CERTIFICATE-----
+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
+sg2684OxJ9YXz8o=
+-----END CERTIFICATE-----
+
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,B5083979655159C0
+
+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
+-----END RSA PRIVATE KEY-----
+
diff --git a/tests/tester13cert_forged.pem b/tests/tester13cert_forged.pem
new file mode 100644
index 0000000..f12fa59
--- /dev/null
+++ b/tests/tester13cert_forged.pem
@@ -0,0 +1,203 @@
+Certificate:
+ Data:
+ Version: 1 (0x0)
+ Serial Number: 831 (0x33f)
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=GE, ST=Georgia, CN=Pica Pica Test CA
+ Validity
+ Not Before: May 25 21:19:01 2012 GMT
+ Not After : Jun 27 21:19:01 2022 GMT
+ Subject: C=GE, ST=Georgia, O=\xD1\x82\xD0\xB5\xD1\x81\xD1\x82\xD0\xBE\xD0\xB2\xD0\xB0\xD1\x8F \xD0\xBB\xD0\xB0\xD0\xB1\xD0\xBE\xD1\x80\xD0\xB0\xD1\x82\xD0\xBE\xD1\x80\xD0\xB8\xD1\x8F, CN=13#\xE1\x83\xA2\xE1\x83\x94\xE1\x83\xA1\xE1\x83\xA2\xE1\x83\x94\xE1\x83\xA0\xE1\x83\x98N13
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ Public-Key: (4096 bit)
+ Modulus:
+ 00:a5:cf:04:3d:4c:c4:55:83:b4:de:d6:ac:8c:50:
+ bd:5b:16:99:ca:ee:f6:ed:9f:ca:0d:f8:4e:94:b5:
+ 56:dc:db:af:cf:af:10:7b:07:b9:b0:80:e0:66:5b:
+ d7:78:9b:cb:84:f7:4e:8c:31:e8:b4:3d:eb:dd:c9:
+ e0:20:22:9a:9c:ae:f3:35:2a:cd:66:6f:c5:bd:9e:
+ 75:a5:a3:a2:94:5b:dc:40:12:7a:bc:0d:7d:c6:89:
+ 55:15:eb:56:d6:5d:e7:54:29:ce:31:b9:30:a4:d9:
+ ee:da:72:c6:96:be:80:b4:1e:7c:7c:6e:6a:7f:7a:
+ 10:66:ed:a8:79:52:f2:3e:43:ca:97:8e:88:03:92:
+ 9e:fa:62:fd:f8:52:39:eb:20:09:71:ea:01:fc:97:
+ 6d:61:5e:8f:9d:44:6d:33:fc:de:01:df:87:42:ab:
+ b1:0a:99:e8:3a:06:67:ce:3d:06:68:90:60:8f:18:
+ 79:ec:52:35:2a:1e:1d:05:75:e9:c0:33:62:15:8e:
+ 3a:3c:e9:ec:d0:0c:4c:63:d9:82:27:46:71:2b:91:
+ 8c:e3:12:ce:75:35:52:44:a4:2b:23:65:8c:19:cf:
+ f1:37:8d:fc:a7:a8:98:0c:4a:77:82:70:ee:fe:06:
+ c5:b0:db:25:fb:b0:79:76:ec:5f:e0:3a:05:80:cb:
+ b0:17:61:18:06:6c:0c:9f:0a:cc:f1:b7:41:74:8f:
+ de:e6:3a:0c:ad:c3:ea:7d:15:b0:f1:57:61:cd:f4:
+ 91:e3:bd:e3:aa:f2:59:96:0d:1f:67:2a:50:c9:12:
+ 9e:11:3e:bf:2c:b8:4b:f7:d5:1a:ba:64:17:49:e8:
+ d7:cc:72:28:c0:1c:47:3e:c0:f7:b6:f6:7f:f1:58:
+ d5:90:db:a4:20:94:9e:8f:4c:9d:95:1f:65:98:ac:
+ c9:e8:d7:81:86:e1:bd:4d:c4:e9:c1:54:e2:92:2d:
+ fd:6b:0e:02:45:b9:a0:48:7c:74:39:ff:09:c4:ca:
+ d3:d6:22:b6:e3:b2:5a:93:82:c1:4c:db:89:41:f3:
+ 08:f1:1c:2a:dd:a7:52:be:08:d2:e0:79:a8:61:bf:
+ 3a:5d:4f:3d:e7:28:df:71:db:d9:97:5e:ac:3f:c1:
+ dd:2f:bd:9b:2c:50:69:f2:cb:1b:2c:63:86:81:2d:
+ 28:fb:15:40:85:39:d2:01:13:0f:26:bb:e5:e7:a4:
+ e9:7c:1e:02:4c:ef:2b:dc:7f:0c:48:b5:f1:ca:55:
+ 8c:59:70:24:01:3a:31:21:53:59:94:d6:e6:5c:c9:
+ 14:41:2b:f2:78:95:6c:eb:ac:eb:0d:05:38:8f:5f:
+ 93:57:0a:fc:04:d4:68:e0:89:72:ac:4d:37:c8:e6:
+ 6d:72:bd
+ Exponent: 65537 (0x10001)
+ Signature Algorithm: sha1WithRSAEncryption
+ 9d:73:26:a1:0a:7c:84:42:d8:27:2f:8d:00:6a:97:21:2b:2c:
+ d5:7a:dc:59:24:cb:ce:4a:c5:c1:94:82:1e:e0:06:1b:76:cf:
+ c9:81:5c:a5:32:0d:cf:c1:25:27:c9:6c:5c:d7:b7:28:ec:1b:
+ 87:e8:1d:6e:60:c9:5f:48:e2:9a:a8:0f:ee:9d:c2:a3:b8:af:
+ a1:cc:10:97:0e:b5:c4:11:62:67:c5:ea:eb:84:01:6d:33:61:
+ 84:ee:51:05:a8:1e:c8:a2:60:c0:e8:23:c1:80:26:00:03:6d:
+ fb:77:60:67:cb:c9:db:f4:e0:ac:83:87:93:25:ce:ea:7a:61:
+ d3:72:4c:b9:fa:62:bc:42:87:57:4c:58:6a:72:3b:79:24:91:
+ d3:31:ae:7a:04:7e:df:e5:8b:75:2a:41:de:45:17:d3:12:1b:
+ 91:fd:85:cc:c2:66:b2:77:b8:fd:c9:51:9c:78:05:85:e6:11:
+ a4:52:f9:8a:52:96:bd:ad:58:51:8d:53:ee:f4:a2:80:95:4f:
+ f7:02:24:9d:8e:7c:c8:d9:dc:87:eb:d5:2f:6b:12:9c:04:31:
+ df:a4:f6:b1:b3:86:49:c3:28:0f:df:d5:64:fa:b9:25:42:e8:
+ 25:a3:27:d8:09:d5:02:ab:31:7c:ad:c1:1e:af:91:51:64:0d:
+ 35:28:df:e2:2d:20:6c:04:5c:5c:de:7e:8d:8a:19:54:c1:c3:
+ 20:b3:80:12:e9:68:53:2d:05:72:f0:c0:a7:31:70:29:03:f1:
+ ef:57:40:8d:94:dd:ee:4d:2a:e0:29:6b:1e:82:e0:8a:9a:06:
+ 62:df:34:06:14:e7:b0:ea:7e:a8:0b:1a:20:64:83:58:dd:22:
+ f4:fe:6d:2a:8b:1a:24:e7:03:41:5f:bf:68:0b:8a:74:4a:38:
+ 49:a3:c3:e7:e9:5c:c7:78:95:23:c0:cd:2e:5e:41:ce:d5:aa:
+ 11:e4:80:84:53:24:00:5a:53:a4:06:22:fb:3d:a1:7c:95:a4:
+ 69:d7:23:23:94:2e:7f:92:c2:8a:d7:5c:46:bc:9c:43:d0:2d:
+ 57:43:9d:5e:34:a3:e3:68:dd:47:5f:ec:a2:97:3d:22:cd:01:
+ 05:2d:ee:04:c6:3d:df:c2:6c:e3:19:de:0d:3a:fb:e1:31:64:
+ 5b:60:7c:ae:5f:53:6a:fd:d9:a1:c0:58:0b:4c:32:97:57:fd:
+ 4b:a2:cc:0d:6f:0c:cf:b3:5c:9b:be:52:2e:08:35:a9:d1:14:
+ 8c:8a:1f:23:02:c2:f2:c4:9b:e7:72:bb:8d:e9:7d:c2:e5:9b:
+ ac:8f:85:3d:86:d2:46:a8:eb:a3:2f:b9:54:1e:57:03:bc:dc:
+ 44:4a:c2:c5:f3:9e:2c:01:75:e4:08:f2:c2:e6:55:2e:38:4e:
+ 49:72:79:ca:52:5c:8f:df:41:ae:d2:63:5a:1b:f5:2c:19:d7:
+ 09:c5:a2:aa:27:2a:b7:eb:cc:eb:92:74:d5:ba:ab:a5:e6:77:
+ 83:31:ee:de:4e:0d:1d:72:1d:22:66:47:d8:f1:b8:9a:b9:b3:
+ b8:ea:94:d6:2e:8b:4e:84:57:9d:71:cc:6c:8b:d1:73:9d:eb:
+ f8:7c:2a:c0:16:59:b1:14:31:b1:24:0b:6d:bf:f1:2e:7c:f8:
+ af:8e:b4:1b:25:5d:b3:52:3d:33:45:54:13:a0:86:ae:5d:c1:
+ 81:f9:e4:48:a3:12:16:b6:e3:22:e1:ec:3f:e3:fb:9a:ca:54:
+ c6:02:ea:7b:58:1e:2b:9b:f6:8a:15:9e:c3:ad:b3:ed:f8:0b:
+ c0:6f:b9:95:ea:ea:4a:25:fe:5e:9d:9e:4c:f5:8d:b2:63:d3:
+ 98:88:1d:22:ce:ea:12:89:fd:31:85:5e:54:a6:3a:56:4a:cf:
+ c1:e2:70:ed:9f:bd:9d:e8:ea:ac:a2:77:bc:fb:63:cf:83:d0:
+ c4:83:6a:8f:a5:b2:a6:78:ae:60:c7:06:55:d6:7d:3d:5a:5d:
+ 88:4b:9f:87:bd:25:b6:1a:4a:18:28:a1:36:c0:ab:5b:87:0b:
+ b3:26:68:6a:12:6e:ba:1b:d5:98:e7:b7:0e:6b:22:35:de:ca:
+ 09:84:69:bd:7f:0b:fa:0b:2e:12:60:48:37:5d:ba:c1:67:04:
+ 93:40:95:fc:fa:40:c8:79:fe:7a:2d:ff:a8:3d:80:96:19:10:
+ 36:eb:6f:30:93:b7:c4:77:29:51:c3:99:8a:e0:50:00:b0:d5:
+ d6:ee:33:b8:a1:b4:eb:d4:35:35:66:bd:2f:2d:64:d7:67:c6:
+ 49:b5:59:77:83:28:08:56:0e:68:e8:e8:35:7d:43:b2:b8:c7:
+ b4:e6:8b:df:14:f0:a2:67:b9:b2:97:29:b5:e3:e5:46:39:ec:
+ 59:35:90:1b:1f:67:c0:fc:68:8e:25:83:67:73:8f:47:24:60:
+ bf:3d:21:06:25:e0:69:8c:7f:7d:5e:b5:4d:ab:cc:37:8f:65:
+ 51:9c:6d:7f:31:eb:12:09:82:da:32:26:98:77:6f:50:fa:5e:
+ 0c:dd:76:73:fa:14:e2:cf:81:e2:5a:a7:b5:67:f7:cd:73:b6:
+ e7:e0:27:10:b6:64:ef:92:7f:df:e4:cd:2b:89:02:27:a4:d5:
+ 29:f5:62:29:56:80:2e:53:a1:e7:b9:6c:a2:02:36:c4:59:62:
+ d2:d2:7e:d5:8c:8d:c8:93:e5:cd:b6:4f:24:30:e3:0e:06:94:
+ 25:50:f5:d0:a4:ae:24:07:4c:f5:b0:e6:54:58:fd:46
+-----BEGIN CERTIFICATE-----
+MIIHJzCCAw8CAgM/MA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAkdFMRAwDgYD
+VQQIEwdHZW9yZ2lhMRowGAYDVQQDExFQaWNhIFBpY2EgVGVzdCBDQTAeFw0xMjA1
+MjUyMTE5MDFaFw0yMjA2MjcyMTE5MDFaMHcxCzAJBgNVBAYTAkdFMRAwDgYDVQQI
+DAdHZW9yZ2lhMTAwLgYDVQQKDCfRgtC10YHRgtC+0LLQsNGPINC70LDQsdC+0YDQ
+sNGC0L7RgNC40Y8xJDAiBgNVBAMMGzEzI+GDouGDlOGDoeGDouGDlOGDoOGDmE4x
+MzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXPBD1MxFWDtN7WrIxQ
+vVsWmcru9u2fyg34TpS1Vtzbr8+vEHsHubCA4GZb13iby4T3Towx6LQ9693J4CAi
+mpyu8zUqzWZvxb2edaWjopRb3EASerwNfcaJVRXrVtZd51QpzjG5MKTZ7tpyxpa+
+gLQefHxuan96EGbtqHlS8j5DypeOiAOSnvpi/fhSOesgCXHqAfyXbWFej51EbTP8
+3gHfh0KrsQqZ6DoGZ849BmiQYI8YeexSNSoeHQV16cAzYhWOOjzp7NAMTGPZgidG
+cSuRjOMSznU1UkSkKyNljBnP8TeN/KeomAxKd4Jw7v4GxbDbJfuweXbsX+A6BYDL
+sBdhGAZsDJ8KzPG3QXSP3uY6DK3D6n0VsPFXYc30keO946ryWZYNH2cqUMkSnhE+
+vyy4S/fVGrpkF0no18xyKMAcRz7A97b2f/FY1ZDbpCCUno9MnZUfZZisyejXgYbh
+vU3E6cFU4pIt/WsOAkW5oEh8dDn/CcTK09YituOyWpOCwUzbiUHzCPEcKt2nUr4I
+0uB5qGG/Ol1PPeco33Hb2ZderD/B3S+9myxQafLLGyxjhoEtKPsVQIU50gETDya7
+5eek6XweAkzvK9x/DEi18cpVjFlwJAE6MSFTWZTW5lzJFEEr8niVbOus6w0FOI9f
+k1cK/ATUaOCJcqxNN8jmbXK9AgMBAAEwDQYJKoZIhvcNAQEFBQADggQBAJ1zJqEK
+fIRC2CcvjQBqlyErLNV63Fkky85KxcGUgh7gBht2z8mBXKUyDc/BJSfJbFzXtyjs
+G4foHW5gyV9I4pqoD+6dwqO4r6HMEJcOtcQRYmfF6uuEAW0zYYTuUQWoHsiiYMDo
+I8GAJgADbft3YGfLydv04KyDh5Mlzup6YdNyTLn6YrxCh1dMWGpyO3kkkdMxrnoE
+ft/li3UqQd5FF9MSG5H9hczCZrJ3uP3JUZx4BYXmEaRS+YpSlr2tWFGNU+70ooCV
+T/cCJJ2OfMjZ3Ifr1S9rEpwEMd+k9rGzhknDKA/f1WT6uSVC6CWjJ9gJ1QKrMXyt
+wR6vkVFkDTUo3+ItIGwEXFzefo2KGVTBwyCzgBLpaFMtBXLwwKcxcCkD8e9XQI2U
+3e5NKuApax6C4IqaBmLfNAYU57DqfqgLGiBkg1jdIvT+bSqLGiTnA0Ffv2gLinRK
+OEmjw+fpXMd4lSPAzS5eQc7VqhHkgIRTJABaU6QGIvs9oXyVpGnXIyOULn+SworX
+XEa8nEPQLVdDnV40o+No3Udf7KKXPSLNAQUt7gTGPd/CbOMZ3g06++ExZFtgfK5f
+U2r92aHAWAtMMpdX/UuizA1vDM+zXJu+Ui4INanRFIyKHyMCwvLEm+dyu43pfcLl
+m6yPhT2G0kao66MvuVQeVwO83ERKwsXzniwBdeQI8sLmVS44TklyecpSXI/fQa7S
+Y1ob9SwZ1wnFoqonKrfrzOuSdNW6q6Xmd4Mx7t5ODR1yHSJmR9jxuJq5s7jqlNYu
+i06EV51xzGyL0XOd6/h8KsAWWbEUMbEkC22/8S58+K+OtBslXbNSPTNFVBOghq5d
+wYH55EijEha24yLh7D/j+5rKVMYC6ntYHiub9ooVnsOts+34C8BvuZXq6kol/l6d
+nkz1jbJj05iIHSLO6hKJ/TGFXlSmOlZKz8HicO2fvZ3o6qyid7z7Y8+D0MSDao+l
+sqZ4rmDHBlXWfT1aXYhLn4e9JbYaShgooTbAq1uHC7MmaGoSbrob1Zjntw5rIjXe
+ygmEab1/C/oLLhJgSDddusFnBJNAlfz6QMh5/not/6g9gJYZEDbrbzCTt8R3KVHD
+mYrgUACw1dbuM7ihtOvUNTVmvS8tZNdnxkm1WXeDKAhWDmjo6DV9Q7K4x7Tmi98U
+8KJnubKXKbXj5UY57Fk1kBsfZ8D8aI4lg2dzj0ckYL89IQYl4GmMf31etU2rzDeP
+ZVGcbX8x6xIJgtoyJph3b1D6XgzddnP6FOLPgeJap7Vn981ztufgJxC2ZO+Sf9/k
+zSuJAiek1Sn1YilWgC5Toee5bKICNsRZYtLSftWMjciT5c22TyQw4w4GlCVQ9dCk
+riQHTPWw5lRY/UY=
+-----END CERTIFICATE-----
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+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
+0XY=
+-----END ENCRYPTED PRIVATE KEY-----
diff --git a/tests/tester13pkey.pem b/tests/tester13pkey.pem
new file mode 100644
index 0000000..6b98e9f
--- /dev/null
+++ b/tests/tester13pkey.pem
@@ -0,0 +1,54 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,B5083979655159C0
+
+rlk8ZnxEbmgHXHFE4kxPzbiYY3qnWzqpiB0jPNHVMRxI7sD9j5fnmPeIY07kqQbB
+8AbZZ9mELKhnwsdYtrEPCnSpjJLT7caqs4fbNZoi/lENGBGDhLCx46m8bXOF6aIj
+oA2338E29UDpdD1vaMbyK0KLTZc5FffJmCvlkz50lc0Sj38Q1J8nVwf3/I/E5WYU
+OPRNZ2SGGugV1umqO1NuQI/iRzZ11Vhq8aAZ2fXos90wPXDXIg1Rr+dTqcVq8cwt
+kc2T7vwrqbcMKHLjWoZaj2hU1yZp5zZ7AAmbb5rY8vLw8Rd5ZjH+0hy4Wee9Ud3F
+SJTwqO/a2Tvln+MQ353GUPT61E3YWFsLQYZql4tVHsgdi8pzNRhsBgXOGy6jj0QL
+0t52tBtBM1jnCPL3WoDA57X0SwsP/PlZXTIAMQqxteAw6XolxUHHeiQcSmzBTZ85
+E7Js3LYE+53diTwf4+IqHkpX7daSbNMjc2gcJfWFuzmVNo82yT8sRjp9/bLtswXQ
+oN02RDjMgM69T7DMMtP0pzvhCmrVZfleCflQAcJll/YI5RLVRhm+Uj6IMfvDbw7E
+HMdBLI/mOsvgn5Lt7zsM/6osMzIz8lgVGjVN3QkOV/0WSNp0RGDT+AK3PSDforEi
+8/9aso1TzYRo/i8QlWyu0xcg05ks94hJkQcMXMi5j/6Y0T9gaCHjX1Hob6o7Kxz0
+EuaED+At48r7q0gsS6RkKPUiEz4PP1NZZ9u/YjJvT3eDg/9ugCnX03PVk9CCv7v1
+/S+5/tiTfYrLxkXvutDaajY8B6pCWLcHf5dGaOpz5DdAGtHgWbWuS6pUSxrq0kTr
+ZD7KO3MC7GpugBNRa2Obb3kZA9tNHCnlB1kosfXZ1edIRWq/BAMtrzJd5NC6Qa8A
+ZQfTspRmOQy0XHhHbU1g+bqxcdQuCYLHNMo6ZzqkGNBZbBiclQ84s8EEU3Ex/P6A
+2oCabukj64AY2/NjekRUVWbLRDWO7jxW+W7x/2lL2WqwlNkYQ/fR0Klr+oBhIhQg
+2ECosMhiZ0Ig6Xotcp1g/1OsBmZHAvnxYBsSJyksHtu8e7dDx083qrOIcVgMf2or
+gnpSO7JkvPaREVr0Acy9TFMvlrBe5aVPS0dYdk6ykIXDDrPrz4pbR+IoiKAo12gg
+zav2qqsF1fC6zHJ8d9xEDwjR8LK8wb4iTYvMf5PmlqePS7+If0J1WdPEzMDJw3Tr
+D9ifFFcAqlQ/yYxO9yTq2JMXbKTIloRfsz7iMGjDAspLvMQ/f8hr/qtIse7ZdPIY
+saQsIRCw+pcDy6bM7uUB1An5450zhJflndQbcVurITKjDxbjBXqOj2tI+S1XkRi5
+48r4hQQcds7bPbisYFFTlWaj9ukMQWJ6SHvXwUAJhYyHxpkraBIOWewTranXZCGZ
+wnvkAUsuv2YiM7boL69R0yeFcKKMh2EjkZmf98L/GmLc21G3MBSHyFwvHWGsQMud
+rKOtqNgDNJE61Zevmx4KKsfb1A02nra/y28YcgBvu57Fa1U28qTGUzdIxVOi5Edl
+UQ+2YnX1ALSpYVf0+M+ZRfhawWYH1cJe8iurz3jMezTtuyooWFZVsWfi/eWQLy7t
+4fbBUa/Es2iV8dyhojjqLiQsRe8+NjZv4ozmiRqv1EPs/1wi9ZVui8XVZcLglvBW
+DRObUjkEd+7FlSZK2F/+7NqKOGravj8OXANU8hKIPkpUbTmaDPQROE6vWOvyy97T
+goyKhanSk2z+VJWwNH6tYLeO2UUv5O/QWHzr98cak9T0JLqZr0u3jGS0C3/LiPZ/
+MJYNWLRXh9XEe9i5GpDcNmSYaVRSFVxp5it1Z1PZzEIw2rLI2aLnq4Ox6QSS1dnt
+SRQhExHWhZhKC9bKlq5fPVdHv4pf+mOQKBJrv2n8YbL0mHSdVNL4PTJKFJdHwVu6
++Kd3N+EOIf4vYQiLm+mF5cWRKkJmZ1C3WOr4guxjPaWP4VrLIZqfofuIdPVYoLqY
+IzmKLFp1raZ8i6dKfeejMFMeEu+0XD2kPkCtQcfdHhDrm+MrRV7/BaMmZfJAgzf0
+TC+braCApWMsrFLUnMvxwsSngxkHCum1skXj2wHmypqfBfRD1PZDGBBwXFS3qRUa
+h1LnOa9aNek3rUdhExpfMD+EpYVGeCQLKJRqrczxor0S0z/hnT5Z1/01wq8GPiU4
+kYp22Vx83VwvysPy+KD60PiG7RJkEfB7jEy7uOEF2Jfq0KcmQfjKBvT2I62Vawfr
+6hQn8iYwFKxWvYTtr6BOyW1Td7uaWkSKuT7PzWc6aVXLG0LaXfzw7LnijamgcRYE
+DRtvilgik11xFgjCps1Wfg/kJiJjjy6aBlMFeaEpugL4DQPOIFoDXWzdEA/rTW2O
+vzEcYw/CMnEKer/MzMnmeDI37DulYV3EgBQng4xxp5LUPY6YslxESbQ1NQY//dQQ
+xUgvwilG9sIVqKjKHbYhEG8540F4//4aSjE3c0XM77ZEMJIKSDkcmVuAQguXsblN
+IrX1B1umXYOp8C4n7NoTRsnYx0BLn5zxobKJLQFjLIG/Kzv3uuL2Oazrgmz20mea
+C4yzPH7z/ItapjQSQ7vxaChGI+K0IPvqzQ0opm6jVNMbB/ZIPyXarakNTqmNtjbH
+H2BbRw7zKgDr3pU6MKVIBtjoWgBiDGOwg4LKTZhk5YLuX1lYsbSIBSCjAphuB2HX
+Kx2T9gGtXR7hnHR6s+SfH6X0WYeXW0cMNlb7lJd1s/HA5dqtbBYUiocp5yDCzxIz
+DwjgImob7A3Z8O3Dk24eVHxxarwwYe2JothW04jEpPLwSzeeWo07+oS4FSXzCDMO
+txCcg3L43jeubY4niREnv5ZSKNCV1i1ayiEpnIWs4BJ9zqwKp8oB4NVZ3iyXqE7G
+6obmhsce0YlSbTWSwuqn141ha4bhlTV1L5RZbHsfIi9dbusrVDl06bK6d2Ioudeu
+q1ChJA5qVrC8KjVdrCnKs0AaSpGTn65vYXh4tDT8sSZZQsMB4wjXU8C+Qn3ceqR0
+Kq4b8FfcKmcMgxcXS4bCsxdFWIwDzpVCUTokDIfpTE4Lv2HTzdYbwdjWQ2oLspnR
+kNT7DnPDjfljPGqIYeM+x0N1POWSJww4KrI1nkUS1Dy7Y3J8h2Qh8katC7ztSKDH
+-----END RSA PRIVATE KEY-----
diff --git a/tests/tester13pkey_forged.pem b/tests/tester13pkey_forged.pem
new file mode 100644
index 0000000..65c13dd
--- /dev/null
+++ b/tests/tester13pkey_forged.pem
@@ -0,0 +1,54 @@
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+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
+0XY=
+-----END ENCRYPTED PRIVATE KEY-----
diff --git a/tests/tester13req_forged.pem b/tests/tester13req_forged.pem
new file mode 100644
index 0000000..bd5aca5
--- /dev/null
+++ b/tests/tester13req_forged.pem
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIEvDCCAqQCAQAwdzELMAkGA1UEBhMCR0UxEDAOBgNVBAgMB0dlb3JnaWExMDAu
+BgNVBAoMJ9GC0LXRgdGC0L7QstCw0Y8g0LvQsNCx0L7RgNCw0YLQvtGA0LjRjzEk
+MCIGA1UEAwwbMTMj4YOi4YOU4YOh4YOi4YOU4YOg4YOYTjEzMIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEApc8EPUzEVYO03tasjFC9WxaZyu727Z/KDfhO
+lLVW3Nuvz68Qewe5sIDgZlvXeJvLhPdOjDHotD3r3cngICKanK7zNSrNZm/FvZ51
+paOilFvcQBJ6vA19xolVFetW1l3nVCnOMbkwpNnu2nLGlr6AtB58fG5qf3oQZu2o
+eVLyPkPKl46IA5Ke+mL9+FI56yAJceoB/JdtYV6PnURtM/zeAd+HQquxCpnoOgZn
+zj0GaJBgjxh57FI1Kh4dBXXpwDNiFY46POns0AxMY9mCJ0ZxK5GM4xLOdTVSRKQr
+I2WMGc/xN438p6iYDEp3gnDu/gbFsNsl+7B5duxf4DoFgMuwF2EYBmwMnwrM8bdB
+dI/e5joMrcPqfRWw8VdhzfSR473jqvJZlg0fZypQyRKeET6/LLhL99UaumQXSejX
+zHIowBxHPsD3tvZ/8VjVkNukIJSej0ydlR9lmKzJ6NeBhuG9TcTpwVTiki39aw4C
+RbmgSHx0Of8JxMrT1iK247Jak4LBTNuJQfMI8Rwq3adSvgjS4HmoYb86XU895yjf
+cdvZl16sP8HdL72bLFBp8ssbLGOGgS0o+xVAhTnSARMPJrvl56TpfB4CTO8r3H8M
+SLXxylWMWXAkAToxIVNZlNbmXMkUQSvyeJVs66zrDQU4j1+TVwr8BNRo4IlyrE03
+yOZtcr0CAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4ICAQAranMcWfYvfQUPXdkYvbrB
+/KtxGADovgdgIoARFDusMowc0rmi6uhekpH867oISYaBTLIdMm8eELSO13ba37wI
+xngrdwQ14vOBiddd4FpMAqqwO+yHAQ9qE0UzwhmNacug0XsQ/1aI5ooel7I9wNe6
+Kg4gFqZLouIRtPXQkC6bVU7wHu1tEz6crCOvBVoVBInvfIZ9rV5yAaWiSNllwnBs
+U9y1H9VMTaMbDdy2Gs8SyCBmPgJIQclpvFFbkebl2+GoDKlU2yA1Z30WW1tTRq4g
+Ln/0sRhuXMQG0NfB968vn1jerxf27L/+ER0LL5eo5XYI98ZYVILWXbJFOUS1lCo4
+PT7wtjl53WAl21weEaQvlF0NWiLczvFmOdt+dyQTUUs9M4DgGNqztYWspW9Vo5nq
+0Fed9HUzbkhRWN0ep8svi+Nh0jZMiFNMPRSDaqm34QIQ0G1UE+MMhS5EBLVg/f5A
+VolVsZjUTquiKToMbWf5Ze1KHMg7nWLN5Q2SJf2lEYv7alHuh0Zak9c2MfkjwU2f
+/X8JCyTwWmPu1zl4U1IDZGTV++PRgM3By0+Y7J1EMkT9SdAjcV4sD6RbWZ4OtOhS
+ceQuxuIql/j3ohxD52C21mV/Avno02o6D9gMJEiktMTKzY+2oh/chLXJN9WyptZe
+Y9+Qv61rSeIvIEj/ziyDVQ==
+-----END CERTIFICATE REQUEST-----
diff --git a/tests/tester5_privkey.pem b/tests/tester5_privkey.pem
new file mode 100755
index 0000000..41f5052
--- /dev/null
+++ b/tests/tester5_privkey.pem
@@ -0,0 +1,18 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,067FF34585314EFA
+
+Aj5z7qY0YHfcr0jjm35asHoYAK9MWaAP9bCZg21Ftm+n7h1O9rHAVGBgZnaoKYPO
+LygpIRamsayrp1bvX5LAJozCvhOGFFghfM+dxaKmREeAVArQea/8RiYLQdnC86+2
+qoHbfuJ7cuHLHfPdavORd+I7017m0xAhSe47mZ+h2U+gjKrDUrvJLq8AES3DCjxq
+0YgW5ruDuEyNavS1KRE8fNmqmz33slDlhASxtN+VllRr1n1x7Lnb0S99SOpIRgL3
+M4sYnCfSFXRZt2o36EzM2ba299f7MuxM3lIvhirZObB/VGB7EuAK4lqH07b2jDTc
+UHVDuFsplJZNo5h+CP2Uzg/C4MHzQSu1ArYS+pg0qwUE1ElkMb8ZlUBuJh466qlg
+YqmtruCZZ/Vhg0EFBTg7ZxdiaXDa98YSWucV8eZBgnOmaCNc6ii384QNKnM5sUMH
+cRaNksDFjgyrNwI6dz4zK7pPBjJrxB2AePCTpYJAHIR48Bl3bh8BxI6h6nfuBvhb
+Q2/Iz1Rap+mgW5sNJ7XzFlogbaO1tpqo8iSmn2T3G7djuIAtu6iGuyiA19+nyLdN
+pBQKzDVY8ypHWxlc1x5kLc51uhfEfGWUf7UgXOpVHnIIXvm4GVv62q2h9vrELvxQ
+ZCJJH2dBjYn7yR5Bw40/ooxNJw/963DNL8SZoa2UNFBNBXcLnQAElz91BtgvEOjX
+6vMcsVusizL8QL06BI5UbWCFhz6Y0hqEnQjoWJMscca+jKl89EozT7PtdLP9TJuN
+iWCHjKz6xt12bwXbLXGisZvmq4YAqw5eawVCdHn2+IFwmM5fI0KOIg==
+-----END RSA PRIVATE KEY-----
diff --git a/tests/tester5cert.pem b/tests/tester5cert.pem
new file mode 100755
index 0000000..461e9e8
--- /dev/null
+++ b/tests/tester5cert.pem
@@ -0,0 +1,63 @@
+Certificate:
+ Data:
+ Version: 1 (0x0)
+ Serial Number: 823 (0x337)
+ Signature Algorithm: md5WithRSAEncryption
+ Issuer: O=TESTNET, CN=TESTNET CA
+ Validity
+ Not Before: Nov 25 17:53:27 2008 GMT
+ Not After : Nov 25 17:53:27 2009 GMT
+ Subject: C=GE, O=TESTNET, CN=5#tester5
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public Key: (1024 bit)
+ Modulus (1024 bit):
+ 00:d8:de:11:ad:7e:09:f7:8a:96:04:7b:4f:87:4b:
+ 3c:44:d7:00:a6:7e:94:1f:33:93:ee:81:f5:20:b0:
+ b3:c3:8d:f6:01:76:44:e7:b0:e9:b5:14:77:d0:4f:
+ df:93:0a:b4:89:e8:bc:a4:e7:b5:61:50:54:d2:ea:
+ af:68:62:6a:6f:84:ab:d8:17:3d:de:6b:8d:13:9c:
+ aa:8d:f2:12:40:49:a5:d9:0b:6f:c7:ce:0b:9c:4f:
+ 89:b3:cb:5d:3f:6a:7c:3a:7d:04:ef:1d:45:df:e1:
+ e2:fa:75:0e:cd:5e:c2:e1:d7:56:db:9f:0d:db:7f:
+ 8f:fe:ad:79:e4:bc:78:69:e7
+ Exponent: 65537 (0x10001)
+ Signature Algorithm: md5WithRSAEncryption
+ 86:37:80:6d:fe:8a:15:38:ed:6b:3e:1d:41:7f:f0:6a:6d:03:
+ f2:45:72:62:52:b1:52:4c:8f:e8:53:24:cf:34:98:13:27:33:
+ 3f:89:cd:c4:f4:d5:cc:ab:59:ad:b0:56:39:a1:92:82:25:8b:
+ 49:bf:36:89:32:86:e7:ad:10:7a:85:d9:c8:ac:50:b9:ae:e8:
+ 60:e6:d2:5e:be:c4:83:0e:e1:34:9c:cb:84:61:3a:59:80:f9:
+ 92:c2:5b:5f:aa:82:97:e1:c0:20:a2:01:15:e9:54:87:98:a5:
+ 05:b9:a7:b5:f8:0b:2c:ff:e7:01:f5:c1:07:ef:ff:e1:23:6f:
+ b2:da
+-----BEGIN CERTIFICATE-----
+MIIByjCCATMCAgM3MA0GCSqGSIb3DQEBBAUAMCcxEDAOBgNVBAoTB1RFU1RORVQx
+EzARBgNVBAMTClRFU1RORVQgQ0EwHhcNMDgxMTI1MTc1MzI3WhcNMDkxMTI1MTc1
+MzI3WjAzMQswCQYDVQQGEwJHRTEQMA4GA1UEChMHVEVTVE5FVDESMBAGA1UEAwwJ
+NSN0ZXN0ZXI1MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDY3hGtfgn3ipYE
+e0+HSzxE1wCmfpQfM5PugfUgsLPDjfYBdkTnsOm1FHfQT9+TCrSJ6Lyk57VhUFTS
+6q9oYmpvhKvYFz3ea40TnKqN8hJASaXZC2/HzgucT4mzy10/anw6fQTvHUXf4eL6
+dQ7NXsLh11bbnw3bf4/+rXnkvHhp5wIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAIY3
+gG3+ihU47Ws+HUF/8GptA/JFcmJSsVJMj+hTJM80mBMnMz+JzcT01cyrWa2wVjmh
+koIli0m/NokyhuetEHqF2cisULmu6GDm0l6+xIMO4TScy4RhOlmA+ZLCW1+qgpfh
+wCCiARXpVIeYpQW5p7X4Cyz/5wH1wQfv/+Ejb7La
+-----END CERTIFICATE-----
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,067FF34585314EFA
+
+Aj5z7qY0YHfcr0jjm35asHoYAK9MWaAP9bCZg21Ftm+n7h1O9rHAVGBgZnaoKYPO
+LygpIRamsayrp1bvX5LAJozCvhOGFFghfM+dxaKmREeAVArQea/8RiYLQdnC86+2
+qoHbfuJ7cuHLHfPdavORd+I7017m0xAhSe47mZ+h2U+gjKrDUrvJLq8AES3DCjxq
+0YgW5ruDuEyNavS1KRE8fNmqmz33slDlhASxtN+VllRr1n1x7Lnb0S99SOpIRgL3
+M4sYnCfSFXRZt2o36EzM2ba299f7MuxM3lIvhirZObB/VGB7EuAK4lqH07b2jDTc
+UHVDuFsplJZNo5h+CP2Uzg/C4MHzQSu1ArYS+pg0qwUE1ElkMb8ZlUBuJh466qlg
+YqmtruCZZ/Vhg0EFBTg7ZxdiaXDa98YSWucV8eZBgnOmaCNc6ii384QNKnM5sUMH
+cRaNksDFjgyrNwI6dz4zK7pPBjJrxB2AePCTpYJAHIR48Bl3bh8BxI6h6nfuBvhb
+Q2/Iz1Rap+mgW5sNJ7XzFlogbaO1tpqo8iSmn2T3G7djuIAtu6iGuyiA19+nyLdN
+pBQKzDVY8ypHWxlc1x5kLc51uhfEfGWUf7UgXOpVHnIIXvm4GVv62q2h9vrELvxQ
+ZCJJH2dBjYn7yR5Bw40/ooxNJw/963DNL8SZoa2UNFBNBXcLnQAElz91BtgvEOjX
+6vMcsVusizL8QL06BI5UbWCFhz6Y0hqEnQjoWJMscca+jKl89EozT7PtdLP9TJuN
+iWCHjKz6xt12bwXbLXGisZvmq4YAqw5eawVCdHn2+IFwmM5fI0KOIg==
+-----END RSA PRIVATE KEY-----
diff --git a/tests/tester6_privkey.pem b/tests/tester6_privkey.pem
new file mode 100755
index 0000000..a11dc8c
--- /dev/null
+++ b/tests/tester6_privkey.pem
@@ -0,0 +1,18 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,DEC8C14F74DCBA84
+
+K5rfKk5EwWPz+3tUYvrLiSICvO2B/liKB9Ew5QrNrNHO7ZPNls64ksEXruApa0/l
+yqVI0p6YDo+E564p4ZeI0RkrgFESUfSXJEFJbk2a/6AnlwpXbEuINSl3dCJMOpvm
+4lwhqb2UFwxLqfSjcQfPN5FaBhayQ86m95nwZ07omQVxCJaZPxG+WQawXIdh4bzU
+VnDjOK6AIuYQ7GgX/8Vh1r20Ix/UwACKyzFj+P+47Pr4FHQ3yRR0DmWCl4N0OQUh
+WJGlTQbrTr/3gY6gNQk3hHQEobq5XDBwfEWCiuZKJZo9AKb2Px892LeFft7zpF3r
+f30u+yOKhyg5Cyt30H+u4/7LcNwYf0zwtxuNgzZT+iD1DH1ZA8KkpGTH0V0ZLWhP
+XlAR7zAyPQ5XllR9cMo+4JEvaAeyDEkpCa36Brh4LmoZPjEwqPwUdbiSGhtMewkO
+EDoF4AZPPzBEf1oicgIxxDQnJLxeekN7TQ51JqOb6rW6mQsFFkwsfwcd1h2mJYmX
+ZYBgvg9e85TdyD17dr54B5f2yQGBLtnWwmN0YuH0e94Xbrak3PY18ZhM9JXSqF6g
+fBP6lCjSRN9dJSGvcPpRFbd8LJB9NsmeNYxumNw2P9Wso2W9XhEELRDHtslDN+fR
+3pdlVklZKIthxSeNlPYP8OFSHPQ0I4jw8Q32PgfX9ThPmlrGa/tXjWyp1aDaNmya
+Wwm+BKw/TTfTSu/XytZi2m1H6g/xc7oUtPw9XqNmw8v2xJVa2X4mFlHp6Uwv9v/J
+p1yPTwv/qfhVajzi1pJEFqP2r0nJ6jxTHcLqdLLXsJnKsDoDmz3KJA==
+-----END RSA PRIVATE KEY-----
diff --git a/tests/tester6cert.pem b/tests/tester6cert.pem
new file mode 100755
index 0000000..d268587
--- /dev/null
+++ b/tests/tester6cert.pem
@@ -0,0 +1,63 @@
+Certificate:
+ Data:
+ Version: 1 (0x0)
+ Serial Number: 824 (0x338)
+ Signature Algorithm: md5WithRSAEncryption
+ Issuer: O=TESTNET, CN=TESTNET CA
+ Validity
+ Not Before: Nov 25 18:08:24 2008 GMT
+ Not After : Nov 25 18:08:24 2009 GMT
+ Subject: O=TESTNET, CN=6#tester6
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public Key: (1024 bit)
+ Modulus (1024 bit):
+ 00:9e:22:94:99:93:d7:7e:d9:08:b3:e4:eb:54:c7:
+ 66:17:ee:e7:a1:d5:4c:e9:3f:36:1e:72:d7:87:56:
+ 1d:10:79:b9:46:20:11:ce:4d:d5:8d:15:5b:e5:58:
+ 0b:11:67:96:ba:56:44:e6:2f:b3:6f:02:f2:a0:22:
+ f6:fb:ae:22:04:9e:1f:0f:0b:a0:84:8d:94:4d:b3:
+ 12:00:78:bf:1a:a2:18:85:fc:45:61:37:66:df:90:
+ a9:01:33:a4:d8:a5:43:b8:82:f8:3d:2f:d7:f2:fd:
+ b0:0d:3b:fa:a0:2d:be:24:fc:fa:81:eb:26:59:3f:
+ fa:b6:57:64:1a:33:1b:3d:65
+ Exponent: 65537 (0x10001)
+ Signature Algorithm: md5WithRSAEncryption
+ 6e:35:5f:f5:b8:fb:54:ba:b7:44:d1:7f:e4:72:32:9d:06:8f:
+ 8f:46:e3:e1:5a:f1:e7:e2:4f:b3:55:fb:4a:37:fa:6d:c2:cf:
+ 43:7c:67:12:bf:c2:3a:73:d2:60:40:cc:f2:38:a9:19:4b:bf:
+ 3c:58:3b:98:59:d1:05:1a:1d:ce:11:9e:51:b2:f9:99:eb:65:
+ 38:f1:b1:95:d5:ad:fa:a1:0b:5c:70:98:19:6b:19:5f:53:62:
+ 58:ad:2d:0f:ed:dd:04:94:ce:81:c6:25:53:4a:7f:28:e4:9d:
+ f1:6a:ce:c4:fa:2d:42:5c:8a:12:c3:b5:a8:c0:ca:bf:3b:00:
+ 3c:27
+-----BEGIN CERTIFICATE-----
+MIIBvTCCASYCAgM4MA0GCSqGSIb3DQEBBAUAMCcxEDAOBgNVBAoTB1RFU1RORVQx
+EzARBgNVBAMTClRFU1RORVQgQ0EwHhcNMDgxMTI1MTgwODI0WhcNMDkxMTI1MTgw
+ODI0WjAmMRAwDgYDVQQKEwdURVNUTkVUMRIwEAYDVQQDDAk2I3Rlc3RlcjYwgZ8w
+DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJ4ilJmT137ZCLPk61THZhfu56HVTOk/
+Nh5y14dWHRB5uUYgEc5N1Y0VW+VYCxFnlrpWROYvs28C8qAi9vuuIgSeHw8LoISN
+lE2zEgB4vxqiGIX8RWE3Zt+QqQEzpNilQ7iC+D0v1/L9sA07+qAtviT8+oHrJlk/
++rZXZBozGz1lAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAbjVf9bj7VLq3RNF/5HIy
+nQaPj0bj4Vrx5+JPs1X7Sjf6bcLPQ3xnEr/COnPSYEDM8jipGUu/PFg7mFnRBRod
+zhGeUbL5metlOPGxldWt+qELXHCYGWsZX1NiWK0tD+3dBJTOgcYlU0p/KOSd8WrO
+xPotQlyKEsO1qMDKvzsAPCc=
+-----END CERTIFICATE-----
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,DEC8C14F74DCBA84
+
+K5rfKk5EwWPz+3tUYvrLiSICvO2B/liKB9Ew5QrNrNHO7ZPNls64ksEXruApa0/l
+yqVI0p6YDo+E564p4ZeI0RkrgFESUfSXJEFJbk2a/6AnlwpXbEuINSl3dCJMOpvm
+4lwhqb2UFwxLqfSjcQfPN5FaBhayQ86m95nwZ07omQVxCJaZPxG+WQawXIdh4bzU
+VnDjOK6AIuYQ7GgX/8Vh1r20Ix/UwACKyzFj+P+47Pr4FHQ3yRR0DmWCl4N0OQUh
+WJGlTQbrTr/3gY6gNQk3hHQEobq5XDBwfEWCiuZKJZo9AKb2Px892LeFft7zpF3r
+f30u+yOKhyg5Cyt30H+u4/7LcNwYf0zwtxuNgzZT+iD1DH1ZA8KkpGTH0V0ZLWhP
+XlAR7zAyPQ5XllR9cMo+4JEvaAeyDEkpCa36Brh4LmoZPjEwqPwUdbiSGhtMewkO
+EDoF4AZPPzBEf1oicgIxxDQnJLxeekN7TQ51JqOb6rW6mQsFFkwsfwcd1h2mJYmX
+ZYBgvg9e85TdyD17dr54B5f2yQGBLtnWwmN0YuH0e94Xbrak3PY18ZhM9JXSqF6g
+fBP6lCjSRN9dJSGvcPpRFbd8LJB9NsmeNYxumNw2P9Wso2W9XhEELRDHtslDN+fR
+3pdlVklZKIthxSeNlPYP8OFSHPQ0I4jw8Q32PgfX9ThPmlrGa/tXjWyp1aDaNmya
+Wwm+BKw/TTfTSu/XytZi2m1H6g/xc7oUtPw9XqNmw8v2xJVa2X4mFlHp6Uwv9v/J
+p1yPTwv/qfhVajzi1pJEFqP2r0nJ6jxTHcLqdLLXsJnKsDoDmz3KJA==
+-----END RSA PRIVATE KEY-----
diff --git a/tests/tester6req.pem b/tests/tester6req.pem
new file mode 100755
index 0000000..f81e157
--- /dev/null
+++ b/tests/tester6req.pem
@@ -0,0 +1,10 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBZTCBzwIBADAmMRAwDgYDVQQKEwdURVNUTkVUMRIwEAYDVQQDDAk2I3Rlc3Rl
+cjYwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJ4ilJmT137ZCLPk61THZhfu
+56HVTOk/Nh5y14dWHRB5uUYgEc5N1Y0VW+VYCxFnlrpWROYvs28C8qAi9vuuIgSe
+Hw8LoISNlE2zEgB4vxqiGIX8RWE3Zt+QqQEzpNilQ7iC+D0v1/L9sA07+qAtviT8
++oHrJlk/+rZXZBozGz1lAgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQCSbYxYVg12
+A4zz+lUw3ruj6i8PaXSC+euQ5TsfsHpBnBlUoZEPEnyyhn2q38bdLg03O+VcFFcY
+AwFBF5kb55Q1F2BgipdiQVJ/lYHNM73Oj7XrBOTezHf0RvhKEocFoevEB/eXD12u
+7jAxgKD/q7tjOwiETmQ8phnSUzrqc05LJg==
+-----END CERTIFICATE REQUEST-----
diff --git a/tests/tester8_privkey.pem b/tests/tester8_privkey.pem
new file mode 100755
index 0000000..01bba5a
--- /dev/null
+++ b/tests/tester8_privkey.pem
@@ -0,0 +1,18 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,6D6F87F691984AE7
+
+dejRxz88M3Njbhy8XMIjpQdVFxnfgj8l5B+pMPjsu9rYq+yt3J0Ax2L55ngcZDgN
+XbFM/iGhuxwFhZ5+J0dZek8pfNcbHCcbSPkpofxitw6FfVH/Nx/fTDh7scfHvezG
+/870bZnxYKPfOO2HD53g4k1v3RHcNmoajAzxOiaZhYwY0ODAu8ZqSyziCc1ItSWZ
+VFbNFn1y/duhSeCIVqrYFuJkTJLxLEz+VbZyM6aIJiwUUHZe4K1IPCdE3on0FXUY
+0NU9OCI1T2dzEBznGyVF1fHN37NAT1esrZTQhRDOIJZ80hTgZPcPC/S/1Ay7xLzo
+zm0DaeUPggBCiPn6IuJ625UfryWlk0Da6eejNtjo62xLvn5QbGzenMYYruPMhXiK
+QoNSJ0Ug5gz3AfF5cX44Nl0TPj/pZQKoPXskub3B/Vjmzt9Ainhw0HS9agdILftX
+Rhvd7d3tgEFV/m0TGtfFsYaeoyIUtSz/cl6HmdturGEveH4RFl0NHKgdq+wN3zx3
++3yrK0NsFcTGB2E6unzdKd2+0/2kwqOgXpL88x4+hV6zIIMIl/wiaX8cO5rgKuXz
+ZURmRvbO1u3mNGgXy6ZsJ6rFM7hUZJwvzRQPtveSyADIXYgHlkbBFJXpZD0e6LN+
+rHq6RraPEs77dFxWvM4cQP2Fj828sxQZ8mM/zoQQH13D9Hs3Pr0v/O+HQB792STP
+zCCLcnTut03BXRkmEP3NH8Ux6H6hyWYRhrGKxozj3l5qTeii8Tc3w2TbJhLdlZpc
+flJ7gT60yrOs+2t1G4/K75ufhguAkeXgOG7l77Hva1zEvAK2Ar6kpQ==
+-----END RSA PRIVATE KEY-----
diff --git a/tests/tester8cert.pem b/tests/tester8cert.pem
new file mode 100755
index 0000000..1fd3ed8
--- /dev/null
+++ b/tests/tester8cert.pem
@@ -0,0 +1,63 @@
+Certificate:
+ Data:
+ Version: 1 (0x0)
+ Serial Number: 825 (0x339)
+ Signature Algorithm: md5WithRSAEncryption
+ Issuer: O=TESTNET, CN=TESTNET CA
+ Validity
+ Not Before: Dec 23 22:48:58 2008 GMT
+ Not After : Dec 23 22:48:58 2009 GMT
+ Subject: O=TESTNET, CN=8#tester8
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public Key: (1024 bit)
+ Modulus (1024 bit):
+ 00:d8:30:82:43:97:15:a9:ce:c2:ed:dd:55:8e:26:
+ 5e:83:57:31:a8:e8:a7:63:0d:5e:6d:e1:bc:03:f6:
+ e1:c6:2b:c4:7e:d0:04:ee:a7:9f:9d:6d:a1:68:1c:
+ 31:c1:7f:70:0e:e3:51:48:46:d5:01:33:bc:f9:b1:
+ bc:1e:bb:ac:85:de:10:65:1d:55:da:51:b9:d4:c0:
+ 4d:07:1f:65:fe:8e:ab:7b:ef:d6:16:67:ab:62:6e:
+ 42:f9:98:a6:f2:02:a2:c9:4e:d5:db:fc:3a:cb:df:
+ 2b:75:7e:ae:55:8d:7d:6e:a1:4b:95:c4:76:c5:a6:
+ 87:6a:12:25:1a:dd:e1:be:a3
+ Exponent: 65537 (0x10001)
+ Signature Algorithm: md5WithRSAEncryption
+ 6d:5c:44:a1:e9:98:f8:ed:e7:b9:d9:3f:77:64:de:03:76:4e:
+ 34:82:22:73:cb:f0:77:1b:b5:52:ff:72:64:1d:b7:cf:ad:b1:
+ 68:eb:51:50:ca:af:1b:4c:db:d6:3e:cf:b6:45:01:1c:8c:14:
+ f0:68:31:5e:38:8c:5a:49:69:0a:bd:9d:5d:8d:7a:a0:8e:03:
+ 73:86:79:ab:49:f6:4b:ff:96:12:a4:ee:cf:69:b5:33:21:03:
+ 2c:d2:58:31:33:9b:be:c1:a2:17:f9:06:16:f5:c0:07:e3:a5:
+ e5:e5:41:46:40:47:14:58:f9:33:91:08:2f:ae:63:96:47:0f:
+ 0a:82
+-----BEGIN CERTIFICATE-----
+MIIBvTCCASYCAgM5MA0GCSqGSIb3DQEBBAUAMCcxEDAOBgNVBAoTB1RFU1RORVQx
+EzARBgNVBAMTClRFU1RORVQgQ0EwHhcNMDgxMjIzMjI0ODU4WhcNMDkxMjIzMjI0
+ODU4WjAmMRAwDgYDVQQKEwdURVNUTkVUMRIwEAYDVQQDDAk4I3Rlc3RlcjgwgZ8w
+DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANgwgkOXFanOwu3dVY4mXoNXMajop2MN
+Xm3hvAP24cYrxH7QBO6nn51toWgcMcF/cA7jUUhG1QEzvPmxvB67rIXeEGUdVdpR
+udTATQcfZf6Oq3vv1hZnq2JuQvmYpvICoslO1dv8OsvfK3V+rlWNfW6hS5XEdsWm
+h2oSJRrd4b6jAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAbVxEoemY+O3nudk/d2Te
+A3ZONIIic8vwdxu1Uv9yZB23z62xaOtRUMqvG0zb1j7PtkUBHIwU8GgxXjiMWklp
+Cr2dXY16oI4Dc4Z5q0n2S/+WEqTuz2m1MyEDLNJYMTObvsGiF/kGFvXAB+Ol5eVB
+RkBHFFj5M5EIL65jlkcPCoI=
+-----END CERTIFICATE-----
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,6D6F87F691984AE7
+
+dejRxz88M3Njbhy8XMIjpQdVFxnfgj8l5B+pMPjsu9rYq+yt3J0Ax2L55ngcZDgN
+XbFM/iGhuxwFhZ5+J0dZek8pfNcbHCcbSPkpofxitw6FfVH/Nx/fTDh7scfHvezG
+/870bZnxYKPfOO2HD53g4k1v3RHcNmoajAzxOiaZhYwY0ODAu8ZqSyziCc1ItSWZ
+VFbNFn1y/duhSeCIVqrYFuJkTJLxLEz+VbZyM6aIJiwUUHZe4K1IPCdE3on0FXUY
+0NU9OCI1T2dzEBznGyVF1fHN37NAT1esrZTQhRDOIJZ80hTgZPcPC/S/1Ay7xLzo
+zm0DaeUPggBCiPn6IuJ625UfryWlk0Da6eejNtjo62xLvn5QbGzenMYYruPMhXiK
+QoNSJ0Ug5gz3AfF5cX44Nl0TPj/pZQKoPXskub3B/Vjmzt9Ainhw0HS9agdILftX
+Rhvd7d3tgEFV/m0TGtfFsYaeoyIUtSz/cl6HmdturGEveH4RFl0NHKgdq+wN3zx3
++3yrK0NsFcTGB2E6unzdKd2+0/2kwqOgXpL88x4+hV6zIIMIl/wiaX8cO5rgKuXz
+ZURmRvbO1u3mNGgXy6ZsJ6rFM7hUZJwvzRQPtveSyADIXYgHlkbBFJXpZD0e6LN+
+rHq6RraPEs77dFxWvM4cQP2Fj828sxQZ8mM/zoQQH13D9Hs3Pr0v/O+HQB792STP
+zCCLcnTut03BXRkmEP3NH8Ux6H6hyWYRhrGKxozj3l5qTeii8Tc3w2TbJhLdlZpc
+flJ7gT60yrOs+2t1G4/K75ufhguAkeXgOG7l77Hva1zEvAK2Ar6kpQ==
+-----END RSA PRIVATE KEY-----
diff --git a/tests/tester8req.pem b/tests/tester8req.pem
new file mode 100755
index 0000000..3e29232
--- /dev/null
+++ b/tests/tester8req.pem
@@ -0,0 +1,10 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBZTCBzwIBADAmMRAwDgYDVQQKEwdURVNUTkVUMRIwEAYDVQQDDAk4I3Rlc3Rl
+cjgwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANgwgkOXFanOwu3dVY4mXoNX
+Majop2MNXm3hvAP24cYrxH7QBO6nn51toWgcMcF/cA7jUUhG1QEzvPmxvB67rIXe
+EGUdVdpRudTATQcfZf6Oq3vv1hZnq2JuQvmYpvICoslO1dv8OsvfK3V+rlWNfW6h
+S5XEdsWmh2oSJRrd4b6jAgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQDBJVHaNTzB
+ermwktucZVjXaIneHkSihcqqDBCRGCknAkeX9fSwVfKcLtMMV9Q/jxVyQ92ziIhA
+TXKhIUA1ns4WVYwvwtQ445of7xRTTNIVXBqQM3RzPP4AUTFmkmjNvg7Gg4I3s89A
+fkJBSzP3f1JIBYqdl8194/mwle4YuL/vwQ==
+-----END CERTIFICATE REQUEST-----
diff --git a/tests/tester9_privkey.pem b/tests/tester9_privkey.pem
new file mode 100755
index 0000000..ba0b815
--- /dev/null
+++ b/tests/tester9_privkey.pem
@@ -0,0 +1,18 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,0EC286726E7BF725
+
+QHMJ/INR+5bgul3tBeZhNIH+R3ILZsgE84+xA43J+A0GkRTf9KzUfwDeALlWVgXA
+ejxQq9re0I3FadDbAfLCNBGz3xVAwaq2zFN+UbPhzuVbx63SsLV4+eXg9eRy9ACK
+zG6Vl9bW0PWNMhFgjj6en6UnI187X4oR5OMHjgKzVrrmNfB5kxxtpEuo+jBHKhMN
+7X5qW0Qu44CaV9OcWwdniXRMdBN63nWPHpx/sJT0UBBOy2ZBs1Mo4fOnyJ5ucOzn
+d8+NLx8nRDorTwwCp/2ehPlMPScyLaFCct5bvDETQ6bOVntA34k3sOaoukgGWf46
+XZYW9VBLeOtjyxyn+A+ciId8d1sh1s9NFH21fGABSuhTBVOkDBqkugG4OR4Lsokr
+QqzPmXeKtD9x8GOrnLdCh/UcVBCANclO4Opls5cRYeCap1Dx9HPw9RpMczN4kpQz
+u5LZall4XI7ngPebB2F/nn3Ip6tCMdKsReGq9hAG1nT4FVD2pEpj9guiyk7DOjXZ
+ZGPANBMtfH1FPiv1p6a1bhPwtQ3jTF6vH7z5bWgVbHxuCWvqy2Aw/vqE2Qlh+g+V
+h+TKYV7KH67HG4BXIhwx/A8mtosb1I7ctud/et0V4TqM6BAYDrGL5UI2GBAkT1W4
+Vb0szLdmClKoPQ3Wsoy/729xqmxW7+CEaYAVBJnccknJ5grwDUF5Uwmpl74Us4yX
+ToRl9ssj2VvznKW0VGoT4W2eaJp/rQX50lA1oRLraItNtplOPSX15/KztJAO5PAh
+ofMaBG4YT5Y/AalPbezsKZaS9lUOlZYUxs1++Id8dKAOls8tFaauQQ==
+-----END RSA PRIVATE KEY-----
diff --git a/tests/tester9cert.pem b/tests/tester9cert.pem
new file mode 100755
index 0000000..835e6f0
--- /dev/null
+++ b/tests/tester9cert.pem
@@ -0,0 +1,63 @@
+Certificate:
+ Data:
+ Version: 1 (0x0)
+ Serial Number: 826 (0x33a)
+ Signature Algorithm: md5WithRSAEncryption
+ Issuer: O=TESTNET, CN=TESTNET CA
+ Validity
+ Not Before: Dec 23 22:49:35 2008 GMT
+ Not After : Dec 23 22:49:35 2009 GMT
+ Subject: O=TESTNET, CN=9#tester9
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public Key: (1024 bit)
+ Modulus (1024 bit):
+ 00:b0:d2:ba:8f:cb:8d:f3:5e:a9:05:e9:22:a0:60:
+ a8:3c:6b:c2:71:d9:f4:eb:85:d6:fd:5d:7a:8a:b4:
+ e3:1c:83:57:a7:77:56:c9:0c:20:4c:33:d9:40:92:
+ 64:f6:a2:8c:a9:77:1d:fe:b2:b9:ae:30:c8:b2:47:
+ d4:2e:2f:52:30:d8:14:e3:33:8a:47:27:68:47:4e:
+ 9c:c0:72:08:98:27:c4:d1:40:eb:97:8f:e7:75:2a:
+ f3:26:ea:7f:d4:01:3d:92:2f:e0:45:b3:97:b0:ed:
+ 19:b2:5b:f8:49:52:38:3a:c3:33:cc:c0:15:42:2b:
+ dc:f9:cb:73:94:1b:23:92:cf
+ Exponent: 65537 (0x10001)
+ Signature Algorithm: md5WithRSAEncryption
+ 5a:17:8d:3c:f4:82:2e:1e:de:37:f7:21:49:2f:65:ca:88:c9:
+ 7e:cf:a4:92:6a:25:d7:1b:3d:35:b1:88:ca:41:6a:a7:d2:ea:
+ 45:53:39:b0:eb:99:ed:ab:10:46:71:0a:61:a4:a2:6f:9a:c1:
+ 2c:87:9e:c3:0a:b6:36:10:e9:91:e8:25:6b:da:9a:ec:09:55:
+ ea:51:6c:c9:07:21:b1:e6:83:33:1d:3a:91:4f:26:bd:d6:29:
+ e9:72:0f:72:51:31:c4:2a:29:92:ca:bb:5e:73:5c:f9:4d:19:
+ 57:d0:95:ab:bc:f0:30:6c:9f:bd:5e:a7:4d:16:0f:b3:9e:20:
+ 79:16
+-----BEGIN CERTIFICATE-----
+MIIBvTCCASYCAgM6MA0GCSqGSIb3DQEBBAUAMCcxEDAOBgNVBAoTB1RFU1RORVQx
+EzARBgNVBAMTClRFU1RORVQgQ0EwHhcNMDgxMjIzMjI0OTM1WhcNMDkxMjIzMjI0
+OTM1WjAmMRAwDgYDVQQKEwdURVNUTkVUMRIwEAYDVQQDDAk5I3Rlc3RlcjkwgZ8w
+DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALDSuo/LjfNeqQXpIqBgqDxrwnHZ9OuF
+1v1deoq04xyDV6d3VskMIEwz2UCSZPaijKl3Hf6yua4wyLJH1C4vUjDYFOMzikcn
+aEdOnMByCJgnxNFA65eP53Uq8ybqf9QBPZIv4EWzl7DtGbJb+ElSODrDM8zAFUIr
+3PnLc5QbI5LPAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAWheNPPSCLh7eN/chSS9l
+yojJfs+kkmol1xs9NbGIykFqp9LqRVM5sOuZ7asQRnEKYaSib5rBLIeewwq2NhDp
+kegla9qa7AlV6lFsyQchseaDMx06kU8mvdYp6XIPclExxCopksq7XnNc+U0ZV9CV
+q7zwMGyfvV6nTRYPs54geRY=
+-----END CERTIFICATE-----
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,0EC286726E7BF725
+
+QHMJ/INR+5bgul3tBeZhNIH+R3ILZsgE84+xA43J+A0GkRTf9KzUfwDeALlWVgXA
+ejxQq9re0I3FadDbAfLCNBGz3xVAwaq2zFN+UbPhzuVbx63SsLV4+eXg9eRy9ACK
+zG6Vl9bW0PWNMhFgjj6en6UnI187X4oR5OMHjgKzVrrmNfB5kxxtpEuo+jBHKhMN
+7X5qW0Qu44CaV9OcWwdniXRMdBN63nWPHpx/sJT0UBBOy2ZBs1Mo4fOnyJ5ucOzn
+d8+NLx8nRDorTwwCp/2ehPlMPScyLaFCct5bvDETQ6bOVntA34k3sOaoukgGWf46
+XZYW9VBLeOtjyxyn+A+ciId8d1sh1s9NFH21fGABSuhTBVOkDBqkugG4OR4Lsokr
+QqzPmXeKtD9x8GOrnLdCh/UcVBCANclO4Opls5cRYeCap1Dx9HPw9RpMczN4kpQz
+u5LZall4XI7ngPebB2F/nn3Ip6tCMdKsReGq9hAG1nT4FVD2pEpj9guiyk7DOjXZ
+ZGPANBMtfH1FPiv1p6a1bhPwtQ3jTF6vH7z5bWgVbHxuCWvqy2Aw/vqE2Qlh+g+V
+h+TKYV7KH67HG4BXIhwx/A8mtosb1I7ctud/et0V4TqM6BAYDrGL5UI2GBAkT1W4
+Vb0szLdmClKoPQ3Wsoy/729xqmxW7+CEaYAVBJnccknJ5grwDUF5Uwmpl74Us4yX
+ToRl9ssj2VvznKW0VGoT4W2eaJp/rQX50lA1oRLraItNtplOPSX15/KztJAO5PAh
+ofMaBG4YT5Y/AalPbezsKZaS9lUOlZYUxs1++Id8dKAOls8tFaauQQ==
+-----END RSA PRIVATE KEY-----
diff --git a/tests/tester9req.pem b/tests/tester9req.pem
new file mode 100755
index 0000000..f54d67b
--- /dev/null
+++ b/tests/tester9req.pem
@@ -0,0 +1,10 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIBZTCBzwIBADAmMRAwDgYDVQQKEwdURVNUTkVUMRIwEAYDVQQDDAk5I3Rlc3Rl
+cjkwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALDSuo/LjfNeqQXpIqBgqDxr
+wnHZ9OuF1v1deoq04xyDV6d3VskMIEwz2UCSZPaijKl3Hf6yua4wyLJH1C4vUjDY
+FOMzikcnaEdOnMByCJgnxNFA65eP53Uq8ybqf9QBPZIv4EWzl7DtGbJb+ElSODrD
+M8zAFUIr3PnLc5QbI5LPAgMBAAGgADANBgkqhkiG9w0BAQUFAAOBgQAi2bNSrWTs
+kzwUcJugFIjQcTOl6+jS7H1UNZlCfnHw1znjxlcDhYWesWH1uigiqI9x+dH9mSA/
+UIWEc3UBKRcLUDLl3jg8XtoZddsVnuUP4qBdKAuIkOmuu5Cwl6Buo4UO8aOZlxvV
+ATI3KZTBlm0q4YT7k6qgr9jTeCTtzMCtUg==
+-----END CERTIFICATE REQUEST-----
diff --git a/tests/trustedCA/newtestca.pem b/tests/trustedCA/newtestca.pem
new file mode 100644
index 0000000..9bba2c9
--- /dev/null
+++ b/tests/trustedCA/newtestca.pem
@@ -0,0 +1,16 @@
+-----BEGIN CERTIFICATE-----
+MIICiTCCAfKgAwIBAgIJAJACtwPaX6NqMA0GCSqGSIb3DQEBBQUAMDgxHTAbBgNV
+BAoTFFRlc3RpbmcgY2VydGlmaWNhdGVzMRcwFQYDVQQDEw5URVNUIFJPT1QgQ0VS
+VDAeFw0wOTA4MDEyMzI4NThaFw0xMDEyMjYyMzI4NThaMDgxHTAbBgNVBAoTFFRl
+c3RpbmcgY2VydGlmaWNhdGVzMRcwFQYDVQQDEw5URVNUIFJPT1QgQ0VSVDCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1YFmjCqUUt6qJkqJgAiZV1p+xdYKB75J
+iLTSwUVD21ebh2dwshYtVhYHLTrNZE3yLvsUrc/EVu4525Xz08XDyJnMtSSroeoY
+MbPMrdJ31JxOr3XOsq0O98WY8ZcZRJ6vZ4LcYZQAgkQXnHnIDFTQocf3VxXp69dq
+XNhY53axjkkCAwEAAaOBmjCBlzAdBgNVHQ4EFgQUz1SvyKy3WjTGqbpKa791Jz20
+GacwaAYDVR0jBGEwX4AUz1SvyKy3WjTGqbpKa791Jz20GaehPKQ6MDgxHTAbBgNV
+BAoTFFRlc3RpbmcgY2VydGlmaWNhdGVzMRcwFQYDVQQDEw5URVNUIFJPT1QgQ0VS
+VIIJAJACtwPaX6NqMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAwjjG
+qoE1mzNumupkMozPkZHeNUp9FL+8iKKyC6RTJ3hA5KXgOayiX9i82BeG+OSox1qs
+t1u6ygx253+m9+TZmaHqeJc1gtHOJKINN3Tu6rWYu6wCjT+f7exu0o9q/1xGB1Nr
+lBPHPKTQAQxbvuoRGNKfjEXlVHXwFd+BobKAqjw=
+-----END CERTIFICATE-----
diff --git a/tests/trustedCA/picapica_test_CA.pem b/tests/trustedCA/picapica_test_CA.pem
new file mode 100644
index 0000000..f11826f
--- /dev/null
+++ b/tests/trustedCA/picapica_test_CA.pem
@@ -0,0 +1,54 @@
+-----BEGIN CERTIFICATE-----
+MIIJlzCCBX+gAwIBAgIJAOULzY29eFOcMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNV
+BAYTAkdFMRAwDgYDVQQIEwdHZW9yZ2lhMRowGAYDVQQDExFQaWNhIFBpY2EgVGVz
+dCBDQTAeFw0xMTAzMDYyMDI1MjBaFw0yMTA0MDIyMDI1MjBaMDsxCzAJBgNVBAYT
+AkdFMRAwDgYDVQQIEwdHZW9yZ2lhMRowGAYDVQQDExFQaWNhIFBpY2EgVGVzdCBD
+QTCCBCIwDQYJKoZIhvcNAQEBBQADggQPADCCBAoCggQBALc37Weyu0bjUINfOH+S
+3aRxXbq3OTieQBtGW925IckEV+wjoCu3QlxEpz1TvA7LW0uVUYgVQKDVbuYC8MqI
+s1KMev5oU7vRvcZlU5NetQwmqA6QvjjoStS2wiNtYbFEuQHaPXM0d7AZUm9YINe4
+HyoXWQ2YkwD0LlOBY6QEqNBUnSWzeLSaMjGfUV5lL8LRFe4+w+vE3KhNyF30xTQM
+Bg4I+WRvtWEtNxkJa4oauNkqcZTVm7LncCYfd5mj/DWLjBl9artwFYYvbRQrX79Z
+9JR+02AeE26FbHWPGzLUoorNmUR96YIocealbMHO7ZSGMU/bHqGDJCX0fkXa4vBm
+BXCRlTQuAbeXhJ9ehBqbYQzTMwYon4+nIa+9hADuZy9cjvRzvOEWN/+L438JABtc
+TLonh/jLm+FkwdLoscs6WxWXmWel9B+lICEAdo4ogp6TdpRjlkJpkELpjZWLug15
+4vL7w790u54LgolVtL//bdVRLIGEH1mW43c4FVffNZL3mPn63bowon9FsjMG0jaX
+jRA6T6/juEXHkD3/mU2UUHWRfhspaX8ulH9Mk+ALVOVd29dMl3c5UocKSQbGzBQe
+VhmTkuMoi/t66RdrPjG59EskbLoH/8XeWmfIoicqC0dArKUM1rU282fy1FVyUKfY
+B29a/+URE6nethAab929hFK9Zs4/OjIPmejE6JYmAUXjRWW2hoyj8iM5g6z8Z4T2
+QRCpZxbDU8hQmHGgDEE2kNxVNsiGZpNhGIuO4AWT42iRi/abXVr2B8UDHPVG9Ddx
+2Qs+ATsIh+Yw2i41KJQT/FV0+RzbhftuyBE4rlISrfTENmm+cMtrU7DMXSxJt7gF
+Bmtp2XeL+uHoJM1ZJpotH7u7rejkG3XCkblYbUuXvp4U4Qd8M99wbQnlKFtUKp63
+cPHk7Re0Z+C0bLbC+cEgtN/0XkeEVpMMJzudKFzKqz4wix/CydsWTRdE9k89yqTY
+Dnp8ALtAI1GyKYWFCnHbgoWBUU6U9J8iI2KVFCUbwHper4hiEsXWzKtsySXSwaST
+BReC2mWyp6K/SJLieUn05H+Y4JTtIi0GcMgBBNX1OVi7aXsN3MpU8VbRgDYhRzdU
+rlsxWZP63c5JIVXe2nYmXzOH2dDHnI/Hgktm4s10Uf6SsiQsGDi3ziNYa0ulbki1
+fYMkF1+DFeJNnhmqi49e/LjoalKplirTNFL3f14Lh6FEPusJCCIwHip1uqnXac15
+zJl0vi6vSmitePEVF1Hqe3Vuz45C7jQStcUdeeYBJAuI5uWJdOASgCiqDifgKvQ9
+VpP4WwbQP4nyNVMuPLlaz3wTcBO9aIwOq61zDGPn5MET4yN+AC31Ebs0/fCfMIrr
+yvsCAwEAAaOBnTCBmjAdBgNVHQ4EFgQUmTGXMSULDMUBUbNh7VQJWOt2/V0wawYD
+VR0jBGQwYoAUmTGXMSULDMUBUbNh7VQJWOt2/V2hP6Q9MDsxCzAJBgNVBAYTAkdF
+MRAwDgYDVQQIEwdHZW9yZ2lhMRowGAYDVQQDExFQaWNhIFBpY2EgVGVzdCBDQYIJ
+AOULzY29eFOcMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggQBAFZBq1UK
+KZaac5ZwxiVVfYEb+wbIhWaHeOA/WdbNr+OXNxh88vKiulV8DGtxgocuw4YL2R3D
+gmZM3LaRQuM8idOkZQ6wYdXKPmYq99UKJ4ERwUexjUFdpvWnW0GmkK3z2r6I+S2p
+PEc+OX8yYelK5wFeccuJ2hyITIMpGIxYLNpin09BwGjN5NRZDkpCA+LUAFN4jj+j
+XalLwloaN6sJeyYpZ9Dk1R0+7Z96O6SlYQpfD0ut8RuJDPVH83M3q7ddrhGqNrzY
+HjpnuTeOpkW3r3appHj69mXp2QjWl0HPYvLBGVtPdb766z8GBhJcwcUy+SCH2RGJ
+ZNvo/fYqaecA5MgtcIS2cz3HvPPir1s2IBhNwjjGWA+21sBQ8J+uR+jIaAvByHgo
+gKmTb8gg20KPAebj123mp2DB0HBVwRxU/RJg8TIYURlynB11I0WaMqoFUQmS9/Ap
+GTFSOXa1/vsEPGbIu7ze1E/8kT0U6KFIo3Pe1S6PlBCPKL28RwPK1mTFNS/d7HZq
+2PoMkdB5jywuGVtDFVr3JKh+Y8NENG2n0ME1iBPRpLhgaJ/rIRWSDQt1q34EvuIA
+px6F/oZN2DnNIPlMU/VHMOYF+706WjQX8k61K6ryxjS1OZrb15GLzLHSdRPVh1lG
+lUha9oJYiJhXagL8hG96kyo905zXLNnL7+LW57Hqifh4XDLzYSVVRbvI8Bl8X+Wr
+ez+oLCrda4ef4tFYeqobQ5GmIM25HfwkxEz/KuvfgaxvUKRYBVa2KvU6R2cbKsqK
+mMwU+7iMzHqlvpyMSRtWJOwEkVeKUN16IlP0wI50E5HDmPzh6XzLHOLOwGawew4c
+PYgJIXblGJxzPG66YWOJG5fcWVZ+zYk87Q323BW5DIDRZk3EAGJPR8C4Omyqi3xp
+kHNdL9eMmONbezFKtk0tMz2JGHZ3qHEKc69Danl86T4ibZXuRgtfvnnPGrCTBFxu
+Nj3CpPHTS4/nwj6mLeEmvi6yP7h/RlIMuZbxOkG+YAqzfw4IB9Z/Qs6ngkPpezuR
+9Fv3/LVrMve+7DLs4+YMLJ/Ts876G9dPMwqjOUXYQKBlhNL7cB1Lvx/QZrVOtkqu
+9c8fFaP8Bwem7mv7p8zE4x6D2ARKoVSgkfyFPsu+aVlZsXuXhXkgt9nhx6PUa+Bb
+9SwyRD/uhcpCog9Tv7nqQljG0xFdrHPu6yXBZHgiJbbPfrIs/mXR4QgYsqVDl8hQ
+SMXsMc26GqYrryetKA5RHAI49rWAVvsmywJRWgkuVkSzBwz0u9uzIRpAAhgLgZrV
++XgoOCdk7VCcUJFm8kSveN4j458dkj8EL7RSUrQ8Lds7laLcub4kuUBIIbZKeJuN
+qStgK39Nj5myPko=
+-----END CERTIFICATE-----
diff --git a/tests/trustedCA/picapica_test_CA_pkey.pem b/tests/trustedCA/picapica_test_CA_pkey.pem
new file mode 100644
index 0000000..d908370
--- /dev/null
+++ b/tests/trustedCA/picapica_test_CA_pkey.pem
@@ -0,0 +1,102 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,6B353E4D75711879
+
+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
+-----END RSA PRIVATE KEY-----
diff --git a/tests/trustedCA/testnetCA.pem b/tests/trustedCA/testnetCA.pem
new file mode 100755
index 0000000..81a4e87
--- /dev/null
+++ b/tests/trustedCA/testnetCA.pem
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICVjCCAb+gAwIBAgIJAIwFS1tZBlNfMA0GCSqGSIb3DQEBBQUAMCcxEDAOBgNV
+BAoTB1RFU1RORVQxEzARBgNVBAMTClRFU1RORVQgQ0EwHhcNMDgxMTI1MTcxMzQ1
+WhcNMDgxMjI1MTcxMzQ1WjAnMRAwDgYDVQQKEwdURVNUTkVUMRMwEQYDVQQDEwpU
+RVNUTkVUIENBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2Jn0QVBOoOtoH
+vr8+HZZZqmPZnlG0Rrb1pNUEzScMIm48hDChMEifTWtAr3NHnL9mzkL08BQKnrH5
+VYPkkh5NLFarxanE9sACuI3K6m2UvNK8X0ZPkLt4bQ6A6L7hHD63LSG5fvouGhAQ
+CVgxastn7/qs9RKIRp5GpZTj6um+8wIDAQABo4GJMIGGMB0GA1UdDgQWBBSiFul4
+NNvxHsJ0hDiv7A+FWnSsXTBXBgNVHSMEUDBOgBSiFul4NNvxHsJ0hDiv7A+FWnSs
+XaErpCkwJzEQMA4GA1UEChMHVEVTVE5FVDETMBEGA1UEAxMKVEVTVE5FVCBDQYIJ
+AIwFS1tZBlNfMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAK9AeX2Hv
+DBUWKAF7RI/an2GOOTECLgeDIgzGLjDWFo4CAhrvYSpiyblbAadSQclSWgQalpUH
+OQbAVqB4A8LmXvF/Niixu5QsmG6bCQlrT89khYOQ2GwEnrDpDCB+5t41gZNHmuMX
+r1urVCbUPDo71Hf/TjsPMh/QpY4pAI1BGTc=
+-----END CERTIFICATE-----
diff --git a/tests/trusted_CA.pem b/tests/trusted_CA.pem
new file mode 100755
index 0000000..fe05eed
--- /dev/null
+++ b/tests/trusted_CA.pem
@@ -0,0 +1,87 @@
+-----BEGIN CERTIFICATE-----
+MIICVjCCAb+gAwIBAgIJAIwFS1tZBlNfMA0GCSqGSIb3DQEBBQUAMCcxEDAOBgNV
+BAoTB1RFU1RORVQxEzARBgNVBAMTClRFU1RORVQgQ0EwHhcNMDgxMTI1MTcxMzQ1
+WhcNMDgxMjI1MTcxMzQ1WjAnMRAwDgYDVQQKEwdURVNUTkVUMRMwEQYDVQQDEwpU
+RVNUTkVUIENBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2Jn0QVBOoOtoH
+vr8+HZZZqmPZnlG0Rrb1pNUEzScMIm48hDChMEifTWtAr3NHnL9mzkL08BQKnrH5
+VYPkkh5NLFarxanE9sACuI3K6m2UvNK8X0ZPkLt4bQ6A6L7hHD63LSG5fvouGhAQ
+CVgxastn7/qs9RKIRp5GpZTj6um+8wIDAQABo4GJMIGGMB0GA1UdDgQWBBSiFul4
+NNvxHsJ0hDiv7A+FWnSsXTBXBgNVHSMEUDBOgBSiFul4NNvxHsJ0hDiv7A+FWnSs
+XaErpCkwJzEQMA4GA1UEChMHVEVTVE5FVDETMBEGA1UEAxMKVEVTVE5FVCBDQYIJ
+AIwFS1tZBlNfMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAK9AeX2Hv
+DBUWKAF7RI/an2GOOTECLgeDIgzGLjDWFo4CAhrvYSpiyblbAadSQclSWgQalpUH
+OQbAVqB4A8LmXvF/Niixu5QsmG6bCQlrT89khYOQ2GwEnrDpDCB+5t41gZNHmuMX
+r1urVCbUPDo71Hf/TjsPMh/QpY4pAI1BGTc=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICiTCCAfKgAwIBAgIJAJACtwPaX6NqMA0GCSqGSIb3DQEBBQUAMDgxHTAbBgNV
+BAoTFFRlc3RpbmcgY2VydGlmaWNhdGVzMRcwFQYDVQQDEw5URVNUIFJPT1QgQ0VS
+VDAeFw0wOTA4MDEyMzI4NThaFw0xMDEyMjYyMzI4NThaMDgxHTAbBgNVBAoTFFRl
+c3RpbmcgY2VydGlmaWNhdGVzMRcwFQYDVQQDEw5URVNUIFJPT1QgQ0VSVDCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1YFmjCqUUt6qJkqJgAiZV1p+xdYKB75J
+iLTSwUVD21ebh2dwshYtVhYHLTrNZE3yLvsUrc/EVu4525Xz08XDyJnMtSSroeoY
+MbPMrdJ31JxOr3XOsq0O98WY8ZcZRJ6vZ4LcYZQAgkQXnHnIDFTQocf3VxXp69dq
+XNhY53axjkkCAwEAAaOBmjCBlzAdBgNVHQ4EFgQUz1SvyKy3WjTGqbpKa791Jz20
+GacwaAYDVR0jBGEwX4AUz1SvyKy3WjTGqbpKa791Jz20GaehPKQ6MDgxHTAbBgNV
+BAoTFFRlc3RpbmcgY2VydGlmaWNhdGVzMRcwFQYDVQQDEw5URVNUIFJPT1QgQ0VS
+VIIJAJACtwPaX6NqMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAwjjG
+qoE1mzNumupkMozPkZHeNUp9FL+8iKKyC6RTJ3hA5KXgOayiX9i82BeG+OSox1qs
+t1u6ygx253+m9+TZmaHqeJc1gtHOJKINN3Tu6rWYu6wCjT+f7exu0o9q/1xGB1Nr
+lBPHPKTQAQxbvuoRGNKfjEXlVHXwFd+BobKAqjw=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+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
+qStgK39Nj5myPko=
+-----END CERTIFICATE-----
diff --git a/tests/tst_sizeof b/tests/tst_sizeof
new file mode 100755
index 0000000..c09bf42
--- /dev/null
+++ b/tests/tst_sizeof
Binary files differ
diff --git a/tests/tst_sizeof.c b/tests/tst_sizeof.c
new file mode 100755
index 0000000..46ce2cf
--- /dev/null
+++ b/tests/tst_sizeof.c
@@ -0,0 +1,16 @@
+#include <stdio.h>
+
+char str[]={'A',};
+int i[]={1,2,3};
+
+struct tsr
+{
+int len;
+char s[256];
+} t = {sizeof(str),"string"};
+
+int main()
+{
+printf("sizeof str: %u i:%u\n",sizeof("string"),sizeof(i));
+return 0;
+}