diff options
author | miod <> | 2014-04-13 15:25:35 +0000 |
---|---|---|
committer | miod <> | 2014-04-13 15:25:35 +0000 |
commit | 1fb5cf10c3e597dbb1ecc4dd423bba727fd7721a (patch) | |
tree | 74f4ff344980894c7c9ceeab9b81176ac7572566 /src/lib/libssl/src | |
parent | 92349eb53934e1b3e9b807e603d45417a6320d21 (diff) | |
download | openbsd-1fb5cf10c3e597dbb1ecc4dd423bba727fd7721a.tar.gz openbsd-1fb5cf10c3e597dbb1ecc4dd423bba727fd7721a.tar.bz2 openbsd-1fb5cf10c3e597dbb1ecc4dd423bba727fd7721a.zip |
Merge conflicts; remove MacOS, Netware, OS/2, VMS and Windows build machinery.
Diffstat (limited to 'src/lib/libssl/src')
317 files changed, 2031 insertions, 28920 deletions
diff --git a/src/lib/libssl/src/CHANGES b/src/lib/libssl/src/CHANGES index 7013e4c12c..4fcfd1d4be 100644 --- a/src/lib/libssl/src/CHANGES +++ b/src/lib/libssl/src/CHANGES | |||
@@ -2,6 +2,104 @@ | |||
2 | OpenSSL CHANGES | 2 | OpenSSL CHANGES |
3 | _______________ | 3 | _______________ |
4 | 4 | ||
5 | Changes between 1.0.1f and 1.0.1g [7 Apr 2014] | ||
6 | |||
7 | *) A missing bounds check in the handling of the TLS heartbeat extension | ||
8 | can be used to reveal up to 64k of memory to a connected client or | ||
9 | server. | ||
10 | |||
11 | Thanks for Neel Mehta of Google Security for discovering this bug and to | ||
12 | Adam Langley <agl@chromium.org> and Bodo Moeller <bmoeller@acm.org> for | ||
13 | preparing the fix (CVE-2014-0160) | ||
14 | [Adam Langley, Bodo Moeller] | ||
15 | |||
16 | *) Fix for the attack described in the paper "Recovering OpenSSL | ||
17 | ECDSA Nonces Using the FLUSH+RELOAD Cache Side-channel Attack" | ||
18 | by Yuval Yarom and Naomi Benger. Details can be obtained from: | ||
19 | http://eprint.iacr.org/2014/140 | ||
20 | |||
21 | Thanks to Yuval Yarom and Naomi Benger for discovering this | ||
22 | flaw and to Yuval Yarom for supplying a fix (CVE-2014-0076) | ||
23 | [Yuval Yarom and Naomi Benger] | ||
24 | |||
25 | *) TLS pad extension: draft-agl-tls-padding-03 | ||
26 | |||
27 | Workaround for the "TLS hang bug" (see FAQ and PR#2771): if the | ||
28 | TLS client Hello record length value would otherwise be > 255 and | ||
29 | less that 512 pad with a dummy extension containing zeroes so it | ||
30 | is at least 512 bytes long. | ||
31 | |||
32 | [Adam Langley, Steve Henson] | ||
33 | |||
34 | Changes between 1.0.1e and 1.0.1f [6 Jan 2014] | ||
35 | |||
36 | *) Fix for TLS record tampering bug. A carefully crafted invalid | ||
37 | handshake could crash OpenSSL with a NULL pointer exception. | ||
38 | Thanks to Anton Johansson for reporting this issues. | ||
39 | (CVE-2013-4353) | ||
40 | |||
41 | *) Keep original DTLS digest and encryption contexts in retransmission | ||
42 | structures so we can use the previous session parameters if they need | ||
43 | to be resent. (CVE-2013-6450) | ||
44 | [Steve Henson] | ||
45 | |||
46 | *) Add option SSL_OP_SAFARI_ECDHE_ECDSA_BUG (part of SSL_OP_ALL) which | ||
47 | avoids preferring ECDHE-ECDSA ciphers when the client appears to be | ||
48 | Safari on OS X. Safari on OS X 10.8..10.8.3 advertises support for | ||
49 | several ECDHE-ECDSA ciphers, but fails to negotiate them. The bug | ||
50 | is fixed in OS X 10.8.4, but Apple have ruled out both hot fixing | ||
51 | 10.8..10.8.3 and forcing users to upgrade to 10.8.4 or newer. | ||
52 | [Rob Stradling, Adam Langley] | ||
53 | |||
54 | Changes between 1.0.1d and 1.0.1e [11 Feb 2013] | ||
55 | |||
56 | *) Correct fix for CVE-2013-0169. The original didn't work on AES-NI | ||
57 | supporting platforms or when small records were transferred. | ||
58 | [Andy Polyakov, Steve Henson] | ||
59 | |||
60 | Changes between 1.0.1c and 1.0.1d [5 Feb 2013] | ||
61 | |||
62 | *) Make the decoding of SSLv3, TLS and DTLS CBC records constant time. | ||
63 | |||
64 | This addresses the flaw in CBC record processing discovered by | ||
65 | Nadhem Alfardan and Kenny Paterson. Details of this attack can be found | ||
66 | at: http://www.isg.rhul.ac.uk/tls/ | ||
67 | |||
68 | Thanks go to Nadhem Alfardan and Kenny Paterson of the Information | ||
69 | Security Group at Royal Holloway, University of London | ||
70 | (www.isg.rhul.ac.uk) for discovering this flaw and Adam Langley and | ||
71 | Emilia Käsper for the initial patch. | ||
72 | (CVE-2013-0169) | ||
73 | [Emilia Käsper, Adam Langley, Ben Laurie, Andy Polyakov, Steve Henson] | ||
74 | |||
75 | *) Fix flaw in AESNI handling of TLS 1.2 and 1.1 records for CBC mode | ||
76 | ciphersuites which can be exploited in a denial of service attack. | ||
77 | Thanks go to and to Adam Langley <agl@chromium.org> for discovering | ||
78 | and detecting this bug and to Wolfgang Ettlinger | ||
79 | <wolfgang.ettlinger@gmail.com> for independently discovering this issue. | ||
80 | (CVE-2012-2686) | ||
81 | [Adam Langley] | ||
82 | |||
83 | *) Return an error when checking OCSP signatures when key is NULL. | ||
84 | This fixes a DoS attack. (CVE-2013-0166) | ||
85 | [Steve Henson] | ||
86 | |||
87 | *) Make openssl verify return errors. | ||
88 | [Chris Palmer <palmer@google.com> and Ben Laurie] | ||
89 | |||
90 | *) Call OCSP Stapling callback after ciphersuite has been chosen, so | ||
91 | the right response is stapled. Also change SSL_get_certificate() | ||
92 | so it returns the certificate actually sent. | ||
93 | See http://rt.openssl.org/Ticket/Display.html?id=2836. | ||
94 | [Rob Stradling <rob.stradling@comodo.com>] | ||
95 | |||
96 | *) Fix possible deadlock when decoding public keys. | ||
97 | [Steve Henson] | ||
98 | |||
99 | *) Don't use TLS 1.0 record version number in initial client hello | ||
100 | if renegotiating. | ||
101 | [Steve Henson] | ||
102 | |||
5 | Changes between 1.0.1b and 1.0.1c [10 May 2012] | 103 | Changes between 1.0.1b and 1.0.1c [10 May 2012] |
6 | 104 | ||
7 | *) Sanity check record length before skipping explicit IV in TLS | 105 | *) Sanity check record length before skipping explicit IV in TLS |
@@ -357,6 +455,63 @@ | |||
357 | Add command line options to s_client/s_server. | 455 | Add command line options to s_client/s_server. |
358 | [Steve Henson] | 456 | [Steve Henson] |
359 | 457 | ||
458 | Changes between 1.0.0j and 1.0.0k [5 Feb 2013] | ||
459 | |||
460 | *) Make the decoding of SSLv3, TLS and DTLS CBC records constant time. | ||
461 | |||
462 | This addresses the flaw in CBC record processing discovered by | ||
463 | Nadhem Alfardan and Kenny Paterson. Details of this attack can be found | ||
464 | at: http://www.isg.rhul.ac.uk/tls/ | ||
465 | |||
466 | Thanks go to Nadhem Alfardan and Kenny Paterson of the Information | ||
467 | Security Group at Royal Holloway, University of London | ||
468 | (www.isg.rhul.ac.uk) for discovering this flaw and Adam Langley and | ||
469 | Emilia Käsper for the initial patch. | ||
470 | (CVE-2013-0169) | ||
471 | [Emilia Käsper, Adam Langley, Ben Laurie, Andy Polyakov, Steve Henson] | ||
472 | |||
473 | *) Return an error when checking OCSP signatures when key is NULL. | ||
474 | This fixes a DoS attack. (CVE-2013-0166) | ||
475 | [Steve Henson] | ||
476 | |||
477 | *) Call OCSP Stapling callback after ciphersuite has been chosen, so | ||
478 | the right response is stapled. Also change SSL_get_certificate() | ||
479 | so it returns the certificate actually sent. | ||
480 | See http://rt.openssl.org/Ticket/Display.html?id=2836. | ||
481 | (This is a backport) | ||
482 | [Rob Stradling <rob.stradling@comodo.com>] | ||
483 | |||
484 | *) Fix possible deadlock when decoding public keys. | ||
485 | [Steve Henson] | ||
486 | |||
487 | Changes between 1.0.0i and 1.0.0j [10 May 2012] | ||
488 | |||
489 | [NB: OpenSSL 1.0.0i and later 1.0.0 patch levels were released after | ||
490 | OpenSSL 1.0.1.] | ||
491 | |||
492 | *) Sanity check record length before skipping explicit IV in DTLS | ||
493 | to fix DoS attack. | ||
494 | |||
495 | Thanks to Codenomicon for discovering this issue using Fuzz-o-Matic | ||
496 | fuzzing as a service testing platform. | ||
497 | (CVE-2012-2333) | ||
498 | [Steve Henson] | ||
499 | |||
500 | *) Initialise tkeylen properly when encrypting CMS messages. | ||
501 | Thanks to Solar Designer of Openwall for reporting this issue. | ||
502 | [Steve Henson] | ||
503 | |||
504 | Changes between 1.0.0h and 1.0.0i [19 Apr 2012] | ||
505 | |||
506 | *) Check for potentially exploitable overflows in asn1_d2i_read_bio | ||
507 | BUF_mem_grow and BUF_mem_grow_clean. Refuse attempts to shrink buffer | ||
508 | in CRYPTO_realloc_clean. | ||
509 | |||
510 | Thanks to Tavis Ormandy, Google Security Team, for discovering this | ||
511 | issue and to Adam Langley <agl@chromium.org> for fixing it. | ||
512 | (CVE-2012-2110) | ||
513 | [Adam Langley (Google), Tavis Ormandy, Google Security Team] | ||
514 | |||
360 | Changes between 1.0.0g and 1.0.0h [12 Mar 2012] | 515 | Changes between 1.0.0g and 1.0.0h [12 Mar 2012] |
361 | 516 | ||
362 | *) Fix MMA (Bleichenbacher's attack on PKCS #1 v1.5 RSA padding) weakness | 517 | *) Fix MMA (Bleichenbacher's attack on PKCS #1 v1.5 RSA padding) weakness |
@@ -1347,6 +1502,86 @@ | |||
1347 | *) Change 'Configure' script to enable Camellia by default. | 1502 | *) Change 'Configure' script to enable Camellia by default. |
1348 | [NTT] | 1503 | [NTT] |
1349 | 1504 | ||
1505 | Changes between 0.9.8x and 0.9.8y [5 Feb 2013] | ||
1506 | |||
1507 | *) Make the decoding of SSLv3, TLS and DTLS CBC records constant time. | ||
1508 | |||
1509 | This addresses the flaw in CBC record processing discovered by | ||
1510 | Nadhem Alfardan and Kenny Paterson. Details of this attack can be found | ||
1511 | at: http://www.isg.rhul.ac.uk/tls/ | ||
1512 | |||
1513 | Thanks go to Nadhem Alfardan and Kenny Paterson of the Information | ||
1514 | Security Group at Royal Holloway, University of London | ||
1515 | (www.isg.rhul.ac.uk) for discovering this flaw and Adam Langley and | ||
1516 | Emilia Käsper for the initial patch. | ||
1517 | (CVE-2013-0169) | ||
1518 | [Emilia Käsper, Adam Langley, Ben Laurie, Andy Polyakov, Steve Henson] | ||
1519 | |||
1520 | *) Return an error when checking OCSP signatures when key is NULL. | ||
1521 | This fixes a DoS attack. (CVE-2013-0166) | ||
1522 | [Steve Henson] | ||
1523 | |||
1524 | *) Call OCSP Stapling callback after ciphersuite has been chosen, so | ||
1525 | the right response is stapled. Also change SSL_get_certificate() | ||
1526 | so it returns the certificate actually sent. | ||
1527 | See http://rt.openssl.org/Ticket/Display.html?id=2836. | ||
1528 | (This is a backport) | ||
1529 | [Rob Stradling <rob.stradling@comodo.com>] | ||
1530 | |||
1531 | *) Fix possible deadlock when decoding public keys. | ||
1532 | [Steve Henson] | ||
1533 | |||
1534 | Changes between 0.9.8w and 0.9.8x [10 May 2012] | ||
1535 | |||
1536 | *) Sanity check record length before skipping explicit IV in DTLS | ||
1537 | to fix DoS attack. | ||
1538 | |||
1539 | Thanks to Codenomicon for discovering this issue using Fuzz-o-Matic | ||
1540 | fuzzing as a service testing platform. | ||
1541 | (CVE-2012-2333) | ||
1542 | [Steve Henson] | ||
1543 | |||
1544 | *) Initialise tkeylen properly when encrypting CMS messages. | ||
1545 | Thanks to Solar Designer of Openwall for reporting this issue. | ||
1546 | [Steve Henson] | ||
1547 | |||
1548 | Changes between 0.9.8v and 0.9.8w [23 Apr 2012] | ||
1549 | |||
1550 | *) The fix for CVE-2012-2110 did not take into account that the | ||
1551 | 'len' argument to BUF_MEM_grow and BUF_MEM_grow_clean is an | ||
1552 | int in OpenSSL 0.9.8, making it still vulnerable. Fix by | ||
1553 | rejecting negative len parameter. (CVE-2012-2131) | ||
1554 | [Tomas Hoger <thoger@redhat.com>] | ||
1555 | |||
1556 | Changes between 0.9.8u and 0.9.8v [19 Apr 2012] | ||
1557 | |||
1558 | *) Check for potentially exploitable overflows in asn1_d2i_read_bio | ||
1559 | BUF_mem_grow and BUF_mem_grow_clean. Refuse attempts to shrink buffer | ||
1560 | in CRYPTO_realloc_clean. | ||
1561 | |||
1562 | Thanks to Tavis Ormandy, Google Security Team, for discovering this | ||
1563 | issue and to Adam Langley <agl@chromium.org> for fixing it. | ||
1564 | (CVE-2012-2110) | ||
1565 | [Adam Langley (Google), Tavis Ormandy, Google Security Team] | ||
1566 | |||
1567 | Changes between 0.9.8t and 0.9.8u [12 Mar 2012] | ||
1568 | |||
1569 | *) Fix MMA (Bleichenbacher's attack on PKCS #1 v1.5 RSA padding) weakness | ||
1570 | in CMS and PKCS7 code. When RSA decryption fails use a random key for | ||
1571 | content decryption and always return the same error. Note: this attack | ||
1572 | needs on average 2^20 messages so it only affects automated senders. The | ||
1573 | old behaviour can be reenabled in the CMS code by setting the | ||
1574 | CMS_DEBUG_DECRYPT flag: this is useful for debugging and testing where | ||
1575 | an MMA defence is not necessary. | ||
1576 | Thanks to Ivan Nestlerode <inestlerode@us.ibm.com> for discovering | ||
1577 | this issue. (CVE-2012-0884) | ||
1578 | [Steve Henson] | ||
1579 | |||
1580 | *) Fix CVE-2011-4619: make sure we really are receiving a | ||
1581 | client hello before rejecting multiple SGC restarts. Thanks to | ||
1582 | Ivan Nestlerode <inestlerode@us.ibm.com> for discovering this bug. | ||
1583 | [Steve Henson] | ||
1584 | |||
1350 | Changes between 0.9.8s and 0.9.8t [18 Jan 2012] | 1585 | Changes between 0.9.8s and 0.9.8t [18 Jan 2012] |
1351 | 1586 | ||
1352 | *) Fix for DTLS DoS issue introduced by fix for CVE-2011-4109. | 1587 | *) Fix for DTLS DoS issue introduced by fix for CVE-2011-4109. |
@@ -1354,7 +1589,7 @@ | |||
1354 | Development, Cisco Systems, Inc. for discovering this bug and | 1589 | Development, Cisco Systems, Inc. for discovering this bug and |
1355 | preparing a fix. (CVE-2012-0050) | 1590 | preparing a fix. (CVE-2012-0050) |
1356 | [Antonio Martin] | 1591 | [Antonio Martin] |
1357 | 1592 | ||
1358 | Changes between 0.9.8r and 0.9.8s [4 Jan 2012] | 1593 | Changes between 0.9.8r and 0.9.8s [4 Jan 2012] |
1359 | 1594 | ||
1360 | *) Nadhem Alfardan and Kenny Paterson have discovered an extension | 1595 | *) Nadhem Alfardan and Kenny Paterson have discovered an extension |
diff --git a/src/lib/libssl/src/Configure b/src/lib/libssl/src/Configure index cbbf4de8b2..de78469b9f 100644 --- a/src/lib/libssl/src/Configure +++ b/src/lib/libssl/src/Configure | |||
@@ -171,20 +171,22 @@ my %table=( | |||
171 | "debug-ben-openbsd","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::", | 171 | "debug-ben-openbsd","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::", |
172 | "debug-ben-openbsd-debug","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -g3 -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::", | 172 | "debug-ben-openbsd-debug","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -g3 -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::", |
173 | "debug-ben-debug", "gcc44:$gcc_devteam_warn -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -g3 -O2 -pipe::(unknown)::::::", | 173 | "debug-ben-debug", "gcc44:$gcc_devteam_warn -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -g3 -O2 -pipe::(unknown)::::::", |
174 | "debug-ben-debug-64", "gcc:$gcc_devteam_warn -Wno-error=overlength-strings -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -g3 -O3 -pipe::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", | ||
174 | "debug-ben-macos", "cc:$gcc_devteam_warn -arch i386 -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -O3 -DL_ENDIAN -g3 -pipe::(unknown)::-Wl,-search_paths_first::::", | 175 | "debug-ben-macos", "cc:$gcc_devteam_warn -arch i386 -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -O3 -DL_ENDIAN -g3 -pipe::(unknown)::-Wl,-search_paths_first::::", |
175 | "debug-ben-macos-gcc46", "gcc-mp-4.6:$gcc_devteam_warn -Wconversion -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -O3 -DL_ENDIAN -g3 -pipe::(unknown)::::::", | 176 | "debug-ben-macos-gcc46", "gcc-mp-4.6:$gcc_devteam_warn -Wconversion -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -O3 -DL_ENDIAN -g3 -pipe::(unknown)::::::", |
177 | "debug-ben-darwin64","cc:$gcc_devteam_warn -Wno-language-extension-token -Wno-extended-offsetof -arch x86_64 -O3 -DL_ENDIAN -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$x86_64_asm;$asm=~s/rc4\-[^:]+//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", | ||
176 | "debug-ben-no-opt", "gcc: -Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG -Werror -DL_ENDIAN -DTERMIOS -Wall -g3::(unknown)::::::", | 178 | "debug-ben-no-opt", "gcc: -Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG -Werror -DL_ENDIAN -DTERMIOS -Wall -g3::(unknown)::::::", |
177 | "debug-ben-strict", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DCONST_STRICT -O2 -Wall -Wshadow -Werror -Wpointer-arith -Wcast-qual -Wwrite-strings -pipe::(unknown)::::::", | 179 | "debug-ben-strict", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DCONST_STRICT -O2 -Wall -Wshadow -Werror -Wpointer-arith -Wcast-qual -Wwrite-strings -pipe::(unknown)::::::", |
178 | "debug-rse","cc:-DTERMIOS -DL_ENDIAN -pipe -O -g -ggdb3 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}", | 180 | "debug-rse","cc:-DTERMIOS -DL_ENDIAN -pipe -O -g -ggdb3 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}", |
179 | "debug-bodo", "gcc:$gcc_devteam_warn -DBN_DEBUG -DBN_DEBUG_RAND -DCONF_DEBUG -DBIO_PAIR_DEBUG -m64 -DL_ENDIAN -DTERMIO -g -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", | 181 | "debug-bodo", "gcc:$gcc_devteam_warn -Wno-error=overlength-strings -DBN_DEBUG -DBN_DEBUG_RAND -DCONF_DEBUG -DBIO_PAIR_DEBUG -m64 -DL_ENDIAN -DTERMIO -g -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64", |
180 | "debug-ulf", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DBN_DEBUG_RAND -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations:::CYGWIN32:::${no_asm}:win32:cygwin-shared:::.dll", | 182 | "debug-ulf", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DBN_DEBUG_RAND -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations:::CYGWIN32:::${no_asm}:win32:cygwin-shared:::.dll", |
181 | "debug-steve64", "gcc:$gcc_devteam_warn -m64 -DL_ENDIAN -DTERMIO -DCONF_DEBUG -DDEBUG_SAFESTACK -g::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", | 183 | "debug-steve64", "gcc:$gcc_devteam_warn -m64 -DL_ENDIAN -DTERMIO -DCONF_DEBUG -DDEBUG_SAFESTACK -Wno-overlength-strings -g::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", |
182 | "debug-steve32", "gcc:$gcc_devteam_warn -m32 -DL_ENDIAN -DCONF_DEBUG -DDEBUG_SAFESTACK -g -pipe::-D_REENTRANT::-rdynamic -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC:-m32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", | 184 | "debug-steve32", "gcc:$gcc_devteam_warn -m32 -DL_ENDIAN -DCONF_DEBUG -DDEBUG_SAFESTACK -g -pipe::-D_REENTRANT::-rdynamic -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC:-m32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", |
183 | "debug-steve-opt", "gcc:$gcc_devteam_warn -m64 -O3 -DL_ENDIAN -DTERMIO -DCONF_DEBUG -DDEBUG_SAFESTACK -g::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", | 185 | "debug-steve-opt", "gcc:$gcc_devteam_warn -m64 -O3 -DL_ENDIAN -DTERMIO -DCONF_DEBUG -DDEBUG_SAFESTACK -g::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", |
184 | "debug-levitte-linux-elf","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", | 186 | "debug-levitte-linux-elf","gcc:-DLEVITTE_DEBUG -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -ggdb -g3 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", |
185 | "debug-levitte-linux-noasm","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", | 187 | "debug-levitte-linux-noasm","gcc:-DLEVITTE_DEBUG -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -ggdb -g3 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", |
186 | "debug-levitte-linux-elf-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", | 188 | "debug-levitte-linux-elf-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DL_ENDIAN -DTERMIO -DPEDANTIC -ggdb -g3 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", |
187 | "debug-levitte-linux-noasm-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", | 189 | "debug-levitte-linux-noasm-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -DPEDANTIC -ggdb -g3 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", |
188 | "debug-geoff32","gcc:-DBN_DEBUG -DBN_DEBUG_RAND -DBN_STRICT -DPURIFY -DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_ASM -DOPENSSL_NO_INLINE_ASM -DL_ENDIAN -DTERMIO -DPEDANTIC -O1 -ggdb2 -Wall -Werror -Wundef -pedantic -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Wmissing-prototypes -Wmissing-declarations -Wno-long-long::-D_REENTRANT::-ldl:BN_LLONG:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", | 190 | "debug-geoff32","gcc:-DBN_DEBUG -DBN_DEBUG_RAND -DBN_STRICT -DPURIFY -DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_ASM -DOPENSSL_NO_INLINE_ASM -DL_ENDIAN -DTERMIO -DPEDANTIC -O1 -ggdb2 -Wall -Werror -Wundef -pedantic -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Wmissing-prototypes -Wmissing-declarations -Wno-long-long::-D_REENTRANT::-ldl:BN_LLONG:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", |
189 | "debug-geoff64","gcc:-DBN_DEBUG -DBN_DEBUG_RAND -DBN_STRICT -DPURIFY -DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_ASM -DOPENSSL_NO_INLINE_ASM -DL_ENDIAN -DTERMIO -DPEDANTIC -O1 -ggdb2 -Wall -Werror -Wundef -pedantic -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Wmissing-prototypes -Wmissing-declarations -Wno-long-long::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", | 191 | "debug-geoff64","gcc:-DBN_DEBUG -DBN_DEBUG_RAND -DBN_STRICT -DPURIFY -DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_ASM -DOPENSSL_NO_INLINE_ASM -DL_ENDIAN -DTERMIO -DPEDANTIC -O1 -ggdb2 -Wall -Werror -Wundef -pedantic -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Wmissing-prototypes -Wmissing-declarations -Wno-long-long::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", |
190 | "debug-linux-pentium","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentium -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn", | 192 | "debug-linux-pentium","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentium -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn", |
@@ -243,7 +245,7 @@ my %table=( | |||
243 | "solaris-sparcv7-cc","cc:-xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", | 245 | "solaris-sparcv7-cc","cc:-xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", |
244 | "solaris-sparcv8-cc","cc:-xarch=v8 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", | 246 | "solaris-sparcv8-cc","cc:-xarch=v8 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", |
245 | "solaris-sparcv9-cc","cc:-xtarget=ultra -xarch=v8plus -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", | 247 | "solaris-sparcv9-cc","cc:-xtarget=ultra -xarch=v8plus -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", |
246 | "solaris64-sparcv9-cc","cc:-xtarget=ultra -xarch=v9 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-xarch=v9 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar rs::/64", | 248 | "solaris64-sparcv9-cc","cc:-xtarget=ultra -xarch=v9 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-xarch=v9 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/64", |
247 | #### | 249 | #### |
248 | "debug-solaris-sparcv8-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xarch=v8 -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", | 250 | "debug-solaris-sparcv8-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xarch=v8 -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", |
249 | "debug-solaris-sparcv9-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xtarget=ultra -xarch=v8plus -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", | 251 | "debug-solaris-sparcv9-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG_ALL -xtarget=ultra -xarch=v8plus -g -O -xstrconst -Xa -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", |
@@ -464,8 +466,8 @@ my %table=( | |||
464 | "aix64-gcc","gcc:-maix64 -O -DB_ENDIAN::-pthread:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:${ppc64_asm}:aix64:dlfcn:aix-shared::-maix64 -shared -Wl,-G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X64", | 466 | "aix64-gcc","gcc:-maix64 -O -DB_ENDIAN::-pthread:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:${ppc64_asm}:aix64:dlfcn:aix-shared::-maix64 -shared -Wl,-G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X64", |
465 | # Below targets assume AIX 5. Idea is to effectively disregard $OBJECT_MODE | 467 | # Below targets assume AIX 5. Idea is to effectively disregard $OBJECT_MODE |
466 | # at build time. $OBJECT_MODE is respected at ./config stage! | 468 | # at build time. $OBJECT_MODE is respected at ./config stage! |
467 | "aix-cc", "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::BN_LLONG RC4_CHAR:${ppc32_asm}:aix32:dlfcn:aix-shared::-q32 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32", | 469 | "aix-cc", "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded -D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR:${ppc32_asm}:aix32:dlfcn:aix-shared::-q32 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32", |
468 | "aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:${ppc64_asm}:aix64:dlfcn:aix-shared::-q64 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64", | 470 | "aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded -D_THREAD_SAFE:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:${ppc64_asm}:aix64:dlfcn:aix-shared::-q64 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64", |
469 | 471 | ||
470 | # | 472 | # |
471 | # Cray T90 and similar (SDSC) | 473 | # Cray T90 and similar (SDSC) |
@@ -524,7 +526,7 @@ my %table=( | |||
524 | # 'perl Configure VC-WIN32' with '-DUNICODE -D_UNICODE' | 526 | # 'perl Configure VC-WIN32' with '-DUNICODE -D_UNICODE' |
525 | "VC-WIN32","cl:-W3 -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE:::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${x86_asm}:win32n:win32", | 527 | "VC-WIN32","cl:-W3 -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE:::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${x86_asm}:win32n:win32", |
526 | # Unified CE target | 528 | # Unified CE target |
527 | "debug-VC-WIN32","cl:-W3 -WX -Gs0 -GF -Gy -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE:::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${x86_asm}:win32n:win32", | 529 | "debug-VC-WIN32","cl:-W3 -Gs0 -GF -Gy -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE:::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${x86_asm}:win32n:win32", |
528 | "VC-CE","cl::::WINCE::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${no_asm}:win32", | 530 | "VC-CE","cl::::WINCE::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${no_asm}:win32", |
529 | 531 | ||
530 | # Borland C++ 4.5 | 532 | # Borland C++ 4.5 |
diff --git a/src/lib/libssl/src/FAQ b/src/lib/libssl/src/FAQ index bb6f7e2d29..59d135396e 100644 --- a/src/lib/libssl/src/FAQ +++ b/src/lib/libssl/src/FAQ | |||
@@ -83,11 +83,11 @@ OpenSSL - Frequently Asked Questions | |||
83 | * Which is the current version of OpenSSL? | 83 | * Which is the current version of OpenSSL? |
84 | 84 | ||
85 | The current version is available from <URL: http://www.openssl.org>. | 85 | The current version is available from <URL: http://www.openssl.org>. |
86 | OpenSSL 1.0.1c was released on May 10th, 2012. | 86 | OpenSSL 1.0.1e was released on Feb 11th, 2013. |
87 | 87 | ||
88 | In addition to the current stable release, you can also access daily | 88 | In addition to the current stable release, you can also access daily |
89 | snapshots of the OpenSSL development version at <URL: | 89 | snapshots of the OpenSSL development version at <URL: |
90 | ftp://ftp.openssl.org/snapshot/>, or get it by anonymous CVS access. | 90 | ftp://ftp.openssl.org/snapshot/>, or get it by anonymous Git access. |
91 | 91 | ||
92 | 92 | ||
93 | * Where is the documentation? | 93 | * Where is the documentation? |
@@ -768,6 +768,9 @@ openssl-security@openssl.org if you don't get a prompt reply at least | |||
768 | acknowledging receipt then resend or mail it directly to one of the | 768 | acknowledging receipt then resend or mail it directly to one of the |
769 | more active team members (e.g. Steve). | 769 | more active team members (e.g. Steve). |
770 | 770 | ||
771 | Note that bugs only present in the openssl utility are not in general | ||
772 | considered to be security issues. | ||
773 | |||
771 | [PROG] ======================================================================== | 774 | [PROG] ======================================================================== |
772 | 775 | ||
773 | * Is OpenSSL thread-safe? | 776 | * Is OpenSSL thread-safe? |
diff --git a/src/lib/libssl/src/INSTALL.W32 b/src/lib/libssl/src/INSTALL.W32 index d23c4baf62..80e538273e 100644 --- a/src/lib/libssl/src/INSTALL.W32 +++ b/src/lib/libssl/src/INSTALL.W32 | |||
@@ -29,7 +29,7 @@ | |||
29 | is required if you intend to utilize assembler modules. Note that NASM | 29 | is required if you intend to utilize assembler modules. Note that NASM |
30 | is now the only supported assembler. | 30 | is now the only supported assembler. |
31 | 31 | ||
32 | If you are compiling from a tarball or a CVS snapshot then the Win32 files | 32 | If you are compiling from a tarball or a Git snapshot then the Win32 files |
33 | may well be not up to date. This may mean that some "tweaking" is required to | 33 | may well be not up to date. This may mean that some "tweaking" is required to |
34 | get it all to work. See the trouble shooting section later on for if (when?) | 34 | get it all to work. See the trouble shooting section later on for if (when?) |
35 | it goes wrong. | 35 | it goes wrong. |
@@ -257,7 +257,7 @@ | |||
257 | 257 | ||
258 | then ms\do_XXX should not give a warning any more. However the numbers that | 258 | then ms\do_XXX should not give a warning any more. However the numbers that |
259 | get assigned by this technique may not match those that eventually get | 259 | get assigned by this technique may not match those that eventually get |
260 | assigned in the CVS tree: so anything linked against this version of the | 260 | assigned in the Git tree: so anything linked against this version of the |
261 | library may need to be recompiled. | 261 | library may need to be recompiled. |
262 | 262 | ||
263 | If you get errors about unresolved symbols there are several possible | 263 | If you get errors about unresolved symbols there are several possible |
diff --git a/src/lib/libssl/src/MacOS/GUSI_Init.cpp b/src/lib/libssl/src/MacOS/GUSI_Init.cpp deleted file mode 100644 index d8223dba2c..0000000000 --- a/src/lib/libssl/src/MacOS/GUSI_Init.cpp +++ /dev/null | |||
@@ -1,62 +0,0 @@ | |||
1 | /**************** BEGIN GUSI CONFIGURATION **************************** | ||
2 | * | ||
3 | * GUSI Configuration section generated by GUSI Configurator | ||
4 | * last modified: Wed Jan 5 20:33:51 2000 | ||
5 | * | ||
6 | * This section will be overwritten by the next run of Configurator. | ||
7 | */ | ||
8 | |||
9 | #define GUSI_SOURCE | ||
10 | #include <GUSIConfig.h> | ||
11 | #include <sys/cdefs.h> | ||
12 | |||
13 | /* Declarations of Socket Factories */ | ||
14 | |||
15 | __BEGIN_DECLS | ||
16 | void GUSIwithInetSockets(); | ||
17 | void GUSIwithLocalSockets(); | ||
18 | void GUSIwithMTInetSockets(); | ||
19 | void GUSIwithMTTcpSockets(); | ||
20 | void GUSIwithMTUdpSockets(); | ||
21 | void GUSIwithOTInetSockets(); | ||
22 | void GUSIwithOTTcpSockets(); | ||
23 | void GUSIwithOTUdpSockets(); | ||
24 | void GUSIwithPPCSockets(); | ||
25 | void GUSISetupFactories(); | ||
26 | __END_DECLS | ||
27 | |||
28 | /* Configure Socket Factories */ | ||
29 | |||
30 | void GUSISetupFactories() | ||
31 | { | ||
32 | #ifdef GUSISetupFactories_BeginHook | ||
33 | GUSISetupFactories_BeginHook | ||
34 | #endif | ||
35 | GUSIwithInetSockets(); | ||
36 | #ifdef GUSISetupFactories_EndHook | ||
37 | GUSISetupFactories_EndHook | ||
38 | #endif | ||
39 | } | ||
40 | |||
41 | /* Declarations of File Devices */ | ||
42 | |||
43 | __BEGIN_DECLS | ||
44 | void GUSIwithDConSockets(); | ||
45 | void GUSIwithNullSockets(); | ||
46 | void GUSISetupDevices(); | ||
47 | __END_DECLS | ||
48 | |||
49 | /* Configure File Devices */ | ||
50 | |||
51 | void GUSISetupDevices() | ||
52 | { | ||
53 | #ifdef GUSISetupDevices_BeginHook | ||
54 | GUSISetupDevices_BeginHook | ||
55 | #endif | ||
56 | GUSIwithNullSockets(); | ||
57 | #ifdef GUSISetupDevices_EndHook | ||
58 | GUSISetupDevices_EndHook | ||
59 | #endif | ||
60 | } | ||
61 | |||
62 | /**************** END GUSI CONFIGURATION *************************/ | ||
diff --git a/src/lib/libssl/src/MacOS/GetHTTPS.src/CPStringUtils.cpp b/src/lib/libssl/src/MacOS/GetHTTPS.src/CPStringUtils.cpp deleted file mode 100644 index 617aae2c70..0000000000 --- a/src/lib/libssl/src/MacOS/GetHTTPS.src/CPStringUtils.cpp +++ /dev/null | |||
@@ -1,2753 +0,0 @@ | |||
1 | /* ==================================================================== | ||
2 | * Copyright (c) 1998-1999 The OpenSSL Project. All rights reserved. | ||
3 | * | ||
4 | * Redistribution and use in source and binary forms, with or without | ||
5 | * modification, are permitted provided that the following conditions | ||
6 | * are met: | ||
7 | * | ||
8 | * 1. Redistributions of source code must retain the above copyright | ||
9 | * notice, this list of conditions and the following disclaimer. | ||
10 | * | ||
11 | * 2. Redistributions in binary form must reproduce the above copyright | ||
12 | * notice, this list of conditions and the following disclaimer in | ||
13 | * the documentation and/or other materials provided with the | ||
14 | * distribution. | ||
15 | * | ||
16 | * 3. All advertising materials mentioning features or use of this | ||
17 | * software must display the following acknowledgment: | ||
18 | * "This product includes software developed by the OpenSSL Project | ||
19 | * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" | ||
20 | * | ||
21 | * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to | ||
22 | * endorse or promote products derived from this software without | ||
23 | * prior written permission. For written permission, please contact | ||
24 | * openssl-core@openssl.org. | ||
25 | * | ||
26 | * 5. Products derived from this software may not be called "OpenSSL" | ||
27 | * nor may "OpenSSL" appear in their names without prior written | ||
28 | * permission of the OpenSSL Project. | ||
29 | * | ||
30 | * 6. Redistributions of any form whatsoever must retain the following | ||
31 | * acknowledgment: | ||
32 | * "This product includes software developed by the OpenSSL Project | ||
33 | * for use in the OpenSSL Toolkit (http://www.openssl.org/)" | ||
34 | * | ||
35 | * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY | ||
36 | * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
37 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||
38 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR | ||
39 | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
40 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
41 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
42 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
43 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | ||
44 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
45 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | ||
46 | * OF THE POSSIBILITY OF SUCH DAMAGE. | ||
47 | * ==================================================================== | ||
48 | * | ||
49 | * This product includes cryptographic software written by Eric Young | ||
50 | * (eay@cryptsoft.com). This product includes software written by Tim | ||
51 | * Hudson (tjh@cryptsoft.com). | ||
52 | * | ||
53 | */ | ||
54 | |||
55 | |||
56 | |||
57 | #include "CPStringUtils.hpp" | ||
58 | #include "ErrorHandling.hpp" | ||
59 | |||
60 | |||
61 | |||
62 | #define kNumberFormatString "\p########0.00#######;-########0.00#######" | ||
63 | |||
64 | |||
65 | |||
66 | // Useful utility functions which could be optimized a whole lot | ||
67 | |||
68 | |||
69 | void CopyPStrToCStr(const unsigned char *thePStr,char *theCStr,const int maxCStrLength) | ||
70 | { | ||
71 | int i,numPChars; | ||
72 | |||
73 | |||
74 | if (thePStr != nil && theCStr != nil && maxCStrLength > 0) | ||
75 | { | ||
76 | numPChars = thePStr[0]; | ||
77 | |||
78 | for (i = 0;;i++) | ||
79 | { | ||
80 | if (i >= numPChars || i >= maxCStrLength - 1) | ||
81 | { | ||
82 | theCStr[i] = 0; | ||
83 | |||
84 | break; | ||
85 | } | ||
86 | |||
87 | else | ||
88 | { | ||
89 | theCStr[i] = thePStr[i + 1]; | ||
90 | } | ||
91 | } | ||
92 | } | ||
93 | } | ||
94 | |||
95 | |||
96 | void CopyPStrToPStr(const unsigned char *theSrcPStr,unsigned char *theDstPStr,const int maxDstStrLength) | ||
97 | { | ||
98 | int theMaxDstStrLength; | ||
99 | |||
100 | |||
101 | theMaxDstStrLength = maxDstStrLength; | ||
102 | |||
103 | |||
104 | if (theDstPStr != nil && theSrcPStr != nil && theMaxDstStrLength > 0) | ||
105 | { | ||
106 | if (theMaxDstStrLength > 255) | ||
107 | { | ||
108 | theMaxDstStrLength = 255; | ||
109 | } | ||
110 | |||
111 | |||
112 | if (theMaxDstStrLength - 1 < theSrcPStr[0]) | ||
113 | { | ||
114 | BlockMove(theSrcPStr + 1,theDstPStr + 1,theMaxDstStrLength - 1); | ||
115 | |||
116 | theDstPStr[0] = theMaxDstStrLength - 1; | ||
117 | } | ||
118 | |||
119 | else | ||
120 | { | ||
121 | BlockMove(theSrcPStr,theDstPStr,theSrcPStr[0] + 1); | ||
122 | } | ||
123 | } | ||
124 | } | ||
125 | |||
126 | |||
127 | void CopyCStrToCStr(const char *theSrcCStr,char *theDstCStr,const int maxDstStrLength) | ||
128 | { | ||
129 | int i; | ||
130 | |||
131 | |||
132 | if (theDstCStr != nil && theSrcCStr != nil && maxDstStrLength > 0) | ||
133 | { | ||
134 | for (i = 0;;i++) | ||
135 | { | ||
136 | if (theSrcCStr[i] == 0 || i >= maxDstStrLength - 1) | ||
137 | { | ||
138 | theDstCStr[i] = 0; | ||
139 | |||
140 | break; | ||
141 | } | ||
142 | |||
143 | else | ||
144 | { | ||
145 | theDstCStr[i] = theSrcCStr[i]; | ||
146 | } | ||
147 | } | ||
148 | } | ||
149 | } | ||
150 | |||
151 | |||
152 | |||
153 | void CopyCSubstrToCStr(const char *theSrcCStr,const int maxCharsToCopy,char *theDstCStr,const int maxDstStrLength) | ||
154 | { | ||
155 | int i; | ||
156 | |||
157 | |||
158 | if (theDstCStr != nil && theSrcCStr != nil && maxDstStrLength > 0) | ||
159 | { | ||
160 | for (i = 0;;i++) | ||
161 | { | ||
162 | if (theSrcCStr[i] == 0 || i >= maxDstStrLength - 1 || i >= maxCharsToCopy) | ||
163 | { | ||
164 | theDstCStr[i] = 0; | ||
165 | |||
166 | break; | ||
167 | } | ||
168 | |||
169 | else | ||
170 | { | ||
171 | theDstCStr[i] = theSrcCStr[i]; | ||
172 | } | ||
173 | } | ||
174 | } | ||
175 | } | ||
176 | |||
177 | |||
178 | |||
179 | void CopyCSubstrToPStr(const char *theSrcCStr,const int maxCharsToCopy,unsigned char *theDstPStr,const int maxDstStrLength) | ||
180 | { | ||
181 | int i; | ||
182 | int theMaxDstStrLength; | ||
183 | |||
184 | |||
185 | theMaxDstStrLength = maxDstStrLength; | ||
186 | |||
187 | if (theDstPStr != nil && theSrcCStr != nil && theMaxDstStrLength > 0) | ||
188 | { | ||
189 | if (theMaxDstStrLength > 255) | ||
190 | { | ||
191 | theMaxDstStrLength = 255; | ||
192 | } | ||
193 | |||
194 | |||
195 | for (i = 0;;i++) | ||
196 | { | ||
197 | if (theSrcCStr[i] == 0 || i >= theMaxDstStrLength - 1 || i >= maxCharsToCopy) | ||
198 | { | ||
199 | theDstPStr[0] = i; | ||
200 | |||
201 | break; | ||
202 | } | ||
203 | |||
204 | else | ||
205 | { | ||
206 | theDstPStr[i + 1] = theSrcCStr[i]; | ||
207 | } | ||
208 | } | ||
209 | } | ||
210 | } | ||
211 | |||
212 | |||
213 | |||
214 | void CopyCStrToPStr(const char *theSrcCStr,unsigned char *theDstPStr,const int maxDstStrLength) | ||
215 | { | ||
216 | int i; | ||
217 | int theMaxDstStrLength; | ||
218 | |||
219 | |||
220 | theMaxDstStrLength = maxDstStrLength; | ||
221 | |||
222 | if (theDstPStr != nil && theSrcCStr != nil && theMaxDstStrLength > 0) | ||
223 | { | ||
224 | if (theMaxDstStrLength > 255) | ||
225 | { | ||
226 | theMaxDstStrLength = 255; | ||
227 | } | ||
228 | |||
229 | |||
230 | for (i = 0;;i++) | ||
231 | { | ||
232 | if (i >= theMaxDstStrLength - 1 || theSrcCStr[i] == 0) | ||
233 | { | ||
234 | theDstPStr[0] = i; | ||
235 | |||
236 | break; | ||
237 | } | ||
238 | |||
239 | else | ||
240 | { | ||
241 | theDstPStr[i + 1] = theSrcCStr[i]; | ||
242 | } | ||
243 | } | ||
244 | } | ||
245 | } | ||
246 | |||
247 | |||
248 | void ConcatPStrToCStr(const unsigned char *thePStr,char *theCStr,const int maxCStrLength) | ||
249 | { | ||
250 | int i,numPChars,cStrLength; | ||
251 | |||
252 | |||
253 | if (thePStr != nil && theCStr != nil && maxCStrLength > 0) | ||
254 | { | ||
255 | for (cStrLength = 0;theCStr[cStrLength] != 0;cStrLength++) | ||
256 | { | ||
257 | |||
258 | } | ||
259 | |||
260 | |||
261 | numPChars = thePStr[0]; | ||
262 | |||
263 | |||
264 | for (i = 0;;i++) | ||
265 | { | ||
266 | if (i >= numPChars || cStrLength >= maxCStrLength - 1) | ||
267 | { | ||
268 | theCStr[cStrLength++] = 0; | ||
269 | |||
270 | break; | ||
271 | } | ||
272 | |||
273 | else | ||
274 | { | ||
275 | theCStr[cStrLength++] = thePStr[i + 1]; | ||
276 | } | ||
277 | } | ||
278 | } | ||
279 | } | ||
280 | |||
281 | |||
282 | |||
283 | void ConcatPStrToPStr(const unsigned char *theSrcPStr,unsigned char *theDstPStr,const int maxDstStrLength) | ||
284 | { | ||
285 | int theMaxDstStrLength; | ||
286 | |||
287 | |||
288 | theMaxDstStrLength = maxDstStrLength; | ||
289 | |||
290 | if (theSrcPStr != nil && theDstPStr != nil && theMaxDstStrLength > 0) | ||
291 | { | ||
292 | if (theMaxDstStrLength > 255) | ||
293 | { | ||
294 | theMaxDstStrLength = 255; | ||
295 | } | ||
296 | |||
297 | |||
298 | if (theMaxDstStrLength - theDstPStr[0] - 1 < theSrcPStr[0]) | ||
299 | { | ||
300 | BlockMove(theSrcPStr + 1,theDstPStr + theDstPStr[0] + 1,theMaxDstStrLength - 1 - theDstPStr[0]); | ||
301 | |||
302 | theDstPStr[0] = theMaxDstStrLength - 1; | ||
303 | } | ||
304 | |||
305 | else | ||
306 | { | ||
307 | BlockMove(theSrcPStr + 1,theDstPStr + theDstPStr[0] + 1,theSrcPStr[0]); | ||
308 | |||
309 | theDstPStr[0] += theSrcPStr[0]; | ||
310 | } | ||
311 | } | ||
312 | } | ||
313 | |||
314 | |||
315 | |||
316 | void ConcatCStrToPStr(const char *theSrcCStr,unsigned char *theDstPStr,const int maxDstStrLength) | ||
317 | { | ||
318 | int i,thePStrLength; | ||
319 | int theMaxDstStrLength; | ||
320 | |||
321 | |||
322 | theMaxDstStrLength = maxDstStrLength; | ||
323 | |||
324 | if (theSrcCStr != nil && theDstPStr != nil && theMaxDstStrLength > 0) | ||
325 | { | ||
326 | if (theMaxDstStrLength > 255) | ||
327 | { | ||
328 | theMaxDstStrLength = 255; | ||
329 | } | ||
330 | |||
331 | |||
332 | thePStrLength = theDstPStr[0]; | ||
333 | |||
334 | for (i = 0;;i++) | ||
335 | { | ||
336 | if (theSrcCStr[i] == 0 || thePStrLength >= theMaxDstStrLength - 1) | ||
337 | { | ||
338 | theDstPStr[0] = thePStrLength; | ||
339 | |||
340 | break; | ||
341 | } | ||
342 | |||
343 | else | ||
344 | { | ||
345 | theDstPStr[thePStrLength + 1] = theSrcCStr[i]; | ||
346 | |||
347 | thePStrLength++; | ||
348 | } | ||
349 | } | ||
350 | } | ||
351 | } | ||
352 | |||
353 | |||
354 | |||
355 | void ConcatCStrToCStr(const char *theSrcCStr,char *theDstCStr,const int maxCStrLength) | ||
356 | { | ||
357 | int cStrLength; | ||
358 | |||
359 | |||
360 | if (theSrcCStr != nil && theDstCStr != nil && maxCStrLength > 0) | ||
361 | { | ||
362 | for (cStrLength = 0;theDstCStr[cStrLength] != 0;cStrLength++) | ||
363 | { | ||
364 | |||
365 | } | ||
366 | |||
367 | |||
368 | for (;;) | ||
369 | { | ||
370 | if (*theSrcCStr == 0 || cStrLength >= maxCStrLength - 1) | ||
371 | { | ||
372 | theDstCStr[cStrLength++] = 0; | ||
373 | |||
374 | break; | ||
375 | } | ||
376 | |||
377 | else | ||
378 | { | ||
379 | theDstCStr[cStrLength++] = *theSrcCStr++; | ||
380 | } | ||
381 | } | ||
382 | } | ||
383 | } | ||
384 | |||
385 | |||
386 | |||
387 | void ConcatCharToCStr(const char theChar,char *theDstCStr,const int maxCStrLength) | ||
388 | { | ||
389 | int cStrLength; | ||
390 | |||
391 | |||
392 | if (theDstCStr != nil && maxCStrLength > 0) | ||
393 | { | ||
394 | cStrLength = CStrLength(theDstCStr); | ||
395 | |||
396 | if (cStrLength < maxCStrLength - 1) | ||
397 | { | ||
398 | theDstCStr[cStrLength++] = theChar; | ||
399 | theDstCStr[cStrLength++] = '\0'; | ||
400 | } | ||
401 | } | ||
402 | } | ||
403 | |||
404 | |||
405 | |||
406 | void ConcatCharToPStr(const char theChar,unsigned char *theDstPStr,const int maxPStrLength) | ||
407 | { | ||
408 | int pStrLength; | ||
409 | |||
410 | |||
411 | if (theDstPStr != nil && maxPStrLength > 0) | ||
412 | { | ||
413 | pStrLength = PStrLength(theDstPStr); | ||
414 | |||
415 | if (pStrLength < maxPStrLength - 1 && pStrLength < 255) | ||
416 | { | ||
417 | theDstPStr[pStrLength + 1] = theChar; | ||
418 | theDstPStr[0] += 1; | ||
419 | } | ||
420 | } | ||
421 | } | ||
422 | |||
423 | |||
424 | |||
425 | |||
426 | int CompareCStrs(const char *theFirstCStr,const char *theSecondCStr,const Boolean ignoreCase) | ||
427 | { | ||
428 | int returnValue; | ||
429 | char firstChar,secondChar; | ||
430 | |||
431 | |||
432 | returnValue = 0; | ||
433 | |||
434 | |||
435 | if (theFirstCStr != nil && theSecondCStr != nil) | ||
436 | { | ||
437 | for (;;) | ||
438 | { | ||
439 | firstChar = *theFirstCStr; | ||
440 | secondChar = *theSecondCStr; | ||
441 | |||
442 | if (ignoreCase == true) | ||
443 | { | ||
444 | if (firstChar >= 'A' && firstChar <= 'Z') | ||
445 | { | ||
446 | firstChar = 'a' + (firstChar - 'A'); | ||
447 | } | ||
448 | |||
449 | if (secondChar >= 'A' && secondChar <= 'Z') | ||
450 | { | ||
451 | secondChar = 'a' + (secondChar - 'A'); | ||
452 | } | ||
453 | } | ||
454 | |||
455 | |||
456 | if (firstChar == 0 && secondChar != 0) | ||
457 | { | ||
458 | returnValue = -1; | ||
459 | |||
460 | break; | ||
461 | } | ||
462 | |||
463 | else if (firstChar != 0 && secondChar == 0) | ||
464 | { | ||
465 | returnValue = 1; | ||
466 | |||
467 | break; | ||
468 | } | ||
469 | |||
470 | else if (firstChar == 0 && secondChar == 0) | ||
471 | { | ||
472 | returnValue = 0; | ||
473 | |||
474 | break; | ||
475 | } | ||
476 | |||
477 | else if (firstChar < secondChar) | ||
478 | { | ||
479 | returnValue = -1; | ||
480 | |||
481 | break; | ||
482 | } | ||
483 | |||
484 | else if (firstChar > secondChar) | ||
485 | { | ||
486 | returnValue = 1; | ||
487 | |||
488 | break; | ||
489 | } | ||
490 | |||
491 | theFirstCStr++; | ||
492 | theSecondCStr++; | ||
493 | } | ||
494 | } | ||
495 | |||
496 | |||
497 | return(returnValue); | ||
498 | } | ||
499 | |||
500 | |||
501 | |||
502 | Boolean CStrsAreEqual(const char *theFirstCStr,const char *theSecondCStr,const Boolean ignoreCase) | ||
503 | { | ||
504 | if (CompareCStrs(theFirstCStr,theSecondCStr,ignoreCase) == 0) | ||
505 | { | ||
506 | return true; | ||
507 | } | ||
508 | |||
509 | else | ||
510 | { | ||
511 | return false; | ||
512 | } | ||
513 | } | ||
514 | |||
515 | |||
516 | Boolean PStrsAreEqual(const unsigned char *theFirstPStr,const unsigned char *theSecondPStr,const Boolean ignoreCase) | ||
517 | { | ||
518 | if (ComparePStrs(theFirstPStr,theSecondPStr,ignoreCase) == 0) | ||
519 | { | ||
520 | return true; | ||
521 | } | ||
522 | |||
523 | else | ||
524 | { | ||
525 | return false; | ||
526 | } | ||
527 | } | ||
528 | |||
529 | |||
530 | |||
531 | int ComparePStrs(const unsigned char *theFirstPStr,const unsigned char *theSecondPStr,const Boolean ignoreCase) | ||
532 | { | ||
533 | int i,returnValue; | ||
534 | char firstChar,secondChar; | ||
535 | |||
536 | |||
537 | returnValue = 0; | ||
538 | |||
539 | |||
540 | if (theFirstPStr != nil && theSecondPStr != nil) | ||
541 | { | ||
542 | for (i = 1;;i++) | ||
543 | { | ||
544 | firstChar = theFirstPStr[i]; | ||
545 | secondChar = theSecondPStr[i]; | ||
546 | |||
547 | if (ignoreCase == true) | ||
548 | { | ||
549 | if (firstChar >= 'A' && firstChar <= 'Z') | ||
550 | { | ||
551 | firstChar = 'a' + (firstChar - 'A'); | ||
552 | } | ||
553 | |||
554 | if (secondChar >= 'A' && secondChar <= 'Z') | ||
555 | { | ||
556 | secondChar = 'a' + (secondChar - 'A'); | ||
557 | } | ||
558 | } | ||
559 | |||
560 | |||
561 | if (theFirstPStr[0] < i && theSecondPStr[0] >= i) | ||
562 | { | ||
563 | returnValue = -1; | ||
564 | |||
565 | break; | ||
566 | } | ||
567 | |||
568 | else if (theFirstPStr[0] >= i && theSecondPStr[0] < i) | ||
569 | { | ||
570 | returnValue = 1; | ||
571 | |||
572 | break; | ||
573 | } | ||
574 | |||
575 | else if (theFirstPStr[0] < i && theSecondPStr[0] < i) | ||
576 | { | ||
577 | returnValue = 0; | ||
578 | |||
579 | break; | ||
580 | } | ||
581 | |||
582 | else if (firstChar < secondChar) | ||
583 | { | ||
584 | returnValue = -1; | ||
585 | |||
586 | break; | ||
587 | } | ||
588 | |||
589 | else if (firstChar > secondChar) | ||
590 | { | ||
591 | returnValue = 1; | ||
592 | |||
593 | break; | ||
594 | } | ||
595 | } | ||
596 | } | ||
597 | |||
598 | |||
599 | return(returnValue); | ||
600 | } | ||
601 | |||
602 | |||
603 | |||
604 | int CompareCStrToPStr(const char *theCStr,const unsigned char *thePStr,const Boolean ignoreCase) | ||
605 | { | ||
606 | int returnValue; | ||
607 | char tempString[256]; | ||
608 | |||
609 | |||
610 | returnValue = 0; | ||
611 | |||
612 | if (theCStr != nil && thePStr != nil) | ||
613 | { | ||
614 | CopyPStrToCStr(thePStr,tempString,sizeof(tempString)); | ||
615 | |||
616 | returnValue = CompareCStrs(theCStr,tempString,ignoreCase); | ||
617 | } | ||
618 | |||
619 | |||
620 | return(returnValue); | ||
621 | } | ||
622 | |||
623 | |||
624 | |||
625 | void ConcatLongIntToCStr(const long theNum,char *theCStr,const int maxCStrLength,const int numDigits) | ||
626 | { | ||
627 | Str255 theStr255; | ||
628 | |||
629 | |||
630 | NumToString(theNum,theStr255); | ||
631 | |||
632 | |||
633 | if (numDigits > 0) | ||
634 | { | ||
635 | int charsToInsert; | ||
636 | |||
637 | |||
638 | charsToInsert = numDigits - PStrLength(theStr255); | ||
639 | |||
640 | if (charsToInsert > 0) | ||
641 | { | ||
642 | char tempString[256]; | ||
643 | |||
644 | CopyCStrToCStr("",tempString,sizeof(tempString)); | ||
645 | |||
646 | for (;charsToInsert > 0;charsToInsert--) | ||
647 | { | ||
648 | ConcatCStrToCStr("0",tempString,sizeof(tempString)); | ||
649 | } | ||
650 | |||
651 | ConcatPStrToCStr(theStr255,tempString,sizeof(tempString)); | ||
652 | |||
653 | CopyCStrToPStr(tempString,theStr255,sizeof(theStr255)); | ||
654 | } | ||
655 | } | ||
656 | |||
657 | |||
658 | ConcatPStrToCStr(theStr255,theCStr,maxCStrLength); | ||
659 | } | ||
660 | |||
661 | |||
662 | |||
663 | |||
664 | void ConcatLongIntToPStr(const long theNum,unsigned char *thePStr,const int maxPStrLength,const int numDigits) | ||
665 | { | ||
666 | Str255 theStr255; | ||
667 | |||
668 | |||
669 | NumToString(theNum,theStr255); | ||
670 | |||
671 | |||
672 | if (numDigits > 0) | ||
673 | { | ||
674 | int charsToInsert; | ||
675 | |||
676 | |||
677 | charsToInsert = numDigits - PStrLength(theStr255); | ||
678 | |||
679 | if (charsToInsert > 0) | ||
680 | { | ||
681 | char tempString[256]; | ||
682 | |||
683 | CopyCStrToCStr("",tempString,sizeof(tempString)); | ||
684 | |||
685 | for (;charsToInsert > 0;charsToInsert--) | ||
686 | { | ||
687 | ConcatCStrToCStr("0",tempString,sizeof(tempString)); | ||
688 | } | ||
689 | |||
690 | ConcatPStrToCStr(theStr255,tempString,sizeof(tempString)); | ||
691 | |||
692 | CopyCStrToPStr(tempString,theStr255,sizeof(theStr255)); | ||
693 | } | ||
694 | } | ||
695 | |||
696 | |||
697 | ConcatPStrToPStr(theStr255,thePStr,maxPStrLength); | ||
698 | } | ||
699 | |||
700 | |||
701 | |||
702 | void CopyCStrAndConcatLongIntToCStr(const char *theSrcCStr,const long theNum,char *theDstCStr,const int maxDstStrLength) | ||
703 | { | ||
704 | CopyCStrToCStr(theSrcCStr,theDstCStr,maxDstStrLength); | ||
705 | |||
706 | ConcatLongIntToCStr(theNum,theDstCStr,maxDstStrLength); | ||
707 | } | ||
708 | |||
709 | |||
710 | |||
711 | void CopyLongIntToCStr(const long theNum,char *theCStr,const int maxCStrLength,const int numDigits) | ||
712 | { | ||
713 | Str255 theStr255; | ||
714 | |||
715 | |||
716 | NumToString(theNum,theStr255); | ||
717 | |||
718 | |||
719 | if (numDigits > 0) | ||
720 | { | ||
721 | int charsToInsert; | ||
722 | |||
723 | |||
724 | charsToInsert = numDigits - PStrLength(theStr255); | ||
725 | |||
726 | if (charsToInsert > 0) | ||
727 | { | ||
728 | char tempString[256]; | ||
729 | |||
730 | CopyCStrToCStr("",tempString,sizeof(tempString)); | ||
731 | |||
732 | for (;charsToInsert > 0;charsToInsert--) | ||
733 | { | ||
734 | ConcatCStrToCStr("0",tempString,sizeof(tempString)); | ||
735 | } | ||
736 | |||
737 | ConcatPStrToCStr(theStr255,tempString,sizeof(tempString)); | ||
738 | |||
739 | CopyCStrToPStr(tempString,theStr255,sizeof(theStr255)); | ||
740 | } | ||
741 | } | ||
742 | |||
743 | |||
744 | CopyPStrToCStr(theStr255,theCStr,maxCStrLength); | ||
745 | } | ||
746 | |||
747 | |||
748 | |||
749 | |||
750 | |||
751 | void CopyUnsignedLongIntToCStr(const unsigned long theNum,char *theCStr,const int maxCStrLength) | ||
752 | { | ||
753 | char tempString[256]; | ||
754 | int srcCharIndex,dstCharIndex; | ||
755 | unsigned long tempNum,quotient,remainder; | ||
756 | |||
757 | |||
758 | if (theNum == 0) | ||
759 | { | ||
760 | CopyCStrToCStr("0",theCStr,maxCStrLength); | ||
761 | } | ||
762 | |||
763 | else | ||
764 | { | ||
765 | srcCharIndex = 0; | ||
766 | |||
767 | tempNum = theNum; | ||
768 | |||
769 | for (;;) | ||
770 | { | ||
771 | if (srcCharIndex >= sizeof(tempString) - 1 || tempNum == 0) | ||
772 | { | ||
773 | for (dstCharIndex = 0;;) | ||
774 | { | ||
775 | if (dstCharIndex >= maxCStrLength - 1 || srcCharIndex <= 0) | ||
776 | { | ||
777 | theCStr[dstCharIndex] = 0; | ||
778 | |||
779 | break; | ||
780 | } | ||
781 | |||
782 | theCStr[dstCharIndex++] = tempString[--srcCharIndex]; | ||
783 | } | ||
784 | |||
785 | break; | ||
786 | } | ||
787 | |||
788 | |||
789 | quotient = tempNum / 10; | ||
790 | |||
791 | remainder = tempNum - (quotient * 10); | ||
792 | |||
793 | tempString[srcCharIndex] = '0' + remainder; | ||
794 | |||
795 | srcCharIndex++; | ||
796 | |||
797 | tempNum = quotient; | ||
798 | } | ||
799 | } | ||
800 | } | ||
801 | |||
802 | |||
803 | |||
804 | |||
805 | void CopyLongIntToPStr(const long theNum,unsigned char *thePStr,const int maxPStrLength,const int numDigits) | ||
806 | { | ||
807 | char tempString[256]; | ||
808 | |||
809 | |||
810 | CopyLongIntToCStr(theNum,tempString,sizeof(tempString),numDigits); | ||
811 | |||
812 | CopyCStrToPStr(tempString,thePStr,maxPStrLength); | ||
813 | } | ||
814 | |||
815 | |||
816 | |||
817 | OSErr CopyLongIntToNewHandle(const long inTheLongInt,Handle *theHandle) | ||
818 | { | ||
819 | OSErr errCode = noErr; | ||
820 | char tempString[32]; | ||
821 | |||
822 | |||
823 | CopyLongIntToCStr(inTheLongInt,tempString,sizeof(tempString)); | ||
824 | |||
825 | errCode = CopyCStrToNewHandle(tempString,theHandle); | ||
826 | |||
827 | return(errCode); | ||
828 | } | ||
829 | |||
830 | |||
831 | OSErr CopyLongIntToExistingHandle(const long inTheLongInt,Handle theHandle) | ||
832 | { | ||
833 | OSErr errCode = noErr; | ||
834 | char tempString[32]; | ||
835 | |||
836 | |||
837 | CopyLongIntToCStr(inTheLongInt,tempString,sizeof(tempString)); | ||
838 | |||
839 | errCode = CopyCStrToExistingHandle(tempString,theHandle); | ||
840 | |||
841 | return(errCode); | ||
842 | } | ||
843 | |||
844 | |||
845 | |||
846 | |||
847 | OSErr CopyCStrToExistingHandle(const char *theCString,Handle theHandle) | ||
848 | { | ||
849 | OSErr errCode = noErr; | ||
850 | long stringLength; | ||
851 | |||
852 | |||
853 | if (theCString == nil) | ||
854 | { | ||
855 | SetErrorMessageAndBail(("CopyCStrToExistingHandle: Bad parameter, theCString == nil")); | ||
856 | } | ||
857 | |||
858 | if (theHandle == nil) | ||
859 | { | ||
860 | SetErrorMessageAndBail(("CopyCStrToExistingHandle: Bad parameter, theHandle == nil")); | ||
861 | } | ||
862 | |||
863 | if (*theHandle == nil) | ||
864 | { | ||
865 | SetErrorMessageAndBail(("CopyCStrToExistingHandle: Bad parameter, *theHandle == nil")); | ||
866 | } | ||
867 | |||
868 | |||
869 | |||
870 | stringLength = CStrLength(theCString) + 1; | ||
871 | |||
872 | SetHandleSize(theHandle,stringLength); | ||
873 | |||
874 | if (GetHandleSize(theHandle) < stringLength) | ||
875 | { | ||
876 | SetErrorMessageAndLongIntAndBail("CopyCStrToExistingHandle: Can't set Handle size, MemError() = ",MemError()); | ||
877 | } | ||
878 | |||
879 | |||
880 | ::BlockMove(theCString,*theHandle,stringLength); | ||
881 | |||
882 | |||
883 | EXITPOINT: | ||
884 | |||
885 | return(errCode); | ||
886 | } | ||
887 | |||
888 | |||
889 | |||
890 | |||
891 | |||
892 | OSErr CopyCStrToNewHandle(const char *theCString,Handle *theHandle) | ||
893 | { | ||
894 | OSErr errCode = noErr; | ||
895 | long stringLength; | ||
896 | |||
897 | |||
898 | if (theCString == nil) | ||
899 | { | ||
900 | SetErrorMessageAndBail(("CopyCStrToNewHandle: Bad parameter, theCString == nil")); | ||
901 | } | ||
902 | |||
903 | if (theHandle == nil) | ||
904 | { | ||
905 | SetErrorMessageAndBail(("CopyCStrToNewHandle: Bad parameter, theHandle == nil")); | ||
906 | } | ||
907 | |||
908 | |||
909 | |||
910 | stringLength = CStrLength(theCString) + 1; | ||
911 | |||
912 | *theHandle = NewHandle(stringLength); | ||
913 | |||
914 | if (*theHandle == nil) | ||
915 | { | ||
916 | SetErrorMessageAndLongIntAndBail("CopyCStrToNewHandle: Can't allocate Handle, MemError() = ",MemError()); | ||
917 | } | ||
918 | |||
919 | |||
920 | ::BlockMove(theCString,**theHandle,stringLength); | ||
921 | |||
922 | |||
923 | EXITPOINT: | ||
924 | |||
925 | return(errCode); | ||
926 | } | ||
927 | |||
928 | |||
929 | |||
930 | OSErr CopyPStrToNewHandle(const unsigned char *thePString,Handle *theHandle) | ||
931 | { | ||
932 | OSErr errCode = noErr; | ||
933 | long stringLength; | ||
934 | |||
935 | |||
936 | if (thePString == nil) | ||
937 | { | ||
938 | SetErrorMessageAndBail(("CopyPStrToNewHandle: Bad parameter, thePString == nil")); | ||
939 | } | ||
940 | |||
941 | if (theHandle == nil) | ||
942 | { | ||
943 | SetErrorMessageAndBail(("CopyPStrToNewHandle: Bad parameter, theHandle == nil")); | ||
944 | } | ||
945 | |||
946 | |||
947 | |||
948 | stringLength = PStrLength(thePString) + 1; | ||
949 | |||
950 | *theHandle = NewHandle(stringLength); | ||
951 | |||
952 | if (*theHandle == nil) | ||
953 | { | ||
954 | SetErrorMessageAndLongIntAndBail("CopyPStrToNewHandle: Can't allocate Handle, MemError() = ",MemError()); | ||
955 | } | ||
956 | |||
957 | |||
958 | if (stringLength > 1) | ||
959 | { | ||
960 | BlockMove(thePString + 1,**theHandle,stringLength - 1); | ||
961 | } | ||
962 | |||
963 | (**theHandle)[stringLength - 1] = 0; | ||
964 | |||
965 | |||
966 | EXITPOINT: | ||
967 | |||
968 | return(errCode); | ||
969 | } | ||
970 | |||
971 | |||
972 | OSErr AppendPStrToHandle(const unsigned char *thePString,Handle theHandle,long *currentLength) | ||
973 | { | ||
974 | OSErr errCode = noErr; | ||
975 | char tempString[256]; | ||
976 | |||
977 | |||
978 | CopyPStrToCStr(thePString,tempString,sizeof(tempString)); | ||
979 | |||
980 | errCode = AppendCStrToHandle(tempString,theHandle,currentLength); | ||
981 | |||
982 | |||
983 | EXITPOINT: | ||
984 | |||
985 | return(errCode); | ||
986 | } | ||
987 | |||
988 | |||
989 | |||
990 | OSErr AppendCStrToHandle(const char *theCString,Handle theHandle,long *currentLength,long *maxLength) | ||
991 | { | ||
992 | OSErr errCode = noErr; | ||
993 | long handleMaxLength,handleCurrentLength,stringLength,byteCount; | ||
994 | |||
995 | |||
996 | if (theCString == nil) | ||
997 | { | ||
998 | SetErrorMessageAndBail(("AppendCStrToHandle: Bad parameter, theCString == nil")); | ||
999 | } | ||
1000 | |||
1001 | if (theHandle == nil) | ||
1002 | { | ||
1003 | SetErrorMessageAndBail(("AppendCStrToHandle: Bad parameter, theHandle == nil")); | ||
1004 | } | ||
1005 | |||
1006 | |||
1007 | if (maxLength != nil) | ||
1008 | { | ||
1009 | handleMaxLength = *maxLength; | ||
1010 | } | ||
1011 | |||
1012 | else | ||
1013 | { | ||
1014 | handleMaxLength = GetHandleSize(theHandle); | ||
1015 | } | ||
1016 | |||
1017 | |||
1018 | if (currentLength != nil && *currentLength >= 0) | ||
1019 | { | ||
1020 | handleCurrentLength = *currentLength; | ||
1021 | } | ||
1022 | |||
1023 | else | ||
1024 | { | ||
1025 | handleCurrentLength = CStrLength(*theHandle); | ||
1026 | } | ||
1027 | |||
1028 | |||
1029 | stringLength = CStrLength(theCString); | ||
1030 | |||
1031 | byteCount = handleCurrentLength + stringLength + 1; | ||
1032 | |||
1033 | if (byteCount > handleMaxLength) | ||
1034 | { | ||
1035 | SetHandleSize(theHandle,handleCurrentLength + stringLength + 1); | ||
1036 | |||
1037 | if (maxLength != nil) | ||
1038 | { | ||
1039 | *maxLength = GetHandleSize(theHandle); | ||
1040 | |||
1041 | handleMaxLength = *maxLength; | ||
1042 | } | ||
1043 | |||
1044 | else | ||
1045 | { | ||
1046 | handleMaxLength = GetHandleSize(theHandle); | ||
1047 | } | ||
1048 | |||
1049 | if (byteCount > handleMaxLength) | ||
1050 | { | ||
1051 | SetErrorMessageAndLongIntAndBail("AppendCStrToHandle: Can't increase Handle allocation, MemError() = ",MemError()); | ||
1052 | } | ||
1053 | } | ||
1054 | |||
1055 | |||
1056 | BlockMove(theCString,*theHandle + handleCurrentLength,stringLength + 1); | ||
1057 | |||
1058 | |||
1059 | if (currentLength != nil) | ||
1060 | { | ||
1061 | *currentLength += stringLength; | ||
1062 | } | ||
1063 | |||
1064 | |||
1065 | errCode = noErr; | ||
1066 | |||
1067 | |||
1068 | EXITPOINT: | ||
1069 | |||
1070 | return(errCode); | ||
1071 | } | ||
1072 | |||
1073 | |||
1074 | |||
1075 | OSErr AppendCharsToHandle(const char *theChars,const int numChars,Handle theHandle,long *currentLength,long *maxLength) | ||
1076 | { | ||
1077 | OSErr errCode = noErr; | ||
1078 | long handleMaxLength,handleCurrentLength,byteCount; | ||
1079 | |||
1080 | |||
1081 | if (theChars == nil) | ||
1082 | { | ||
1083 | SetErrorMessageAndBail(("AppendCharsToHandle: Bad parameter, theChars == nil")); | ||
1084 | } | ||
1085 | |||
1086 | if (theHandle == nil) | ||
1087 | { | ||
1088 | SetErrorMessageAndBail(("AppendCharsToHandle: Bad parameter, theHandle == nil")); | ||
1089 | } | ||
1090 | |||
1091 | |||
1092 | if (maxLength != nil) | ||
1093 | { | ||
1094 | handleMaxLength = *maxLength; | ||
1095 | } | ||
1096 | |||
1097 | else | ||
1098 | { | ||
1099 | handleMaxLength = GetHandleSize(theHandle); | ||
1100 | } | ||
1101 | |||
1102 | |||
1103 | if (currentLength != nil && *currentLength >= 0) | ||
1104 | { | ||
1105 | handleCurrentLength = *currentLength; | ||
1106 | } | ||
1107 | |||
1108 | else | ||
1109 | { | ||
1110 | handleCurrentLength = CStrLength(*theHandle); | ||
1111 | } | ||
1112 | |||
1113 | |||
1114 | byteCount = handleCurrentLength + numChars + 1; | ||
1115 | |||
1116 | if (byteCount > handleMaxLength) | ||
1117 | { | ||
1118 | SetHandleSize(theHandle,handleCurrentLength + numChars + 1); | ||
1119 | |||
1120 | if (maxLength != nil) | ||
1121 | { | ||
1122 | *maxLength = GetHandleSize(theHandle); | ||
1123 | |||
1124 | handleMaxLength = *maxLength; | ||
1125 | } | ||
1126 | |||
1127 | else | ||
1128 | { | ||
1129 | handleMaxLength = GetHandleSize(theHandle); | ||
1130 | } | ||
1131 | |||
1132 | if (byteCount > handleMaxLength) | ||
1133 | { | ||
1134 | SetErrorMessageAndLongIntAndBail("AppendCharsToHandle: Can't increase Handle allocation, MemError() = ",MemError()); | ||
1135 | } | ||
1136 | } | ||
1137 | |||
1138 | |||
1139 | BlockMove(theChars,*theHandle + handleCurrentLength,numChars); | ||
1140 | |||
1141 | (*theHandle)[handleCurrentLength + numChars] = '\0'; | ||
1142 | |||
1143 | if (currentLength != nil) | ||
1144 | { | ||
1145 | *currentLength += numChars; | ||
1146 | } | ||
1147 | |||
1148 | |||
1149 | errCode = noErr; | ||
1150 | |||
1151 | |||
1152 | EXITPOINT: | ||
1153 | |||
1154 | return(errCode); | ||
1155 | } | ||
1156 | |||
1157 | |||
1158 | |||
1159 | OSErr AppendLongIntToHandle(const long inTheLongInt,Handle theHandle,long *currentLength) | ||
1160 | { | ||
1161 | OSErr errCode = noErr; | ||
1162 | char tempString[32]; | ||
1163 | |||
1164 | |||
1165 | CopyLongIntToCStr(inTheLongInt,tempString,sizeof(tempString)); | ||
1166 | |||
1167 | errCode = AppendCStrToHandle(tempString,theHandle,currentLength); | ||
1168 | |||
1169 | return(errCode); | ||
1170 | } | ||
1171 | |||
1172 | |||
1173 | |||
1174 | |||
1175 | long CStrLength(const char *theCString) | ||
1176 | { | ||
1177 | long cStrLength = 0; | ||
1178 | |||
1179 | |||
1180 | if (theCString != nil) | ||
1181 | { | ||
1182 | for (cStrLength = 0;theCString[cStrLength] != 0;cStrLength++) | ||
1183 | { | ||
1184 | |||
1185 | } | ||
1186 | } | ||
1187 | |||
1188 | |||
1189 | return(cStrLength); | ||
1190 | } | ||
1191 | |||
1192 | |||
1193 | |||
1194 | long PStrLength(const unsigned char *thePString) | ||
1195 | { | ||
1196 | long pStrLength = 0; | ||
1197 | |||
1198 | |||
1199 | if (thePString != nil) | ||
1200 | { | ||
1201 | pStrLength = thePString[0]; | ||
1202 | } | ||
1203 | |||
1204 | |||
1205 | return(pStrLength); | ||
1206 | } | ||
1207 | |||
1208 | |||
1209 | |||
1210 | |||
1211 | |||
1212 | void ZeroMem(void *theMemPtr,const unsigned long numBytes) | ||
1213 | { | ||
1214 | unsigned char *theBytePtr; | ||
1215 | unsigned long *theLongPtr; | ||
1216 | unsigned long numSingleBytes; | ||
1217 | unsigned long theNumBytes; | ||
1218 | |||
1219 | |||
1220 | theNumBytes = numBytes; | ||
1221 | |||
1222 | if (theMemPtr != nil && theNumBytes > 0) | ||
1223 | { | ||
1224 | theBytePtr = (unsigned char *) theMemPtr; | ||
1225 | |||
1226 | numSingleBytes = (unsigned long) theBytePtr & 0x0003; | ||
1227 | |||
1228 | while (numSingleBytes > 0) | ||
1229 | { | ||
1230 | *theBytePtr++ = 0; | ||
1231 | |||
1232 | theNumBytes--; | ||
1233 | numSingleBytes--; | ||
1234 | } | ||
1235 | |||
1236 | |||
1237 | theLongPtr = (unsigned long *) theBytePtr; | ||
1238 | |||
1239 | while (theNumBytes >= 4) | ||
1240 | { | ||
1241 | *theLongPtr++ = 0; | ||
1242 | |||
1243 | theNumBytes -= 4; | ||
1244 | } | ||
1245 | |||
1246 | |||
1247 | theBytePtr = (unsigned char *) theLongPtr; | ||
1248 | |||
1249 | while (theNumBytes > 0) | ||
1250 | { | ||
1251 | *theBytePtr++ = 0; | ||
1252 | |||
1253 | theNumBytes--; | ||
1254 | } | ||
1255 | } | ||
1256 | } | ||
1257 | |||
1258 | |||
1259 | |||
1260 | |||
1261 | char *FindCharInCStr(const char theChar,const char *theCString) | ||
1262 | { | ||
1263 | char *theStringSearchPtr; | ||
1264 | |||
1265 | |||
1266 | theStringSearchPtr = (char *) theCString; | ||
1267 | |||
1268 | if (theStringSearchPtr != nil) | ||
1269 | { | ||
1270 | while (*theStringSearchPtr != '\0' && *theStringSearchPtr != theChar) | ||
1271 | { | ||
1272 | theStringSearchPtr++; | ||
1273 | } | ||
1274 | |||
1275 | if (*theStringSearchPtr == '\0') | ||
1276 | { | ||
1277 | theStringSearchPtr = nil; | ||
1278 | } | ||
1279 | } | ||
1280 | |||
1281 | return(theStringSearchPtr); | ||
1282 | } | ||
1283 | |||
1284 | |||
1285 | |||
1286 | long FindCharOffsetInCStr(const char theChar,const char *theCString,const Boolean inIgnoreCase) | ||
1287 | { | ||
1288 | long theOffset = -1; | ||
1289 | |||
1290 | |||
1291 | if (theCString != nil) | ||
1292 | { | ||
1293 | theOffset = 0; | ||
1294 | |||
1295 | |||
1296 | if (inIgnoreCase) | ||
1297 | { | ||
1298 | char searchChar = theChar; | ||
1299 | |||
1300 | if (searchChar >= 'a' && searchChar <= 'z') | ||
1301 | { | ||
1302 | searchChar = searchChar - 'a' + 'A'; | ||
1303 | } | ||
1304 | |||
1305 | |||
1306 | while (*theCString != 0) | ||
1307 | { | ||
1308 | char currentChar = *theCString; | ||
1309 | |||
1310 | if (currentChar >= 'a' && currentChar <= 'z') | ||
1311 | { | ||
1312 | currentChar = currentChar - 'a' + 'A'; | ||
1313 | } | ||
1314 | |||
1315 | if (currentChar == searchChar) | ||
1316 | { | ||
1317 | break; | ||
1318 | } | ||
1319 | |||
1320 | theCString++; | ||
1321 | theOffset++; | ||
1322 | } | ||
1323 | } | ||
1324 | |||
1325 | else | ||
1326 | { | ||
1327 | while (*theCString != 0 && *theCString != theChar) | ||
1328 | { | ||
1329 | theCString++; | ||
1330 | theOffset++; | ||
1331 | } | ||
1332 | } | ||
1333 | |||
1334 | if (*theCString == 0) | ||
1335 | { | ||
1336 | theOffset = -1; | ||
1337 | } | ||
1338 | } | ||
1339 | |||
1340 | return(theOffset); | ||
1341 | } | ||
1342 | |||
1343 | |||
1344 | long FindCStrOffsetInCStr(const char *theCSubstring,const char *theCString,const Boolean inIgnoreCase) | ||
1345 | { | ||
1346 | long theOffset = -1; | ||
1347 | |||
1348 | |||
1349 | if (theCSubstring != nil && theCString != nil) | ||
1350 | { | ||
1351 | for (theOffset = 0;;theOffset++) | ||
1352 | { | ||
1353 | if (theCString[theOffset] == 0) | ||
1354 | { | ||
1355 | theOffset = -1; | ||
1356 | |||
1357 | goto EXITPOINT; | ||
1358 | } | ||
1359 | |||
1360 | |||
1361 | for (const char *tempSubstringPtr = theCSubstring,*tempCStringPtr = theCString + theOffset;;tempSubstringPtr++,tempCStringPtr++) | ||
1362 | { | ||
1363 | if (*tempSubstringPtr == 0) | ||
1364 | { | ||
1365 | goto EXITPOINT; | ||
1366 | } | ||
1367 | |||
1368 | else if (*tempCStringPtr == 0) | ||
1369 | { | ||
1370 | break; | ||
1371 | } | ||
1372 | |||
1373 | char searchChar = *tempSubstringPtr; | ||
1374 | char currentChar = *tempCStringPtr; | ||
1375 | |||
1376 | if (inIgnoreCase && searchChar >= 'a' && searchChar <= 'z') | ||
1377 | { | ||
1378 | searchChar = searchChar - 'a' + 'A'; | ||
1379 | } | ||
1380 | |||
1381 | if (inIgnoreCase && currentChar >= 'a' && currentChar <= 'z') | ||
1382 | { | ||
1383 | currentChar = currentChar - 'a' + 'A'; | ||
1384 | } | ||
1385 | |||
1386 | if (currentChar != searchChar) | ||
1387 | { | ||
1388 | break; | ||
1389 | } | ||
1390 | } | ||
1391 | } | ||
1392 | |||
1393 | theOffset = -1; | ||
1394 | } | ||
1395 | |||
1396 | |||
1397 | EXITPOINT: | ||
1398 | |||
1399 | return(theOffset); | ||
1400 | } | ||
1401 | |||
1402 | |||
1403 | |||
1404 | void InsertCStrIntoCStr(const char *theSrcCStr,const int theInsertionOffset,char *theDstCStr,const int maxDstStrLength) | ||
1405 | { | ||
1406 | int currentLength; | ||
1407 | int insertLength; | ||
1408 | int numCharsToInsert; | ||
1409 | int numCharsToShift; | ||
1410 | |||
1411 | |||
1412 | if (theDstCStr != nil && theSrcCStr != nil && maxDstStrLength > 0 && theInsertionOffset < maxDstStrLength - 1) | ||
1413 | { | ||
1414 | currentLength = CStrLength(theDstCStr); | ||
1415 | |||
1416 | insertLength = CStrLength(theSrcCStr); | ||
1417 | |||
1418 | |||
1419 | if (theInsertionOffset + insertLength < maxDstStrLength - 1) | ||
1420 | { | ||
1421 | numCharsToInsert = insertLength; | ||
1422 | } | ||
1423 | |||
1424 | else | ||
1425 | { | ||
1426 | numCharsToInsert = maxDstStrLength - 1 - theInsertionOffset; | ||
1427 | } | ||
1428 | |||
1429 | |||
1430 | if (numCharsToInsert + currentLength < maxDstStrLength - 1) | ||
1431 | { | ||
1432 | numCharsToShift = currentLength - theInsertionOffset; | ||
1433 | } | ||
1434 | |||
1435 | else | ||
1436 | { | ||
1437 | numCharsToShift = maxDstStrLength - 1 - theInsertionOffset - numCharsToInsert; | ||
1438 | } | ||
1439 | |||
1440 | |||
1441 | if (numCharsToShift > 0) | ||
1442 | { | ||
1443 | BlockMove(theDstCStr + theInsertionOffset,theDstCStr + theInsertionOffset + numCharsToInsert,numCharsToShift); | ||
1444 | } | ||
1445 | |||
1446 | if (numCharsToInsert > 0) | ||
1447 | { | ||
1448 | BlockMove(theSrcCStr,theDstCStr + theInsertionOffset,numCharsToInsert); | ||
1449 | } | ||
1450 | |||
1451 | theDstCStr[theInsertionOffset + numCharsToInsert + numCharsToShift] = 0; | ||
1452 | } | ||
1453 | } | ||
1454 | |||
1455 | |||
1456 | |||
1457 | void InsertPStrIntoCStr(const unsigned char *theSrcPStr,const int theInsertionOffset,char *theDstCStr,const int maxDstStrLength) | ||
1458 | { | ||
1459 | int currentLength; | ||
1460 | int insertLength; | ||
1461 | int numCharsToInsert; | ||
1462 | int numCharsToShift; | ||
1463 | |||
1464 | |||
1465 | if (theDstCStr != nil && theSrcPStr != nil && maxDstStrLength > 0 && theInsertionOffset < maxDstStrLength - 1) | ||
1466 | { | ||
1467 | currentLength = CStrLength(theDstCStr); | ||
1468 | |||
1469 | insertLength = PStrLength(theSrcPStr); | ||
1470 | |||
1471 | |||
1472 | if (theInsertionOffset + insertLength < maxDstStrLength - 1) | ||
1473 | { | ||
1474 | numCharsToInsert = insertLength; | ||
1475 | } | ||
1476 | |||
1477 | else | ||
1478 | { | ||
1479 | numCharsToInsert = maxDstStrLength - 1 - theInsertionOffset; | ||
1480 | } | ||
1481 | |||
1482 | |||
1483 | if (numCharsToInsert + currentLength < maxDstStrLength - 1) | ||
1484 | { | ||
1485 | numCharsToShift = currentLength - theInsertionOffset; | ||
1486 | } | ||
1487 | |||
1488 | else | ||
1489 | { | ||
1490 | numCharsToShift = maxDstStrLength - 1 - theInsertionOffset - numCharsToInsert; | ||
1491 | } | ||
1492 | |||
1493 | |||
1494 | if (numCharsToShift > 0) | ||
1495 | { | ||
1496 | BlockMove(theDstCStr + theInsertionOffset,theDstCStr + theInsertionOffset + numCharsToInsert,numCharsToShift); | ||
1497 | } | ||
1498 | |||
1499 | if (numCharsToInsert > 0) | ||
1500 | { | ||
1501 | BlockMove(theSrcPStr + 1,theDstCStr + theInsertionOffset,numCharsToInsert); | ||
1502 | } | ||
1503 | |||
1504 | theDstCStr[theInsertionOffset + numCharsToInsert + numCharsToShift] = 0; | ||
1505 | } | ||
1506 | } | ||
1507 | |||
1508 | |||
1509 | |||
1510 | OSErr InsertCStrIntoHandle(const char *theCString,Handle theHandle,const long inInsertOffset) | ||
1511 | { | ||
1512 | OSErr errCode; | ||
1513 | int currentLength; | ||
1514 | int insertLength; | ||
1515 | |||
1516 | |||
1517 | SetErrorMessageAndBailIfNil(theCString,"InsertCStrIntoHandle: Bad parameter, theCString == nil"); | ||
1518 | |||
1519 | SetErrorMessageAndBailIfNil(theHandle,"InsertCStrIntoHandle: Bad parameter, theHandle == nil"); | ||
1520 | |||
1521 | currentLength = CStrLength(*theHandle); | ||
1522 | |||
1523 | if (currentLength + 1 > ::GetHandleSize(theHandle)) | ||
1524 | { | ||
1525 | SetErrorMessageAndBail("InsertCStrIntoHandle: Handle has been overflowed"); | ||
1526 | } | ||
1527 | |||
1528 | if (inInsertOffset > currentLength) | ||
1529 | { | ||
1530 | SetErrorMessageAndBail("InsertCStrIntoHandle: Insertion offset is greater than string length"); | ||
1531 | } | ||
1532 | |||
1533 | insertLength = CStrLength(theCString); | ||
1534 | |||
1535 | ::SetHandleSize(theHandle,currentLength + 1 + insertLength); | ||
1536 | |||
1537 | if (::GetHandleSize(theHandle) < currentLength + 1 + insertLength) | ||
1538 | { | ||
1539 | SetErrorMessageAndLongIntAndBail("InsertCStrIntoHandle: Can't expand storage for Handle, MemError() = ",MemError()); | ||
1540 | } | ||
1541 | |||
1542 | ::BlockMove(*theHandle + inInsertOffset,*theHandle + inInsertOffset + insertLength,currentLength - inInsertOffset + 1); | ||
1543 | |||
1544 | ::BlockMove(theCString,*theHandle + inInsertOffset,insertLength); | ||
1545 | |||
1546 | |||
1547 | errCode = noErr; | ||
1548 | |||
1549 | |||
1550 | EXITPOINT: | ||
1551 | |||
1552 | return(errCode); | ||
1553 | } | ||
1554 | |||
1555 | |||
1556 | |||
1557 | |||
1558 | void CopyCStrAndInsert1LongIntIntoCStr(const char *theSrcCStr,const long theNum,char *theDstCStr,const int maxDstStrLength) | ||
1559 | { | ||
1560 | CopyCStrAndInsertCStrLongIntIntoCStr(theSrcCStr,nil,theNum,theDstCStr,maxDstStrLength); | ||
1561 | } | ||
1562 | |||
1563 | |||
1564 | void CopyCStrAndInsert2LongIntsIntoCStr(const char *theSrcCStr,const long long1,const long long2,char *theDstCStr,const int maxDstStrLength) | ||
1565 | { | ||
1566 | const long theLongInts[] = { long1,long2 }; | ||
1567 | |||
1568 | CopyCStrAndInsertCStrsLongIntsIntoCStr(theSrcCStr,nil,theLongInts,theDstCStr,maxDstStrLength); | ||
1569 | } | ||
1570 | |||
1571 | |||
1572 | void CopyCStrAndInsert3LongIntsIntoCStr(const char *theSrcCStr,const long long1,const long long2,const long long3,char *theDstCStr,const int maxDstStrLength) | ||
1573 | { | ||
1574 | const long theLongInts[] = { long1,long2,long3 }; | ||
1575 | |||
1576 | CopyCStrAndInsertCStrsLongIntsIntoCStr(theSrcCStr,nil,theLongInts,theDstCStr,maxDstStrLength); | ||
1577 | } | ||
1578 | |||
1579 | |||
1580 | void CopyCStrAndInsertCStrIntoCStr(const char *theSrcCStr,const char *theInsertCStr,char *theDstCStr,const int maxDstStrLength) | ||
1581 | { | ||
1582 | const char *theCStrs[2] = { theInsertCStr,nil }; | ||
1583 | |||
1584 | CopyCStrAndInsertCStrsLongIntsIntoCStr(theSrcCStr,theCStrs,nil,theDstCStr,maxDstStrLength); | ||
1585 | } | ||
1586 | |||
1587 | |||
1588 | |||
1589 | void CopyCStrAndInsertCStrLongIntIntoCStr(const char *theSrcCStr,const char *theInsertCStr,const long theNum,char *theDstCStr,const int maxDstStrLength) | ||
1590 | { | ||
1591 | const char *theCStrs[2] = { theInsertCStr,nil }; | ||
1592 | const long theLongInts[1] = { theNum }; | ||
1593 | |||
1594 | CopyCStrAndInsertCStrsLongIntsIntoCStr(theSrcCStr,theCStrs,theLongInts,theDstCStr,maxDstStrLength); | ||
1595 | } | ||
1596 | |||
1597 | |||
1598 | |||
1599 | void CopyCStrAndInsertCStrsLongIntsIntoCStr(const char *theSrcCStr,const char **theInsertCStrs,const long *theLongInts,char *theDstCStr,const int maxDstStrLength) | ||
1600 | { | ||
1601 | int dstCharIndex,srcCharIndex,theMaxDstStrLength; | ||
1602 | int theCStrIndex = 0; | ||
1603 | int theLongIntIndex = 0; | ||
1604 | |||
1605 | |||
1606 | theMaxDstStrLength = maxDstStrLength; | ||
1607 | |||
1608 | if (theDstCStr != nil && theSrcCStr != nil && theMaxDstStrLength > 0) | ||
1609 | { | ||
1610 | dstCharIndex = 0; | ||
1611 | |||
1612 | srcCharIndex = 0; | ||
1613 | |||
1614 | |||
1615 | // Allow room for NULL at end of string | ||
1616 | |||
1617 | theMaxDstStrLength--; | ||
1618 | |||
1619 | |||
1620 | for (;;) | ||
1621 | { | ||
1622 | // Hit end of buffer? | ||
1623 | |||
1624 | if (dstCharIndex >= theMaxDstStrLength) | ||
1625 | { | ||
1626 | theDstCStr[dstCharIndex++] = 0; | ||
1627 | |||
1628 | goto EXITPOINT; | ||
1629 | } | ||
1630 | |||
1631 | // End of source string? | ||
1632 | |||
1633 | else if (theSrcCStr[srcCharIndex] == 0) | ||
1634 | { | ||
1635 | theDstCStr[dstCharIndex++] = 0; | ||
1636 | |||
1637 | goto EXITPOINT; | ||
1638 | } | ||
1639 | |||
1640 | // Did we find a '%s'? | ||
1641 | |||
1642 | else if (theInsertCStrs != nil && theInsertCStrs[theCStrIndex] != nil && theSrcCStr[srcCharIndex] == '%' && theSrcCStr[srcCharIndex + 1] == 's') | ||
1643 | { | ||
1644 | // Skip over the '%s' | ||
1645 | |||
1646 | srcCharIndex += 2; | ||
1647 | |||
1648 | |||
1649 | // Terminate the dest string and then concat the string | ||
1650 | |||
1651 | theDstCStr[dstCharIndex] = 0; | ||
1652 | |||
1653 | ConcatCStrToCStr(theInsertCStrs[theCStrIndex],theDstCStr,theMaxDstStrLength); | ||
1654 | |||
1655 | dstCharIndex = CStrLength(theDstCStr); | ||
1656 | |||
1657 | theCStrIndex++; | ||
1658 | } | ||
1659 | |||
1660 | // Did we find a '%ld'? | ||
1661 | |||
1662 | else if (theLongInts != nil && theSrcCStr[srcCharIndex] == '%' && theSrcCStr[srcCharIndex + 1] == 'l' && theSrcCStr[srcCharIndex + 2] == 'd') | ||
1663 | { | ||
1664 | // Skip over the '%ld' | ||
1665 | |||
1666 | srcCharIndex += 3; | ||
1667 | |||
1668 | |||
1669 | // Terminate the dest string and then concat the number | ||
1670 | |||
1671 | theDstCStr[dstCharIndex] = 0; | ||
1672 | |||
1673 | ConcatLongIntToCStr(theLongInts[theLongIntIndex],theDstCStr,theMaxDstStrLength); | ||
1674 | |||
1675 | theLongIntIndex++; | ||
1676 | |||
1677 | dstCharIndex = CStrLength(theDstCStr); | ||
1678 | } | ||
1679 | |||
1680 | else | ||
1681 | { | ||
1682 | theDstCStr[dstCharIndex++] = theSrcCStr[srcCharIndex++]; | ||
1683 | } | ||
1684 | } | ||
1685 | } | ||
1686 | |||
1687 | |||
1688 | |||
1689 | EXITPOINT: | ||
1690 | |||
1691 | return; | ||
1692 | } | ||
1693 | |||
1694 | |||
1695 | |||
1696 | |||
1697 | |||
1698 | OSErr CopyCStrAndInsertCStrLongIntIntoHandle(const char *theSrcCStr,const char *theInsertCStr,const long theNum,Handle *theHandle) | ||
1699 | { | ||
1700 | OSErr errCode; | ||
1701 | long byteCount; | ||
1702 | |||
1703 | |||
1704 | if (theHandle != nil) | ||
1705 | { | ||
1706 | byteCount = CStrLength(theSrcCStr) + CStrLength(theInsertCStr) + 32; | ||
1707 | |||
1708 | *theHandle = NewHandle(byteCount); | ||
1709 | |||
1710 | if (*theHandle == nil) | ||
1711 | { | ||
1712 | SetErrorMessageAndLongIntAndBail("CopyCStrAndInsertCStrLongIntIntoHandle: Can't allocate Handle, MemError() = ",MemError()); | ||
1713 | } | ||
1714 | |||
1715 | |||
1716 | HLock(*theHandle); | ||
1717 | |||
1718 | CopyCStrAndInsertCStrLongIntIntoCStr(theSrcCStr,theInsertCStr,theNum,**theHandle,byteCount); | ||
1719 | |||
1720 | HUnlock(*theHandle); | ||
1721 | } | ||
1722 | |||
1723 | errCode = noErr; | ||
1724 | |||
1725 | |||
1726 | EXITPOINT: | ||
1727 | |||
1728 | return(errCode); | ||
1729 | } | ||
1730 | |||
1731 | |||
1732 | |||
1733 | |||
1734 | |||
1735 | OSErr CopyIndexedWordToCStr(char *theSrcCStr,int whichWord,char *theDstCStr,int maxDstCStrLength) | ||
1736 | { | ||
1737 | OSErr errCode; | ||
1738 | char *srcCharPtr,*dstCharPtr; | ||
1739 | int wordCount; | ||
1740 | int byteCount; | ||
1741 | |||
1742 | |||
1743 | if (theSrcCStr == nil) | ||
1744 | { | ||
1745 | SetErrorMessageAndBail(("CopyIndexedWordToCStr: Bad parameter, theSrcCStr == nil")); | ||
1746 | } | ||
1747 | |||
1748 | if (theDstCStr == nil) | ||
1749 | { | ||
1750 | SetErrorMessageAndBail(("CopyIndexedWordToCStr: Bad parameter, theDstCStr == nil")); | ||
1751 | } | ||
1752 | |||
1753 | if (whichWord < 0) | ||
1754 | { | ||
1755 | SetErrorMessageAndBail(("CopyIndexedWordToCStr: Bad parameter, whichWord < 0")); | ||
1756 | } | ||
1757 | |||
1758 | if (maxDstCStrLength <= 0) | ||
1759 | { | ||
1760 | SetErrorMessageAndBail(("CopyIndexedWordToCStr: Bad parameter, maxDstCStrLength <= 0")); | ||
1761 | } | ||
1762 | |||
1763 | |||
1764 | *theDstCStr = '\0'; | ||
1765 | |||
1766 | srcCharPtr = theSrcCStr; | ||
1767 | |||
1768 | while (*srcCharPtr == ' ' || *srcCharPtr == '\t') | ||
1769 | { | ||
1770 | srcCharPtr++; | ||
1771 | } | ||
1772 | |||
1773 | |||
1774 | for (wordCount = 0;wordCount < whichWord;wordCount++) | ||
1775 | { | ||
1776 | while (*srcCharPtr != ' ' && *srcCharPtr != '\t' && *srcCharPtr != '\r' && *srcCharPtr != '\n' && *srcCharPtr != '\0') | ||
1777 | { | ||
1778 | srcCharPtr++; | ||
1779 | } | ||
1780 | |||
1781 | if (*srcCharPtr == '\r' || *srcCharPtr == '\n' || *srcCharPtr == '\0') | ||
1782 | { | ||
1783 | errCode = noErr; | ||
1784 | |||
1785 | goto EXITPOINT; | ||
1786 | } | ||
1787 | |||
1788 | while (*srcCharPtr == ' ' || *srcCharPtr == '\t') | ||
1789 | { | ||
1790 | srcCharPtr++; | ||
1791 | } | ||
1792 | |||
1793 | if (*srcCharPtr == '\r' || *srcCharPtr == '\n' || *srcCharPtr == '\0') | ||
1794 | { | ||
1795 | errCode = noErr; | ||
1796 | |||
1797 | goto EXITPOINT; | ||
1798 | } | ||
1799 | } | ||
1800 | |||
1801 | |||
1802 | dstCharPtr = theDstCStr; | ||
1803 | byteCount = 0; | ||
1804 | |||
1805 | |||
1806 | for(;;) | ||
1807 | { | ||
1808 | if (byteCount >= maxDstCStrLength - 1 || *srcCharPtr == '\0' || *srcCharPtr == ' ' || *srcCharPtr == '\t' || *srcCharPtr == '\r' || *srcCharPtr == '\n') | ||
1809 | { | ||
1810 | *dstCharPtr = '\0'; | ||
1811 | break; | ||
1812 | } | ||
1813 | |||
1814 | *dstCharPtr++ = *srcCharPtr++; | ||
1815 | |||
1816 | byteCount++; | ||
1817 | } | ||
1818 | |||
1819 | |||
1820 | errCode = noErr; | ||
1821 | |||
1822 | |||
1823 | EXITPOINT: | ||
1824 | |||
1825 | return(errCode); | ||
1826 | } | ||
1827 | |||
1828 | |||
1829 | |||
1830 | |||
1831 | |||
1832 | OSErr CopyIndexedWordToNewHandle(char *theSrcCStr,int whichWord,Handle *outTheHandle) | ||
1833 | { | ||
1834 | OSErr errCode; | ||
1835 | char *srcCharPtr; | ||
1836 | int wordCount; | ||
1837 | int byteCount; | ||
1838 | |||
1839 | |||
1840 | if (theSrcCStr == nil) | ||
1841 | { | ||
1842 | SetErrorMessageAndBail(("CopyIndexedWordToNewHandle: Bad parameter, theSrcCStr == nil")); | ||
1843 | } | ||
1844 | |||
1845 | if (outTheHandle == nil) | ||
1846 | { | ||
1847 | SetErrorMessageAndBail(("CopyIndexedWordToNewHandle: Bad parameter, outTheHandle == nil")); | ||
1848 | } | ||
1849 | |||
1850 | if (whichWord < 0) | ||
1851 | { | ||
1852 | SetErrorMessageAndBail(("CopyIndexedWordToNewHandle: Bad parameter, whichWord < 0")); | ||
1853 | } | ||
1854 | |||
1855 | |||
1856 | *outTheHandle = nil; | ||
1857 | |||
1858 | |||
1859 | srcCharPtr = theSrcCStr; | ||
1860 | |||
1861 | while (*srcCharPtr == ' ' || *srcCharPtr == '\t') | ||
1862 | { | ||
1863 | srcCharPtr++; | ||
1864 | } | ||
1865 | |||
1866 | |||
1867 | for (wordCount = 0;wordCount < whichWord;wordCount++) | ||
1868 | { | ||
1869 | while (*srcCharPtr != ' ' && *srcCharPtr != '\t' && *srcCharPtr != '\r' && *srcCharPtr != '\n' && *srcCharPtr != '\0') | ||
1870 | { | ||
1871 | srcCharPtr++; | ||
1872 | } | ||
1873 | |||
1874 | if (*srcCharPtr == '\r' || *srcCharPtr == '\n' || *srcCharPtr == '\0') | ||
1875 | { | ||
1876 | break; | ||
1877 | } | ||
1878 | |||
1879 | while (*srcCharPtr == ' ' || *srcCharPtr == '\t') | ||
1880 | { | ||
1881 | srcCharPtr++; | ||
1882 | } | ||
1883 | |||
1884 | if (*srcCharPtr == '\r' || *srcCharPtr == '\n' || *srcCharPtr == '\0') | ||
1885 | { | ||
1886 | break; | ||
1887 | } | ||
1888 | } | ||
1889 | |||
1890 | |||
1891 | for (byteCount = 0;;byteCount++) | ||
1892 | { | ||
1893 | if (srcCharPtr[byteCount] == ' ' || srcCharPtr[byteCount] == '\t' || srcCharPtr[byteCount] == '\r' || srcCharPtr[byteCount] == '\n' || srcCharPtr[byteCount] == '\0') | ||
1894 | { | ||
1895 | break; | ||
1896 | } | ||
1897 | } | ||
1898 | |||
1899 | |||
1900 | *outTheHandle = NewHandle(byteCount + 1); | ||
1901 | |||
1902 | if (*outTheHandle == nil) | ||
1903 | { | ||
1904 | SetErrorMessageAndLongIntAndBail("CopyIndexedWordToNewHandle: Can't allocate Handle, MemError() = ",MemError()); | ||
1905 | } | ||
1906 | |||
1907 | |||
1908 | ::BlockMove(srcCharPtr,**outTheHandle,byteCount); | ||
1909 | |||
1910 | (**outTheHandle)[byteCount] = '\0'; | ||
1911 | |||
1912 | errCode = noErr; | ||
1913 | |||
1914 | |||
1915 | EXITPOINT: | ||
1916 | |||
1917 | return(errCode); | ||
1918 | } | ||
1919 | |||
1920 | |||
1921 | |||
1922 | OSErr CopyIndexedLineToCStr(const char *theSrcCStr,int inWhichLine,int *lineEndIndex,Boolean *gotLastLine,char *theDstCStr,const int maxDstCStrLength) | ||
1923 | { | ||
1924 | OSErr errCode; | ||
1925 | int theCurrentLine; | ||
1926 | int theCurrentLineOffset; | ||
1927 | int theEOSOffset; | ||
1928 | |||
1929 | |||
1930 | if (theSrcCStr == nil) | ||
1931 | { | ||
1932 | SetErrorMessageAndBail(("CopyIndexedLineToCStr: Bad parameter, theSrcCStr == nil")); | ||
1933 | } | ||
1934 | |||
1935 | if (theDstCStr == nil) | ||
1936 | { | ||
1937 | SetErrorMessageAndBail(("CopyIndexedLineToCStr: Bad parameter, theDstCStr == nil")); | ||
1938 | } | ||
1939 | |||
1940 | if (inWhichLine < 0) | ||
1941 | { | ||
1942 | SetErrorMessageAndBail(("CopyIndexedLineToCStr: Bad parameter, inWhichLine < 0")); | ||
1943 | } | ||
1944 | |||
1945 | if (maxDstCStrLength <= 0) | ||
1946 | { | ||
1947 | SetErrorMessageAndBail(("CopyIndexedLineToCStr: Bad parameter, maxDstCStrLength <= 0")); | ||
1948 | } | ||
1949 | |||
1950 | |||
1951 | if (gotLastLine != nil) | ||
1952 | { | ||
1953 | *gotLastLine = false; | ||
1954 | } | ||
1955 | |||
1956 | |||
1957 | *theDstCStr = 0; | ||
1958 | |||
1959 | theCurrentLineOffset = 0; | ||
1960 | |||
1961 | theCurrentLine = 0; | ||
1962 | |||
1963 | |||
1964 | while (theCurrentLine < inWhichLine) | ||
1965 | { | ||
1966 | while (theSrcCStr[theCurrentLineOffset] != '\r' && theSrcCStr[theCurrentLineOffset] != 0) | ||
1967 | { | ||
1968 | theCurrentLineOffset++; | ||
1969 | } | ||
1970 | |||
1971 | if (theSrcCStr[theCurrentLineOffset] == 0) | ||
1972 | { | ||
1973 | break; | ||
1974 | } | ||
1975 | |||
1976 | theCurrentLineOffset++; | ||
1977 | theCurrentLine++; | ||
1978 | } | ||
1979 | |||
1980 | if (theSrcCStr[theCurrentLineOffset] == 0) | ||
1981 | { | ||
1982 | SetErrorMessageAndLongIntAndBail("CopyIndexedLineToCStr: Too few lines in source text, can't get line ",inWhichLine); | ||
1983 | } | ||
1984 | |||
1985 | |||
1986 | theEOSOffset = FindCharOffsetInCStr('\r',theSrcCStr + theCurrentLineOffset); | ||
1987 | |||
1988 | if (theEOSOffset >= 0) | ||
1989 | { | ||
1990 | CopyCSubstrToCStr(theSrcCStr + theCurrentLineOffset,theEOSOffset,theDstCStr,maxDstCStrLength); | ||
1991 | |||
1992 | if (gotLastLine != nil) | ||
1993 | { | ||
1994 | *gotLastLine = false; | ||
1995 | } | ||
1996 | |||
1997 | if (lineEndIndex != nil) | ||
1998 | { | ||
1999 | *lineEndIndex = theEOSOffset; | ||
2000 | } | ||
2001 | } | ||
2002 | |||
2003 | else | ||
2004 | { | ||
2005 | theEOSOffset = CStrLength(theSrcCStr + theCurrentLineOffset); | ||
2006 | |||
2007 | CopyCSubstrToCStr(theSrcCStr + theCurrentLineOffset,theEOSOffset,theDstCStr,maxDstCStrLength); | ||
2008 | |||
2009 | if (gotLastLine != nil) | ||
2010 | { | ||
2011 | *gotLastLine = true; | ||
2012 | } | ||
2013 | |||
2014 | if (lineEndIndex != nil) | ||
2015 | { | ||
2016 | *lineEndIndex = theEOSOffset; | ||
2017 | } | ||
2018 | } | ||
2019 | |||
2020 | |||
2021 | errCode = noErr; | ||
2022 | |||
2023 | |||
2024 | EXITPOINT: | ||
2025 | |||
2026 | return(errCode); | ||
2027 | } | ||
2028 | |||
2029 | |||
2030 | |||
2031 | OSErr CopyIndexedLineToNewHandle(const char *theSrcCStr,int inWhichLine,Handle *outNewHandle) | ||
2032 | { | ||
2033 | OSErr errCode; | ||
2034 | int theCurrentLine; | ||
2035 | int theCurrentLineOffset; | ||
2036 | int byteCount; | ||
2037 | |||
2038 | |||
2039 | SetErrorMessageAndBailIfNil(theSrcCStr,"CopyIndexedLineToNewHandle: Bad parameter, theSrcCStr == nil"); | ||
2040 | SetErrorMessageAndBailIfNil(outNewHandle,"CopyIndexedLineToNewHandle: Bad parameter, outNewHandle == nil"); | ||
2041 | |||
2042 | if (inWhichLine < 0) | ||
2043 | { | ||
2044 | SetErrorMessageAndBail(("CopyIndexedLineToNewHandle: Bad parameter, inWhichLine < 0")); | ||
2045 | } | ||
2046 | |||
2047 | |||
2048 | theCurrentLineOffset = 0; | ||
2049 | |||
2050 | theCurrentLine = 0; | ||
2051 | |||
2052 | |||
2053 | while (theCurrentLine < inWhichLine) | ||
2054 | { | ||
2055 | while (theSrcCStr[theCurrentLineOffset] != '\r' && theSrcCStr[theCurrentLineOffset] != '\0') | ||
2056 | { | ||
2057 | theCurrentLineOffset++; | ||
2058 | } | ||
2059 | |||
2060 | if (theSrcCStr[theCurrentLineOffset] == '\0') | ||
2061 | { | ||
2062 | break; | ||
2063 | } | ||
2064 | |||
2065 | theCurrentLineOffset++; | ||
2066 | theCurrentLine++; | ||
2067 | } | ||
2068 | |||
2069 | if (theSrcCStr[theCurrentLineOffset] == '\0') | ||
2070 | { | ||
2071 | SetErrorMessageAndLongIntAndBail("CopyIndexedLineToNewHandle: Too few lines in source text, can't get line #",inWhichLine); | ||
2072 | } | ||
2073 | |||
2074 | |||
2075 | byteCount = 0; | ||
2076 | |||
2077 | while (theSrcCStr[theCurrentLineOffset + byteCount] != '\r' && theSrcCStr[theCurrentLineOffset + byteCount] != '\0') | ||
2078 | { | ||
2079 | byteCount++; | ||
2080 | } | ||
2081 | |||
2082 | |||
2083 | *outNewHandle = NewHandle(byteCount + 1); | ||
2084 | |||
2085 | if (*outNewHandle == nil) | ||
2086 | { | ||
2087 | SetErrorMessageAndLongIntAndBail("CopyIndexedLineToNewHandle: Can't allocate Handle, MemError() = ",MemError()); | ||
2088 | } | ||
2089 | |||
2090 | ::BlockMove(theSrcCStr + theCurrentLineOffset,**outNewHandle,byteCount); | ||
2091 | |||
2092 | (**outNewHandle)[byteCount] = '\0'; | ||
2093 | |||
2094 | errCode = noErr; | ||
2095 | |||
2096 | |||
2097 | EXITPOINT: | ||
2098 | |||
2099 | return(errCode); | ||
2100 | } | ||
2101 | |||
2102 | |||
2103 | |||
2104 | |||
2105 | OSErr CountDigits(const char *inCStr,int *outNumIntegerDigits,int *outNumFractDigits) | ||
2106 | { | ||
2107 | OSErr errCode = noErr; | ||
2108 | int numIntDigits = 0; | ||
2109 | int numFractDigits = 0; | ||
2110 | int digitIndex = 0; | ||
2111 | |||
2112 | |||
2113 | SetErrorMessageAndBailIfNil(inCStr,"CountDigits: Bad parameter, theSrcCStr == nil"); | ||
2114 | SetErrorMessageAndBailIfNil(outNumIntegerDigits,"CountDigits: Bad parameter, outNumIntegerDigits == nil"); | ||
2115 | SetErrorMessageAndBailIfNil(outNumFractDigits,"CountDigits: Bad parameter, outNumFractDigits == nil"); | ||
2116 | |||
2117 | digitIndex = 0; | ||
2118 | |||
2119 | while (inCStr[digitIndex] >= '0' && inCStr[digitIndex] <= '9') | ||
2120 | { | ||
2121 | digitIndex++; | ||
2122 | numIntDigits++; | ||
2123 | } | ||
2124 | |||
2125 | if (inCStr[digitIndex] == '.') | ||
2126 | { | ||
2127 | digitIndex++; | ||
2128 | |||
2129 | while (inCStr[digitIndex] >= '0' && inCStr[digitIndex] <= '9') | ||
2130 | { | ||
2131 | digitIndex++; | ||
2132 | numFractDigits++; | ||
2133 | } | ||
2134 | } | ||
2135 | |||
2136 | *outNumIntegerDigits = numIntDigits; | ||
2137 | |||
2138 | *outNumFractDigits = numFractDigits; | ||
2139 | |||
2140 | errCode = noErr; | ||
2141 | |||
2142 | EXITPOINT: | ||
2143 | |||
2144 | return(errCode); | ||
2145 | } | ||
2146 | |||
2147 | |||
2148 | |||
2149 | OSErr ExtractIntFromCStr(const char *theSrcCStr,int *outInt,Boolean skipLeadingSpaces) | ||
2150 | { | ||
2151 | OSErr errCode; | ||
2152 | int theCharIndex; | ||
2153 | |||
2154 | |||
2155 | if (theSrcCStr == nil) | ||
2156 | { | ||
2157 | SetErrorMessageAndBail(("ExtractIntFromCStr: Bad parameter, theSrcCStr == nil")); | ||
2158 | } | ||
2159 | |||
2160 | if (outInt == nil) | ||
2161 | { | ||
2162 | SetErrorMessageAndBail(("ExtractIntFromCStr: Bad parameter, outInt == nil")); | ||
2163 | } | ||
2164 | |||
2165 | |||
2166 | *outInt = 0; | ||
2167 | |||
2168 | theCharIndex = 0; | ||
2169 | |||
2170 | if (skipLeadingSpaces == true) | ||
2171 | { | ||
2172 | while (theSrcCStr[theCharIndex] == ' ') | ||
2173 | { | ||
2174 | theCharIndex++; | ||
2175 | } | ||
2176 | } | ||
2177 | |||
2178 | if (theSrcCStr[theCharIndex] < '0' || theSrcCStr[theCharIndex] > '9') | ||
2179 | { | ||
2180 | SetErrorMessageAndBail(("ExtractIntFromCStr: Bad parameter, theSrcCStr contains a bogus numeric representation")); | ||
2181 | } | ||
2182 | |||
2183 | |||
2184 | while (theSrcCStr[theCharIndex] >= '0' && theSrcCStr[theCharIndex] <= '9') | ||
2185 | { | ||
2186 | *outInt = (*outInt * 10) + (theSrcCStr[theCharIndex] - '0'); | ||
2187 | |||
2188 | theCharIndex++; | ||
2189 | } | ||
2190 | |||
2191 | |||
2192 | errCode = noErr; | ||
2193 | |||
2194 | |||
2195 | EXITPOINT: | ||
2196 | |||
2197 | return(errCode); | ||
2198 | } | ||
2199 | |||
2200 | |||
2201 | |||
2202 | OSErr ExtractIntFromPStr(const unsigned char *theSrcPStr,int *outInt,Boolean skipLeadingSpaces) | ||
2203 | { | ||
2204 | OSErr errCode; | ||
2205 | char theCStr[256]; | ||
2206 | |||
2207 | |||
2208 | if (theSrcPStr == nil) | ||
2209 | { | ||
2210 | SetErrorMessageAndBail(("ExtractIntFromPStr: Bad parameter, theSrcPStr == nil")); | ||
2211 | } | ||
2212 | |||
2213 | if (outInt == nil) | ||
2214 | { | ||
2215 | SetErrorMessageAndBail(("ExtractIntFromPStr: Bad parameter, outInt == nil")); | ||
2216 | } | ||
2217 | |||
2218 | |||
2219 | CopyPStrToCStr(theSrcPStr,theCStr,sizeof(theCStr)); | ||
2220 | |||
2221 | |||
2222 | errCode = ExtractIntFromCStr(theCStr,outInt,skipLeadingSpaces); | ||
2223 | |||
2224 | |||
2225 | EXITPOINT: | ||
2226 | |||
2227 | return(errCode); | ||
2228 | } | ||
2229 | |||
2230 | |||
2231 | |||
2232 | int CountOccurencesOfCharInCStr(const char inChar,const char *inSrcCStr) | ||
2233 | { | ||
2234 | int theSrcCharIndex; | ||
2235 | int numOccurrences = -1; | ||
2236 | |||
2237 | |||
2238 | if (inSrcCStr != nil && inChar != '\0') | ||
2239 | { | ||
2240 | numOccurrences = 0; | ||
2241 | |||
2242 | for (theSrcCharIndex = 0;inSrcCStr[theSrcCharIndex] != '\0';theSrcCharIndex++) | ||
2243 | { | ||
2244 | if (inSrcCStr[theSrcCharIndex] == inChar) | ||
2245 | { | ||
2246 | numOccurrences++; | ||
2247 | } | ||
2248 | } | ||
2249 | } | ||
2250 | |||
2251 | return(numOccurrences); | ||
2252 | } | ||
2253 | |||
2254 | |||
2255 | int CountWordsInCStr(const char *inSrcCStr) | ||
2256 | { | ||
2257 | int numWords = -1; | ||
2258 | |||
2259 | |||
2260 | if (inSrcCStr != nil) | ||
2261 | { | ||
2262 | numWords = 0; | ||
2263 | |||
2264 | // Skip lead spaces | ||
2265 | |||
2266 | while (*inSrcCStr == ' ') | ||
2267 | { | ||
2268 | inSrcCStr++; | ||
2269 | } | ||
2270 | |||
2271 | while (*inSrcCStr != '\0') | ||
2272 | { | ||
2273 | numWords++; | ||
2274 | |||
2275 | while (*inSrcCStr != ' ' && *inSrcCStr != '\0') | ||
2276 | { | ||
2277 | inSrcCStr++; | ||
2278 | } | ||
2279 | |||
2280 | while (*inSrcCStr == ' ') | ||
2281 | { | ||
2282 | inSrcCStr++; | ||
2283 | } | ||
2284 | } | ||
2285 | } | ||
2286 | |||
2287 | return(numWords); | ||
2288 | } | ||
2289 | |||
2290 | |||
2291 | |||
2292 | |||
2293 | void ConvertCStrToUpperCase(char *theSrcCStr) | ||
2294 | { | ||
2295 | char *theCharPtr; | ||
2296 | |||
2297 | |||
2298 | if (theSrcCStr != nil) | ||
2299 | { | ||
2300 | theCharPtr = theSrcCStr; | ||
2301 | |||
2302 | while (*theCharPtr != 0) | ||
2303 | { | ||
2304 | if (*theCharPtr >= 'a' && *theCharPtr <= 'z') | ||
2305 | { | ||
2306 | *theCharPtr = *theCharPtr - 'a' + 'A'; | ||
2307 | } | ||
2308 | |||
2309 | theCharPtr++; | ||
2310 | } | ||
2311 | } | ||
2312 | } | ||
2313 | |||
2314 | |||
2315 | |||
2316 | |||
2317 | |||
2318 | |||
2319 | |||
2320 | void ExtractCStrItemFromCStr(const char *inSrcCStr,const char inItemDelimiter,const int inItemNumber,Boolean *foundItem,char *outDstCharPtr,const int inDstCharPtrMaxLength,const Boolean inTreatMultipleDelimsAsSingleDelim) | ||
2321 | { | ||
2322 | int theItem; | ||
2323 | int theSrcCharIndex; | ||
2324 | int theDstCharIndex; | ||
2325 | |||
2326 | |||
2327 | if (foundItem != nil) | ||
2328 | { | ||
2329 | *foundItem = false; | ||
2330 | } | ||
2331 | |||
2332 | |||
2333 | if (outDstCharPtr != nil && inDstCharPtrMaxLength > 0 && inItemNumber >= 0 && inItemDelimiter != 0) | ||
2334 | { | ||
2335 | *outDstCharPtr = 0; | ||
2336 | |||
2337 | |||
2338 | theSrcCharIndex = 0; | ||
2339 | |||
2340 | for (theItem = 0;theItem < inItemNumber;theItem++) | ||
2341 | { | ||
2342 | while (inSrcCStr[theSrcCharIndex] != inItemDelimiter && inSrcCStr[theSrcCharIndex] != '\0') | ||
2343 | { | ||
2344 | theSrcCharIndex++; | ||
2345 | } | ||
2346 | |||
2347 | if (inSrcCStr[theSrcCharIndex] == inItemDelimiter) | ||
2348 | { | ||
2349 | theSrcCharIndex++; | ||
2350 | |||
2351 | if (inTreatMultipleDelimsAsSingleDelim) | ||
2352 | { | ||
2353 | while (inSrcCStr[theSrcCharIndex] == inItemDelimiter) | ||
2354 | { | ||
2355 | theSrcCharIndex++; | ||
2356 | } | ||
2357 | } | ||
2358 | } | ||
2359 | |||
2360 | |||
2361 | if (inSrcCStr[theSrcCharIndex] == '\0') | ||
2362 | { | ||
2363 | goto EXITPOINT; | ||
2364 | } | ||
2365 | } | ||
2366 | |||
2367 | |||
2368 | if (foundItem != nil) | ||
2369 | { | ||
2370 | *foundItem = true; | ||
2371 | } | ||
2372 | |||
2373 | |||
2374 | theDstCharIndex = 0; | ||
2375 | |||
2376 | for (;;) | ||
2377 | { | ||
2378 | if (inSrcCStr[theSrcCharIndex] == 0 || inSrcCStr[theSrcCharIndex] == inItemDelimiter || theDstCharIndex >= inDstCharPtrMaxLength - 1) | ||
2379 | { | ||
2380 | outDstCharPtr[theDstCharIndex] = 0; | ||
2381 | |||
2382 | break; | ||
2383 | } | ||
2384 | |||
2385 | outDstCharPtr[theDstCharIndex++] = inSrcCStr[theSrcCharIndex++]; | ||
2386 | } | ||
2387 | } | ||
2388 | |||
2389 | |||
2390 | EXITPOINT: | ||
2391 | |||
2392 | return; | ||
2393 | } | ||
2394 | |||
2395 | |||
2396 | |||
2397 | OSErr ExtractCStrItemFromCStrIntoNewHandle(const char *inSrcCStr,const char inItemDelimiter,const int inItemNumber,Boolean *foundItem,Handle *outNewHandle,const Boolean inTreatMultipleDelimsAsSingleDelim) | ||
2398 | { | ||
2399 | OSErr errCode; | ||
2400 | int theItem; | ||
2401 | int theSrcCharIndex; | ||
2402 | int theItemLength; | ||
2403 | |||
2404 | |||
2405 | if (inSrcCStr == nil) | ||
2406 | { | ||
2407 | SetErrorMessage("ExtractCStrItemFromCStrIntoNewHandle: Bad parameter, inSrcCStr == nil"); | ||
2408 | errCode = kGenericError; | ||
2409 | goto EXITPOINT; | ||
2410 | } | ||
2411 | |||
2412 | if (outNewHandle == nil) | ||
2413 | { | ||
2414 | SetErrorMessage("ExtractCStrItemFromCStrIntoNewHandle: Bad parameter, outNewHandle == nil"); | ||
2415 | errCode = kGenericError; | ||
2416 | goto EXITPOINT; | ||
2417 | } | ||
2418 | |||
2419 | if (foundItem == nil) | ||
2420 | { | ||
2421 | SetErrorMessage("ExtractCStrItemFromCStrIntoNewHandle: Bad parameter, foundItem == nil"); | ||
2422 | errCode = kGenericError; | ||
2423 | goto EXITPOINT; | ||
2424 | } | ||
2425 | |||
2426 | if (inItemNumber < 0) | ||
2427 | { | ||
2428 | SetErrorMessage("ExtractCStrItemFromCStrIntoNewHandle: Bad parameter, inItemNumber < 0"); | ||
2429 | errCode = kGenericError; | ||
2430 | goto EXITPOINT; | ||
2431 | } | ||
2432 | |||
2433 | if (inItemDelimiter == 0) | ||
2434 | { | ||
2435 | SetErrorMessage("ExtractCStrItemFromCStrIntoNewHandle: Bad parameter, inItemDelimiter == 0"); | ||
2436 | errCode = kGenericError; | ||
2437 | goto EXITPOINT; | ||
2438 | } | ||
2439 | |||
2440 | |||
2441 | *foundItem = false; | ||
2442 | |||
2443 | theSrcCharIndex = 0; | ||
2444 | |||
2445 | for (theItem = 0;theItem < inItemNumber;theItem++) | ||
2446 | { | ||
2447 | while (inSrcCStr[theSrcCharIndex] != inItemDelimiter && inSrcCStr[theSrcCharIndex] != '\0') | ||
2448 | { | ||
2449 | theSrcCharIndex++; | ||
2450 | } | ||
2451 | |||
2452 | if (inSrcCStr[theSrcCharIndex] == inItemDelimiter) | ||
2453 | { | ||
2454 | theSrcCharIndex++; | ||
2455 | |||
2456 | if (inTreatMultipleDelimsAsSingleDelim) | ||
2457 | { | ||
2458 | while (inSrcCStr[theSrcCharIndex] == inItemDelimiter) | ||
2459 | { | ||
2460 | theSrcCharIndex++; | ||
2461 | } | ||
2462 | } | ||
2463 | } | ||
2464 | |||
2465 | |||
2466 | if (inSrcCStr[theSrcCharIndex] == '\0') | ||
2467 | { | ||
2468 | errCode = noErr; | ||
2469 | |||
2470 | goto EXITPOINT; | ||
2471 | } | ||
2472 | } | ||
2473 | |||
2474 | |||
2475 | *foundItem = true; | ||
2476 | |||
2477 | |||
2478 | for (theItemLength = 0;;theItemLength++) | ||
2479 | { | ||
2480 | if (inSrcCStr[theSrcCharIndex + theItemLength] == 0 || inSrcCStr[theSrcCharIndex + theItemLength] == inItemDelimiter) | ||
2481 | { | ||
2482 | break; | ||
2483 | } | ||
2484 | } | ||
2485 | |||
2486 | |||
2487 | *outNewHandle = NewHandle(theItemLength + 1); | ||
2488 | |||
2489 | if (*outNewHandle == nil) | ||
2490 | { | ||
2491 | SetErrorMessageAndLongIntAndBail("ExtractCStrItemFromCStrIntoNewHandle: Can't allocate Handle, MemError() = ",MemError()); | ||
2492 | } | ||
2493 | |||
2494 | |||
2495 | BlockMove(inSrcCStr + theSrcCharIndex,**outNewHandle,theItemLength); | ||
2496 | |||
2497 | (**outNewHandle)[theItemLength] = 0; | ||
2498 | |||
2499 | errCode = noErr; | ||
2500 | |||
2501 | |||
2502 | EXITPOINT: | ||
2503 | |||
2504 | return(errCode); | ||
2505 | } | ||
2506 | |||
2507 | |||
2508 | |||
2509 | |||
2510 | |||
2511 | |||
2512 | OSErr ExtractFloatFromCStr(const char *inCString,extended80 *outFloat) | ||
2513 | { | ||
2514 | OSErr errCode; | ||
2515 | Str255 theStr255; | ||
2516 | Handle theNumberPartsTableHandle = nil; | ||
2517 | long theNumberPartsOffset,theNumberPartsLength; | ||
2518 | FormatResultType theFormatResultType; | ||
2519 | NumberParts theNumberPartsTable; | ||
2520 | NumFormatStringRec theNumFormatStringRec; | ||
2521 | |||
2522 | |||
2523 | if (inCString == nil) | ||
2524 | { | ||
2525 | SetErrorMessage("ExtractFloatFromCStr: Bad parameter, inCString == nil"); | ||
2526 | errCode = kGenericError; | ||
2527 | goto EXITPOINT; | ||
2528 | } | ||
2529 | |||
2530 | if (outFloat == nil) | ||
2531 | { | ||
2532 | SetErrorMessage("ExtractFloatFromCStr: Bad parameter, outFloat == nil"); | ||
2533 | errCode = kGenericError; | ||
2534 | goto EXITPOINT; | ||
2535 | } | ||
2536 | |||
2537 | |||
2538 | // GetIntlResourceTable(smRoman,smNumberPartsTable,&theNumberPartsTableHandle,&theNumberPartsOffset,&theNumberPartsLength); | ||
2539 | |||
2540 | GetIntlResourceTable(GetScriptManagerVariable(smSysScript),smNumberPartsTable,&theNumberPartsTableHandle,&theNumberPartsOffset,&theNumberPartsLength); | ||
2541 | |||
2542 | if (theNumberPartsTableHandle == nil) | ||
2543 | { | ||
2544 | SetErrorMessage("ExtractFloatFromCStr: Can't get number parts table for converting string representations to/from numeric representations"); | ||
2545 | errCode = kGenericError; | ||
2546 | goto EXITPOINT; | ||
2547 | } | ||
2548 | |||
2549 | if (theNumberPartsLength > sizeof(theNumberPartsTable)) | ||
2550 | { | ||
2551 | SetErrorMessage("ExtractFloatFromCStr: Number parts table has bad length"); | ||
2552 | errCode = kGenericError; | ||
2553 | goto EXITPOINT; | ||
2554 | } | ||
2555 | |||
2556 | |||
2557 | BlockMove(*theNumberPartsTableHandle + theNumberPartsOffset,&theNumberPartsTable,theNumberPartsLength); | ||
2558 | |||
2559 | |||
2560 | theFormatResultType = (FormatResultType) StringToFormatRec(kNumberFormatString,&theNumberPartsTable,&theNumFormatStringRec); | ||
2561 | |||
2562 | if (theFormatResultType != fFormatOK) | ||
2563 | { | ||
2564 | SetErrorMessage("ExtractFloatFromCStr: StringToFormatRec() != fFormatOK"); | ||
2565 | errCode = kGenericError; | ||
2566 | goto EXITPOINT; | ||
2567 | } | ||
2568 | |||
2569 | |||
2570 | CopyCStrToPStr(inCString,theStr255,sizeof(theStr255)); | ||
2571 | |||
2572 | |||
2573 | theFormatResultType = (FormatResultType) StringToExtended(theStr255,&theNumFormatStringRec,&theNumberPartsTable,outFloat); | ||
2574 | |||
2575 | if (theFormatResultType != fFormatOK && theFormatResultType != fBestGuess) | ||
2576 | { | ||
2577 | SetErrorMessageAndLongIntAndBail("ExtractFloatFromCStr: StringToExtended() = ",theFormatResultType); | ||
2578 | } | ||
2579 | |||
2580 | |||
2581 | errCode = noErr; | ||
2582 | |||
2583 | |||
2584 | EXITPOINT: | ||
2585 | |||
2586 | return(errCode); | ||
2587 | } | ||
2588 | |||
2589 | |||
2590 | |||
2591 | OSErr CopyFloatToCStr(const extended80 *theFloat,char *theCStr,const int maxCStrLength,const int inMaxNumIntDigits,const int inMaxNumFractDigits) | ||
2592 | { | ||
2593 | OSErr errCode; | ||
2594 | Str255 theStr255; | ||
2595 | Handle theNumberPartsTableHandle = nil; | ||
2596 | long theNumberPartsOffset,theNumberPartsLength; | ||
2597 | FormatResultType theFormatResultType; | ||
2598 | NumberParts theNumberPartsTable; | ||
2599 | NumFormatStringRec theNumFormatStringRec; | ||
2600 | |||
2601 | |||
2602 | if (theCStr == nil) | ||
2603 | { | ||
2604 | SetErrorMessage("CopyFloatToCStr: Bad parameter, theCStr == nil"); | ||
2605 | errCode = kGenericError; | ||
2606 | goto EXITPOINT; | ||
2607 | } | ||
2608 | |||
2609 | if (theFloat == nil) | ||
2610 | { | ||
2611 | SetErrorMessage("CopyFloatToCStr: Bad parameter, theFloat == nil"); | ||
2612 | errCode = kGenericError; | ||
2613 | goto EXITPOINT; | ||
2614 | } | ||
2615 | |||
2616 | |||
2617 | // GetIntlResourceTable(smRoman,smNumberPartsTable,&theNumberPartsTableHandle,&theNumberPartsOffset,&theNumberPartsLength); | ||
2618 | |||
2619 | GetIntlResourceTable(GetScriptManagerVariable(smSysScript),smNumberPartsTable,&theNumberPartsTableHandle,&theNumberPartsOffset,&theNumberPartsLength); | ||
2620 | |||
2621 | if (theNumberPartsTableHandle == nil) | ||
2622 | { | ||
2623 | SetErrorMessage("CopyFloatToCStr: Can't get number parts table for converting string representations to/from numeric representations"); | ||
2624 | errCode = kGenericError; | ||
2625 | goto EXITPOINT; | ||
2626 | } | ||
2627 | |||
2628 | if (theNumberPartsLength > sizeof(theNumberPartsTable)) | ||
2629 | { | ||
2630 | SetErrorMessage("CopyFloatToCStr: Number parts table has bad length"); | ||
2631 | errCode = kGenericError; | ||
2632 | goto EXITPOINT; | ||
2633 | } | ||
2634 | |||
2635 | |||
2636 | BlockMove(*theNumberPartsTableHandle + theNumberPartsOffset,&theNumberPartsTable,theNumberPartsLength); | ||
2637 | |||
2638 | |||
2639 | if (inMaxNumIntDigits >= 0 || inMaxNumFractDigits >= 0) | ||
2640 | { | ||
2641 | char numberFormat[64]; | ||
2642 | int numberFormatLength = 0; | ||
2643 | |||
2644 | for (int i = 0;i < inMaxNumIntDigits && numberFormatLength < sizeof(numberFormat) - 1;i++) | ||
2645 | { | ||
2646 | numberFormat[numberFormatLength++] = '0'; | ||
2647 | } | ||
2648 | |||
2649 | if (inMaxNumFractDigits > 0 && numberFormatLength < sizeof(numberFormat) - 1) | ||
2650 | { | ||
2651 | numberFormat[numberFormatLength++] = '.'; | ||
2652 | |||
2653 | for (int i = 0;i < inMaxNumFractDigits && numberFormatLength < sizeof(numberFormat) - 1;i++) | ||
2654 | { | ||
2655 | numberFormat[numberFormatLength++] = '0'; | ||
2656 | } | ||
2657 | } | ||
2658 | |||
2659 | |||
2660 | if (numberFormatLength < sizeof(numberFormat) - 1) | ||
2661 | { | ||
2662 | numberFormat[numberFormatLength++] = ';'; | ||
2663 | } | ||
2664 | |||
2665 | if (numberFormatLength < sizeof(numberFormat) - 1) | ||
2666 | { | ||
2667 | numberFormat[numberFormatLength++] = '-'; | ||
2668 | } | ||
2669 | |||
2670 | |||
2671 | for (int i = 0;i < inMaxNumIntDigits && numberFormatLength < sizeof(numberFormat) - 1;i++) | ||
2672 | { | ||
2673 | numberFormat[numberFormatLength++] = '0'; | ||
2674 | } | ||
2675 | |||
2676 | if (inMaxNumFractDigits > 0 && numberFormatLength < sizeof(numberFormat) - 1) | ||
2677 | { | ||
2678 | numberFormat[numberFormatLength++] = '.'; | ||
2679 | |||
2680 | for (int i = 0;i < inMaxNumFractDigits && numberFormatLength < sizeof(numberFormat) - 1;i++) | ||
2681 | { | ||
2682 | numberFormat[numberFormatLength++] = '0'; | ||
2683 | } | ||
2684 | } | ||
2685 | |||
2686 | numberFormat[numberFormatLength] = '\0'; | ||
2687 | |||
2688 | |||
2689 | Str255 tempStr255; | ||
2690 | |||
2691 | CopyCStrToPStr(numberFormat,tempStr255,sizeof(tempStr255)); | ||
2692 | |||
2693 | theFormatResultType = (FormatResultType) StringToFormatRec(tempStr255,&theNumberPartsTable,&theNumFormatStringRec); | ||
2694 | } | ||
2695 | |||
2696 | else | ||
2697 | { | ||
2698 | theFormatResultType = (FormatResultType) StringToFormatRec(kNumberFormatString,&theNumberPartsTable,&theNumFormatStringRec); | ||
2699 | } | ||
2700 | |||
2701 | if (theFormatResultType != fFormatOK) | ||
2702 | { | ||
2703 | SetErrorMessage("CopyFloatToCStr: StringToFormatRec() != fFormatOK"); | ||
2704 | errCode = kGenericError; | ||
2705 | goto EXITPOINT; | ||
2706 | } | ||
2707 | |||
2708 | |||
2709 | theFormatResultType = (FormatResultType) ExtendedToString(theFloat,&theNumFormatStringRec,&theNumberPartsTable,theStr255); | ||
2710 | |||
2711 | if (theFormatResultType != fFormatOK) | ||
2712 | { | ||
2713 | SetErrorMessage("CopyFloatToCStr: ExtendedToString() != fFormatOK"); | ||
2714 | errCode = kGenericError; | ||
2715 | goto EXITPOINT; | ||
2716 | } | ||
2717 | |||
2718 | |||
2719 | CopyPStrToCStr(theStr255,theCStr,maxCStrLength); | ||
2720 | |||
2721 | errCode = noErr; | ||
2722 | |||
2723 | |||
2724 | EXITPOINT: | ||
2725 | |||
2726 | return(errCode); | ||
2727 | } | ||
2728 | |||
2729 | |||
2730 | |||
2731 | |||
2732 | |||
2733 | void SkipWhiteSpace(char **ioSrcCharPtr,const Boolean inStopAtEOL) | ||
2734 | { | ||
2735 | if (ioSrcCharPtr != nil && *ioSrcCharPtr != nil) | ||
2736 | { | ||
2737 | if (inStopAtEOL) | ||
2738 | { | ||
2739 | while ((**ioSrcCharPtr == ' ' || **ioSrcCharPtr == '\t') && **ioSrcCharPtr != '\r' && **ioSrcCharPtr != '\n') | ||
2740 | { | ||
2741 | *ioSrcCharPtr++; | ||
2742 | } | ||
2743 | } | ||
2744 | |||
2745 | else | ||
2746 | { | ||
2747 | while (**ioSrcCharPtr == ' ' || **ioSrcCharPtr == '\t') | ||
2748 | { | ||
2749 | *ioSrcCharPtr++; | ||
2750 | } | ||
2751 | } | ||
2752 | } | ||
2753 | } | ||
diff --git a/src/lib/libssl/src/MacOS/GetHTTPS.src/CPStringUtils.hpp b/src/lib/libssl/src/MacOS/GetHTTPS.src/CPStringUtils.hpp deleted file mode 100644 index 5045c41019..0000000000 --- a/src/lib/libssl/src/MacOS/GetHTTPS.src/CPStringUtils.hpp +++ /dev/null | |||
@@ -1,104 +0,0 @@ | |||
1 | #pragma once | ||
2 | |||
3 | #ifdef __cplusplus | ||
4 | extern "C" { | ||
5 | #endif | ||
6 | |||
7 | void CopyPStrToCStr(const unsigned char *thePStr,char *theCStr,const int maxCStrLength); | ||
8 | void CopyPStrToPStr(const unsigned char *theSrcPStr,unsigned char *theDstPStr,const int maxDstStrLength); | ||
9 | void CopyCStrToCStr(const char *theSrcCStr,char *theDstCStr,const int maxDstStrLength); | ||
10 | void CopyCStrToPStr(const char *theSrcCStr,unsigned char *theDstPStr,const int maxDstStrLength); | ||
11 | void ConcatPStrToCStr(const unsigned char *thePStr,char *theCStr,const int maxCStrLength); | ||
12 | void ConcatPStrToPStr(const unsigned char *theSrcPStr,unsigned char *theDstPStr,const int maxDstStrLength); | ||
13 | void ConcatCStrToPStr(const char *theSrcCStr,unsigned char *theDstPStr,const int maxDstStrLength); | ||
14 | void ConcatCStrToCStr(const char *theSrcCStr,char *theDstCStr,const int maxCStrLength); | ||
15 | |||
16 | void ConcatCharToCStr(const char theChar,char *theDstCStr,const int maxCStrLength); | ||
17 | void ConcatCharToPStr(const char theChar,unsigned char *theDstPStr,const int maxPStrLength); | ||
18 | |||
19 | int ComparePStrs(const unsigned char *theFirstPStr,const unsigned char *theSecondPStr,const Boolean ignoreCase = true); | ||
20 | int CompareCStrs(const char *theFirstCStr,const char *theSecondCStr,const Boolean ignoreCase = true); | ||
21 | int CompareCStrToPStr(const char *theCStr,const unsigned char *thePStr,const Boolean ignoreCase = true); | ||
22 | |||
23 | Boolean CStrsAreEqual(const char *theFirstCStr,const char *theSecondCStr,const Boolean ignoreCase = true); | ||
24 | Boolean PStrsAreEqual(const unsigned char *theFirstCStr,const unsigned char *theSecondCStr,const Boolean ignoreCase = true); | ||
25 | |||
26 | void CopyLongIntToCStr(const long theNum,char *theCStr,const int maxCStrLength,const int numDigits = -1); | ||
27 | void CopyUnsignedLongIntToCStr(const unsigned long theNum,char *theCStr,const int maxCStrLength); | ||
28 | void ConcatLongIntToCStr(const long theNum,char *theCStr,const int maxCStrLength,const int numDigits = -1); | ||
29 | void CopyCStrAndConcatLongIntToCStr(const char *theSrcCStr,const long theNum,char *theDstCStr,const int maxDstStrLength); | ||
30 | |||
31 | void CopyLongIntToPStr(const long theNum,unsigned char *thePStr,const int maxPStrLength,const int numDigits = -1); | ||
32 | void ConcatLongIntToPStr(const long theNum,unsigned char *thePStr,const int maxPStrLength,const int numDigits = -1); | ||
33 | |||
34 | long CStrLength(const char *theCString); | ||
35 | long PStrLength(const unsigned char *thePString); | ||
36 | |||
37 | OSErr CopyCStrToExistingHandle(const char *theCString,Handle theHandle); | ||
38 | OSErr CopyLongIntToExistingHandle(const long inTheLongInt,Handle theHandle); | ||
39 | |||
40 | OSErr CopyCStrToNewHandle(const char *theCString,Handle *theHandle); | ||
41 | OSErr CopyPStrToNewHandle(const unsigned char *thePString,Handle *theHandle); | ||
42 | OSErr CopyLongIntToNewHandle(const long inTheLongInt,Handle *theHandle); | ||
43 | |||
44 | OSErr AppendCStrToHandle(const char *theCString,Handle theHandle,long *currentLength = nil,long *maxLength = nil); | ||
45 | OSErr AppendCharsToHandle(const char *theChars,const int numChars,Handle theHandle,long *currentLength = nil,long *maxLength = nil); | ||
46 | OSErr AppendPStrToHandle(const unsigned char *thePString,Handle theHandle,long *currentLength = nil); | ||
47 | OSErr AppendLongIntToHandle(const long inTheLongInt,Handle theHandle,long *currentLength = nil); | ||
48 | |||
49 | void ZeroMem(void *theMemPtr,const unsigned long numBytes); | ||
50 | |||
51 | char *FindCharInCStr(const char theChar,const char *theCString); | ||
52 | long FindCharOffsetInCStr(const char theChar,const char *theCString,const Boolean inIgnoreCase = false); | ||
53 | long FindCStrOffsetInCStr(const char *theCSubstring,const char *theCString,const Boolean inIgnoreCase = false); | ||
54 | |||
55 | void CopyCSubstrToCStr(const char *theSrcCStr,const int maxCharsToCopy,char *theDstCStr,const int maxDstStrLength); | ||
56 | void CopyCSubstrToPStr(const char *theSrcCStr,const int maxCharsToCopy,unsigned char *theDstPStr,const int maxDstStrLength); | ||
57 | |||
58 | void InsertCStrIntoCStr(const char *theSrcCStr,const int theInsertionOffset,char *theDstCStr,const int maxDstStrLength); | ||
59 | void InsertPStrIntoCStr(const unsigned char *theSrcPStr,const int theInsertionOffset,char *theDstCStr,const int maxDstStrLength); | ||
60 | OSErr InsertCStrIntoHandle(const char *theCString,Handle theHandle,const long inInsertOffset); | ||
61 | |||
62 | void CopyCStrAndInsertCStrIntoCStr(const char *theSrcCStr,const char *theInsertCStr,char *theDstCStr,const int maxDstStrLength); | ||
63 | |||
64 | void CopyCStrAndInsertCStrsLongIntsIntoCStr(const char *theSrcCStr,const char **theInsertCStrs,const long *theLongInts,char *theDstCStr,const int maxDstStrLength); | ||
65 | |||
66 | void CopyCStrAndInsert1LongIntIntoCStr(const char *theSrcCStr,const long theNum,char *theDstCStr,const int maxDstStrLength); | ||
67 | void CopyCStrAndInsert2LongIntsIntoCStr(const char *theSrcCStr,const long long1,const long long2,char *theDstCStr,const int maxDstStrLength); | ||
68 | void CopyCStrAndInsert3LongIntsIntoCStr(const char *theSrcCStr,const long long1,const long long2,const long long3,char *theDstCStr,const int maxDstStrLength); | ||
69 | |||
70 | void CopyCStrAndInsertCStrLongIntIntoCStr(const char *theSrcCStr,const char *theInsertCStr,const long theNum,char *theDstCStr,const int maxDstStrLength); | ||
71 | OSErr CopyCStrAndInsertCStrLongIntIntoHandle(const char *theSrcCStr,const char *theInsertCStr,const long theNum,Handle *theHandle); | ||
72 | |||
73 | |||
74 | OSErr CopyIndexedWordToCStr(char *theSrcCStr,int whichWord,char *theDstCStr,int maxDstCStrLength); | ||
75 | OSErr CopyIndexedWordToNewHandle(char *theSrcCStr,int whichWord,Handle *outTheHandle); | ||
76 | |||
77 | OSErr CopyIndexedLineToCStr(const char *theSrcCStr,int inWhichLine,int *lineEndIndex,Boolean *gotLastLine,char *theDstCStr,const int maxDstCStrLength); | ||
78 | OSErr CopyIndexedLineToNewHandle(const char *theSrcCStr,int inWhichLine,Handle *outNewHandle); | ||
79 | |||
80 | OSErr ExtractIntFromCStr(const char *theSrcCStr,int *outInt,Boolean skipLeadingSpaces = true); | ||
81 | OSErr ExtractIntFromPStr(const unsigned char *theSrcPStr,int *outInt,Boolean skipLeadingSpaces = true); | ||
82 | |||
83 | |||
84 | void ConvertCStrToUpperCase(char *theSrcCStr); | ||
85 | |||
86 | |||
87 | int CountOccurencesOfCharInCStr(const char inChar,const char *inSrcCStr); | ||
88 | int CountWordsInCStr(const char *inSrcCStr); | ||
89 | |||
90 | OSErr CountDigits(const char *inCStr,int *outNumIntegerDigits,int *outNumFractDigits); | ||
91 | |||
92 | void ExtractCStrItemFromCStr(const char *inSrcCStr,const char inItemDelimiter,const int inItemNumber,Boolean *foundItem,char *outDstCharPtr,const int inDstCharPtrMaxLength,const Boolean inTreatMultipleDelimsAsSingleDelim = false); | ||
93 | OSErr ExtractCStrItemFromCStrIntoNewHandle(const char *inSrcCStr,const char inItemDelimiter,const int inItemNumber,Boolean *foundItem,Handle *outNewHandle,const Boolean inTreatMultipleDelimsAsSingleDelim = false); | ||
94 | |||
95 | |||
96 | OSErr ExtractFloatFromCStr(const char *inCString,extended80 *outFloat); | ||
97 | OSErr CopyFloatToCStr(const extended80 *theFloat,char *theCStr,const int maxCStrLength,const int inMaxNumIntDigits = -1,const int inMaxNumFractDigits = -1); | ||
98 | |||
99 | void SkipWhiteSpace(char **ioSrcCharPtr,const Boolean inStopAtEOL = false); | ||
100 | |||
101 | |||
102 | #ifdef __cplusplus | ||
103 | } | ||
104 | #endif | ||
diff --git a/src/lib/libssl/src/MacOS/GetHTTPS.src/ErrorHandling.cpp b/src/lib/libssl/src/MacOS/GetHTTPS.src/ErrorHandling.cpp deleted file mode 100644 index 80b6a675f4..0000000000 --- a/src/lib/libssl/src/MacOS/GetHTTPS.src/ErrorHandling.cpp +++ /dev/null | |||
@@ -1,170 +0,0 @@ | |||
1 | /* ==================================================================== | ||
2 | * Copyright (c) 1998-1999 The OpenSSL Project. All rights reserved. | ||
3 | * | ||
4 | * Redistribution and use in source and binary forms, with or without | ||
5 | * modification, are permitted provided that the following conditions | ||
6 | * are met: | ||
7 | * | ||
8 | * 1. Redistributions of source code must retain the above copyright | ||
9 | * notice, this list of conditions and the following disclaimer. | ||
10 | * | ||
11 | * 2. Redistributions in binary form must reproduce the above copyright | ||
12 | * notice, this list of conditions and the following disclaimer in | ||
13 | * the documentation and/or other materials provided with the | ||
14 | * distribution. | ||
15 | * | ||
16 | * 3. All advertising materials mentioning features or use of this | ||
17 | * software must display the following acknowledgment: | ||
18 | * "This product includes software developed by the OpenSSL Project | ||
19 | * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" | ||
20 | * | ||
21 | * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to | ||
22 | * endorse or promote products derived from this software without | ||
23 | * prior written permission. For written permission, please contact | ||
24 | * openssl-core@openssl.org. | ||
25 | * | ||
26 | * 5. Products derived from this software may not be called "OpenSSL" | ||
27 | * nor may "OpenSSL" appear in their names without prior written | ||
28 | * permission of the OpenSSL Project. | ||
29 | * | ||
30 | * 6. Redistributions of any form whatsoever must retain the following | ||
31 | * acknowledgment: | ||
32 | * "This product includes software developed by the OpenSSL Project | ||
33 | * for use in the OpenSSL Toolkit (http://www.openssl.org/)" | ||
34 | * | ||
35 | * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY | ||
36 | * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
37 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||
38 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR | ||
39 | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
40 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
41 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
42 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
43 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | ||
44 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
45 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | ||
46 | * OF THE POSSIBILITY OF SUCH DAMAGE. | ||
47 | * ==================================================================== | ||
48 | * | ||
49 | * This product includes cryptographic software written by Eric Young | ||
50 | * (eay@cryptsoft.com). This product includes software written by Tim | ||
51 | * Hudson (tjh@cryptsoft.com). | ||
52 | * | ||
53 | */ | ||
54 | |||
55 | |||
56 | |||
57 | #include "ErrorHandling.hpp" | ||
58 | #include "CPStringUtils.hpp" | ||
59 | |||
60 | #ifdef __EXCEPTIONS_ENABLED__ | ||
61 | #include "CMyException.hpp" | ||
62 | #endif | ||
63 | |||
64 | |||
65 | static char gErrorMessageBuffer[512]; | ||
66 | |||
67 | char *gErrorMessage = gErrorMessageBuffer; | ||
68 | int gErrorMessageMaxLength = sizeof(gErrorMessageBuffer); | ||
69 | |||
70 | |||
71 | |||
72 | void SetErrorMessage(const char *theErrorMessage) | ||
73 | { | ||
74 | if (theErrorMessage != nil) | ||
75 | { | ||
76 | CopyCStrToCStr(theErrorMessage,gErrorMessage,gErrorMessageMaxLength); | ||
77 | } | ||
78 | } | ||
79 | |||
80 | |||
81 | void SetErrorMessageAndAppendLongInt(const char *theErrorMessage,const long theLongInt) | ||
82 | { | ||
83 | if (theErrorMessage != nil) | ||
84 | { | ||
85 | CopyCStrAndConcatLongIntToCStr(theErrorMessage,theLongInt,gErrorMessage,gErrorMessageMaxLength); | ||
86 | } | ||
87 | } | ||
88 | |||
89 | void SetErrorMessageAndCStrAndLongInt(const char *theErrorMessage,const char * theCStr,const long theLongInt) | ||
90 | { | ||
91 | if (theErrorMessage != nil) | ||
92 | { | ||
93 | CopyCStrAndInsertCStrLongIntIntoCStr(theErrorMessage,theCStr,theLongInt,gErrorMessage,gErrorMessageMaxLength); | ||
94 | } | ||
95 | |||
96 | } | ||
97 | |||
98 | void SetErrorMessageAndCStr(const char *theErrorMessage,const char * theCStr) | ||
99 | { | ||
100 | if (theErrorMessage != nil) | ||
101 | { | ||
102 | CopyCStrAndInsertCStrLongIntIntoCStr(theErrorMessage,theCStr,-1,gErrorMessage,gErrorMessageMaxLength); | ||
103 | } | ||
104 | } | ||
105 | |||
106 | |||
107 | void AppendCStrToErrorMessage(const char *theErrorMessage) | ||
108 | { | ||
109 | if (theErrorMessage != nil) | ||
110 | { | ||
111 | ConcatCStrToCStr(theErrorMessage,gErrorMessage,gErrorMessageMaxLength); | ||
112 | } | ||
113 | } | ||
114 | |||
115 | |||
116 | void AppendLongIntToErrorMessage(const long theLongInt) | ||
117 | { | ||
118 | ConcatLongIntToCStr(theLongInt,gErrorMessage,gErrorMessageMaxLength); | ||
119 | } | ||
120 | |||
121 | |||
122 | |||
123 | char *GetErrorMessage(void) | ||
124 | { | ||
125 | return gErrorMessage; | ||
126 | } | ||
127 | |||
128 | |||
129 | OSErr GetErrorMessageInNewHandle(Handle *inoutHandle) | ||
130 | { | ||
131 | OSErr errCode; | ||
132 | |||
133 | |||
134 | errCode = CopyCStrToNewHandle(gErrorMessage,inoutHandle); | ||
135 | |||
136 | return(errCode); | ||
137 | } | ||
138 | |||
139 | |||
140 | OSErr GetErrorMessageInExistingHandle(Handle inoutHandle) | ||
141 | { | ||
142 | OSErr errCode; | ||
143 | |||
144 | |||
145 | errCode = CopyCStrToExistingHandle(gErrorMessage,inoutHandle); | ||
146 | |||
147 | return(errCode); | ||
148 | } | ||
149 | |||
150 | |||
151 | |||
152 | OSErr AppendErrorMessageToHandle(Handle inoutHandle) | ||
153 | { | ||
154 | OSErr errCode; | ||
155 | |||
156 | |||
157 | errCode = AppendCStrToHandle(gErrorMessage,inoutHandle,nil); | ||
158 | |||
159 | return(errCode); | ||
160 | } | ||
161 | |||
162 | |||
163 | #ifdef __EXCEPTIONS_ENABLED__ | ||
164 | |||
165 | void ThrowErrorMessageException(void) | ||
166 | { | ||
167 | ThrowDescriptiveException(gErrorMessage); | ||
168 | } | ||
169 | |||
170 | #endif | ||
diff --git a/src/lib/libssl/src/MacOS/GetHTTPS.src/ErrorHandling.hpp b/src/lib/libssl/src/MacOS/GetHTTPS.src/ErrorHandling.hpp deleted file mode 100644 index fbfbe786b7..0000000000 --- a/src/lib/libssl/src/MacOS/GetHTTPS.src/ErrorHandling.hpp +++ /dev/null | |||
@@ -1,147 +0,0 @@ | |||
1 | #ifdef __cplusplus | ||
2 | extern "C" { | ||
3 | #endif | ||
4 | |||
5 | #ifndef kGenericError | ||
6 | #define kGenericError -1 | ||
7 | #endif | ||
8 | |||
9 | extern char *gErrorMessage; | ||
10 | |||
11 | |||
12 | void SetErrorMessage(const char *theErrorMessage); | ||
13 | void SetErrorMessageAndAppendLongInt(const char *theErrorMessage,const long theLongInt); | ||
14 | void SetErrorMessageAndCStrAndLongInt(const char *theErrorMessage,const char * theCStr,const long theLongInt); | ||
15 | void SetErrorMessageAndCStr(const char *theErrorMessage,const char * theCStr); | ||
16 | void AppendCStrToErrorMessage(const char *theErrorMessage); | ||
17 | void AppendLongIntToErrorMessage(const long theLongInt); | ||
18 | |||
19 | |||
20 | char *GetErrorMessage(void); | ||
21 | OSErr GetErrorMessageInNewHandle(Handle *inoutHandle); | ||
22 | OSErr GetErrorMessageInExistingHandle(Handle inoutHandle); | ||
23 | OSErr AppendErrorMessageToHandle(Handle inoutHandle); | ||
24 | |||
25 | |||
26 | #ifdef __EXCEPTIONS_ENABLED__ | ||
27 | void ThrowErrorMessageException(void); | ||
28 | #endif | ||
29 | |||
30 | |||
31 | |||
32 | // A bunch of evil macros that would be unnecessary if I were always using C++ ! | ||
33 | |||
34 | #define SetErrorMessageAndBailIfNil(theArg,theMessage) \ | ||
35 | { \ | ||
36 | if (theArg == nil) \ | ||
37 | { \ | ||
38 | SetErrorMessage(theMessage); \ | ||
39 | errCode = kGenericError; \ | ||
40 | goto EXITPOINT; \ | ||
41 | } \ | ||
42 | } | ||
43 | |||
44 | |||
45 | #define SetErrorMessageAndBail(theMessage) \ | ||
46 | { \ | ||
47 | SetErrorMessage(theMessage); \ | ||
48 | errCode = kGenericError; \ | ||
49 | goto EXITPOINT; \ | ||
50 | } | ||
51 | |||
52 | |||
53 | #define SetErrorMessageAndLongIntAndBail(theMessage,theLongInt) \ | ||
54 | { \ | ||
55 | SetErrorMessageAndAppendLongInt(theMessage,theLongInt); \ | ||
56 | errCode = kGenericError; \ | ||
57 | goto EXITPOINT; \ | ||
58 | } | ||
59 | |||
60 | |||
61 | #define SetErrorMessageAndLongIntAndBailIfError(theErrCode,theMessage,theLongInt) \ | ||
62 | { \ | ||
63 | if (theErrCode != noErr) \ | ||
64 | { \ | ||
65 | SetErrorMessageAndAppendLongInt(theMessage,theLongInt); \ | ||
66 | errCode = theErrCode; \ | ||
67 | goto EXITPOINT; \ | ||
68 | } \ | ||
69 | } | ||
70 | |||
71 | |||
72 | #define SetErrorMessageCStrLongIntAndBailIfError(theErrCode,theMessage,theCStr,theLongInt) \ | ||
73 | { \ | ||
74 | if (theErrCode != noErr) \ | ||
75 | { \ | ||
76 | SetErrorMessageAndCStrAndLongInt(theMessage,theCStr,theLongInt); \ | ||
77 | errCode = theErrCode; \ | ||
78 | goto EXITPOINT; \ | ||
79 | } \ | ||
80 | } | ||
81 | |||
82 | |||
83 | #define SetErrorMessageAndCStrAndBail(theMessage,theCStr) \ | ||
84 | { \ | ||
85 | SetErrorMessageAndCStr(theMessage,theCStr); \ | ||
86 | errCode = kGenericError; \ | ||
87 | goto EXITPOINT; \ | ||
88 | } | ||
89 | |||
90 | |||
91 | #define SetErrorMessageAndBailIfError(theErrCode,theMessage) \ | ||
92 | { \ | ||
93 | if (theErrCode != noErr) \ | ||
94 | { \ | ||
95 | SetErrorMessage(theMessage); \ | ||
96 | errCode = theErrCode; \ | ||
97 | goto EXITPOINT; \ | ||
98 | } \ | ||
99 | } | ||
100 | |||
101 | |||
102 | #define SetErrorMessageAndLongIntAndBailIfNil(theArg,theMessage,theLongInt) \ | ||
103 | { \ | ||
104 | if (theArg == nil) \ | ||
105 | { \ | ||
106 | SetErrorMessageAndAppendLongInt(theMessage,theLongInt); \ | ||
107 | errCode = kGenericError; \ | ||
108 | goto EXITPOINT; \ | ||
109 | } \ | ||
110 | } | ||
111 | |||
112 | |||
113 | #define BailIfError(theErrCode) \ | ||
114 | { \ | ||
115 | if ((theErrCode) != noErr) \ | ||
116 | { \ | ||
117 | goto EXITPOINT; \ | ||
118 | } \ | ||
119 | } | ||
120 | |||
121 | |||
122 | #define SetErrCodeAndBail(theErrCode) \ | ||
123 | { \ | ||
124 | errCode = theErrCode; \ | ||
125 | \ | ||
126 | goto EXITPOINT; \ | ||
127 | } | ||
128 | |||
129 | |||
130 | #define SetErrorCodeAndMessageAndBail(theErrCode,theMessage) \ | ||
131 | { \ | ||
132 | SetErrorMessage(theMessage); \ | ||
133 | errCode = theErrCode; \ | ||
134 | goto EXITPOINT; \ | ||
135 | } | ||
136 | |||
137 | |||
138 | #define BailNow() \ | ||
139 | { \ | ||
140 | errCode = kGenericError; \ | ||
141 | goto EXITPOINT; \ | ||
142 | } | ||
143 | |||
144 | |||
145 | #ifdef __cplusplus | ||
146 | } | ||
147 | #endif | ||
diff --git a/src/lib/libssl/src/MacOS/GetHTTPS.src/GetHTTPS.cpp b/src/lib/libssl/src/MacOS/GetHTTPS.src/GetHTTPS.cpp deleted file mode 100644 index 3a5e3f0186..0000000000 --- a/src/lib/libssl/src/MacOS/GetHTTPS.src/GetHTTPS.cpp +++ /dev/null | |||
@@ -1,209 +0,0 @@ | |||
1 | /* | ||
2 | * An demo illustrating how to retrieve a URI from a secure HTTP server. | ||
3 | * | ||
4 | * Author: Roy Wood | ||
5 | * Date: September 7, 1999 | ||
6 | * Comments: This relies heavily on my MacSockets library. | ||
7 | * This project is also set up so that it expects the OpenSSL source folder (0.9.4 as I write this) | ||
8 | * to live in a folder called "OpenSSL-0.9.4" in this project's parent folder. For example: | ||
9 | * | ||
10 | * Macintosh HD: | ||
11 | * Development: | ||
12 | * OpenSSL-0.9.4: | ||
13 | * (OpenSSL sources here) | ||
14 | * OpenSSL Example: | ||
15 | * (OpenSSL example junk here) | ||
16 | * | ||
17 | * | ||
18 | * Also-- before attempting to compile this, make sure the aliases in "OpenSSL-0.9.4:include:openssl" | ||
19 | * are installed! Use the AppleScript applet in the "openssl-0.9.4" folder to do this! | ||
20 | */ | ||
21 | /* modified to seed the PRNG */ | ||
22 | /* modified to use CRandomizer for seeding */ | ||
23 | |||
24 | |||
25 | // Include some funky libs I've developed over time | ||
26 | |||
27 | #include "CPStringUtils.hpp" | ||
28 | #include "ErrorHandling.hpp" | ||
29 | #include "MacSocket.h" | ||
30 | #include "Randomizer.h" | ||
31 | |||
32 | // We use the OpenSSL implementation of SSL.... | ||
33 | // This was a lot of work to finally get going, though you wouldn't know it by the results! | ||
34 | |||
35 | #include <openssl/ssl.h> | ||
36 | #include <openssl/err.h> | ||
37 | |||
38 | #include <timer.h> | ||
39 | |||
40 | // Let's try grabbing some data from here: | ||
41 | |||
42 | #define kHTTPS_DNS "www.apache-ssl.org" | ||
43 | #define kHTTPS_Port 443 | ||
44 | #define kHTTPS_URI "/" | ||
45 | |||
46 | |||
47 | // Forward-declare this | ||
48 | |||
49 | OSErr MyMacSocket_IdleWaitCallback(void *inUserRefPtr); | ||
50 | |||
51 | // My idle-wait callback. Doesn't do much, does it? Silly cooperative multitasking. | ||
52 | |||
53 | OSErr MyMacSocket_IdleWaitCallback(void *inUserRefPtr) | ||
54 | { | ||
55 | #pragma unused(inUserRefPtr) | ||
56 | |||
57 | EventRecord theEvent; | ||
58 | ::EventAvail(everyEvent,&theEvent); | ||
59 | |||
60 | CRandomizer *randomizer = (CRandomizer*)inUserRefPtr; | ||
61 | if (randomizer) | ||
62 | randomizer->PeriodicAction(); | ||
63 | |||
64 | return(noErr); | ||
65 | } | ||
66 | |||
67 | |||
68 | // Finally! | ||
69 | |||
70 | void main(void) | ||
71 | { | ||
72 | OSErr errCode; | ||
73 | int theSocket = -1; | ||
74 | int theTimeout = 30; | ||
75 | |||
76 | SSL_CTX *ssl_ctx = nil; | ||
77 | SSL *ssl = nil; | ||
78 | |||
79 | char tempString[256]; | ||
80 | UnsignedWide microTickCount; | ||
81 | |||
82 | |||
83 | CRandomizer randomizer; | ||
84 | |||
85 | printf("OpenSSL Demo by Roy Wood, roy@centricsystems.ca\n\n"); | ||
86 | |||
87 | BailIfError(errCode = MacSocket_Startup()); | ||
88 | |||
89 | |||
90 | |||
91 | // Create a socket-like object | ||
92 | |||
93 | BailIfError(errCode = MacSocket_socket(&theSocket,false,theTimeout * 60,MyMacSocket_IdleWaitCallback,&randomizer)); | ||
94 | |||
95 | |||
96 | // Set up the connect string and try to connect | ||
97 | |||
98 | CopyCStrAndInsertCStrLongIntIntoCStr("%s:%ld",kHTTPS_DNS,kHTTPS_Port,tempString,sizeof(tempString)); | ||
99 | |||
100 | printf("Connecting to %s....\n",tempString); | ||
101 | |||
102 | BailIfError(errCode = MacSocket_connect(theSocket,tempString)); | ||
103 | |||
104 | |||
105 | // Init SSL stuff | ||
106 | |||
107 | SSL_load_error_strings(); | ||
108 | |||
109 | SSLeay_add_ssl_algorithms(); | ||
110 | |||
111 | |||
112 | // Pick the SSL method | ||
113 | |||
114 | // ssl_ctx = SSL_CTX_new(SSLv2_client_method()); | ||
115 | ssl_ctx = SSL_CTX_new(SSLv23_client_method()); | ||
116 | // ssl_ctx = SSL_CTX_new(SSLv3_client_method()); | ||
117 | |||
118 | |||
119 | // Create an SSL thingey and try to negotiate the connection | ||
120 | |||
121 | ssl = SSL_new(ssl_ctx); | ||
122 | |||
123 | SSL_set_fd(ssl,theSocket); | ||
124 | |||
125 | errCode = SSL_connect(ssl); | ||
126 | |||
127 | if (errCode < 0) | ||
128 | { | ||
129 | SetErrorMessageAndLongIntAndBail("OpenSSL: Can't initiate SSL connection, SSL_connect() = ",errCode); | ||
130 | } | ||
131 | |||
132 | // Request the URI from the host | ||
133 | |||
134 | CopyCStrToCStr("GET ",tempString,sizeof(tempString)); | ||
135 | ConcatCStrToCStr(kHTTPS_URI,tempString,sizeof(tempString)); | ||
136 | ConcatCStrToCStr(" HTTP/1.0\r\n\r\n",tempString,sizeof(tempString)); | ||
137 | |||
138 | |||
139 | errCode = SSL_write(ssl,tempString,CStrLength(tempString)); | ||
140 | |||
141 | if (errCode < 0) | ||
142 | { | ||
143 | SetErrorMessageAndLongIntAndBail("OpenSSL: Error writing data via ssl, SSL_write() = ",errCode); | ||
144 | } | ||
145 | |||
146 | |||
147 | for (;;) | ||
148 | { | ||
149 | char tempString[256]; | ||
150 | int bytesRead; | ||
151 | |||
152 | |||
153 | // Read some bytes and dump them to the console | ||
154 | |||
155 | bytesRead = SSL_read(ssl,tempString,sizeof(tempString) - 1); | ||
156 | |||
157 | if (bytesRead == 0 && MacSocket_RemoteEndIsClosing(theSocket)) | ||
158 | { | ||
159 | break; | ||
160 | } | ||
161 | |||
162 | else if (bytesRead < 0) | ||
163 | { | ||
164 | SetErrorMessageAndLongIntAndBail("OpenSSL: Error reading data via ssl, SSL_read() = ",bytesRead); | ||
165 | } | ||
166 | |||
167 | |||
168 | tempString[bytesRead] = '\0'; | ||
169 | |||
170 | printf("%s", tempString); | ||
171 | } | ||
172 | |||
173 | printf("\n\n\n"); | ||
174 | |||
175 | // All done! | ||
176 | |||
177 | errCode = noErr; | ||
178 | |||
179 | |||
180 | EXITPOINT: | ||
181 | |||
182 | // Clean up and go home | ||
183 | |||
184 | if (theSocket >= 0) | ||
185 | { | ||
186 | MacSocket_close(theSocket); | ||
187 | } | ||
188 | |||
189 | if (ssl != nil) | ||
190 | { | ||
191 | SSL_free(ssl); | ||
192 | } | ||
193 | |||
194 | if (ssl_ctx != nil) | ||
195 | { | ||
196 | SSL_CTX_free(ssl_ctx); | ||
197 | } | ||
198 | |||
199 | |||
200 | if (errCode != noErr) | ||
201 | { | ||
202 | printf("An error occurred:\n"); | ||
203 | |||
204 | printf("%s",GetErrorMessage()); | ||
205 | } | ||
206 | |||
207 | |||
208 | MacSocket_Shutdown(); | ||
209 | } | ||
diff --git a/src/lib/libssl/src/MacOS/GetHTTPS.src/MacSocket.cpp b/src/lib/libssl/src/MacOS/GetHTTPS.src/MacSocket.cpp deleted file mode 100644 index c95d804d5d..0000000000 --- a/src/lib/libssl/src/MacOS/GetHTTPS.src/MacSocket.cpp +++ /dev/null | |||
@@ -1,1607 +0,0 @@ | |||
1 | /* | ||
2 | * A simple socket-like package. | ||
3 | * This could undoubtedly be improved, since it does polling and busy-waiting. | ||
4 | * At least it uses asynch I/O and implements timeouts! | ||
5 | * | ||
6 | * Other funkiness includes the use of my own (possibly brain-damaged) error-handling infrastructure. | ||
7 | * | ||
8 | * -Roy Wood (roy@centricsystems.ca) | ||
9 | * | ||
10 | */ | ||
11 | |||
12 | |||
13 | /* ==================================================================== | ||
14 | * Copyright (c) 1998-1999 The OpenSSL Project. All rights reserved. | ||
15 | * | ||
16 | * Redistribution and use in source and binary forms, with or without | ||
17 | * modification, are permitted provided that the following conditions | ||
18 | * are met: | ||
19 | * | ||
20 | * 1. Redistributions of source code must retain the above copyright | ||
21 | * notice, this list of conditions and the following disclaimer. | ||
22 | * | ||
23 | * 2. Redistributions in binary form must reproduce the above copyright | ||
24 | * notice, this list of conditions and the following disclaimer in | ||
25 | * the documentation and/or other materials provided with the | ||
26 | * distribution. | ||
27 | * | ||
28 | * 3. All advertising materials mentioning features or use of this | ||
29 | * software must display the following acknowledgment: | ||
30 | * "This product includes software developed by the OpenSSL Project | ||
31 | * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" | ||
32 | * | ||
33 | * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to | ||
34 | * endorse or promote products derived from this software without | ||
35 | * prior written permission. For written permission, please contact | ||
36 | * openssl-core@openssl.org. | ||
37 | * | ||
38 | * 5. Products derived from this software may not be called "OpenSSL" | ||
39 | * nor may "OpenSSL" appear in their names without prior written | ||
40 | * permission of the OpenSSL Project. | ||
41 | * | ||
42 | * 6. Redistributions of any form whatsoever must retain the following | ||
43 | * acknowledgment: | ||
44 | * "This product includes software developed by the OpenSSL Project | ||
45 | * for use in the OpenSSL Toolkit (http://www.openssl.org/)" | ||
46 | * | ||
47 | * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY | ||
48 | * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
49 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||
50 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR | ||
51 | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
52 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
53 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
54 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
55 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | ||
56 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
57 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | ||
58 | * OF THE POSSIBILITY OF SUCH DAMAGE. | ||
59 | * ==================================================================== | ||
60 | * | ||
61 | * This product includes cryptographic software written by Eric Young | ||
62 | * (eay@cryptsoft.com). This product includes software written by Tim | ||
63 | * Hudson (tjh@cryptsoft.com). | ||
64 | * | ||
65 | */ | ||
66 | |||
67 | |||
68 | |||
69 | |||
70 | |||
71 | #include "MacSocket.h" | ||
72 | |||
73 | #include <Threads.h> | ||
74 | |||
75 | #include <OpenTransport.h> | ||
76 | #include <OpenTpTInternet.h> | ||
77 | #include <OpenTptClient.h> | ||
78 | |||
79 | |||
80 | |||
81 | #include "CPStringUtils.hpp" | ||
82 | #include "ErrorHandling.hpp" | ||
83 | |||
84 | |||
85 | // #define MACSOCKET_DEBUG 1 | ||
86 | |||
87 | #ifdef MACSOCKET_DEBUG | ||
88 | #include <stdio.h> | ||
89 | #endif | ||
90 | |||
91 | |||
92 | |||
93 | extern int errno; | ||
94 | |||
95 | |||
96 | #define kMaxNumSockets 4 | ||
97 | |||
98 | |||
99 | struct SocketStruct | ||
100 | { | ||
101 | Boolean mIsInUse; | ||
102 | |||
103 | Boolean mEndpointIsBound; | ||
104 | |||
105 | Boolean mLocalEndIsConnected; | ||
106 | Boolean mRemoteEndIsConnected; | ||
107 | |||
108 | Boolean mReceivedTOpenComplete; | ||
109 | Boolean mReceivedTBindComplete; | ||
110 | Boolean mReceivedTConnect; | ||
111 | Boolean mReceivedTListen; | ||
112 | Boolean mReceivedTPassCon; | ||
113 | Boolean mReceivedTDisconnect; | ||
114 | Boolean mReceivedTOrdRel; | ||
115 | Boolean mReceivedTDisconnectComplete; | ||
116 | |||
117 | long mTimeoutTicks; | ||
118 | long mOperationStartTicks; | ||
119 | |||
120 | MacSocket_IdleWaitCallback mIdleWaitCallback; | ||
121 | void *mUserRefPtr; | ||
122 | |||
123 | OTEventCode mExpectedCode; | ||
124 | OTResult mAsyncOperationResult; | ||
125 | |||
126 | EndpointRef mEndPointRef; | ||
127 | TBind *mBindRequestedAddrInfo; | ||
128 | TBind *mAssignedAddrInfo; | ||
129 | TCall *mRemoteAddrInfo; | ||
130 | |||
131 | Boolean mReadyToReadData; | ||
132 | Boolean mReadyToWriteData; | ||
133 | |||
134 | Ptr mReadBuffer; | ||
135 | Ptr mWriteBuffer; | ||
136 | |||
137 | int mLastError; | ||
138 | char mErrMessage[256]; | ||
139 | }; | ||
140 | |||
141 | typedef struct SocketStruct SocketStruct; | ||
142 | |||
143 | |||
144 | static SocketStruct sSockets[kMaxNumSockets]; | ||
145 | static Boolean sSocketsSetup = false; | ||
146 | |||
147 | |||
148 | |||
149 | |||
150 | static OSErr MyBusyWait(SocketStruct *ioSocket,Boolean returnImmediatelyOnError,OTResult *outOTResult,Boolean *inAsyncOperationCompleteFlag); | ||
151 | |||
152 | static pascal void OTNonYieldingNotifier(void *contextPtr,OTEventCode code,OTResult result,void *cookie); | ||
153 | |||
154 | static Boolean SocketIndexIsValid(const int inSocketNum); | ||
155 | |||
156 | static void InitSocket(SocketStruct *ioSocket); | ||
157 | |||
158 | static void PrepareForAsyncOperation(SocketStruct *ioSocket,const OTEventCode inExpectedCode); | ||
159 | |||
160 | static Boolean TimeoutElapsed(const SocketStruct *inSocket); | ||
161 | |||
162 | static OSStatus NegotiateIPReuseAddrOption(EndpointRef inEndpoint,const Boolean inEnableReuseIP); | ||
163 | |||
164 | |||
165 | |||
166 | void MacSocket_GetSocketErrorInfo(const int inSocketNum,int *outSocketErrCode,char *outSocketErrString,const int inSocketErrStringMaxLength) | ||
167 | { | ||
168 | if (outSocketErrCode != nil) | ||
169 | { | ||
170 | *outSocketErrCode = -1; | ||
171 | } | ||
172 | |||
173 | if (outSocketErrString != nil) | ||
174 | { | ||
175 | CopyCStrToCStr("",outSocketErrString,inSocketErrStringMaxLength); | ||
176 | } | ||
177 | |||
178 | |||
179 | if (SocketIndexIsValid(inSocketNum)) | ||
180 | { | ||
181 | SocketStruct *theSocketStruct = &(sSockets[inSocketNum]); | ||
182 | |||
183 | |||
184 | if (outSocketErrCode != nil) | ||
185 | { | ||
186 | *outSocketErrCode = theSocketStruct->mLastError; | ||
187 | } | ||
188 | |||
189 | if (outSocketErrString != nil) | ||
190 | { | ||
191 | CopyCStrToCStr(theSocketStruct->mErrMessage,outSocketErrString,inSocketErrStringMaxLength); | ||
192 | } | ||
193 | } | ||
194 | } | ||
195 | |||
196 | |||
197 | void MacSocket_SetUserRefPtr(const int inSocketNum,void *inNewRefPtr) | ||
198 | { | ||
199 | if (SocketIndexIsValid(inSocketNum)) | ||
200 | { | ||
201 | SocketStruct *theSocketStruct = &(sSockets[inSocketNum]); | ||
202 | |||
203 | theSocketStruct->mUserRefPtr = inNewRefPtr; | ||
204 | } | ||
205 | } | ||
206 | |||
207 | |||
208 | |||
209 | void MacSocket_GetLocalIPAndPort(const int inSocketNum,char *outIPAndPort,const int inIPAndPortLength) | ||
210 | { | ||
211 | if (outIPAndPort != nil && SocketIndexIsValid(inSocketNum)) | ||
212 | { | ||
213 | char tempString[256]; | ||
214 | SocketStruct *theSocketStruct = &(sSockets[inSocketNum]); | ||
215 | |||
216 | |||
217 | CopyCStrToCStr("",tempString,sizeof(tempString)); | ||
218 | |||
219 | if (theSocketStruct->mAssignedAddrInfo != nil) | ||
220 | { | ||
221 | InetAddress *theInetAddress = (InetAddress *) theSocketStruct->mAssignedAddrInfo->addr.buf; | ||
222 | InetHost theInetHost = theInetAddress->fHost; | ||
223 | |||
224 | if (theInetHost == 0) | ||
225 | { | ||
226 | InetInterfaceInfo theInetInterfaceInfo; | ||
227 | |||
228 | if (::OTInetGetInterfaceInfo(&theInetInterfaceInfo,kDefaultInetInterface) == noErr) | ||
229 | { | ||
230 | theInetHost = theInetInterfaceInfo.fAddress; | ||
231 | } | ||
232 | } | ||
233 | |||
234 | ::OTInetHostToString(theInetHost,tempString); | ||
235 | |||
236 | ConcatCStrToCStr(":",tempString,sizeof(tempString)); | ||
237 | ConcatLongIntToCStr(theInetAddress->fPort,tempString,sizeof(tempString)); | ||
238 | } | ||
239 | |||
240 | CopyCStrToCStr(tempString,outIPAndPort,inIPAndPortLength); | ||
241 | } | ||
242 | } | ||
243 | |||
244 | |||
245 | |||
246 | void MacSocket_GetRemoteIPAndPort(const int inSocketNum,char *outIPAndPort,const int inIPAndPortLength) | ||
247 | { | ||
248 | if (outIPAndPort != nil && SocketIndexIsValid(inSocketNum)) | ||
249 | { | ||
250 | char tempString[256]; | ||
251 | SocketStruct *theSocketStruct = &(sSockets[inSocketNum]); | ||
252 | |||
253 | |||
254 | CopyCStrToCStr("",tempString,sizeof(tempString)); | ||
255 | |||
256 | if (theSocketStruct->mRemoteAddrInfo != nil) | ||
257 | { | ||
258 | InetAddress *theInetAddress = (InetAddress *) theSocketStruct->mRemoteAddrInfo->addr.buf; | ||
259 | InetHost theInetHost = theInetAddress->fHost; | ||
260 | |||
261 | if (theInetHost == 0) | ||
262 | { | ||
263 | InetInterfaceInfo theInetInterfaceInfo; | ||
264 | |||
265 | if (::OTInetGetInterfaceInfo(&theInetInterfaceInfo,kDefaultInetInterface) == noErr) | ||
266 | { | ||
267 | theInetHost = theInetInterfaceInfo.fAddress; | ||
268 | } | ||
269 | } | ||
270 | |||
271 | ::OTInetHostToString(theInetHost,tempString); | ||
272 | |||
273 | ConcatCStrToCStr(":",tempString,sizeof(tempString)); | ||
274 | ConcatLongIntToCStr(theInetAddress->fPort,tempString,sizeof(tempString)); | ||
275 | } | ||
276 | |||
277 | CopyCStrToCStr(tempString,outIPAndPort,inIPAndPortLength); | ||
278 | } | ||
279 | } | ||
280 | |||
281 | |||
282 | |||
283 | Boolean MacSocket_RemoteEndIsClosing(const int inSocketNum) | ||
284 | { | ||
285 | Boolean theResult = false; | ||
286 | |||
287 | if (SocketIndexIsValid(inSocketNum)) | ||
288 | { | ||
289 | SocketStruct *theSocketStruct = &(sSockets[inSocketNum]); | ||
290 | |||
291 | theResult = theSocketStruct->mReceivedTOrdRel; | ||
292 | } | ||
293 | |||
294 | return(theResult); | ||
295 | } | ||
296 | |||
297 | |||
298 | |||
299 | Boolean MacSocket_ListenCompleted(const int inSocketNum) | ||
300 | { | ||
301 | Boolean theResult = false; | ||
302 | |||
303 | if (SocketIndexIsValid(inSocketNum)) | ||
304 | { | ||
305 | SocketStruct *theSocketStruct = &(sSockets[inSocketNum]); | ||
306 | |||
307 | theResult = theSocketStruct->mReceivedTPassCon; | ||
308 | } | ||
309 | |||
310 | return(theResult); | ||
311 | } | ||
312 | |||
313 | |||
314 | |||
315 | Boolean MacSocket_RemoteEndIsOpen(const int inSocketNum) | ||
316 | { | ||
317 | if (SocketIndexIsValid(inSocketNum)) | ||
318 | { | ||
319 | SocketStruct *theSocketStruct = &(sSockets[inSocketNum]); | ||
320 | |||
321 | return(theSocketStruct->mRemoteEndIsConnected); | ||
322 | } | ||
323 | |||
324 | else | ||
325 | { | ||
326 | return(false); | ||
327 | } | ||
328 | } | ||
329 | |||
330 | |||
331 | |||
332 | Boolean MacSocket_LocalEndIsOpen(const int inSocketNum) | ||
333 | { | ||
334 | if (SocketIndexIsValid(inSocketNum)) | ||
335 | { | ||
336 | SocketStruct *theSocketStruct = &(sSockets[inSocketNum]); | ||
337 | |||
338 | return(theSocketStruct->mLocalEndIsConnected); | ||
339 | } | ||
340 | |||
341 | else | ||
342 | { | ||
343 | return(false); | ||
344 | } | ||
345 | } | ||
346 | |||
347 | |||
348 | |||
349 | static Boolean TimeoutElapsed(const SocketStruct *inSocket) | ||
350 | { | ||
351 | Boolean timeIsUp = false; | ||
352 | |||
353 | if (inSocket != nil && inSocket->mTimeoutTicks > 0 && ::TickCount() > inSocket->mOperationStartTicks + inSocket->mTimeoutTicks) | ||
354 | { | ||
355 | timeIsUp = true; | ||
356 | } | ||
357 | |||
358 | |||
359 | return(timeIsUp); | ||
360 | } | ||
361 | |||
362 | |||
363 | |||
364 | static Boolean SocketIndexIsValid(const int inSocketNum) | ||
365 | { | ||
366 | if (inSocketNum >= 0 && inSocketNum < kMaxNumSockets && sSockets[inSocketNum].mEndPointRef != kOTInvalidEndpointRef) | ||
367 | { | ||
368 | return(true); | ||
369 | } | ||
370 | |||
371 | else | ||
372 | { | ||
373 | return(false); | ||
374 | } | ||
375 | } | ||
376 | |||
377 | |||
378 | |||
379 | static void InitSocket(SocketStruct *ioSocket) | ||
380 | { | ||
381 | ioSocket->mIsInUse = false; | ||
382 | |||
383 | ioSocket->mEndpointIsBound = false; | ||
384 | |||
385 | ioSocket->mLocalEndIsConnected = false; | ||
386 | ioSocket->mRemoteEndIsConnected = false; | ||
387 | |||
388 | ioSocket->mReceivedTOpenComplete = false; | ||
389 | ioSocket->mReceivedTBindComplete = false; | ||
390 | ioSocket->mReceivedTConnect = false; | ||
391 | ioSocket->mReceivedTListen = false; | ||
392 | ioSocket->mReceivedTPassCon = false; | ||
393 | ioSocket->mReceivedTDisconnect = false; | ||
394 | ioSocket->mReceivedTOrdRel = false; | ||
395 | ioSocket->mReceivedTDisconnectComplete = false; | ||
396 | |||
397 | ioSocket->mTimeoutTicks = 30 * 60; | ||
398 | ioSocket->mOperationStartTicks = -1; | ||
399 | |||
400 | ioSocket->mIdleWaitCallback = nil; | ||
401 | ioSocket->mUserRefPtr = nil; | ||
402 | |||
403 | ioSocket->mExpectedCode = 0; | ||
404 | ioSocket->mAsyncOperationResult = noErr; | ||
405 | |||
406 | ioSocket->mEndPointRef = kOTInvalidEndpointRef; | ||
407 | |||
408 | ioSocket->mBindRequestedAddrInfo = nil; | ||
409 | ioSocket->mAssignedAddrInfo = nil; | ||
410 | ioSocket->mRemoteAddrInfo = nil; | ||
411 | |||
412 | ioSocket->mReadyToReadData = false; | ||
413 | ioSocket->mReadyToWriteData = true; | ||
414 | |||
415 | ioSocket->mReadBuffer = nil; | ||
416 | ioSocket->mWriteBuffer = nil; | ||
417 | |||
418 | ioSocket->mLastError = noErr; | ||
419 | CopyCStrToCStr("",ioSocket->mErrMessage,sizeof(ioSocket->mErrMessage)); | ||
420 | } | ||
421 | |||
422 | |||
423 | |||
424 | static void PrepareForAsyncOperation(SocketStruct *ioSocket,const OTEventCode inExpectedCode) | ||
425 | { | ||
426 | ioSocket->mOperationStartTicks = ::TickCount(); | ||
427 | |||
428 | ioSocket->mAsyncOperationResult = noErr; | ||
429 | |||
430 | ioSocket->mExpectedCode = inExpectedCode; | ||
431 | } | ||
432 | |||
433 | |||
434 | // The wait function.... | ||
435 | |||
436 | static OSErr MyBusyWait(SocketStruct *ioSocket,Boolean returnImmediatelyOnError,OTResult *outOTResult,Boolean *inAsyncOperationCompleteFlag) | ||
437 | { | ||
438 | OSErr errCode = noErr; | ||
439 | OTResult theOTResult = noErr; | ||
440 | |||
441 | |||
442 | SetErrorMessageAndBailIfNil(ioSocket,"MyBusyWait: Bad parameter, ioSocket = nil"); | ||
443 | SetErrorMessageAndBailIfNil(inAsyncOperationCompleteFlag,"MyBusyWait: Bad parameter, inAsyncOperationCompleteFlag = nil"); | ||
444 | |||
445 | for (;;) | ||
446 | { | ||
447 | if (*inAsyncOperationCompleteFlag) | ||
448 | { | ||
449 | theOTResult = ioSocket->mAsyncOperationResult; | ||
450 | |||
451 | break; | ||
452 | } | ||
453 | |||
454 | if (ioSocket->mIdleWaitCallback != nil) | ||
455 | { | ||
456 | theOTResult = (*(ioSocket->mIdleWaitCallback))(ioSocket->mUserRefPtr); | ||
457 | |||
458 | if (theOTResult != noErr && returnImmediatelyOnError) | ||
459 | { | ||
460 | break; | ||
461 | } | ||
462 | } | ||
463 | |||
464 | if (TimeoutElapsed(ioSocket)) | ||
465 | { | ||
466 | theOTResult = kMacSocket_TimeoutErr; | ||
467 | |||
468 | break; | ||
469 | } | ||
470 | } | ||
471 | |||
472 | |||
473 | EXITPOINT: | ||
474 | |||
475 | if (outOTResult != nil) | ||
476 | { | ||
477 | *outOTResult = theOTResult; | ||
478 | } | ||
479 | |||
480 | return(errCode); | ||
481 | } | ||
482 | |||
483 | |||
484 | |||
485 | // I used to do thread switching, but stopped. It could easily be rolled back in though.... | ||
486 | |||
487 | static pascal void OTNonYieldingNotifier(void *contextPtr,OTEventCode code,OTResult result,void *cookie) | ||
488 | { | ||
489 | SocketStruct *theSocketStruct = (SocketStruct *) contextPtr; | ||
490 | |||
491 | if (theSocketStruct != nil) | ||
492 | { | ||
493 | if (theSocketStruct->mExpectedCode != 0 && code == theSocketStruct->mExpectedCode) | ||
494 | { | ||
495 | theSocketStruct->mAsyncOperationResult = result; | ||
496 | |||
497 | theSocketStruct->mExpectedCode = 0; | ||
498 | } | ||
499 | |||
500 | |||
501 | switch (code) | ||
502 | { | ||
503 | case T_OPENCOMPLETE: | ||
504 | { | ||
505 | theSocketStruct->mReceivedTOpenComplete = true; | ||
506 | |||
507 | theSocketStruct->mEndPointRef = (EndpointRef) cookie; | ||
508 | |||
509 | break; | ||
510 | } | ||
511 | |||
512 | |||
513 | case T_BINDCOMPLETE: | ||
514 | { | ||
515 | theSocketStruct->mReceivedTBindComplete = true; | ||
516 | |||
517 | break; | ||
518 | } | ||
519 | |||
520 | |||
521 | case T_CONNECT: | ||
522 | { | ||
523 | theSocketStruct->mReceivedTConnect = true; | ||
524 | |||
525 | theSocketStruct->mLocalEndIsConnected = true; | ||
526 | |||
527 | theSocketStruct->mRemoteEndIsConnected = true; | ||
528 | |||
529 | break; | ||
530 | } | ||
531 | |||
532 | |||
533 | case T_LISTEN: | ||
534 | { | ||
535 | theSocketStruct->mReceivedTListen = true; | ||
536 | |||
537 | break; | ||
538 | } | ||
539 | |||
540 | |||
541 | case T_PASSCON: | ||
542 | { | ||
543 | theSocketStruct->mReceivedTPassCon = true; | ||
544 | |||
545 | theSocketStruct->mLocalEndIsConnected = true; | ||
546 | |||
547 | theSocketStruct->mRemoteEndIsConnected = true; | ||
548 | |||
549 | break; | ||
550 | } | ||
551 | |||
552 | |||
553 | case T_DATA: | ||
554 | { | ||
555 | theSocketStruct->mReadyToReadData = true; | ||
556 | |||
557 | break; | ||
558 | } | ||
559 | |||
560 | case T_GODATA: | ||
561 | { | ||
562 | theSocketStruct->mReadyToWriteData = true; | ||
563 | |||
564 | break; | ||
565 | } | ||
566 | |||
567 | case T_DISCONNECT: | ||
568 | { | ||
569 | theSocketStruct->mReceivedTDisconnect = true; | ||
570 | |||
571 | theSocketStruct->mRemoteEndIsConnected = false; | ||
572 | |||
573 | theSocketStruct->mLocalEndIsConnected = false; | ||
574 | |||
575 | ::OTRcvDisconnect(theSocketStruct->mEndPointRef,nil); | ||
576 | |||
577 | break; | ||
578 | } | ||
579 | |||
580 | case T_ORDREL: | ||
581 | { | ||
582 | theSocketStruct->mReceivedTOrdRel = true; | ||
583 | |||
584 | // We can still write data, so don't clear mRemoteEndIsConnected | ||
585 | |||
586 | ::OTRcvOrderlyDisconnect(theSocketStruct->mEndPointRef); | ||
587 | |||
588 | break; | ||
589 | } | ||
590 | |||
591 | case T_DISCONNECTCOMPLETE: | ||
592 | { | ||
593 | theSocketStruct->mReceivedTDisconnectComplete = true; | ||
594 | |||
595 | theSocketStruct->mRemoteEndIsConnected = false; | ||
596 | |||
597 | theSocketStruct->mLocalEndIsConnected = false; | ||
598 | |||
599 | break; | ||
600 | } | ||
601 | } | ||
602 | } | ||
603 | /* | ||
604 | T_LISTEN OTListen | ||
605 | T_CONNECT OTRcvConnect | ||
606 | T_DATA OTRcv, OTRcvUData | ||
607 | T_DISCONNECT OTRcvDisconnect | ||
608 | T_ORDREL OTRcvOrderlyDisconnect | ||
609 | T_GODATA OTSnd, OTSndUData, OTLook | ||
610 | T_PASSCON none | ||
611 | |||
612 | T_EXDATA OTRcv | ||
613 | T_GOEXDATA OTSnd, OTLook | ||
614 | T_UDERR OTRcvUDErr | ||
615 | */ | ||
616 | } | ||
617 | |||
618 | |||
619 | |||
620 | // Initialize the main socket data structure | ||
621 | |||
622 | OSErr MacSocket_Startup(void) | ||
623 | { | ||
624 | if (!sSocketsSetup) | ||
625 | { | ||
626 | for (int i = 0;i < kMaxNumSockets;i++) | ||
627 | { | ||
628 | InitSocket(&(sSockets[i])); | ||
629 | } | ||
630 | |||
631 | ::InitOpenTransport(); | ||
632 | |||
633 | sSocketsSetup = true; | ||
634 | } | ||
635 | |||
636 | |||
637 | return(noErr); | ||
638 | } | ||
639 | |||
640 | |||
641 | |||
642 | // Cleanup before exiting | ||
643 | |||
644 | OSErr MacSocket_Shutdown(void) | ||
645 | { | ||
646 | if (sSocketsSetup) | ||
647 | { | ||
648 | for (int i = 0;i < kMaxNumSockets;i++) | ||
649 | { | ||
650 | SocketStruct *theSocketStruct = &(sSockets[i]); | ||
651 | |||
652 | if (theSocketStruct->mIsInUse) | ||
653 | { | ||
654 | if (theSocketStruct->mEndPointRef != kOTInvalidEndpointRef) | ||
655 | { | ||
656 | OTResult theOTResult; | ||
657 | |||
658 | |||
659 | // Since we're killing the endpoint, I don't bother to send the disconnect (sorry!) | ||
660 | |||
661 | /* | ||
662 | if (theSocketStruct->mLocalEndIsConnected) | ||
663 | { | ||
664 | // This is an abortive action, so we do a hard disconnect instead of an OTSndOrderlyDisconnect | ||
665 | |||
666 | theOTResult = ::OTSndDisconnect(theSocketStruct->mEndPointRef, nil); | ||
667 | |||
668 | // Now we have to watch for T_DISCONNECTCOMPLETE event | ||
669 | |||
670 | theSocketStruct->mLocalEndIsConnected = false; | ||
671 | } | ||
672 | */ | ||
673 | |||
674 | theOTResult = ::OTCloseProvider(theSocketStruct->mEndPointRef); | ||
675 | |||
676 | |||
677 | theSocketStruct->mEndPointRef = kOTInvalidEndpointRef; | ||
678 | } | ||
679 | |||
680 | if (theSocketStruct->mBindRequestedAddrInfo != nil) | ||
681 | { | ||
682 | ::OTFree((void *) theSocketStruct->mBindRequestedAddrInfo,T_BIND); | ||
683 | |||
684 | theSocketStruct->mBindRequestedAddrInfo = nil; | ||
685 | } | ||
686 | |||
687 | if (theSocketStruct->mAssignedAddrInfo != nil) | ||
688 | { | ||
689 | ::OTFree((void *) theSocketStruct->mAssignedAddrInfo,T_BIND); | ||
690 | |||
691 | theSocketStruct->mAssignedAddrInfo = nil; | ||
692 | } | ||
693 | |||
694 | if (theSocketStruct->mRemoteAddrInfo != nil) | ||
695 | { | ||
696 | ::OTFree((void *) theSocketStruct->mRemoteAddrInfo,T_CALL); | ||
697 | |||
698 | theSocketStruct->mRemoteAddrInfo = nil; | ||
699 | } | ||
700 | |||
701 | |||
702 | } | ||
703 | } | ||
704 | |||
705 | ::CloseOpenTransport(); | ||
706 | |||
707 | sSocketsSetup = false; | ||
708 | } | ||
709 | |||
710 | return(noErr); | ||
711 | } | ||
712 | |||
713 | |||
714 | |||
715 | |||
716 | |||
717 | |||
718 | // Allocate a socket | ||
719 | |||
720 | OSErr MacSocket_socket(int *outSocketNum,const Boolean inDoThreadSwitching,const long inTimeoutTicks,MacSocket_IdleWaitCallback inIdleWaitCallback,void *inUserRefPtr) | ||
721 | { | ||
722 | // Gotta roll support back in for threads eventually..... | ||
723 | |||
724 | #pragma unused(inDoThreadSwitching) | ||
725 | |||
726 | |||
727 | OSErr errCode = noErr; | ||
728 | |||
729 | |||
730 | SetErrorMessageAndBailIfNil(outSocketNum,"MacSocket_socket: Bad parameter, outSocketNum == nil"); | ||
731 | |||
732 | *outSocketNum = -1; | ||
733 | |||
734 | |||
735 | // Find an unused socket | ||
736 | |||
737 | for (int i = 0;i < kMaxNumSockets;i++) | ||
738 | { | ||
739 | if (sSockets[i].mIsInUse == false) | ||
740 | { | ||
741 | OTResult theOTResult; | ||
742 | SocketStruct *theSocketStruct = &(sSockets[i]); | ||
743 | |||
744 | |||
745 | InitSocket(theSocketStruct); | ||
746 | |||
747 | theSocketStruct->mIdleWaitCallback = inIdleWaitCallback; | ||
748 | theSocketStruct->mUserRefPtr = inUserRefPtr; | ||
749 | |||
750 | theSocketStruct->mTimeoutTicks = inTimeoutTicks; | ||
751 | |||
752 | |||
753 | // Set up OT endpoint | ||
754 | |||
755 | PrepareForAsyncOperation(theSocketStruct,T_OPENCOMPLETE); | ||
756 | |||
757 | theOTResult = ::OTAsyncOpenEndpoint(OTCreateConfiguration(kTCPName),0,nil,OTNonYieldingNotifier,(void *) theSocketStruct); | ||
758 | |||
759 | SetErrorMessageAndLongIntAndBailIfError(theOTResult,"MacSocket_socket: Can't create OT endpoint, OTAsyncOpenEndpoint() = ",theOTResult); | ||
760 | |||
761 | BailIfError(MyBusyWait(theSocketStruct,false,&theOTResult,&(theSocketStruct->mReceivedTOpenComplete))); | ||
762 | |||
763 | SetErrorMessageAndLongIntAndBailIfError(theOTResult,"MacSocket_socket: Can't create OT endpoint, OTAsyncOpenEndpoint() = ",theOTResult); | ||
764 | |||
765 | |||
766 | *outSocketNum = i; | ||
767 | |||
768 | errCode = noErr; | ||
769 | |||
770 | theSocketStruct->mIsInUse = true; | ||
771 | |||
772 | break; | ||
773 | } | ||
774 | |||
775 | else if (i == kMaxNumSockets - 1) | ||
776 | { | ||
777 | SetErrorMessageAndBail("MacSocket_socket: No sockets available"); | ||
778 | } | ||
779 | } | ||
780 | |||
781 | |||
782 | EXITPOINT: | ||
783 | |||
784 | errno = errCode; | ||
785 | |||
786 | return(errCode); | ||
787 | } | ||
788 | |||
789 | |||
790 | |||
791 | |||
792 | OSErr MacSocket_listen(const int inSocketNum,const int inPortNum) | ||
793 | { | ||
794 | OSErr errCode = noErr; | ||
795 | SocketStruct *theSocketStruct = nil; | ||
796 | |||
797 | |||
798 | if (!SocketIndexIsValid(inSocketNum)) | ||
799 | { | ||
800 | SetErrorMessageAndBail("MacSocket_listen: Invalid socket number specified"); | ||
801 | } | ||
802 | |||
803 | |||
804 | theSocketStruct = &(sSockets[inSocketNum]); | ||
805 | |||
806 | |||
807 | OTResult theOTResult; | ||
808 | |||
809 | |||
810 | if (theSocketStruct->mBindRequestedAddrInfo == nil) | ||
811 | { | ||
812 | theSocketStruct->mBindRequestedAddrInfo = (TBind *) ::OTAlloc(theSocketStruct->mEndPointRef,T_BIND,T_ADDR,&theOTResult); | ||
813 | |||
814 | SetErrorMessageAndLongIntAndBailIfError(theOTResult,"MacSocket_listen: Can't allocate OT T_BIND structure, OTAlloc() = ",theOTResult); | ||
815 | SetErrorMessageAndBailIfNil(theSocketStruct->mBindRequestedAddrInfo,"MacSocket_listen: Can't allocate OT T_BIND structure, OTAlloc() returned nil"); | ||
816 | } | ||
817 | |||
818 | if (theSocketStruct->mAssignedAddrInfo == nil) | ||
819 | { | ||
820 | theSocketStruct->mAssignedAddrInfo = (TBind *) ::OTAlloc(theSocketStruct->mEndPointRef,T_BIND,T_ADDR,&theOTResult); | ||
821 | |||
822 | SetErrorMessageAndLongIntAndBailIfError(theOTResult,"MacSocket_listen: Can't allocate OT T_BIND structure, OTAlloc() = ",theOTResult); | ||
823 | SetErrorMessageAndBailIfNil(theSocketStruct->mAssignedAddrInfo,"MacSocket_listen: Can't allocate OT T_BIND structure, OTAlloc() returned nil"); | ||
824 | } | ||
825 | |||
826 | if (theSocketStruct->mRemoteAddrInfo == nil) | ||
827 | { | ||
828 | theSocketStruct->mRemoteAddrInfo = (TCall *) ::OTAlloc(theSocketStruct->mEndPointRef,T_CALL,T_ADDR,&theOTResult); | ||
829 | |||
830 | SetErrorMessageAndLongIntAndBailIfError(theOTResult,"MacSocket_listen: Can't allocate OT T_CALL structure, OTAlloc() = ",theOTResult); | ||
831 | SetErrorMessageAndBailIfNil(theSocketStruct->mRemoteAddrInfo,"MacSocket_listen: Can't allocate OT T_CALL structure, OTAlloc() returned nil"); | ||
832 | } | ||
833 | |||
834 | |||
835 | if (!theSocketStruct->mEndpointIsBound) | ||
836 | { | ||
837 | InetInterfaceInfo theInetInterfaceInfo; | ||
838 | |||
839 | theOTResult = ::OTInetGetInterfaceInfo(&theInetInterfaceInfo,kDefaultInetInterface); | ||
840 | |||
841 | SetErrorMessageAndLongIntAndBailIfError(theOTResult,"MacSocket_listen: Can't determine OT interface info, OTInetGetInterfaceInfo() = ",theOTResult); | ||
842 | |||
843 | |||
844 | InetAddress *theInetAddress = (InetAddress *) theSocketStruct->mBindRequestedAddrInfo->addr.buf; | ||
845 | |||
846 | // theInetAddress->fAddressType = AF_INET; | ||
847 | // theInetAddress->fPort = inPortNum; | ||
848 | // theInetAddress->fHost = theInetInterfaceInfo.fAddress; | ||
849 | |||
850 | ::OTInitInetAddress(theInetAddress,inPortNum,theInetInterfaceInfo.fAddress); | ||
851 | |||
852 | theSocketStruct->mBindRequestedAddrInfo->addr.len = sizeof(InetAddress); | ||
853 | |||
854 | theSocketStruct->mBindRequestedAddrInfo->qlen = 1; | ||
855 | |||
856 | |||
857 | theOTResult = ::OTSetSynchronous(theSocketStruct->mEndPointRef); | ||
858 | |||
859 | SetErrorMessageAndLongIntAndBailIfError(theOTResult,"MacSocket_listen: Can't set OT endpoint mode, OTSetSynchronous() = ",theOTResult); | ||
860 | |||
861 | theOTResult = NegotiateIPReuseAddrOption(theSocketStruct->mEndPointRef,true); | ||
862 | |||
863 | SetErrorMessageAndLongIntAndBailIfError(theOTResult,"MacSocket_listen: Can't set OT IP address reuse flag, NegotiateIPReuseAddrOption() = ",theOTResult); | ||
864 | |||
865 | theOTResult = ::OTSetAsynchronous(theSocketStruct->mEndPointRef); | ||
866 | |||
867 | SetErrorMessageAndLongIntAndBailIfError(theOTResult,"MacSocket_listen: Can't set OT endpoint mode, OTSetAsynchronous() = ",theOTResult); | ||
868 | |||
869 | |||
870 | PrepareForAsyncOperation(theSocketStruct,T_BINDCOMPLETE); | ||
871 | |||
872 | theOTResult = ::OTBind(theSocketStruct->mEndPointRef,theSocketStruct->mBindRequestedAddrInfo,theSocketStruct->mAssignedAddrInfo); | ||
873 | |||
874 | SetErrorMessageAndLongIntAndBailIfError(theOTResult,"MacSocket_listen: Can't bind OT endpoint, OTBind() = ",theOTResult); | ||
875 | |||
876 | BailIfError(MyBusyWait(theSocketStruct,false,&theOTResult,&(theSocketStruct->mReceivedTBindComplete))); | ||
877 | |||
878 | SetErrorMessageAndLongIntAndBailIfError(theOTResult,"MacSocket_listen: Can't bind OT endpoint, OTBind() = ",theOTResult); | ||
879 | |||
880 | |||
881 | theSocketStruct->mEndpointIsBound = true; | ||
882 | } | ||
883 | |||
884 | |||
885 | PrepareForAsyncOperation(theSocketStruct,T_LISTEN); | ||
886 | |||
887 | theOTResult = ::OTListen(theSocketStruct->mEndPointRef,theSocketStruct->mRemoteAddrInfo); | ||
888 | |||
889 | if (theOTResult == noErr) | ||
890 | { | ||
891 | PrepareForAsyncOperation(theSocketStruct,T_PASSCON); | ||
892 | |||
893 | theOTResult = ::OTAccept(theSocketStruct->mEndPointRef,theSocketStruct->mEndPointRef,theSocketStruct->mRemoteAddrInfo); | ||
894 | |||
895 | SetErrorMessageAndLongIntAndBailIfError(theOTResult,"MacSocket_listen: Can't begin OT accept, OTAccept() = ",theOTResult); | ||
896 | |||
897 | BailIfError(MyBusyWait(theSocketStruct,false,&theOTResult,&(theSocketStruct->mReceivedTPassCon))); | ||
898 | |||
899 | SetErrorMessageAndLongIntAndBailIfError(theOTResult,"MacSocket_listen: Can't accept OT connection, OTAccept() = ",theOTResult); | ||
900 | } | ||
901 | |||
902 | else if (theOTResult == kOTNoDataErr) | ||
903 | { | ||
904 | theOTResult = noErr; | ||
905 | } | ||
906 | |||
907 | else | ||
908 | { | ||
909 | SetErrorMessageAndLongIntAndBail("MacSocket_listen: Can't begin OT listen, OTListen() = ",theOTResult); | ||
910 | } | ||
911 | |||
912 | |||
913 | errCode = noErr; | ||
914 | |||
915 | |||
916 | EXITPOINT: | ||
917 | |||
918 | if (theSocketStruct != nil) | ||
919 | { | ||
920 | theSocketStruct->mLastError = noErr; | ||
921 | |||
922 | CopyCStrToCStr("",theSocketStruct->mErrMessage,sizeof(theSocketStruct->mErrMessage)); | ||
923 | |||
924 | if (errCode != noErr) | ||
925 | { | ||
926 | theSocketStruct->mLastError = errCode; | ||
927 | |||
928 | CopyCStrToCStr(GetErrorMessage(),theSocketStruct->mErrMessage,sizeof(theSocketStruct->mErrMessage)); | ||
929 | } | ||
930 | } | ||
931 | |||
932 | errno = errCode; | ||
933 | |||
934 | return(errCode); | ||
935 | } | ||
936 | |||
937 | |||
938 | |||
939 | |||
940 | OSErr MacSocket_connect(const int inSocketNum,char *inTargetAddressAndPort) | ||
941 | { | ||
942 | OSErr errCode = noErr; | ||
943 | SocketStruct *theSocketStruct = nil; | ||
944 | |||
945 | |||
946 | if (!SocketIndexIsValid(inSocketNum)) | ||
947 | { | ||
948 | SetErrorMessageAndBail("MacSocket_connect: Invalid socket number specified"); | ||
949 | } | ||
950 | |||
951 | theSocketStruct = &(sSockets[inSocketNum]); | ||
952 | |||
953 | if (theSocketStruct->mEndpointIsBound) | ||
954 | { | ||
955 | SetErrorMessageAndBail("MacSocket_connect: Socket previously bound"); | ||
956 | } | ||
957 | |||
958 | |||
959 | OTResult theOTResult; | ||
960 | |||
961 | theSocketStruct->mBindRequestedAddrInfo = (TBind *) ::OTAlloc(theSocketStruct->mEndPointRef,T_BIND,T_ADDR,&theOTResult); | ||
962 | |||
963 | SetErrorMessageAndLongIntAndBailIfError(theOTResult,"MacSocket_connect: Can't allocate OT T_BIND structure, OTAlloc() = ",theOTResult); | ||
964 | SetErrorMessageAndBailIfNil(theSocketStruct->mBindRequestedAddrInfo,"MacSocket_connect: Can't allocate OT T_BIND structure, OTAlloc() returned nil"); | ||
965 | |||
966 | |||
967 | theSocketStruct->mAssignedAddrInfo = (TBind *) ::OTAlloc(theSocketStruct->mEndPointRef,T_BIND,T_ADDR,&theOTResult); | ||
968 | |||
969 | SetErrorMessageAndLongIntAndBailIfError(theOTResult,"MacSocket_connect: Can't allocate OT T_BIND structure, OTAlloc() = ",theOTResult); | ||
970 | SetErrorMessageAndBailIfNil(theSocketStruct->mAssignedAddrInfo,"MacSocket_connect: Can't allocate OT T_BIND structure, OTAlloc() returned nil"); | ||
971 | |||
972 | |||
973 | theSocketStruct->mRemoteAddrInfo = (TCall *) ::OTAlloc(theSocketStruct->mEndPointRef,T_CALL,T_ADDR,&theOTResult); | ||
974 | |||
975 | SetErrorMessageAndLongIntAndBailIfError(theOTResult,"MacSocket_connect: Can't allocate OT T_CALL structure, OTAlloc() = ",theOTResult); | ||
976 | SetErrorMessageAndBailIfNil(theSocketStruct->mRemoteAddrInfo,"MacSocket_connect: Can't allocate OT T_CALL structure, OTAlloc() returned nil"); | ||
977 | |||
978 | |||
979 | PrepareForAsyncOperation(theSocketStruct,T_BINDCOMPLETE); | ||
980 | |||
981 | theOTResult = ::OTBind(theSocketStruct->mEndPointRef,nil,theSocketStruct->mAssignedAddrInfo); | ||
982 | |||
983 | SetErrorMessageAndLongIntAndBailIfError(theOTResult,"MacSocket_connect: Can't bind OT endpoint, OTBind() = ",theOTResult); | ||
984 | |||
985 | BailIfError(MyBusyWait(theSocketStruct,false,&theOTResult,&(theSocketStruct->mReceivedTBindComplete))); | ||
986 | |||
987 | SetErrorMessageAndLongIntAndBailIfError(theOTResult,"MacSocket_connect: Can't bind OT endpoint, OTBind() = ",theOTResult); | ||
988 | |||
989 | theSocketStruct->mEndpointIsBound = true; | ||
990 | |||
991 | |||
992 | TCall sndCall; | ||
993 | DNSAddress hostDNSAddress; | ||
994 | |||
995 | // Set up target address | ||
996 | |||
997 | sndCall.addr.buf = (UInt8 *) &hostDNSAddress; | ||
998 | sndCall.addr.len = ::OTInitDNSAddress(&hostDNSAddress,inTargetAddressAndPort); | ||
999 | sndCall.opt.buf = nil; | ||
1000 | sndCall.opt.len = 0; | ||
1001 | sndCall.udata.buf = nil; | ||
1002 | sndCall.udata.len = 0; | ||
1003 | sndCall.sequence = 0; | ||
1004 | |||
1005 | // Connect! | ||
1006 | |||
1007 | PrepareForAsyncOperation(theSocketStruct,T_CONNECT); | ||
1008 | |||
1009 | theOTResult = ::OTConnect(theSocketStruct->mEndPointRef,&sndCall,nil); | ||
1010 | |||
1011 | if (theOTResult == kOTNoDataErr) | ||
1012 | { | ||
1013 | theOTResult = noErr; | ||
1014 | } | ||
1015 | |||
1016 | SetErrorMessageAndLongIntAndBailIfError(theOTResult,"MacSocket_connect: Can't connect OT endpoint, OTConnect() = ",theOTResult); | ||
1017 | |||
1018 | BailIfError(MyBusyWait(theSocketStruct,false,&theOTResult,&(theSocketStruct->mReceivedTConnect))); | ||
1019 | |||
1020 | if (theOTResult == kMacSocket_TimeoutErr) | ||
1021 | { | ||
1022 | SetErrorMessageAndBail("MacSocket_connect: Can't connect OT endpoint, OTConnect() = kMacSocket_TimeoutErr"); | ||
1023 | } | ||
1024 | |||
1025 | else | ||
1026 | { | ||
1027 | SetErrorMessageAndLongIntAndBailIfError(theOTResult,"MacSocket_connect: Can't connect OT endpoint, OTConnect() = ",theOTResult); | ||
1028 | } | ||
1029 | |||
1030 | theOTResult = ::OTRcvConnect(theSocketStruct->mEndPointRef,nil); | ||
1031 | |||
1032 | SetErrorMessageAndLongIntAndBailIfError(theOTResult,"MacSocket_connect: Can't complete connect on OT endpoint, OTRcvConnect() = ",theOTResult); | ||
1033 | |||
1034 | |||
1035 | errCode = noErr; | ||
1036 | |||
1037 | |||
1038 | #ifdef MACSOCKET_DEBUG | ||
1039 | printf("MacSocket_connect: connect completed\n"); | ||
1040 | #endif | ||
1041 | |||
1042 | EXITPOINT: | ||
1043 | |||
1044 | if (theSocketStruct != nil) | ||
1045 | { | ||
1046 | theSocketStruct->mLastError = noErr; | ||
1047 | |||
1048 | CopyCStrToCStr("",theSocketStruct->mErrMessage,sizeof(theSocketStruct->mErrMessage)); | ||
1049 | |||
1050 | if (errCode != noErr) | ||
1051 | { | ||
1052 | theSocketStruct->mLastError = errCode; | ||
1053 | |||
1054 | CopyCStrToCStr(GetErrorMessage(),theSocketStruct->mErrMessage,sizeof(theSocketStruct->mErrMessage)); | ||
1055 | } | ||
1056 | } | ||
1057 | |||
1058 | errno = errCode; | ||
1059 | |||
1060 | return(errCode); | ||
1061 | } | ||
1062 | |||
1063 | |||
1064 | |||
1065 | |||
1066 | // Close a connection | ||
1067 | |||
1068 | OSErr MacSocket_close(const int inSocketNum) | ||
1069 | { | ||
1070 | OSErr errCode = noErr; | ||
1071 | SocketStruct *theSocketStruct = nil; | ||
1072 | |||
1073 | |||
1074 | if (!SocketIndexIsValid(inSocketNum)) | ||
1075 | { | ||
1076 | SetErrorMessageAndBail("MacSocket_close: Invalid socket number specified"); | ||
1077 | } | ||
1078 | |||
1079 | |||
1080 | theSocketStruct = &(sSockets[inSocketNum]); | ||
1081 | |||
1082 | if (theSocketStruct->mEndPointRef != kOTInvalidEndpointRef) | ||
1083 | { | ||
1084 | OTResult theOTResult = noErr; | ||
1085 | |||
1086 | // Try to play nice | ||
1087 | |||
1088 | if (theSocketStruct->mReceivedTOrdRel) | ||
1089 | { | ||
1090 | // Already did an OTRcvOrderlyDisconnect() in the notifier | ||
1091 | |||
1092 | if (theSocketStruct->mLocalEndIsConnected) | ||
1093 | { | ||
1094 | theOTResult = ::OTSndOrderlyDisconnect(theSocketStruct->mEndPointRef); | ||
1095 | |||
1096 | theSocketStruct->mLocalEndIsConnected = false; | ||
1097 | } | ||
1098 | } | ||
1099 | |||
1100 | else if (theSocketStruct->mLocalEndIsConnected) | ||
1101 | { | ||
1102 | theOTResult = ::OTSndOrderlyDisconnect(theSocketStruct->mEndPointRef); | ||
1103 | |||
1104 | theSocketStruct->mLocalEndIsConnected = false; | ||
1105 | |||
1106 | // Wait for other end to hang up too! | ||
1107 | |||
1108 | // PrepareForAsyncOperation(theSocketStruct,T_ORDREL); | ||
1109 | // | ||
1110 | // errCode = MyBusyWait(theSocketStruct,false,&theOTResult,&(theSocketStruct->mReceivedTOrdRel)); | ||
1111 | } | ||
1112 | |||
1113 | |||
1114 | if (theOTResult != noErr) | ||
1115 | { | ||
1116 | ::OTCloseProvider(theSocketStruct->mEndPointRef); | ||
1117 | } | ||
1118 | |||
1119 | else | ||
1120 | { | ||
1121 | theOTResult = ::OTCloseProvider(theSocketStruct->mEndPointRef); | ||
1122 | } | ||
1123 | |||
1124 | theSocketStruct->mEndPointRef = kOTInvalidEndpointRef; | ||
1125 | |||
1126 | errCode = theOTResult; | ||
1127 | } | ||
1128 | |||
1129 | |||
1130 | theSocketStruct->mIsInUse = false; | ||
1131 | |||
1132 | |||
1133 | EXITPOINT: | ||
1134 | |||
1135 | if (theSocketStruct != nil) | ||
1136 | { | ||
1137 | theSocketStruct->mLastError = noErr; | ||
1138 | |||
1139 | CopyCStrToCStr("",theSocketStruct->mErrMessage,sizeof(theSocketStruct->mErrMessage)); | ||
1140 | |||
1141 | if (errCode != noErr) | ||
1142 | { | ||
1143 | theSocketStruct->mLastError = errCode; | ||
1144 | |||
1145 | CopyCStrToCStr(GetErrorMessage(),theSocketStruct->mErrMessage,sizeof(theSocketStruct->mErrMessage)); | ||
1146 | } | ||
1147 | } | ||
1148 | |||
1149 | errno = errCode; | ||
1150 | |||
1151 | return(errCode); | ||
1152 | } | ||
1153 | |||
1154 | |||
1155 | |||
1156 | |||
1157 | // Receive some bytes | ||
1158 | |||
1159 | int MacSocket_recv(const int inSocketNum,void *outBuff,int outBuffLength,const Boolean inBlock) | ||
1160 | { | ||
1161 | OSErr errCode = noErr; | ||
1162 | int totalBytesRead = 0; | ||
1163 | SocketStruct *theSocketStruct = nil; | ||
1164 | |||
1165 | |||
1166 | SetErrorMessageAndBailIfNil(outBuff,"MacSocket_recv: Bad parameter, outBuff = nil"); | ||
1167 | |||
1168 | if (outBuffLength <= 0) | ||
1169 | { | ||
1170 | SetErrorMessageAndBail("MacSocket_recv: Bad parameter, outBuffLength <= 0"); | ||
1171 | } | ||
1172 | |||
1173 | if (!SocketIndexIsValid(inSocketNum)) | ||
1174 | { | ||
1175 | SetErrorMessageAndBail("MacSocket_recv: Invalid socket number specified"); | ||
1176 | } | ||
1177 | |||
1178 | theSocketStruct = &(sSockets[inSocketNum]); | ||
1179 | |||
1180 | if (!theSocketStruct->mLocalEndIsConnected) | ||
1181 | { | ||
1182 | SetErrorMessageAndBail("MacSocket_recv: Socket not connected"); | ||
1183 | } | ||
1184 | |||
1185 | if (theSocketStruct->mReceivedTOrdRel) | ||
1186 | { | ||
1187 | totalBytesRead = 0; | ||
1188 | |||
1189 | goto EXITPOINT; | ||
1190 | } | ||
1191 | |||
1192 | |||
1193 | PrepareForAsyncOperation(theSocketStruct,0); | ||
1194 | |||
1195 | for (;;) | ||
1196 | { | ||
1197 | int bytesRead; | ||
1198 | OTResult theOTResult; | ||
1199 | |||
1200 | |||
1201 | theOTResult = ::OTRcv(theSocketStruct->mEndPointRef,(void *) ((unsigned long) outBuff + (unsigned long) totalBytesRead),outBuffLength - totalBytesRead,nil); | ||
1202 | |||
1203 | if (theOTResult >= 0) | ||
1204 | { | ||
1205 | bytesRead = theOTResult; | ||
1206 | |||
1207 | #ifdef MACSOCKET_DEBUG | ||
1208 | printf("MacSocket_recv: read %d bytes in part\n",bytesRead); | ||
1209 | #endif | ||
1210 | } | ||
1211 | |||
1212 | else if (theOTResult == kOTNoDataErr) | ||
1213 | { | ||
1214 | bytesRead = 0; | ||
1215 | } | ||
1216 | |||
1217 | else | ||
1218 | { | ||
1219 | SetErrorMessageAndLongIntAndBail("MacSocket_recv: Can't receive OT data, OTRcv() = ",theOTResult); | ||
1220 | } | ||
1221 | |||
1222 | |||
1223 | totalBytesRead += bytesRead; | ||
1224 | |||
1225 | |||
1226 | if (totalBytesRead <= 0) | ||
1227 | { | ||
1228 | if (theSocketStruct->mReceivedTOrdRel) | ||
1229 | { | ||
1230 | break; | ||
1231 | } | ||
1232 | |||
1233 | // This seems pretty stupid to me now. Maybe I'll delete this blocking garbage. | ||
1234 | |||
1235 | if (inBlock) | ||
1236 | { | ||
1237 | if (TimeoutElapsed(theSocketStruct)) | ||
1238 | { | ||
1239 | SetErrorCodeAndMessageAndBail(kMacSocket_TimeoutErr,"MacSocket_recv: Receive operation timed-out"); | ||
1240 | } | ||
1241 | |||
1242 | if (theSocketStruct->mIdleWaitCallback != nil) | ||
1243 | { | ||
1244 | theOTResult = (*(theSocketStruct->mIdleWaitCallback))(theSocketStruct->mUserRefPtr); | ||
1245 | |||
1246 | SetErrorMessageAndBailIfError(theOTResult,"MacSocket_recv: User cancelled operation"); | ||
1247 | } | ||
1248 | |||
1249 | continue; | ||
1250 | } | ||
1251 | } | ||
1252 | |||
1253 | |||
1254 | break; | ||
1255 | } | ||
1256 | |||
1257 | errCode = noErr; | ||
1258 | |||
1259 | |||
1260 | #ifdef MACSOCKET_DEBUG | ||
1261 | printf("MacSocket_recv: read %d bytes in total\n",totalBytesRead); | ||
1262 | #endif | ||
1263 | |||
1264 | |||
1265 | EXITPOINT: | ||
1266 | |||
1267 | if (theSocketStruct != nil) | ||
1268 | { | ||
1269 | theSocketStruct->mLastError = noErr; | ||
1270 | |||
1271 | CopyCStrToCStr("",theSocketStruct->mErrMessage,sizeof(theSocketStruct->mErrMessage)); | ||
1272 | |||
1273 | if (errCode != noErr) | ||
1274 | { | ||
1275 | theSocketStruct->mLastError = errCode; | ||
1276 | |||
1277 | CopyCStrToCStr(GetErrorMessage(),theSocketStruct->mErrMessage,sizeof(theSocketStruct->mErrMessage)); | ||
1278 | } | ||
1279 | } | ||
1280 | |||
1281 | errno = errCode; | ||
1282 | |||
1283 | return(totalBytesRead); | ||
1284 | } | ||
1285 | |||
1286 | |||
1287 | |||
1288 | // Send some bytes | ||
1289 | |||
1290 | int MacSocket_send(const int inSocketNum,const void *inBuff,int inBuffLength) | ||
1291 | { | ||
1292 | OSErr errCode = noErr; | ||
1293 | int bytesSent = 0; | ||
1294 | SocketStruct *theSocketStruct = nil; | ||
1295 | |||
1296 | |||
1297 | SetErrorMessageAndBailIfNil(inBuff,"MacSocket_send: Bad parameter, inBuff = nil"); | ||
1298 | |||
1299 | if (inBuffLength <= 0) | ||
1300 | { | ||
1301 | SetErrorMessageAndBail("MacSocket_send: Bad parameter, inBuffLength <= 0"); | ||
1302 | } | ||
1303 | |||
1304 | if (!SocketIndexIsValid(inSocketNum)) | ||
1305 | { | ||
1306 | SetErrorMessageAndBail("MacSocket_send: Invalid socket number specified"); | ||
1307 | } | ||
1308 | |||
1309 | |||
1310 | theSocketStruct = &(sSockets[inSocketNum]); | ||
1311 | |||
1312 | if (!theSocketStruct->mLocalEndIsConnected) | ||
1313 | { | ||
1314 | SetErrorMessageAndBail("MacSocket_send: Socket not connected"); | ||
1315 | } | ||
1316 | |||
1317 | |||
1318 | OTResult theOTResult; | ||
1319 | |||
1320 | |||
1321 | PrepareForAsyncOperation(theSocketStruct,0); | ||
1322 | |||
1323 | while (bytesSent < inBuffLength) | ||
1324 | { | ||
1325 | if (theSocketStruct->mIdleWaitCallback != nil) | ||
1326 | { | ||
1327 | theOTResult = (*(theSocketStruct->mIdleWaitCallback))(theSocketStruct->mUserRefPtr); | ||
1328 | |||
1329 | SetErrorMessageAndBailIfError(theOTResult,"MacSocket_send: User cancelled"); | ||
1330 | } | ||
1331 | |||
1332 | |||
1333 | theOTResult = ::OTSnd(theSocketStruct->mEndPointRef,(void *) ((unsigned long) inBuff + bytesSent),inBuffLength - bytesSent,0); | ||
1334 | |||
1335 | if (theOTResult >= 0) | ||
1336 | { | ||
1337 | bytesSent += theOTResult; | ||
1338 | |||
1339 | theOTResult = noErr; | ||
1340 | |||
1341 | // Reset timer.... | ||
1342 | |||
1343 | PrepareForAsyncOperation(theSocketStruct,0); | ||
1344 | } | ||
1345 | |||
1346 | if (theOTResult == kOTFlowErr) | ||
1347 | { | ||
1348 | if (TimeoutElapsed(theSocketStruct)) | ||
1349 | { | ||
1350 | SetErrorCodeAndMessageAndBail(kMacSocket_TimeoutErr,"MacSocket_send: Send timed-out") | ||
1351 | } | ||
1352 | |||
1353 | theOTResult = noErr; | ||
1354 | } | ||
1355 | |||
1356 | SetErrorMessageAndLongIntAndBailIfError(theOTResult,"MacSocket_send: Can't send OT data, OTSnd() = ",theOTResult); | ||
1357 | } | ||
1358 | |||
1359 | |||
1360 | errCode = noErr; | ||
1361 | |||
1362 | #ifdef MACSOCKET_DEBUG | ||
1363 | printf("MacSocket_send: sent %d bytes\n",bytesSent); | ||
1364 | #endif | ||
1365 | |||
1366 | |||
1367 | EXITPOINT: | ||
1368 | |||
1369 | if (theSocketStruct != nil) | ||
1370 | { | ||
1371 | theSocketStruct->mLastError = noErr; | ||
1372 | |||
1373 | CopyCStrToCStr("",theSocketStruct->mErrMessage,sizeof(theSocketStruct->mErrMessage)); | ||
1374 | |||
1375 | if (errCode != noErr) | ||
1376 | { | ||
1377 | theSocketStruct->mLastError = errCode; | ||
1378 | |||
1379 | CopyCStrToCStr(GetErrorMessage(),theSocketStruct->mErrMessage,sizeof(theSocketStruct->mErrMessage)); | ||
1380 | } | ||
1381 | } | ||
1382 | |||
1383 | if (errCode != noErr) | ||
1384 | { | ||
1385 | ::SysBeep(1); | ||
1386 | } | ||
1387 | |||
1388 | errno = errCode; | ||
1389 | |||
1390 | return(bytesSent); | ||
1391 | } | ||
1392 | |||
1393 | |||
1394 | |||
1395 | |||
1396 | |||
1397 | static OSStatus NegotiateIPReuseAddrOption(EndpointRef inEndpoint,const Boolean inEnableReuseIP) | ||
1398 | { | ||
1399 | OSStatus errCode; | ||
1400 | UInt8 buf[kOTFourByteOptionSize]; | ||
1401 | TOption* theOTOption; | ||
1402 | TOptMgmt theOTRequest; | ||
1403 | TOptMgmt theOTResult; | ||
1404 | |||
1405 | |||
1406 | if (!OTIsSynchronous(inEndpoint)) | ||
1407 | { | ||
1408 | SetErrorMessageAndBail("NegotiateIPReuseAddrOption: Open Transport endpoint is not synchronous"); | ||
1409 | } | ||
1410 | |||
1411 | theOTRequest.opt.buf = buf; | ||
1412 | theOTRequest.opt.len = sizeof(buf); | ||
1413 | theOTRequest.flags = T_NEGOTIATE; | ||
1414 | |||
1415 | theOTResult.opt.buf = buf; | ||
1416 | theOTResult.opt.maxlen = kOTFourByteOptionSize; | ||
1417 | |||
1418 | |||
1419 | theOTOption = (TOption *) buf; | ||
1420 | |||
1421 | theOTOption->level = INET_IP; | ||
1422 | theOTOption->name = IP_REUSEADDR; | ||
1423 | theOTOption->len = kOTFourByteOptionSize; | ||
1424 | theOTOption->status = 0; | ||
1425 | *((UInt32 *) (theOTOption->value)) = inEnableReuseIP; | ||
1426 | |||
1427 | errCode = ::OTOptionManagement(inEndpoint,&theOTRequest,&theOTResult); | ||
1428 | |||
1429 | if (errCode == kOTNoError) | ||
1430 | { | ||
1431 | if (theOTOption->status != T_SUCCESS) | ||
1432 | { | ||
1433 | errCode = theOTOption->status; | ||
1434 | } | ||
1435 | |||
1436 | else | ||
1437 | { | ||
1438 | errCode = kOTNoError; | ||
1439 | } | ||
1440 | } | ||
1441 | |||
1442 | |||
1443 | EXITPOINT: | ||
1444 | |||
1445 | errno = errCode; | ||
1446 | |||
1447 | return(errCode); | ||
1448 | } | ||
1449 | |||
1450 | |||
1451 | |||
1452 | |||
1453 | |||
1454 | // Some rough notes.... | ||
1455 | |||
1456 | |||
1457 | |||
1458 | // OTAckSends(ep); | ||
1459 | // OTAckSends(ep) // enable AckSend option | ||
1460 | // ...... | ||
1461 | // buf = OTAllocMem( nbytes); // Allocate nbytes of memory from OT | ||
1462 | // OTSnd(ep, buf, nbytes, 0); // send a packet | ||
1463 | // ...... | ||
1464 | // NotifyProc( .... void* theParam) // Notifier Proc | ||
1465 | // case T_MEMORYRELEASED: // process event | ||
1466 | // OTFreeMem( theParam); // free up memory | ||
1467 | // break; | ||
1468 | |||
1469 | |||
1470 | |||
1471 | /* | ||
1472 | struct InetInterfaceInfo | ||
1473 | { | ||
1474 | InetHost fAddress; | ||
1475 | InetHost fNetmask; | ||
1476 | InetHost fBroadcastAddr; | ||
1477 | InetHost fDefaultGatewayAddr; | ||
1478 | InetHost fDNSAddr; | ||
1479 | UInt16 fVersion; | ||
1480 | UInt16 fHWAddrLen; | ||
1481 | UInt8* fHWAddr; | ||
1482 | UInt32 fIfMTU; | ||
1483 | UInt8* fReservedPtrs[2]; | ||
1484 | InetDomainName fDomainName; | ||
1485 | UInt32 fIPSecondaryCount; | ||
1486 | UInt8 fReserved[252]; | ||
1487 | }; | ||
1488 | typedef struct InetInterfaceInfo InetInterfaceInfo; | ||
1489 | |||
1490 | |||
1491 | |||
1492 | ((InetAddress *) addr.buf)->fHost | ||
1493 | |||
1494 | struct TBind | ||
1495 | { | ||
1496 | TNetbuf addr; | ||
1497 | OTQLen qlen; | ||
1498 | }; | ||
1499 | |||
1500 | typedef struct TBind TBind; | ||
1501 | |||
1502 | struct TNetbuf | ||
1503 | { | ||
1504 | size_t maxlen; | ||
1505 | size_t len; | ||
1506 | UInt8* buf; | ||
1507 | }; | ||
1508 | |||
1509 | typedef struct TNetbuf TNetbuf; | ||
1510 | |||
1511 | |||
1512 | struct InetAddress | ||
1513 | { | ||
1514 | OTAddressType fAddressType; // always AF_INET | ||
1515 | InetPort fPort; // Port number | ||
1516 | InetHost fHost; // Host address in net byte order | ||
1517 | UInt8 fUnused[8]; // Traditional unused bytes | ||
1518 | }; | ||
1519 | typedef struct InetAddress InetAddress; | ||
1520 | */ | ||
1521 | |||
1522 | |||
1523 | |||
1524 | /* | ||
1525 | static pascal void Notifier(void* context, OTEventCode event, OTResult result, void* cookie) | ||
1526 | { | ||
1527 | EPInfo* epi = (EPInfo*) context; | ||
1528 | |||
1529 | switch (event) | ||
1530 | { | ||
1531 | case T_LISTEN: | ||
1532 | { | ||
1533 | DoListenAccept(); | ||
1534 | return; | ||
1535 | } | ||
1536 | |||
1537 | case T_ACCEPTCOMPLETE: | ||
1538 | { | ||
1539 | if (result != kOTNoError) | ||
1540 | DBAlert1("Notifier: T_ACCEPTCOMPLETE - result %d",result); | ||
1541 | return; | ||
1542 | } | ||
1543 | |||
1544 | case T_PASSCON: | ||
1545 | { | ||
1546 | if (result != kOTNoError) | ||
1547 | { | ||
1548 | DBAlert1("Notifier: T_PASSCON result %d", result); | ||
1549 | return; | ||
1550 | } | ||
1551 | |||
1552 | OTAtomicAdd32(1, &gCntrConnections); | ||
1553 | OTAtomicAdd32(1, &gCntrTotalConnections); | ||
1554 | OTAtomicAdd32(1, &gCntrIntervalConnects); | ||
1555 | |||
1556 | if ( OTAtomicSetBit(&epi->stateFlags, kPassconBit) != 0 ) | ||
1557 | { | ||
1558 | ReadData(epi); | ||
1559 | } | ||
1560 | |||
1561 | return; | ||
1562 | } | ||
1563 | |||
1564 | case T_DATA: | ||
1565 | { | ||
1566 | if ( OTAtomicSetBit(&epi->stateFlags, kPassconBit) != 0 ) | ||
1567 | { | ||
1568 | ReadData(epi); | ||
1569 | } | ||
1570 | |||
1571 | return; | ||
1572 | } | ||
1573 | |||
1574 | case T_GODATA: | ||
1575 | { | ||
1576 | SendData(epi); | ||
1577 | return; | ||
1578 | } | ||
1579 | |||
1580 | case T_DISCONNECT: | ||
1581 | { | ||
1582 | DoRcvDisconnect(epi); | ||
1583 | return; | ||
1584 | } | ||
1585 | |||
1586 | case T_DISCONNECTCOMPLETE: | ||
1587 | { | ||
1588 | if (result != kOTNoError) | ||
1589 | DBAlert1("Notifier: T_DISCONNECT_COMPLETE result %d",result); | ||
1590 | |||
1591 | return; | ||
1592 | } | ||
1593 | |||
1594 | case T_MEMORYRELEASED: | ||
1595 | { | ||
1596 | OTAtomicAdd32(-1, &epi->outstandingSends); | ||
1597 | return; | ||
1598 | } | ||
1599 | |||
1600 | default: | ||
1601 | { | ||
1602 | DBAlert1("Notifier: unknown event <%x>", event); | ||
1603 | return; | ||
1604 | } | ||
1605 | } | ||
1606 | } | ||
1607 | */ | ||
diff --git a/src/lib/libssl/src/MacOS/GetHTTPS.src/MacSocket.h b/src/lib/libssl/src/MacOS/GetHTTPS.src/MacSocket.h deleted file mode 100644 index ad59dc9e4f..0000000000 --- a/src/lib/libssl/src/MacOS/GetHTTPS.src/MacSocket.h +++ /dev/null | |||
@@ -1,103 +0,0 @@ | |||
1 | #pragma once | ||
2 | |||
3 | |||
4 | #ifdef __cplusplus | ||
5 | extern "C" { | ||
6 | #endif | ||
7 | |||
8 | |||
9 | |||
10 | enum | ||
11 | { | ||
12 | kMacSocket_TimeoutErr = -2 | ||
13 | }; | ||
14 | |||
15 | |||
16 | // Since MacSocket does busy waiting, I do a callback while waiting | ||
17 | |||
18 | typedef OSErr (*MacSocket_IdleWaitCallback)(void *); | ||
19 | |||
20 | |||
21 | // Call this before anything else! | ||
22 | |||
23 | OSErr MacSocket_Startup(void); | ||
24 | |||
25 | |||
26 | // Call this to cleanup before quitting | ||
27 | |||
28 | OSErr MacSocket_Shutdown(void); | ||
29 | |||
30 | |||
31 | // Call this to allocate a "socket" (reference number is returned in outSocketNum) | ||
32 | // Note that inDoThreadSwitching is pretty much irrelevant right now, since I ignore it | ||
33 | // The inTimeoutTicks parameter is applied during reads/writes of data | ||
34 | // The inIdleWaitCallback parameter specifies a callback which is called during busy-waiting periods | ||
35 | // The inUserRefPtr parameter is passed back to the idle-wait callback | ||
36 | |||
37 | OSErr MacSocket_socket(int *outSocketNum,const Boolean inDoThreadSwitching,const long inTimeoutTicks,MacSocket_IdleWaitCallback inIdleWaitCallback,void *inUserRefPtr); | ||
38 | |||
39 | |||
40 | // Call this to connect to an IP/DNS address | ||
41 | // Note that inTargetAddressAndPort is in "IP:port" format-- e.g. 10.1.1.1:123 | ||
42 | |||
43 | OSErr MacSocket_connect(const int inSocketNum,char *inTargetAddressAndPort); | ||
44 | |||
45 | |||
46 | // Call this to listen on a port | ||
47 | // Since this a low-performance implementation, I allow a maximum of 1 (one!) incoming request when I listen | ||
48 | |||
49 | OSErr MacSocket_listen(const int inSocketNum,const int inPortNum); | ||
50 | |||
51 | |||
52 | // Call this to close a socket | ||
53 | |||
54 | OSErr MacSocket_close(const int inSocketNum); | ||
55 | |||
56 | |||
57 | // Call this to receive data on a socket | ||
58 | // Most parameters' purpose are obvious-- except maybe "inBlock" which controls whether I wait for data or return immediately | ||
59 | |||
60 | int MacSocket_recv(const int inSocketNum,void *outBuff,int outBuffLength,const Boolean inBlock); | ||
61 | |||
62 | |||
63 | // Call this to send data on a socket | ||
64 | |||
65 | int MacSocket_send(const int inSocketNum,const void *inBuff,int inBuffLength); | ||
66 | |||
67 | |||
68 | // If zero bytes were read in a call to MacSocket_recv(), it may be that the remote end has done a half-close | ||
69 | // This function will let you check whether that's true or not | ||
70 | |||
71 | Boolean MacSocket_RemoteEndIsClosing(const int inSocketNum); | ||
72 | |||
73 | |||
74 | // Call this to see if the listen has completed after a call to MacSocket_listen() | ||
75 | |||
76 | Boolean MacSocket_ListenCompleted(const int inSocketNum); | ||
77 | |||
78 | |||
79 | // These really aren't very useful anymore | ||
80 | |||
81 | Boolean MacSocket_LocalEndIsOpen(const int inSocketNum); | ||
82 | Boolean MacSocket_RemoteEndIsOpen(const int inSocketNum); | ||
83 | |||
84 | |||
85 | // You may wish to change the userRefPtr for a socket callback-- use this to do it | ||
86 | |||
87 | void MacSocket_SetUserRefPtr(const int inSocketNum,void *inNewRefPtr); | ||
88 | |||
89 | |||
90 | // Call these to get the socket's IP:port descriptor | ||
91 | |||
92 | void MacSocket_GetLocalIPAndPort(const int inSocketNum,char *outIPAndPort,const int inIPAndPortLength); | ||
93 | void MacSocket_GetRemoteIPAndPort(const int inSocketNum,char *outIPAndPort,const int inIPAndPortLength); | ||
94 | |||
95 | |||
96 | // Call this to get error info from a socket | ||
97 | |||
98 | void MacSocket_GetSocketErrorInfo(const int inSocketNum,int *outSocketErrCode,char *outSocketErrString,const int inSocketErrStringMaxLength); | ||
99 | |||
100 | |||
101 | #ifdef __cplusplus | ||
102 | } | ||
103 | #endif | ||
diff --git a/src/lib/libssl/src/MacOS/OpenSSL.mcp.hqx b/src/lib/libssl/src/MacOS/OpenSSL.mcp.hqx deleted file mode 100644 index c357ea5af9..0000000000 --- a/src/lib/libssl/src/MacOS/OpenSSL.mcp.hqx +++ /dev/null | |||
@@ -1,4940 +0,0 @@ | |||
1 | (This file must be converted with BinHex 4.0) | ||
2 | |||
3 | :#dp`C@j68d`ZE@0`!%e08(*$9dP&!!!!!jeU!!!!!0U2Bfp[E!!!!!-!!!%S!!1 | ||
4 | %3J!$K@S!!"J!!!!"!!%#!3!!!!!!!!!!!%0[C'9ABA*bD@pb)&"bEfTPBh3!!!! | ||
5 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
6 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
7 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
8 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
9 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"(CA4)9&4 | ||
10 | 38b"38%-k4'9LG@GRCA)J8R9ZG'PYC3"(CA4)9&438b"38%-k8fpeFQ0P)&4bC@9 | ||
11 | c!%GPG%K89&"6)&"33cT$GA0dEfdJ5f9jGfpbC(-!4f9d5&488&-J8&"$1N&MBf9 | ||
12 | cFb"3BA4SF`"(CA4)9&438b"38%-k9'&bCf9d)&0PG(4TEQGc!%GPG%K89&"6)&" | ||
13 | 33cT'D@aP)%eKF("TEQGc!%GPG%K89&"6)&"33cT#G@PXC#"&H(4bBA-!4f9d5&4 | ||
14 | 88&-J8&"$1N4PBR9RCf9b)&4KFQGPG!"(CA4)9&438b"38%-k0MK,)%0[C'9(C@i | ||
15 | !4f9d5&488&-J8&"$1MBi5b"%DA0KFh0PE@*XCA)!4f9d5&488&-J8&"$1MBi5b" | ||
16 | (E'pLB@`J6h"dD@eTHQ9b!%GPG%K89&"6)&"33cSf1%XJ6'PZDf9b!%GPG%K89&" | ||
17 | 6)&"33cSf1%XJ8(*[DQ9MG!"(CA4)9&438b"38%-k3bp$+bXJ3fpYF'PXCA)!4f9 | ||
18 | d5&488&-J8&"$1N-[3bXV)&GKFQjTEQGc!%GPG%K89&"6)&"33cT$4Ndf1%X!4f9 | ||
19 | d5&488&-J8&"$1NeKBdp6)%ePFQGP)&"KEQ9X!%GPG%K89&"6)&"33cT38%-J3fp | ||
20 | NC8GPEJ"(CA4)9&438b"38%-k8&"$)%4TFf&cFf9YBQaPFJ"(CA4)9&438b"38%- | ||
21 | k8&"$)%GXEf*KE#"2F(4TE@PkCA)!4f9d5&488&-J8&"$1P"33b"-D@jVCA)!4f9 | ||
22 | d5&488&-J8&"$1P"33b"348B!4f9d5&488&-J8&"$1P"33b"3FQpUC@0d!%GPG%K | ||
23 | 89&"6)&"33cT38%0"FfdJ8'&ZC@`!4f9d5&488&-J8&"$1P*PHL"$Efe`D@aPFJ" | ||
24 | 2F'9Z8e0-)&"33cT%C@*eCfGPFL"5G@jdD@eP!%p`C@j68d`J8&"$1P0[GA*MC5" | ||
25 | 8FQ9PF`"2F'9Z8e0-)&"33cT$GA0dEfdJ5f9jGfpbC(-!6h"PEP066#"38%-k3@0 | ||
26 | MCA0c)&"KG'Kc!%p`C@j68d`J8&"$1P4KFQGPG#"6CA4dD@jRF`"2F'9Z8e0-)&" | ||
27 | 33cT'D@aP)%eKF("TEQGc!%p`C@j68d`J8&"$1N*eD@aN)%9iG(*KF`"2F'9Z8e0 | ||
28 | -)&"33cT%C@*eCfGPFL"8BA*RCA3!6h"PEP066#"38%-k0MK,)%0[C'9(C@i!6h" | ||
29 | PEP066#"38%-k0MK,)%4TFf&cFf9YBQaPFJ"2F'9Z8e0-)&"33cSf1%XJ4fa[BQ& | ||
30 | X)%p`G'PYDATPFJ"2F'9Z8e0-)&"33cSf1%XJ6'PZDf9b!%p`C@j68d`J8&"$1MB | ||
31 | i5b"3FQpUC@0d!%p`C@j68d`J8&"$1N-[3bXV)%0[EA"TE'9b!%p`C@j68d`J8&" | ||
32 | $1N-[3bXV)&GKFQjTEQGc!%p`C@j68d`J8&"$1N0'66Bi5`"2F'9Z8e0-)&"33cT | ||
33 | 0B@028b"0CA*RC5"3B@jPE!"2F'9Z8e0-)&"33cT38%-J3fpNC8GPEJ"2F'9Z8e0 | ||
34 | -)&"33cT38%-J4'PcBA0cC@eLE'9b!%p`C@j68d`J8&"$1P"33b"(E'pLB@`J6h" | ||
35 | dD@eTHQ9b!%p`C@j68d`J8&"$1P"33b"-D@jVCA)!6h"PEP066#"38%-k8&"$)&" | ||
36 | &4J"2F'9Z8e0-)&"33cT38%-J8(*[DQ9MG!"2F'9Z8e0-)&"33cT38%0"FfdJ8'& | ||
37 | ZC@`!6h"PEP066#"38%-k8Q9k)%0[EA"TE'9b!%GPG%K89&"6)$Bi5cT%C@*eCfG | ||
38 | PFL"5G@jdD@eP!%GPG%K89&"6)$Bi5cT6Eh9bBf8J9(*PCA-!4f9d5&488&-J0MK | ||
39 | ,1N0eFh4[E5",CAPhEh*NF`"(CA4)9&438b!f1%Xk3@0MCA0c)&"KG'Kc!%GPG%K | ||
40 | 89&"6)$Bi5cT8BA*RCA3J8f9dG'PZCh-!4f9d5&488&-J0MK,1NCTE'8J6@&`F'P | ||
41 | ZCh-!4f9d5&488&-J0MK,1N*eD@aN)%9iG(*KF`"(CA4)9&438b!f1%Xk4'9LG@G | ||
42 | RCA)J9'&bCf9d!%GPG%K89&"6)$Bi5cSf1%XJ3fpNC8GPEJ"(CA4)9&438b!f1%X | ||
43 | k0MK,)%4TFf&cFf9YBQaPFJ"(CA4)9&438b!f1%Xk0MK,)%GXEf*KE#"2F(4TE@P | ||
44 | kCA)!4f9d5&488&-J0MK,1MBi5b"-D@jVCA)!4f9d5&488&-J0MK,1MBi5b"3FQp | ||
45 | UC@0d!%GPG%K89&"6)$Bi5cT$,d-V+b"$Efe`D@aPFJ"(CA4)9&438b!f1%Xk3bp | ||
46 | $+bXJ9f&bEQPZCh-!4f9d5&488&-J0MK,1N0'66Bi5`"(CA4)9&438b!f1%Xk6@& | ||
47 | M6e-J6@9bCf8J8'&ZC@`!4f9d5&488&-J0MK,1P"33b"$Ef4P4f9Z!%GPG%K89&" | ||
48 | 6)$Bi5cT38%-J4'PcBA0cC@eLE'9b!%GPG%K89&"6)$Bi5cT38%-J4fa[BQ&X)%p | ||
49 | `G'PYDATPFJ"(CA4)9&438b!f1%Xk8&"$)%aTEQYPFJ"(CA4)9&438b!f1%Xk8&" | ||
50 | $)&"&4J"(CA4)9&438b!f1%Xk8&"$)&"bEfTPBh3!4f9d5&488&-J0MK,1P"33d& | ||
51 | cE5"3B@jPE!"(CA4)9&438b!f1%Xk8Q9k)%0[EA"TE'9b!%aTBP066#!f1%Xk4'9 | ||
52 | LG@GRCA)J8R9ZG'PYC3"-D@*68d`J0MK,1P0[GA*MC5"8FQ9PF`"-D@*68d`J0MK | ||
53 | ,1N0eFh4[E5",CAPhEh*NF`"-D@*68d`J0MK,1N&MBf9cFb"3BA4SF`"-D@*68d` | ||
54 | J0MK,1P4KFQGPG#"6CA4dD@jRF`"-D@*68d`J0MK,1NCTE'8J6@&`F'PZCh-!6'P | ||
55 | L8e0-)$Bi5cT#G@PXC#"&H(4bBA-!6'PL8e0-)$Bi5cT%C@*eCfGPFL"8BA*RCA3 | ||
56 | !6'PL8e0-)$Bi5cSf1%XJ3fpNC8GPEJ"-D@*68d`J0MK,1MBi5b"%DA0KFh0PE@* | ||
57 | XCA)!6'PL8e0-)$Bi5cSf1%XJ4fa[BQ&X)%p`G'PYDATPFJ"-D@*68d`J0MK,1MB | ||
58 | i5b"-D@jVCA)!6'PL8e0-)$Bi5cSf1%XJ8(*[DQ9MG!"-D@*68d`J0MK,1N-[3bX | ||
59 | V)%0[EA"TE'9b!%aTBP066#!f1%Xk3bp$+bXJ9f&bEQPZCh-!6'PL8e0-)$Bi5cT | ||
60 | $4Ndf1%X!6'PL8e0-)$Bi5cT0B@028b"0CA*RC5"3B@jPE!"-D@*68d`J0MK,1P" | ||
61 | 33b"$Ef4P4f9Z!%aTBP066#!f1%Xk8&"$)%4TFf&cFf9YBQaPFJ"-D@*68d`J0MK | ||
62 | ,1P"33b"(E'pLB@`J6h"dD@eTHQ9b!%aTBP066#!f1%Xk8&"$)%aTEQYPFJ"-D@* | ||
63 | 68d`J0MK,1P"33b"348B!6'PL8e0-)$Bi5cT38%-J8(*[DQ9MG!"-D@*68d`J0MK | ||
64 | ,1P"33d&cE5"3B@jPE!"-D@*68d`J0MK,1P*PHL"$Efe`D@aPFJ"2F'9Z8e0-)$B | ||
65 | iDcT%C@*eCfGPFL"5G@jdD@eP!%p`C@j68d`J0MKV1P0[GA*MC5"8FQ9PF`"2F'9 | ||
66 | Z8e0-)$BiDcT$GA0dEfdJ5f9jGfpbC(-!6h"PEP066#!f1'Xk3@0MCA0c)&"KG'K | ||
67 | c!%p`C@j68d`J0MKV1P4KFQGPG#"6CA4dD@jRF`"2F'9Z8e0-)$BiDcT'D@aP)%e | ||
68 | KF("TEQGc!%p`C@j68d`J0MKV1N*eD@aN)%9iG(*KF`"2F'9Z8e0-)$BiDcT%C@* | ||
69 | eCfGPFL"8BA*RCA3!6h"PEP066#!f1'Xk0MK,)%0[C'9(C@i!6h"PEP066#!f1'X | ||
70 | k0MK,)%4TFf&cFf9YBQaPFJ"2F'9Z8e0-)$BiDcSf1%XJ4fa[BQ&X)%p`G'PYDAT | ||
71 | PFJ"2F'9Z8e0-)$BiDcSf1%XJ6'PZDf9b!%p`C@j68d`J0MKV1MBi5b"3FQpUC@0 | ||
72 | d!%p`C@j68d`J0MKV1N-[3bXV)%0[EA"TE'9b!%p`C@j68d`J0MKV1N-[3bXV)&G | ||
73 | KFQjTEQGc!%p`C@j68d`J0MKV1N0'66Bi5`"2F'9Z8e0-)$BiDcT0B@028b"0CA* | ||
74 | RC5"3B@jPE!"2F'9Z8e0-)$BiDcT38%-J3fpNC8GPEJ"2F'9Z8e0-)$BiDcT38%- | ||
75 | J4'PcBA0cC@eLE'9b!%p`C@j68d`J0MKV1P"33b"(E'pLB@`J6h"dD@eTHQ9b!%p | ||
76 | `C@j68d`J0MKV1P"33b"-D@jVCA)!6h"PEP066#!f1'Xk8&"$)&"&4J"2F'9Z8e0 | ||
77 | -)$BiDcT38%-J8(*[DQ9MG!"2F'9Z8e0-)$BiDcT38%0"FfdJ8'&ZC@`!6h"PEP0 | ||
78 | 66#!f1'Xk8Q9k)%0[EA"TE'9b!%aTBP066#"38%-k4'9LG@GRCA)J8R9ZG'PYC3" | ||
79 | -D@*68d`J8&"$1P0[GA*MC5"8FQ9PF`"-D@*68d`J8&"$1N0eFh4[E5",CAPhEh* | ||
80 | NF`"-D@*68d`J8&"$1N&MBf9cFb"3BA4SF`"-D@*68d`J8&"$1P4KFQGPG#"6CA4 | ||
81 | dD@jRF`"-D@*68d`J8&"$1NCTE'8J6@&`F'PZCh-!6'PL8e0-)&"33cT#G@PXC#" | ||
82 | &H(4bBA-!6'PL8e0-)&"33cT%C@*eCfGPFL"8BA*RCA3!6'PL8e0-)&"33cSf1%X | ||
83 | J3fpNC8GPEJ"-D@*68d`J8&"$1MBi5b"%DA0KFh0PE@*XCA)!6'PL8e0-)&"33cS | ||
84 | f1%XJ4fa[BQ&X)%p`G'PYDATPFJ"-D@*68d`J8&"$1MBi5b"-D@jVCA)!6'PL8e0 | ||
85 | -)&"33cSf1%XJ8(*[DQ9MG!"-D@*68d`J8&"$1N-[3bXV)%0[EA"TE'9b!%aTBP0 | ||
86 | 66#"38%-k3bp$+bXJ9f&bEQPZCh-!6'PL8e0-)&"33cT$4Ndf1%X!6'PL8e0-)&" | ||
87 | 33cT0B@028b"0CA*RC5"3B@jPE!"-D@*68d`J8&"$1P"33b"$Ef4P4f9Z!%aTBP0 | ||
88 | 66#"38%-k8&"$)%4TFf&cFf9YBQaPFJ"-D@*68d`J8&"$1P"33b"(E'pLB@`J6h" | ||
89 | dD@eTHQ9b!%aTBP066#"38%-k8&"$)%aTEQYPFJ"-D@*68d`J8&"$1P"33b"348B | ||
90 | !6'PL8e0-)&"33cT38%-J8(*[DQ9MG!"-D@*68d`J8&"$1P"33d&cE5"3B@jPE!" | ||
91 | -D@*68d`J8&"$1P*PHL"$Efe`D@aPFJ"-D@*$FRP`G'mJ8&"$1N4PBR9RCf9b)&* | ||
92 | eER4TE@8!6'PL3h*jF(4[)&"33cT6Eh9bBf8J9(*PCA-!6'PL3h*jF(4[)&"33cT | ||
93 | $GA0dEfdJ5f9jGfpbC(-!6'PL3h*jF(4[)&"33cT"Bf0PFh-J8'&dD(-!6'PL3h* | ||
94 | jF(4[)&"33cT8BA*RCA3J8f9dG'PZCh-!6'PL3h*jF(4[)&"33cT'D@aP)%eKF(" | ||
95 | TEQGc!%aTBN0bHA"dEb"38%-k3R9TE'3J4AKdFQ&c!%aTBN0bHA"dEb"38%-k4'9 | ||
96 | LG@GRCA)J9'&bCf9d!%aTBN0bHA"dEb"38%-k0MK,)%0[C'9(C@i!6'PL3h*jF(4 | ||
97 | [)&"33cSf1%XJ4'PcBA0cC@eLE'9b!%aTBN0bHA"dEb"38%-k0MK,)%GXEf*KE#" | ||
98 | 2F(4TE@PkCA)!6'PL3h*jF(4[)&"33cSf1%XJ6'PZDf9b!%aTBN0bHA"dEb"38%- | ||
99 | k0MK,)&"bEfTPBh3!6'PL3h*jF(4[)&"33cT$,d-V+b"$Efe`D@aPFJ"-D@*$FRP | ||
100 | `G'mJ8&"$1N-[3bXV)&GKFQjTEQGc!%aTBN0bHA"dEb"38%-k3dC00MK,!%aTBN0 | ||
101 | bHA"dEb"38%-k6@&M6e-J6@9bCf8J8'&ZC@`!6'PL3h*jF(4[)&"33cT38%-J3fp | ||
102 | NC8GPEJ"-D@*$FRP`G'mJ8&"$1P"33b"%DA0KFh0PE@*XCA)!6'PL3h*jF(4[)&" | ||
103 | 33cT38%-J4fa[BQ&X)%p`G'PYDATPFJ"-D@*$FRP`G'mJ8&"$1P"33b"-D@jVCA) | ||
104 | !6'PL3h*jF(4[)&"33cT38%-J8%9'!%aTBN0bHA"dEb"38%-k8&"$)&"bEfTPBh3 | ||
105 | !6'PL3h*jF(4[)&"33cT38%0"FfdJ8'&ZC@`!6'PL3h*jF(4[)&"33cT5CASJ3fp | ||
106 | YF'PXCA)!6'PL3h*jF(4[)$Bi5cT%C@*eCfGPFL"5G@jdD@eP!%aTBN0bHA"dEb! | ||
107 | f1%Xk8fpeFQ0P)&4bC@9c!%aTBN0bHA"dEb!f1%Xk3h9cG'pY)%YPHAG[FQ4c!%a | ||
108 | TBN0bHA"dEb!f1%Xk3@0MCA0c)&"KG'Kc!%aTBN0bHA"dEb!f1%Xk9'&bCf9d)&0 | ||
109 | PG(4TEQGc!%aTBN0bHA"dEb!f1%Xk4QPXC5"0BA"`D@jRF`"-D@*$FRP`G'mJ0MK | ||
110 | ,1N*eD@aN)%9iG(*KF`"-D@*$FRP`G'mJ0MK,1N4PBR9RCf9b)&4KFQGPG!"-D@* | ||
111 | $FRP`G'mJ0MK,1MBi5b"$Ef4P4f9Z!%aTBN0bHA"dEb!f1%Xk0MK,)%4TFf&cFf9 | ||
112 | YBQaPFJ"-D@*$FRP`G'mJ0MK,1MBi5b"(E'pLB@`J6h"dD@eTHQ9b!%aTBN0bHA" | ||
113 | dEb!f1%Xk0MK,)%aTEQYPFJ"-D@*$FRP`G'mJ0MK,1MBi5b"3FQpUC@0d!%aTBN0 | ||
114 | bHA"dEb!f1%Xk3bp$+bXJ3fpYF'PXCA)!6'PL3h*jF(4[)$Bi5cT$,d-V+b"ABA* | ||
115 | ZD@jRF`"-D@*$FRP`G'mJ0MK,1N0'66Bi5`"-D@*$FRP`G'mJ0MK,1NeKBdp6)%e | ||
116 | PFQGP)&"KEQ9X!%aTBN0bHA"dEb!f1%Xk8&"$)%0[C'9(C@i!6'PL3h*jF(4[)$B | ||
117 | i5cT38%-J4'PcBA0cC@eLE'9b!%aTBN0bHA"dEb!f1%Xk8&"$)%GXEf*KE#"2F(4 | ||
118 | TE@PkCA)!6'PL3h*jF(4[)$Bi5cT38%-J6'PZDf9b!%aTBN0bHA"dEb!f1%Xk8&" | ||
119 | $)&"&4J"-D@*$FRP`G'mJ0MK,1P"33b"3FQpUC@0d!%aTBN0bHA"dEb!f1%Xk8&" | ||
120 | $3A0Y)&"KEQ9X!%aTBN0bHA"dEb!f1%Xk8Q9k)%0[EA"TE'9b!&"bEfTPBh3J4QP | ||
121 | XC5"-DA0d!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
122 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
123 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
124 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
125 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
126 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
127 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
128 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
129 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
130 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
131 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
132 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
133 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
134 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
135 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
136 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
137 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
138 | !!3!!!!!!!!!H!!!!!J!!!!!!!!!i!!!!!`!!!!!!!!"9!!!!"!!!!!!!!!"[!!! | ||
139 | !"3!!!!!!!!#-!!!!"J!!!!!!!!#R!!!!"`!!!!!!!!$"!!!!#!!!!!!!!!$H!!! | ||
140 | !#3!!!!!!!!$h!!!!#J!!!!!!!!%9!!!!#`!!!!!!!!%h!!!!$!!!!!!!!!&2!!! | ||
141 | !$3!!!!!!!!&S!!!!$J!!!!!!!!'%!!!!$`!!!!!!!!'J!!!!%!!!!!!!!!'d!!! | ||
142 | !%3!!!!!!!!(6!!!!%J!!!!!!!!(X!!!!%`!!!!!!!!)+!!!!&!!!!!!!!!)X!!! | ||
143 | !&3!!!!!!!!*%!!!!&J!!!!!!!!*C!!!!&`!!!!!!!!*b!!!!'!!!!!!!!!+-!!! | ||
144 | !'3!!!!!!!!+Q!!!!'J!!!!!!!!,$!!!!'`!!!!!!!!,F!!!!(!!!!!!!!!,i!!! | ||
145 | !(3!!!!!!!!-4!!!!(J!!!!!!!!-Y!!!!(`!!!!!!!!0(!!!!)!!!!!!!!!0J!!! | ||
146 | !)3!!!!!!!!0m!!!!)J!!!!!!!!18!!!!)`!!!!!!!!1a!!!!*!!!!!!!!!25!!! | ||
147 | !*3!!!!!!!!2T!!!!*J!!!!!!!!3"!!!!*`!!!!!!!!3F!!!!+!!!!!!!!!3h!!! | ||
148 | !+3!!!!!!!!4+!!!!+J!!!!!!!!4S!!!!+`!!!!!!!!5!!!!!,!!!!!!!!!5G!!! | ||
149 | !,3!!!!!!!!5q!!!!,J!!!!!!!!69!!!!,`!!!!!!!!6T!!!!-!!!!!!!!!8"!!! | ||
150 | !-3!!!!!!!!8D!!!!-J!!!!!!!!8c!!!!-`!!!!!!!!94!!!!0!!!!!!!!!9V!!! | ||
151 | !03!!!!!!!!@)!!!!0J!!!!!!!!@L!!!!0`!!!!!!!!@r!!!!1!!!!!!!!!AD!!! | ||
152 | !13!!!!!!!!Ad!!!!1J!!!!!!!!B4!!!!1`!!!!!!!!BU!!!!2!!!!!!!!!C)!!! | ||
153 | !23!!!!!!!!CU!!!!2J!!!!!!!!D#!!!!2`!!!!!!!!DE!!!!3!!!!!!!!!Dh!!! | ||
154 | !33!!!!!!!!E6!!!!3J!!!!!!!!ER!!!!3`!!!!!!!!F'!!!!4!!!!!!!!!FI!!! | ||
155 | !43!!!!!!!!Fp!!!!4J!!!!!!!!GI!!!!4`!!!!!!!!Gh!!!!5!!!!!!!!!H-!!! | ||
156 | !53!!!!!!!!HP!!!!5J!!!!!!!!Hr!!!!5`!!!!!!!!IC!!!!6!!!!!!!!!Ie!!! | ||
157 | !63!!!!!!!!J0!!!!6J!!!!!!!!JS!!!!6`!!!!!!!!K!!!!!8!!!!!!!!!KE!!! | ||
158 | !83!!!!!!!!Kd!!!!8J!!!!!!!!L-!!!!8`!!!!!!!!LR!!!!9!!!!!!!!!Lq!!! | ||
159 | !93!!!!!!!!MD!!!!9J!!!!!!!!Mk!!!!9`!!!!!!!!N3!!!!@!!!!!!!!!NR!!! | ||
160 | !@3!!!!!!!!P"!!!!@J!!!!!!!!PE!!!!@`!!!!!!!!PY!!!!A!!!!!!!!!Q+!!! | ||
161 | !A3!!!!!!!!QK!!!!AJ!!!!!!!!Qp!!!!A`!!!!!!!!RG!!!!B!!!!!!!!!Rc!!! | ||
162 | !B3!!!!!!!!S'!!!!BJ!!!!!!!!SG!!!!B`!!!!!!!!Se!!!!C!!!!!!!!!T0!!! | ||
163 | !C3!!!!!!!!TU!!!!CJ!!!!!!!!U$!!!!C`!!!!!!!!UI!!!!D!!!!!!!!!Ui!!! | ||
164 | !D3!!!!!!!!V8!!!!DJ!!!!!!!!VZ!!!!D`!!!!!!!!X(!!!!E!!!!!!!!!XM!!! | ||
165 | !E3!!!!!!!!Xl!!!!EJ!!!!!!!!YB!!!!E`!!!!!!!!Yj!!!!F!!!!!!!!!Z3!!! | ||
166 | !!(%!!!!!!!!,U!!!!()!!!!!!!!,``!!!(-!!!!!!!!,hJ!!!(3!!!!!!!!,m3! | ||
167 | !!(8!!!!!!!!-$`!!!(B!!!!!!!!-*`!!!(F!!!!!!!!-4!!!!(J!!!!!!!!-C3! | ||
168 | !!(N!!!!!!!!-I!!!!(S!!!!!!!!-N!!!!!"l!!!!!!!!$+J!!!"m!!!!!!!!$-% | ||
169 | !!!"p!!!!!!!!$0S!!!"q!!!!!!!!$2B!!!"r!!!!!!!!$3i!!!#!!!!!!!!!$5N | ||
170 | !!!#"!!!!!!!!$8%!!!##!!!!!!!!$9`!!!#$!!!!!!!!$A8!!!#%!!!!!!!!$Bd | ||
171 | !!!#&!!!!!!!!$DJ!!!#'!!!!!!!!$Em!!!#(!!!!!!!!$GX!!!#)!!!!!!!!$IX | ||
172 | !!!#*!!!!!!!!$K%!!!#+!!!!!!!!$LJ!!!#,!!!!!!!!$N)!!!#-!!!!!!!!$P` | ||
173 | !!!#0!!!!!!!!$Qi!!!#1!!!!!!!!$SX!!!#2!!!!!!!!$U)!!!#3!!!!!!!!!!k | ||
174 | q!!!!N3!!!!!!!!lH!!!!NJ!!!!!!!!ld!!!!N`!!!!!!!!m(!!!!P!!!!!!!!!m | ||
175 | H!!!!P3!!!!!!!!mf!!!!PJ!!!!!!!!p1!!!!P`!!!!!!!!pY!!!!Q!!!!!!!!!q | ||
176 | )!!!!Q3!!!!!!!!qQ!!!!QJ!!!!!!!!r"!!!!Q`!!!!!!!!rI!!!!R!!!!!!!!!r | ||
177 | l!!!!R3!!!!!!!"!@!!!!RJ!!!!!!!"!d!!!!R`!!!!!!!""1!!!!S!!!!!!!!"" | ||
178 | Y!!!!S3!!!!!!!"#3!!!!!+)!!!!!!!!3U3!!!+-!!!!!!!!3``!!!+3!!!!!!!! | ||
179 | 3i!!!!+8!!!!!!!!3r3!!!+B!!!!!!!!4%J!!!+F!!!!!!!!4-J!!!+J!!!!!!!! | ||
180 | 46!!!!+N!!!!!!!!4D`!!!+S!!!!!!!!4MJ!!!+X!!!!!!!!4T`!!!+`!!!!!!!! | ||
181 | 4[3!!!+d!!!!!!!!4e`!!!+i!!!!!!!!4mJ!!!+m!!!!!!!!5$3!!!,!!!!!!!!! | ||
182 | 5,!!!!,%!!!!!!!!54`!!!,)!!!!!!!!5C3!!!,-!!!!!!!!5J!!!!,3!!!!!!!! | ||
183 | 5RJ!!!,8!!!!!!!!5ZJ!!!,B!!!!!!!!5e3!!!,F!!!!!!!!5m`!!!,J!!!!!!!! | ||
184 | 6$3!!!,N!!!!!!!!6,!!!!,S!!!!!!!!66`!!!,X!!!!!!!!6D!!!!,`!!!!!!!! | ||
185 | 6JJ!!!,d!!!!!!!!6R`!!!,i!!!!!!!!6[!!!!,m!!!!!!!!6d3!!!-!!!!!!!!! | ||
186 | 6m3!!!-%!!!!!!!!8#`!!!-)!!!!!!!!8+J!!!--!!!!!!!!863!!!-3!!!!!!!! | ||
187 | 8CJ!!!-8!!!!!!!!8I!!!!-B!!!!!!!!8PJ!!!-F!!!!!!!!8X3!!!-J!!!!!!!! | ||
188 | 8c!!!!-N!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
189 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
190 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
191 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
192 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
193 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
194 | !1J!!!$X!!!!m!!!!23!!!$i!!!!e!!!!1!!!!$m!!!"!!!!!33!!!$3!!!!b!!! | ||
195 | !13!!!$F!!!"#!!!!3`!!!%3!!!"&!!!!4J!!!%F!!!")!!!!53!!!%S!!!!c!!! | ||
196 | !0J!!!!J!!!!*!!!!#J!!!!X!!!!-!!!!!`!!!!B!!!!0!!!!$J!!!!m!!!!#!!! | ||
197 | !!!!!!!F!!!!&!!!!%!!!!"%!!!!5!!!!%`!!!"3!!!!9!!!!&J!!!"F!!!!B!!! | ||
198 | !!3!!!!3!!!#h!!!!Z!!!!,N!!!#k!!!!Z`!!!,)!!!#e!!!![!!!!,d!!!#q!!! | ||
199 | !X3!!!+m!!!#f!!!!Y!!!!,m!!!$!!!!!`3!!!-)!!!$$!!!!a!!!!-8!!!$'!!! | ||
200 | !a`!!!,!!!!#c!!!!RJ!!!*m!!!#J!!!!S3!!!+)!!!#C!!!!R!!!!+-!!!#N!!! | ||
201 | !T3!!!*J!!!#@!!!!R3!!!*X!!!#Q!!!!T`!!!+J!!!#T!!!!UJ!!!+X!!!#X!!! | ||
202 | !V3!!!+i!!!#A!!!!QJ!!!&-!!!"8!!!!93!!!&B!!!"A!!!!6J!!!&%!!!"B!!! | ||
203 | !@3!!!&S!!!"0!!!!5`!!!&)!!!"3!!!!@`!!!&`!!!"G!!!!AJ!!!&m!!!"J!!! | ||
204 | !B3!!!')!!!"M!!!!6!!!!%m!!!#&!!!!KJ!!!)F!!!#)!!!!L3!!!)!!!!#$!!! | ||
205 | !LJ!!!)X!!!#-!!!!I`!!!(d!!!#%!!!!JJ!!!)d!!!#1!!!!M`!!!*!!!!!!N3! | ||
206 | !!*)!!!#6!!!!P!!!!*8!!!"q!!!!J3!!!'`!!!"Y!!!!EJ!!!'m!!!"`!!!!C`! | ||
207 | !!'S!!!"a!!!!FJ!!!(-!!!"Q!!!!C!!!!'X!!!"T!!!!G!!!!(8!!!"f!!!!G`! | ||
208 | !!(J!!!"j!!!!HJ!!!(X!!!"m!!!!C3!!!'J!!!!K!!!!)J!!!#-!!!!N!!!!*3! | ||
209 | !!"`!!!!I!!!!*J!!!#F!!!!S!!!!'`!!!"N!!!!J!!!!(J!!!#N!!!!U!!!!+`! | ||
210 | !!#`!!!!Y!!!!,J!!!#m!!!!`!!!!-3!!!"S!!!!G!!!!b!!!!!!!!!!!!!!!!!! | ||
211 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
212 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!690-)%-Z8&"$,NaTBJ"*ER4 | ||
213 | PFQCKBf9-D@)!6@&dD%aTBJ"08d`J8R9ZG'PYC9"33bj-D@)!6h"PEP4`G%PZCA4 | ||
214 | 38%-ZE`"2F'9Z9("d5@jdCA*ZCA4-D@)!6h"PEP4bB@jcF'pbG%9iG'j38%-ZE`" | ||
215 | 2F'9Z9(*KER0`Eh*d6'PL!&4SFQ9KC(0-D@)!BQP[Ah0cE#jM!(-b-epME'jd,Q- | ||
216 | !Fc)cAfaTBLjM!(-b-epYCA4S,Q-!Fc)cAh"VG#jM!(-b-epcFRCb,Q-!Fc*IBfa | ||
217 | ZG#jM!(-bAf9ZBbjM!(-bAfaTBLjM!(-bAfePG'JZB`"c-Pp`Dh3ZB`"c-PpcFRC | ||
218 | b,Q-!Fc0IBQpdD#jM!(-cAf0XER3ZB`"c-epPEQ-ZB`"c-epXD@)ZB`"c-epYCA4 | ||
219 | S,Q-!Fc0IF'Yd,Q-!Fc0IFh*fFLjM!(0cE&pKE'Gc,Q-!Fh0XAf&cEM%ZB`"cFfa | ||
220 | IBf9bG#jM!(0cE&pMDA"S,Q-!Fh0XAf9bFLjM!(0cE&pPFR)b,Q-!Fh0XAfaTBLj | ||
221 | M!(0cE&pbFf%ZB`"cFfaIFf9cFbjM!(0cE&pcG'&d,Q-!Fh0XAh4iG#jM!(3aAf0 | ||
222 | XER3ZB`"d-9pPEQ-ZB`"d-9pXD@)ZB`"d-9pYCA4S,Q-!G$&IFh*fFLjM!'&cEM& | ||
223 | ICA*b,Q-!BA0Z-9pXD@)ZB`"KFfiaAh"KFLjM!'&cEPp`B@0V,Q-!B9pLDA4cG() | ||
224 | ZB`"KAf*YF#jM!'&IBQp[E#jM!'&IBRPdCA-ZB`"KAf3bD9pQF#jM!'&IC'PRCA0 | ||
225 | d,Q-!B9pNGA!ZB`"KAf9ZG@dZB`"KAfGPER4Y,Q-!B9pSC()ZB`"KAfNbC&pQF#j | ||
226 | M!'&ID@jd,Q-!B9pYCA4S,Q-!B9p[BQTPBh3ZB`"KAfpMG'9d,Q-!B9p`FQPZG#j | ||
227 | M!'&IFf9d,Q-!B9pcD@GZ,Q-!B9pdD@eP,Q-!B9pdHA"P,Q-!B9peG'0dE5jM!'& | ||
228 | IGA4Q1#jM!'&IGQ9bD@Cj,Q-!B9pfDA-ZB`"N-QPIC'K`,Q-!C$*TAf4cBA!ZB`" | ||
229 | N-QPIF()ZB`"N-QPIF(8ZB`"N-QPIFPp`FLjM!'3bD9pbAh"e,Q-!C$*TAh0IF() | ||
230 | ZB`"N-QPIFep`G5jM!'9fF&pKFfia,Q-!CPpPER9Y,Q-!CPpTER3ZB`"QAh0dFQP | ||
231 | ZCbjM!'NbC&pND(!ZB`"T-Q4IC(0KF#jM!'NbC&p`FLjM!'NbC&p`G5jM!'NbC&p | ||
232 | bAh"b,Q-!D6*NAh*IF(8ZB`"T-Q4IFep`FLjM!'NbC&pcAh"e,Q-!ER0cCA%ZB`" | ||
233 | ZAh"VCANZB`"`09p`BQ8ZB`"`09p`BQ9f-LjM!(!hAf4RFh3ZB`"`0epPEQ-ZB`" | ||
234 | `0epPEQ0IBbjM!(!hAf9fF#jM!(!hAfPIFbjM!(!hAfaTBLjM!(!hAh*PBfP`,Q- | ||
235 | !F$GIFfPREQ3ZB`"`0epcD@GZD5jM!(!hAh0IC5jM!(!iAh"VCANZB`"dAf0bE#j | ||
236 | M!(4IF'YPH5jM!(4IFQ9a,Q-!G&pi06!j,Q-!H&pKE'G[FLjM!(KIBA4dFQPL,Q- | ||
237 | !H&pMD@jQ,Q-!H&pMFQ`ZB`"iAf9iG'9Z,Q-!H&pTEQC[,Q-!H&pZB@eP,Q-!H&p | ||
238 | `Df9j,Q-!H&p`G@*VCANZB`"iAh*PF5jM!(KIFfPR,Q-!H&pcF'YT,Q-!H&pfB@` | ||
239 | ZB`"iAhJe-$NZB`"LCPpMCQ)f0#jM!'*QAf9MBLjM!'*QAf9ZBbjM!'*QAfpQBMB | ||
240 | d,Q-!BQCIFfYPH5jM!'*TEepPFR)ZB`"LD@pIE'PL,Q-!BR0cAh0[BfXZB`"LEPp | ||
241 | KC'3ZB`"LEPpKFfdZB`"LEPpLE'PZC#jM!'*ZAf4TGLjM!'*ZAf9bFLjM!'*ZAf9 | ||
242 | iF#jM!'*ZAf9iF$)ZB`"LEPpRBf3ZB`"LEPpXD@)ZB`"LEPpYEfjd,Q-!BQjIEA" | ||
243 | T,Q-!BQjIEA9X,Q-!BQjIF(*TE@8ZB`"LEPp`FQPZG#jM!'*ZAh*KEQ3ZB`"LEPp | ||
244 | bC@0`,Q-!BQjIFfKTCR3ZB`"LEPpcFA)ZB`"LEPphEh*N,Q-!BR9QCQ9b,Q-!BR9 | ||
245 | QAf9bFLjM!'0IBfCL0M3ZB`"MAf9MBLjM!'0IC@jM,Q-!Bep[CQ)f0#jM!'0IFfY | ||
246 | PH5jM!'0[EA"IE'PL,Q-!BepbE'8ZB`"MAhTXD@)ZB`"MEfjQ,Q-!BfpZCPpPFR) | ||
247 | ZB`"MBQ0IBfYcE5jM!'0LBepPEQ-ZB`"MCQ)f0'9NC5jM!'0QBMBdC@jM,Q-!BfC | ||
248 | LAf9ZBbjM!'4PFepPEQ-ZB`"PBf)cAf9ZBbjM!'9MBPpPEQ-ZB`"PC'9IBf*ME9p | ||
249 | PEQ-ZB`"PEQ0IFQ9KC#jM!'CMFRP`G#jM!'CMFRP`G&pL,Q-!EfCL0M4PC'8ZB`" | ||
250 | [CQ)f0'9ZBbjM!'pQBPpPEQ-ZB`"`Bf*MAf9ZBbjM!(&eC&pMDh0Y,Q-!FQ&ZC&p | ||
251 | VCANZB`"bC@&N-R"hC#jM!(*PB@4IF(GN,Q-!FR"MAf9ZBbjM!(0PG&pVCANZB`" | ||
252 | cG()bDf9j,Q-!Fh9`F#jM!(KMBQ0IC@jM,Q-!C'KIBfKPBfXZB`"ND&pPFR)ZB`" | ||
253 | ND&pRC@iZB`"ND&pVCANZB`"ND&pXD@)ZB`"NFf&IBA0Z-5jM!'4cB9pPFR)ZB`" | ||
254 | NFf&ICf9Z,Q-!C(0KAfYPH5jM!'4cB9pXD@)ZB`"NFf&IFfPRELjM!'4cB9pfFQB | ||
255 | ZB`"PFR)ZB`"PFR*IB@aX,Q-!CA*bAh"bELjM!'*TEepL0M3ZB`"LD@pIC@jM,Q- | ||
256 | !BQP[AfeN,Q-!BQP[AfpV,Q-!BepKE'`ZB`"ND@GPFh3ZB`"PEQ0[C'8ZB`"PGR" | ||
257 | IC@jM,Q-!CAC`Af9bFLjM!'9fF&pVCANZB`"PGR"IE'PL,Q-!CAC`Ah"LC5jM!'9 | ||
258 | fF&p`Df9j,Q-!C9pMBQ0I-f3ZB`"PAf0LBepLCLjM!'9IBf*MAf-ZB`"PAf0LBep | ||
259 | N,Q-!C9pMBQ0ID5jM!'9IBf*MAh)b,Q-!C9pMBQ0IFM8ZB`"PAf0QBPmcC#jM!'9 | ||
260 | IBfCLAf*Q,Q-!C9pMCQ*IBbjM!'9IBfCLAf3ZB`"PAf0QBPpT,Q-!C9pMCQ*IFM) | ||
261 | ZB`"PAf0QBPpb05jM!'9IC@0LAc0N,Q-!C9pPBf*IBQBZB`"PAf9MBPpM,Q-!C9p | ||
262 | PBf*IC#jM!'9IC@0LAfNZB`"PAf9MBPpb-LjM!'9IC@0LAh)e,Q-!C9pZG@aX,Q- | ||
263 | !C9p[CQ*I-f3ZB`"PAfpQBPpLCLjM!'9IEfCLAf-ZB`"PAfpQBPpN,Q-!C9p[CQ* | ||
264 | ID5jM!'9IEfCLAh)b,Q-!C9p[CQ*IFM8ZB`"PAh*M0#jM!'9IH'0LBepN,Q-!E9p | ||
265 | NFh-ZB`"YAf4cFc%ZB`"YAfeN-LjM!'eIE@3e,Q-!E9pYC'-b,Q-!E9pZG@aX,Q- | ||
266 | !E9pbDA"PE@3ZB`"YAh0SB5jM!'eIFfKK-5jM!'jKE@9c,Q-!F&pNC@-ZB`"`Af9 | ||
267 | ZBbjM!("IE'PL,Q-!F&p[F'9Z,Q-!F&pcC@&X,Q-!F&pcD@GZ,Q-!F&pfCA*TCRN | ||
268 | ZB`"SE@&M,Q-!D9pMBQ-ZB`"TAf0QBMBd,Q-!D9pPBf)ZB`"TAfpQBMBd,Q-!D9p | ||
269 | cDf9j,Q-!E'KKFfJZB`"XD&pcG'&dFbjM!'eN-PpNCh0d,Q-!E@3bAfpZC5jM!'e | ||
270 | N09pNCh0d,Q-!E@3eAfpZC5jM!'eNBc*NCh0d,Q-!E@4M-Pp[EQ8ZB`"[BQTIC'& | ||
271 | d,Q-!Ef*UAf9bFLjM!'pLDPpXD@)ZB`"[AfjKE@9c,Q-!F'9YAf&XE#jM!("PE9p | ||
272 | PFR)ZB`"`C@eID@jQEbjM!("PE9pXD@)ZB`"`C@eIFf9KE#jM!("PE9pcD@GZ,Q- | ||
273 | !F$%bAf&NC#jM!(!a-PpKG(4b,Q-!F$%bAf*KCh-ZB`"`-6*IBh*`G#jM!(!a-Pp | ||
274 | MFR3ZB`"`-6*IC'9MFLjM!(!a-PpTEQPd,Q-!F$%bAfYPH5jM!(!a-PpVDA0c,Q- | ||
275 | !F$%bAfaTBLjM!(!a-PpYB@-ZB`"`-6*IEA9dE#jM!(!a-PpcBQ&R,Q-!F$%bAh9 | ||
276 | dE#jM!("V-6*PFR)ZB`"`DcGIC'pTG#jM!("V0epXD@)ZB`"`Df0c0f9bFLjM!'e | ||
277 | NAh*KEQ3ZB`"bB@jNCQPXC5jM!(*KEQ4IE'PL,Q-!FQ-bBfCL0M3ZB`"bBc*[CQ) | ||
278 | f0#jM!(*M-PpMBQ-ZB`"bBc*IC@0L,Q-!FQ-bAh0VCANZB`"bBc4IC@jM,Q-!FQ- | ||
279 | dAh0VCANZB`"bBc9MCQ)f0#jM!(*M0@pQBMBd,Q-!FQ-eAf9MBLjM!(*M09pPEQ- | ||
280 | ZB`"bBc9IFfYPH5jM!(*YC&pNCh0d,Q-!FQeNAfpZC5jM!(*cB9pPBANZB`"bFf& | ||
281 | ICA*b,Q-!FR0KAfGPELjM!(*cB9pXD@)ZB`"bFf&IEQpZC5jM!(*cB9p[B@9`,Q- | ||
282 | !FR0KAh"V-5jM!(*cB9pcB@pc,Q-!FR0KAh0TCfiZB`"bFf&IFh0X,Q-!FfKK-@4 | ||
283 | RFh3ZB`"cD'%aAfpZC5jM!(0SB9pNCh0d,Q-!FfKKAfpZC5jM!(0dB@0V,Q-!G(K | ||
284 | dAf4L,Q-!BRPIC'Pb,Q-!BRPICQPXC5jM!(Je-$PZB@eP,Q-!H$8`1A*cCA3ZB`" | ||
285 | i06!jG(P`C5jM!(Je-$PIBfe`,Q-!H$8`19pN-LjM!(Je-$PIC'9Q,Q-!H$8`19p | ||
286 | PFR)ZB`"i06!jAf9iG#jM!(Je-$PIE(8ZB`"i06!jAfpLDLjM!(Je-$PIFM*i,Q- | ||
287 | !H$8`19pbCA%ZB`"i06!jAh0PG#jM!(Je-$PIG(Kd,Q-!H$8`19pf-bjM!(Je-$P | ||
288 | IGQCj,Q-!H&pKE'`ZB`"f-f9bFLjM!(BcAf&VCANZB`"f-epKE(3ZB`"f-epLBfp | ||
289 | ZFbjM!(BcAf*TG(0d,Q-!GM0IBfpZCLjM!(BcAf0`Efac,Q-!GM0IBh*XC#jM!(B | ||
290 | cAf9ZG@dZB`"f-epPH(4VG5jM!(BcAfGPEQiZB`"f-epTB68ZB`"f-epTER3ZB`" | ||
291 | f-epXD@)ZB`"f-ep`Dh8ZB`"f-ep`FQiZB`"f-epcDf9j,Q-!GM0IFhKZCA3ZB`" | ||
292 | f-epeG'`ZB`"MF(4ICA*b,Q-!Bh*jF(4XD@)ZB`"PH&pNBA4K,Q-!E@9Y,Q-!690 | ||
293 | -)&0*6e9B,P"33bj-D@)!BQCIBR9QCLjM!(KIH$8`1@%ZB`"NFf&IEh0cE#jM!(J | ||
294 | e-$PcF'YT,Q-!H$8`19pdFR-ZB`"f-ep`GA*`,Q-!GM0ID@jQEbjM!'*IF(*TER3 | ||
295 | ZB`"KAfeLFh4b,Q-!G&pcF'YT,Q-!G&pi06!jB5jM!(4IBQPdFh3ZB`"KAh0dFQj | ||
296 | TC#jM!'*TEepMBLjM!'*cFepYC@dZB`"LFh0ICQ3ZB`"LFh0ICQPXC5jM!'*cFep | ||
297 | ZG@aX,Q-!BQCIER9XE#jM!'*QAfjLD@mZB`"LFh0IBQP[,Q-!BPpNG@e`,Q-!C@j | ||
298 | MAhGbDA3ZB`"`09pMFR"d,Q-!F$9IBh*`G$)ZB`"`-6*IER"KFbjM!("V0epKG(4 | ||
299 | b,Q-!F'XhAfeTE@8ZB`"`DcGIFfeTE@8ZB`"bFf&IBfKV,Q-!FR0KAfjeE'`ZB`" | ||
300 | MGQ9bFfP[ELjM!%038h4bD@jR9A4TE(-ZBh"`!%9bFQpb5'&ZC'aTEQFZBh"`!%G | ||
301 | PG%K89&"6,Q0`F!"0B@06Ef0VCA3ZBh"`!'ePE9pNBQFZB`"36&0dFQPZCdCeEQ0 | ||
302 | c8&"$,QaTBJ"LEPpMG(JZB`"bB@jNAf9bFLjM!&*KEQ4[E@PkCA)ZBh"`!(J!BA" | ||
303 | `FbjM!'&`F&pbB@jN,Q-!BA0Z-A"KFR-ZB`"MB5jM!'0TF'KPFR-ZB`"MFQ`ZB`" | ||
304 | MFQ`bF$FZB`"NCh0d,Q-!C'JZB`"NFf%ZB`"NFf&`BA*KE5jM!'9ZBbjM!'9bFR0 | ||
305 | dFLjM!'GPEQ4S,Q-!Cf9ZC(0K,Q-!Cf9ZFR0K,Q-!ER0PF5jM!'p`C@jcFf`ZB`" | ||
306 | `Df0c-6)ZB`"`Df0c0bjM!("VBh-i,Q-!FQ9a,Q-!FR0K,Q-!Ff9cFepTC#jM!(0 | ||
307 | YD@eP,Q-!Fh"PC@3ZB`"cF'YKBbjM!(0IBf)ZB`"cAf0XD@9ZG#jM!(0IFf9bGQ9 | ||
308 | b,Q-!FepcEf0VCA3ZB`"fCA*TCRNZB`"fCA*cD@pZ,Q-!H$8`15jM!(0IG'PYC5j | ||
309 | M!%G98dPI5@jTG#jMF(!!4e9659p$Eh*P,P"33bj-D@)!4e9659p08d`Z8&"$,Na | ||
310 | TBJ"(990*Ae0*6e9B,P"33bj-D@)!1NaTBP066#j38%-Z6'PL!$T-D@*$FRP`G'm | ||
311 | Z8&"$,NaTBJ"0B@028bjXD@)!690-)&*eER4TE@8f1%XZ6'PL!%p`C@j8F(4*EQ9 | ||
312 | d,Qm!6h"PEP4bB@jcF'pbG#j[!%p`C@j8FQ&ZFh"[FR4"F(!ZE`"08d`J8dP299J | ||
313 | Z0MK,,NaTBJ"08d`J3bif1%XJ4Q%S0'PI1'3T,NaTBJ"0BA4S6'PL0MK,)%CK+$4 | ||
314 | TAcKN+5j-D@)!4QPbFh3J8f9RE@9ZG!"(990*Ad0[FQ8Z0MK,,NaTBJ"(990*Ade | ||
315 | 66#if1%XZ6'PL!%G98dPI8dP299JZ0MK,,NaTBJ!k6'PL3h*jF(4[,MBiDb"'B5J | ||
316 | dD9miC#NZ6'PL!%aTBP066#if1%XJ4Q%S0'PI1'3T,NaTBJ"(CA4)9&438b"38%- | ||
317 | !6h"PEP066#"38%-!4f9d5&488&-J0MK,!%aTBP066#!f1%X!6h"PEP066#!f1'X | ||
318 | !6'PL8e0-)&"33`"-D@*$FRP`G'mJ8&"$!%aTBN0bHA"dEb!f1%X!1NGPG%K89&" | ||
319 | 6+&"33bN!6'PL)%PYF'pbG#"38%-!3Q&XE'p[EL")C@a`!%eA)%-[3bXV)&"33`" | ||
320 | (B@eP3fpNC5"$EfjfCA*dCA)!4QaPH#"3FQ9`FQpMCA0cEh)!69FJ8'&cBf&X)&" | ||
321 | 33`"5CAS!8&"$3A0Y!%*TFfpZ)&"bCA"bEf0PFh0[FJ"B3dp'4L"*EA"[FR3J8&" | ||
322 | $!&"&4L"*EA"[FR3J8&"$!$T2F'9Z8e0-!$T(CA4)9&438bJf1%XT!%aTBL"*EA" | ||
323 | [FR3J0MK,!%e39b"*EA"[FR3J0MK,!%eA)%-[3bXV)$Bi5`"09b"3BA0MB@`J0MK | ||
324 | ,!&"&4L"*EA"[FR3J0MK,!$T-D@*68d`Z0MK,)%CK+$4TAcKN+5j-D@)!1Np`C@j | ||
325 | 68d`S0MKV+3"0B@028b"38%-J6'PZDf9b!%eKBdp6)$Bi5b"-D@jVCA)!8fpeFQ0 | ||
326 | P)&4bC@9c!%0eFh4[E5",CAPhEh*NF`""Bf0PFh-J8'&dD(-!9'&bCf9d)&0PG(4 | ||
327 | TEQGc!%CTE'8J6@&`F'PZCh-!3R9TE'3J4AKdFQ&c!%4PBR9RCf9b)&*eER4TE@8 | ||
328 | !4'9LG@GRCA)J9'&bCf9d!%-[3bXV)%0[EA"TE'9b!%-[3bXV)&GKFQjTEQGc!&" | ||
329 | 33b"$Ef4P4f9Z!&"33b"%DA0KFh0PE@*XCA)!8&"$)%GXEf*KE#"2F(4TE@PkCA) | ||
330 | !8&"$)%aTEQYPFJ"38%-J8%9'!&"33b"3FQpUC@0d!&"33d&cE5"3B@jPE!"5CAS | ||
331 | J3fpYF'PXCA)!0MK,)%0[C'9(C@i!0MK,)%4TFf&cFf9YBQaPFJ!f1%XJ4fa[BQ& | ||
332 | X)%p`G'PYDATPFJ!f1%XJ6'PZDf9b!$Bi5b"3FQpUC@0d!%0'66Bi5`!!!!!!!!! | ||
333 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
334 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
335 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
336 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
337 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
338 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
339 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
340 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!!!!!!!!$J! | ||
341 | !!!)!!!!!!!!!'`!!!!-!!!!!!!!!)`!!!!3!!!!!!!!!0J!!!!8!!!!!!!!!4`! | ||
342 | !!!B!!!!!!!!!@J!!!!F!!!!!!!!!F3!!!!J!!!!!!!!!JJ!!!!N!!!!!!!!!M3! | ||
343 | !!!S!!!!!!!!!P`!!!!X!!!!!!!!!SJ!!!!`!!!!!!!!!V!!!!!d!!!!!!!!!Y`! | ||
344 | !!!i!!!!!!!!!`3!!!!m!!!!!!!!!c!!!!"!!!!!!!!!!eJ!!!"%!!!!!!!!!h`! | ||
345 | !!")!!!!!!!!!k!!!!"-!!!!!!!!!mJ!!!"3!!!!!!!!!q`!!!"8!!!!!!!!""3! | ||
346 | !!"B!!!!!!!!"$`!!!"F!!!!!!!!"'3!!!"J!!!!!!!!")J!!!"N!!!!!!!!"+`! | ||
347 | !!"S!!!!!!!!"03!!!"X!!!!!!!!"2J!!!"`!!!!!!!!"5!!!!"d!!!!!!!!"8`! | ||
348 | !!"i!!!!!!!!"AJ!!!"m!!!!!!!!"D3!!!#!!!!!!!!!"G!!!!#%!!!!!!!!"IJ! | ||
349 | !!#)!!!!!!!!"L3!!!#-!!!!!!!!"N`!!!#3!!!!!!!!"R3!!!#8!!!!!!!!"U!! | ||
350 | !!#B!!!!!!!!"X`!!!#F!!!!!!!!"[3!!!#J!!!!!!!!"a`!!!#N!!!!!!!!"d!! | ||
351 | !!#S!!!!!!!!"f3!!!#X!!!!!!!!"i`!!!#`!!!!!!!!"l3!!!#d!!!!!!!!"q!! | ||
352 | !!#i!!!!!!!!#!`!!!#m!!!!!!!!#$J!!!$!!!!!!!!!#'3!!!$%!!!!!!!!#*!! | ||
353 | !!$)!!!!!!!!#,!!!!$-!!!!!!!!#03!!!$3!!!!!!!!#2`!!!$8!!!!!!!!#5J! | ||
354 | !!$B!!!!!!!!#93!!!$F!!!!!!!!#A3!!!$J!!!!!!!!#CJ!!!$N!!!!!!!!#F!! | ||
355 | !!$S!!!!!!!!#H!!!!$X!!!!!!!!#J`!!!$`!!!!!!!!#L`!!!$d!!!!!!!!#P!! | ||
356 | !!$i!!!!!!!!#R`!!!$m!!!!!!!!#U3!!!%!!!!!!!!!#X`!!!%%!!!!!!!!#Z`! | ||
357 | !!%)!!!!!!!!#a!!!!%-!!!!!!!!#c3!!!%3!!!!!!!!#eJ!!!%8!!!!!!!!#i!! | ||
358 | !!%B!!!!!!!!#k3!!!%F!!!!!!!!#p!!!!%J!!!!!!!!#r!!!!%N!!!!!!!!$"J! | ||
359 | !!%S!!!!!!!!$%3!!!%X!!!!!!!!$'J!!!%`!!!!!!!!$)`!!!%d!!!!!!!!$,J! | ||
360 | !!%i!!!!!!!!$13!!!%m!!!!!!!!$4!!!!&!!!!!!!!!$6`!!!&%!!!!!!!!$@J! | ||
361 | !!&)!!!!!!!!$B`!!!&-!!!!!!!!$D`!!!&3!!!!!!!!$GJ!!!&8!!!!!!!!$J!! | ||
362 | !!&B!!!!!!!!$L`!!!&F!!!!!!!!$P!!!!&J!!!!!!!!$R3!!!&N!!!!!!!!$U!! | ||
363 | !!&S!!!!!!!!$X`!!!&X!!!!!!!!$[J!!!&`!!!!!!!!$b3!!!&d!!!!!!!!$d3! | ||
364 | !!&i!!!!!!!!$fJ!!!&m!!!!!!!!$i`!!!'!!!!!!!!!$lJ!!!'%!!!!!!!!$q!! | ||
365 | !!')!!!!!!!!%!3!!!'-!!!!!!!!%$!!!!'3!!!!!!!!%&3!!!'8!!!!!!!!%(J! | ||
366 | !!'B!!!!!!!!%*`!!!'F!!!!!!!!%-J!!!'J!!!!!!!!%23!!!'N!!!!!!!!%5!! | ||
367 | !!'S!!!!!!!!%83!!!'X!!!!!!!!%@`!!!'`!!!!!!!!%B`!!!'d!!!!!!!!%E!! | ||
368 | !!'i!!!!!!!!%G!!!!'m!!!!!!!!%I3!!!(!!!!!!!!!%K`!!!(%!!!!!!!!%NJ! | ||
369 | !!()!!!!!!!!%Q`!!!(-!!!!!!!!%S`!!!(3!!!!!!!!%V3!!!(8!!!!!!!!%YJ! | ||
370 | !!(B!!!!!!!!%[`!!!(F!!!!!!!!%b!!!!(J!!!!!!!!%d`!!!(N!!!!!!!!%f`! | ||
371 | !!(S!!!!!!!!%i`!!!(X!!!!!!!!%l!!!!(`!!!!!!!!%p!!!!(d!!!!!!!!%r3! | ||
372 | !!(i!!!!!!!!&#!!!!(m!!!!!!!!&%3!!!)!!!!!!!!!&'J!!!)%!!!!!!!!&*3! | ||
373 | !!))!!!!!!!!&,`!!!)-!!!!!!!!&13!!!)3!!!!!!!!&3`!!!)8!!!!!!!!&6J! | ||
374 | !!)B!!!!!!!!&9`!!!)F!!!!!!!!&B!!!!)J!!!!!!!!&D`!!!)N!!!!!!!!&G!! | ||
375 | !!)S!!!!!!!!&I3!!!)X!!!!!!!!&KJ!!!)`!!!!!!!!&N!!!!!#0!!!!!!!!"CN | ||
376 | !!!#1!!!!!!!!"D)!!!#2!!!!!!!!"D`!!!#3!!!!!!!!!!@e!!!!N3!!!!!!!!@ | ||
377 | q!!!!NJ!!!!!!!!A*!!!!N`!!!!!!!!A8!!!!P!!!!!!!!!AH!!!!P3!!!!!!!!A | ||
378 | S!!!!PJ!!!!!!!!Ac!!!!P`!!!!!!!!Am!!!!Q!!!!!!!!!B'!!!!Q3!!!!!!!!B | ||
379 | 2!!!!QJ!!!!!!!!BC!!!!Q`!!!!!!!!BM!!!!R!!!!!!!!!BV!!!!R3!!!!!!!!B | ||
380 | c!!!!RJ!!!!!!!!Bp!!!!R`!!!!!!!!C'!!!!S!!!!!!!!!C4!!!!S3!!!!!!!!C | ||
381 | C!!!!SJ!!!!!!!!CL!!!!S`!!!!!!!!CT!!!!T!!!!!!!!!Cd!!!!T3!!!!!!!!C | ||
382 | r!!!!TJ!!!!!!!!D*!!!!T`!!!!!!!!D8!!!!U!!!!!!!!!DI!!!!U3!!!!!!!!D | ||
383 | T!!!!UJ!!!!!!!!Dc!!!!U`!!!!!!!!Dq!!!!V!!!!!!!!!E)!!!!V3!!!!!!!!E | ||
384 | A!!!!VJ!!!!!!!!EL!!!!V`!!!!!!!!EV!!!!X!!!!!!!!!Ef!!!!X3!!!!!!!!F | ||
385 | "!!!!XJ!!!!!!!!F-!!!!X`!!!!!!!!F@!!!!Y!!!!!!!!!FK!!!!Y3!!!!!!!!F | ||
386 | X!!!!YJ!!!!!!!!Fh!!!!Y`!!!!!!!!G#!!!!Z!!!!!!!!!G0!!!!Z3!!!!!!!!G | ||
387 | A!!!!ZJ!!!!!!!!GK!!!!Z`!!!!!!!!GV!!!![!!!!!!!!!Gb!!!![3!!!!!!!!G | ||
388 | p!!!![J!!!!!!!!H)!!!![`!!!!!!!!H4!!!!`!!!!!!!!!HD!!!!`3!!!!!!!!H | ||
389 | M!!!!`J!!!!!!!!HX!!!!``!!!!!!!!Hh!!!!a!!!!!!!!!I"!!!!a3!!!!!!!!I | ||
390 | ,!!!!aJ!!!!!!!!I9!!!!a`!!!!!!!!II!!!!b!!!!!!!!!IU!!!!b3!!!!!!!!I | ||
391 | d!!!!bJ!!!!!!!!Ik!!!!b`!!!!!!!!J%!!!!c!!!!!!!!!J1!!!!c3!!!!!!!!J | ||
392 | B!!!!cJ!!!!!!!!JL!!!!c`!!!!!!!!JV!!!!d!!!!!!!!!Jd!!!!d3!!!!!!!!J | ||
393 | m!!!!dJ!!!!!!!!K&!!!!d`!!!!!!!!K1!!!!e!!!!!!!!!KB!!!!e3!!!!!!!!K | ||
394 | L!!!!eJ!!!!!!!!KX!!!!e`!!!!!!!!Kf!!!!f!!!!!!!!!L!!!!!f3!!!!!!!!L | ||
395 | ,!!!!fJ!!!!!!!!L@!!!!f`!!!!!!!!LK!!!!h!!!!!!!!!LV!!!!h3!!!!!!!!L | ||
396 | e!!!!hJ!!!!!!!!Lr!!!!h`!!!!!!!!M+!!!!i!!!!!!!!!M9!!!!i3!!!!!!!!M | ||
397 | J!!!!iJ!!!!!!!!MV!!!!i`!!!!!!!!Me!!!!j!!!!!!!!!Mr!!!!j3!!!!!!!!N | ||
398 | *!!!!jJ!!!!!!!!N8!!!!j`!!!!!!!!NI!!!!k!!!!!!!!!NU!!!!k3!!!!!!!!N | ||
399 | e!!!!kJ!!!!!!!!Nr!!!!k`!!!!!!!!P*!!!!l!!!!!!!!!P6!!!!l3!!!!!!!!P | ||
400 | H!!!!lJ!!!!!!!!PT!!!!l`!!!!!!!!Pb!!!!m!!!!!!!!!Pp!!!!m3!!!!!!!!Q | ||
401 | )!!!!mJ!!!!!!!!Q5!!!!m`!!!!!!!!QF!!!!p!!!!!!!!!QQ!!!!p3!!!!!!!!Q | ||
402 | a!!!!pJ!!!!!!!!Qm!!!!p`!!!!!!!!R%!!!!q!!!!!!!!!R2!!!!q3!!!!!!!!R | ||
403 | A!!!!qJ!!!!!!!!RJ!!!!q`!!!!!!!!RS!!!!r!!!!!!!!!R`!!!!r3!!!!!!!!R | ||
404 | j!!!!rJ!!!!!!!!S#!!!!r`!!!!!!!!S0!!!"!!!!!!!!!!S9!!!"!3!!!!!!!!S | ||
405 | H!!!"!J!!!!!!!!SQ!!!"!`!!!!!!!!SZ!!!""!!!!!!!!!Sf!!!""3!!!!!!!!S | ||
406 | q!!!""J!!!!!!!!T(!!!""`!!!!!!!!T3!!!"#!!!!!!!!!TC!!!"#3!!!!!!!!T | ||
407 | N!!!"#J!!!!!!!!TV!!!"#`!!!!!!!!Tc!!!"$!!!!!!!!!Tp!!!"$3!!!!!!!!U | ||
408 | &!!!"$J!!!!!!!!U2!!!"$`!!!!!!!!UB!!!"%!!!!!!!!!UJ!!!"%3!!!!!!!!U | ||
409 | V!!!"%J!!!!!!!!Uf!!!"%`!!!!!!!!V!!!!"&!!!!!!!!!V,!!!"&3!!!!!!!!V | ||
410 | 9!!!"&J!!!!!!!!VJ!!!"&`!!!!!!!!VV!!!"'!!!!!!!!!Ve!!!"'3!!!!!!!!V | ||
411 | r!!!"'J!!!!!!!!X*!!!"'`!!!!!!!!X6!!!"(!!!!!!!!!XG!!!"(3!!!!!!!!X | ||
412 | R!!!"(J!!!!!!!!Xb!!!"(`!!!!!!!!Xm!!!")!!!!!!!!!Y(!!!")3!!!!!!!!Y | ||
413 | 5!!!")J!!!!!!!!YF!!!")`!!!!!!!!YR!!!"*!!!!!!!!!Yb!!!"*3!!!!!!!!Y | ||
414 | p!!!"*J!!!!!!!!Z(!!!"*`!!!!!!!!Z5!!!"+!!!!!!!!!ZG!!!"+3!!!!!!!!Z | ||
415 | R!!!"+J!!!!!!!!Zb!!!"+`!!!!!!!!Zm!!!",!!!!!!!!!['!!!",3!!!!!!!![ | ||
416 | 4!!!",J!!!!!!!![F!!!",`!!!!!!!![Q!!!"-!!!!!!!!![`!!!"-3!!!!!!!![ | ||
417 | l!!!"-J!!!!!!!!`&!!!"-`!!!!!!!!`3!!!"0!!!!!!!!!`D!!!"03!!!!!!!!` | ||
418 | P!!!"0J!!!!!!!!``!!!"0`!!!!!!!!`l!!!"1!!!!!!!!!a'!!!"13!!!!!!!!a | ||
419 | 3!!!"1J!!!!!!!!aD!!!"1`!!!!!!!!aP!!!"2!!!!!!!!!a[!!!"23!!!!!!!!a | ||
420 | k!!!"2J!!!!!!!!b&!!!"2`!!!!!!!!b3!!!!!8!!!!!!!!!-QJ!!!8%!!!!!!!! | ||
421 | -T!!!!8)!!!!!!!!-V`!!!8-!!!!!!!!-ZJ!!!83!!!!!!!!-a!!!!88!!!!!!!! | ||
422 | -cJ!!!8B!!!!!!!!-f!!!!8F!!!!!!!!-iJ!!!8J!!!!!!!!-l!!!!8N!!!!!!!! | ||
423 | -p`!!!8S!!!!!!!!0!J!!!8X!!!!!!!!0$!!!!8`!!!!!!!!0&`!!!8d!!!!!!!! | ||
424 | 0)J!!!8i!!!!!!!!0,!!!!8m!!!!!!!!00`!!!9!!!!!!!!!03J!!!9%!!!!!!!! | ||
425 | 063!!!9)!!!!!!!!09`!!!9-!!!!!!!!0A`!!!93!!!!!!!!0D!!!!98!!!!!!!! | ||
426 | 0F3!!!9B!!!!!!!!0H`!!!9F!!!!!!!!0KJ!!!9J!!!!!!!!0N3!!!9N!!!!!!!! | ||
427 | 0R!!!!9S!!!!!!!!0T`!!!9X!!!!!!!!0X3!!!9`!!!!!!!!0[!!!!9d!!!!!!!! | ||
428 | 0a`!!!9i!!!!!!!!0dJ!!!9m!!!!!!!!0h!!!!@!!!!!!!!!0j`!!!@%!!!!!!!! | ||
429 | 0mJ!!!@)!!!!!!!!0r3!!!@-!!!!!!!!1#!!!!@3!!!!!!!!1%`!!!@8!!!!!!!! | ||
430 | 1(3!!!@B!!!!!!!!1+!!!!@F!!!!!!!!1-!!!!@J!!!!!!!!11!!!!@N!!!!!!!! | ||
431 | 13J!!!@S!!!!!!!!15`!!!@X!!!!!!!!19J!!!@`!!!!!!!!1B3!!!@d!!!!!!!! | ||
432 | 1D`!!!@i!!!!!!!!1GJ!!!@m!!!!!!!!1J!!!!A!!!!!!!!!1LJ!!!A%!!!!!!!! | ||
433 | 1P3!!!A)!!!!!!!!1R`!!!A-!!!!!!!!1U!!!!A3!!!!!!!!1X3!!!A8!!!!!!!! | ||
434 | 1ZJ!!!AB!!!!!!!!1``!!!AF!!!!!!!!1c!!!!AJ!!!!!!!!1eJ!!!AN!!!!!!!! | ||
435 | 1i3!!!AS!!!!!!!!1kJ!!!AX!!!!!!!!1p!!!!A`!!!!!!!!1r`!!!Ad!!!!!!!! | ||
436 | 2#3!!!Ai!!!!!!!!2$`!!!Am!!!!!!!!2)3!!!B!!!!!!!!!2+`!!!B%!!!!!!!! | ||
437 | 203!!!B)!!!!!!!!23!!!!B-!!!!!!!!25`!!!B3!!!!!!!!29J!!!B8!!!!!!!! | ||
438 | 2B!!!!BB!!!!!!!!2DJ!!!BF!!!!!!!!2G!!!!BJ!!!!!!!!2IJ!!!BN!!!!!!!! | ||
439 | 2K`!!!BS!!!!!!!!2N3!!!BX!!!!!!!!2Q`!!!B`!!!!!!!!2TJ!!!Bd!!!!!!!! | ||
440 | 2V`!!!Bi!!!!!!!!2Z3!!!Bm!!!!!!!!2`J!!!C!!!!!!!!!!$md!!!'4!!!!!!! | ||
441 | !$pJ!!!'5!!!!!!!!$q)!!!'6!!!!!!!!$q`!!!'8!!!!!!!!$rB!!!'9!!!!!!! | ||
442 | !$rm!!!'@!!!!!!!!%!S!!!'A!!!!!!!!%"3!!!'B!!!!!!!!%"m!!!'C!!!!!!! | ||
443 | !%#S!!!'D!!!!!!!!%$8!!!'E!!!!!!!!%%!!!!'F!!!!!!!!%%`!!!'G!!!!!!! | ||
444 | !%&B!!!'H!!!!!!!!%'%!!!'I!!!!!!!!%'`!!!'J!!!!!!!!%(i!!!'K!!!!!!! | ||
445 | !%*!!!!!"SJ!!!!!!!"#G!!!"S`!!!!!!!"#V!!!"T!!!!!!!!"#e!!!"T3!!!!! | ||
446 | !!"$+!!!"TJ!!!!!!!"$6!!!"T`!!!!!!!"$H!!!"U!!!!!!!!"$Y!!!"U3!!!!! | ||
447 | !!"$[!!!"UJ!!!!!!!"$f!!!"U`!!!!!!!"%"!!!"V!!!!!!!!"%-!!!"V3!!!!! | ||
448 | !!"%4!!!"VJ!!!!!!!"%E!!!"V`!!!!!!!"%K!!!"X!!!!!!!!"%U!!!"X3!!!!! | ||
449 | !!"%a!!!"XJ!!!!!!!"%f!!!"X`!!!!!!!"%m!!!"Y!!!!!!!!"&(!!!"Y3!!!!! | ||
450 | !!"&0!!!"YJ!!!!!!!"&@!!!"Y`!!!!!!!"&H!!!"Z!!!!!!!!"&R!!!"Z3!!!!! | ||
451 | !!"&`!!!"ZJ!!!!!!!"&h!!!"Z`!!!!!!!"'"!!!"[!!!!!!!!"'+!!!"[3!!!!! | ||
452 | !!"'5!!!"[J!!!!!!!"'D!!!"[`!!!!!!!"'J!!!"`!!!!!!!!"'Q!!!"`3!!!!! | ||
453 | !!"'`!!!"`J!!!!!!!"'i!!!"``!!!!!!!"(!!!!"a!!!!!!!!"()!!!"a3!!!!! | ||
454 | !!"(2!!!"aJ!!!!!!!"(D!!!"a`!!!!!!!"(P!!!"b!!!!!!!!"(`!!!"b3!!!!! | ||
455 | !!"(j!!!"bJ!!!!!!!")$!!!"b`!!!!!!!")+!!!"c!!!!!!!!")6!!!"c3!!!!! | ||
456 | !!")K!!!"cJ!!!!!!!")c!!!"c`!!!!!!!"*%!!!"d!!!!!!!!"*A!!!"d3!!!!! | ||
457 | !!"*R!!!"dJ!!!!!!!"*k!!!"d`!!!!!!!"+%!!!"e!!!!!!!!"+A!!!"e3!!!!! | ||
458 | !!"+P!!!"eJ!!!!!!!"+e!!!"e`!!!!!!!",)!!!"f!!!!!!!!",D!!!"f3!!!!! | ||
459 | !!",b!!!"fJ!!!!!!!"-,!!!"f`!!!!!!!"-C!!!"h!!!!!!!!"-V!!!"h3!!!!! | ||
460 | !!"-m!!!"hJ!!!!!!!"02!!!"h`!!!!!!!"0X!!!"i!!!!!!!!"1&!!!"i3!!!!! | ||
461 | !!"15!!!"iJ!!!!!!!"1H!!!"i`!!!!!!!"1V!!!"j!!!!!!!!"1f!!!"j3!!!!! | ||
462 | !!"2#!!!"jJ!!!!!!!"20!!!"j`!!!!!!!"2E!!!"k!!!!!!!!"2T!!!"k3!!!!! | ||
463 | !!"2i!!!"kJ!!!!!!!"3(!!!"k`!!!!!!!"38!!!"l!!!!!!!!"3K!!!"l3!!!!! | ||
464 | !!"3d!!!"lJ!!!!!!!"4'!!!"l`!!!!!!!"48!!!"m!!!!!!!!"4B!!!"m3!!!!! | ||
465 | !!"4I!!!"mJ!!!!!!!"4b!!!"m`!!!!!!!"5$!!!"p!!!!!!!!"55!!!"p3!!!!! | ||
466 | !!"5E!!!"pJ!!!!!!!"5U!!!"p`!!!!!!!"5j!!!"q!!!!!!!!"6)!!!"q3!!!!! | ||
467 | !!"69!!!"qJ!!!!!!!"6M!!!"q`!!!!!!!"6b!!!"r!!!!!!!!"8-!!!"r3!!!!! | ||
468 | !!"8D!!!"rJ!!!!!!!"8V!!!"r`!!!!!!!"8m!!!#!!!!!!!!!"9*!!!#!3!!!!! | ||
469 | !!"9C!!!#!J!!!!!!!"9Q!!!#!`!!!!!!!"9f!!!#"!!!!!!!!"@%!!!#"3!!!!! | ||
470 | !!"@4!!!#"J!!!!!!!"@L!!!#"`!!!!!!!"@b!!!##!!!!!!!!"A"!!!##3!!!!! | ||
471 | !!"A3!!!##J!!!!!!!"AF!!!##`!!!!!!!"AY!!!#$!!!!!!!!"B#!!!#$3!!!!! | ||
472 | !!"B0!!!#$J!!!!!!!"B9!!!#$`!!!!!!!"BK!!!#%!!!!!!!!"BZ!!!#%3!!!!! | ||
473 | !!"Bl!!!#%J!!!!!!!"C(!!!#%`!!!!!!!"CB!!!#&!!!!!!!!"CY!!!#&3!!!!! | ||
474 | !!"Ci!!!#&J!!!!!!!"D%!!!#&`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
475 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
476 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!$!!!!!- | ||
477 | !!!!-Y0ifDrrrqUS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
478 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
479 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
480 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
481 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
482 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
483 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
484 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
485 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
486 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
487 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
488 | !!!!!!!!!!!!!!!!!!!!!!!!#&`!!!L!!!"D,!!!B!!!!!KF!!!!!!!!!!!!!!!! | ||
489 | !!!!!9%9B9!!!!!)!!!(q!!!"r`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
490 | !!!!!!!)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
491 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
492 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
493 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
494 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
495 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
496 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
497 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
498 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
499 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
500 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
501 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
502 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
503 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
504 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
505 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
506 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
507 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
508 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
509 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
510 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
511 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#`MlJ!!!!!!!!!3! | ||
512 | #`NI`!!)!!!!!!!!!!!!!!X)fJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
513 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
514 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
515 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
516 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
517 | !!!!!!!)!!!%!!!!!"3!!Irm!!!!!Irm!!!!!Irm!!!!!Irm!!!!-!!%!!J!%!!! | ||
518 | !"8!!!!B!!3!"1J!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
519 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
520 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
521 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
522 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
523 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
524 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
525 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
526 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
527 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
528 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
529 | !!!%!!!$rrrrr!!!!!`!"!!%k1J!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
530 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
531 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
532 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
533 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
534 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
535 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
536 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
537 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
538 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
539 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
540 | !!!!!!!!!!!!!!3!!!2rrrrm!!!!%!!%!!6SkD@jME(9NC6S!!!!!!!!!!!!!!!! | ||
541 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
542 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
543 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
544 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
545 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
546 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
547 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
548 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
549 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
550 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
551 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!rrrrrd!!!!)!!3!"1J!!!!!!!!!!!!!!!!! | ||
552 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
553 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
554 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
555 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
556 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
557 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
558 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
559 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
560 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
561 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
562 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$rrrrr3!!!!`!#!!%k6@&M6e- | ||
563 | J8h9`F'pbG$S!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
564 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
565 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
566 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
567 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
568 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
569 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
570 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
571 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
572 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
573 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3!!!2rrrrp!!!!%!!) | ||
574 | !!6T08d`k!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
575 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
576 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
577 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
578 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
579 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
580 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
581 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
582 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
583 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
584 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!!!rrr | ||
585 | rrd!!!!8!#J!!6@&M6e-J8&"$)%aTEQYPFJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
586 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
587 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
588 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
589 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
590 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
591 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
592 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
593 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
594 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
595 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
596 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
597 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
598 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
599 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
600 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
601 | !!!!!!!!!!!!!4f9d5&488&-J8&"$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
602 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
603 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
604 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
605 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
606 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!%k!!!!!!!!!!!!!!!!!!!!!!! | ||
607 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
608 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
609 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
610 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
611 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
612 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
613 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
614 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
615 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
616 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
617 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#!!&0B@028b"38%-J6'PZDf9b!!! | ||
618 | !!!!!!!!!!!!!!!!!!!!H39"36!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
619 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!!!3A"`E!!!!!! | ||
620 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
621 | !!!!!!!!!!!!!!!"J!!!!68e-3J!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
622 | !!!!!6'PL)%PYF'pbG#"38%-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69"-4J!!!!! | ||
623 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!6'PL)%PYF'pbG#"38%-!!!!!!!! | ||
624 | !!!!!!!!!!!!!!!!!!!!!69G$4!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
625 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!!!8P053`!!!!! | ||
626 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
627 | !!!!!!!!!!!!!!!"J!!!!9%9B9#jLD!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
628 | !!!!!3Q&XE'p[EL")C@a`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#jM!!! | ||
629 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp$+bXJ8&"$!!!!!!!!!!! | ||
630 | !!!!!!!!!!!!!!!!!!!!!9%9B9#jM+bX!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
631 | !!!!!69FJ3bp$+bXJ8&"$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#jMB`! | ||
632 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp$+bXJ8&"$!!!!!!!!!!! | ||
633 | !!!!!!!!!!!!!!!!!!!!!9%9B9#jMF!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
634 | !!!!!69FJ3bp$+bXJ8&"$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#jMF(! | ||
635 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp$+bXJ8&"$!!!!!!!!!!! | ||
636 | !!!!!!!!!!!!!!!!!!!!!9%9B9#jPH(!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
637 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#jRB`! | ||
638 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!4f&YC80[C'8J3fpZGQ9bG'9b!!! | ||
639 | !!!!!!!!!!!!!!!"!!!!!9%9B9#jS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
640 | !!!!!69FJ3bp$+bXJ8&"$!!!!!!!!!!!!!!!!!!!!!!!!!!!3!!!!9%9B9#jX!!! | ||
641 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!4QaPH#"3FQ9`FQpMCA0cEh)!!!! | ||
642 | !!!!!!!!!!!!!!!#!!!!!9%9B9#j`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
643 | !!!!!69FJ8'&cBf&X)&"33`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#j`BA- | ||
644 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ8'&cBf&X)&"33`!!!!!!!!! | ||
645 | !!!!!!!!!!!!!!!!!!!!!9%9B9#j`BfJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
646 | !!!!!69FJ3bp$+bXJ8&"$!!!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!9%9B9#j`BfJ | ||
647 | V+`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp$+bXJ8&"$!!!!!!!!!!! | ||
648 | !!!!!!!!!!!!!!!#!!!!!9%9B9#j`F(8!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
649 | !!!!!69FJ8'&cBf&X)&"33`!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!9%9B9#jb!!! | ||
650 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8Q9k!!!!!!!!!!!!!!!!!!!!!!! | ||
651 | !!!!!!!!!!!!!!!!!!!!!9%9B9#jc!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
652 | !!!!!8&"$3A0Y!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#jj!!! | ||
653 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3QPcEfiJ8(*PF(*[Bf9cFfpb!!! | ||
654 | !!!!!!!!!!!!!!!#!!!!!@%024J!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
655 | !!!!!@%024NBJ5@e`Eh*d)&"33`!!!!!!!!!!!!!!!!!!!!!!!!!!C'pMG3!!!!! | ||
656 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
657 | !!!!!!!!!!!!!!!"J!!!!FR0bB`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
658 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!!!FfKXBJ!!!!! | ||
659 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8%9')%PYF'pbG#"38%-!!!!!!!! | ||
660 | !!!!!!!!!!!!!!!!!!!!!Fh4eBJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
661 | !!!!!8%9')%PYF'pbG#"38%-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#jNEf- | ||
662 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
663 | !!!!!!!!!!!!!!!"3!!!!!!8"!3!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
664 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
665 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
666 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
667 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
668 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!!!!"!!! | ||
669 | !!!8!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
670 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
671 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
672 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
673 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
674 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
675 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
676 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
677 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
678 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
679 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
680 | !!!!"!3!!E@&TEJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
681 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
682 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
683 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
684 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
685 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)!3!"!!!!!3%"!3%!!3%!!!!!!!%"!!! | ||
686 | "!3!"!!!"!!%!!!!!!!!!!!!)!3!"!3!"!3!!!!%!!!N!!"G0B@028b"8EfpXBQp | ||
687 | i)%4&3P9()$Bi5`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
688 | !!!!r2cmr39"36!!!!B"B`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
689 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$mr2cm!!!!!!!!!!!! | ||
690 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
691 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
692 | !!!!!!!!0!!%!!!!!!""I69G&8NY6Ah"bC@CTH#jS!!!!!!!!!!!!!!!!!!!!!!! | ||
693 | "!!!"!!!!!!!"!!!!!!!!!!!!!!8"!3%!!!%"!!%!!!!!"!!!!!!!!!!!!!!!!!! | ||
694 | !!!!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
695 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
696 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
697 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
698 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
699 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
700 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"IAh0dBA*d!!! | ||
701 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
702 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
703 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!3!!#8ePFQGP)%peG!!!!!!!!!! | ||
704 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$m | ||
705 | r2cp"8&"-!!%"!!!%)#!J)!1ARe!$GYpi!`@Z%!!&!J%!!3%!!3%"!!!"!!!!!!! | ||
706 | !!!%"!3%!!3%!!3!""!!!!!!!!!!!!!!(!3%!!3!!!3!!!!!!!!!!!!!!!!!!!!! | ||
707 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" | ||
708 | IAh0dBA*d!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
709 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
710 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!!!!!!!!!!!!!! | ||
711 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
712 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
713 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
714 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
715 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
716 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8!!!e(CA4)9&438bK38%-T!!!!!!! | ||
717 | !!!!!!!!!!!!!!!!!2cmr2d&38%`!!!3!!!!%!!!!!%!!!&M!!!!!!!!!!!!!!!! | ||
718 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
719 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%r2cmr!!!!!!! | ||
720 | !!!)!!!!#!!)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
721 | #!&!!!3!"!!%!!3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
722 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
723 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
724 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
725 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
726 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8*d024%8R)#G%394"*b!R8%P$9#F | ||
727 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
728 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
729 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
730 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
731 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3!!!3! | ||
732 | !!!%#!3!!!!!!!3!"!`!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!!)!!!!#!J%!!!! | ||
733 | !!!%!!3-!!!!!!!!!!!!!!!!%!!!!!!!!!!!"!!!$!!!!!`)"!!!!!!!"!!%$!!! | ||
734 | !!!!!!!!!!!!!"!!!!!!!!!!!!3!!"!!!!!3#!3!!!!!!!3!"!`!!!!!!!!!!!!! | ||
735 | !!!!!!!!!!!!!!!%!!!8!!!!&!J%!!!!!!!%!!3-!!!!!!!!!!!!!!!!"!!!!!!! | ||
736 | !!!!"!!!'!!!!"J)"!!!!!!!"!!%$!!!!!!!!!!!!!!!!"3!!!!!!!!!!!3!!"`! | ||
737 | !!!F#!3!!!!!!!3!"!`!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!!J!!!!)!J%!!!! | ||
738 | !!!%!!3-!!!!!!!!!!!!!!!!&!!!!!!!!!!!"!!!*!!!!#3)"!!!!!!!"!!%$!!! | ||
739 | !!!!!!!!!!!!!"3!!!!!!!!!!!3!!#J!!!!S#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
740 | !!!%!!!!!!!!!!!%!!!X!!!!,!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
741 | !!!!"!!!-!!!!$!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!$3! | ||
742 | !!!d#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!!i!!!!1!J%!!!! | ||
743 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!!2!!!!$`)"!!!!!!!"!!%"!!! | ||
744 | !!!!!!!!!!!!!!3!!!!!!!!!!!3!!%!!!!"!#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
745 | !!!%!!!!!!!!!!!%!!"%!!!!4!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
746 | !!!!"!!!5!!!!%J)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!%`! | ||
747 | !!"-#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!"3!!!!8!J%!!!! | ||
748 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!!9!!!!&3)"!!!!!!!"!!%"!!! | ||
749 | !!!!!!!!!!!!!!3!!!!!!!!!!!3!!&J!!!"B#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
750 | !!!%!!!!!!!!!!!%!!"F!!!!A!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
751 | !!!!"!!!B!!!!'!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!'3! | ||
752 | !!"N#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!"S!!!!D!J%!!!! | ||
753 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!!E!!!!'`)"!!!!!!!"!!%"!!! | ||
754 | !!!!!!!!!!!!!!3!!!!!!!!!!!3!!(!!!!"`#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
755 | !!!%!!!!!!!!!!!%!!"d!!!!G!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
756 | !!!!"!!!H!!!!(J)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!(`! | ||
757 | !!"m#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!#!!!!!J!J%!!!! | ||
758 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!!K!!!!)3)"!!!!!!!"!!%"!!! | ||
759 | !!!!!!!!!!!!!!3!!!!!!!!!!!3!!)J!!!#)#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
760 | !!!%!!!!!!!!!!!%!!#-!!!!M!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
761 | !!!!"!!!N!!!!*!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!*3! | ||
762 | !!#8#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!#B!!!!Q!J%!!!! | ||
763 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!!R!!!!*`)"!!!!!!!"!!%"!!! | ||
764 | !!!!!!!!!!!!!!3!!!!!!!!!!!3!!+!!!!#J#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
765 | !!!%!!!!!!!!!!!%!!#N!!!!T!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
766 | !!!!"!!!U!!!!+J)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!+`! | ||
767 | !!#X#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!#`!!!!X!J%!!!! | ||
768 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!!Y!!!!,3)"!!!!!!!"!!%"!!! | ||
769 | !!!!!!!!!!!!!!3!!!!!!!!!!!3!!,J!!!#i#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
770 | !!!%!!!!!!!!!!!%!!#m!!!![!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
771 | !!!!"!!!`!!!!-!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!-3! | ||
772 | !!$%#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!$)!!!!b!J%!!!! | ||
773 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!!c!!!!-`)"!!!!!!!"!!%"!!! | ||
774 | !!!!!!!!!!!!!!3!!!!!!!!!!!3!!0!!!!$3#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
775 | !!!%!!!!!!!!!!!%!!$8!!!!e!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
776 | !!!!"!!!f!!!!0J)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!0`! | ||
777 | !!$F#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!$J!!!!i!J%!!!! | ||
778 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!!j!!!!13)"!!!!!!!"!!%"!!! | ||
779 | !!!!!!!!!!!!!!3!!!!!!!!!!!3!!1J!!!$S#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
780 | !!!%!!!!!!!!!!!%!!$X!!!!l!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
781 | !!!!"!!!m!!!!2!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!23! | ||
782 | !!$d#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!$i!!!!q!J%!!!! | ||
783 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!!r!!!!2`)"!!!!!!!"!!%"!!! | ||
784 | !!!!!!!!!!!!!!3!!!!!!!!!!!3!!3!!!!%!#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
785 | !!!%!!!!!!!!!!!%!!%%!!!""!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
786 | !!!!"!!"#!!!!3J)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!3`! | ||
787 | !!%-#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!%3!!!"%!J%!!!! | ||
788 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!"&!!!!43)"!!!!!!!"!!%"!!! | ||
789 | !!!!!!!!!!!!!!3!!!!!!!!!!!3!!4J!!!%B#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
790 | !!!%!!!!!!!!!!!%!!%F!!!"(!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
791 | !!!!"!!")!!!!5!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!53! | ||
792 | !!%N#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!%S!!!"+!J%!!!! | ||
793 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!",!!!!5`)"!!!!!!!"!!%"!!! | ||
794 | !!!!!!!!!!!!!!3!!!!!!!!!!!3!!6!!!!%`#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
795 | !!!%!!!!!!!!!!!%!!%d!!!"0!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
796 | !!!!"!!"1!!!!6J)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!6`! | ||
797 | !!%m#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!&!!!!"3!J%!!!! | ||
798 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!"4!!!!83)"!!!!!!!"!!%"!!! | ||
799 | !!!!!!!!!!!!!!3!!!!!!!!!!!3!!8J!!!&)#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
800 | !!!%!!!!!!!!!!!%!!&-!!!"6!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
801 | !!!!"!!"8!!!!9!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!93! | ||
802 | !!&8#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!&B!!!"@!J%!!!! | ||
803 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!"A!!!!9`)"!!!!!!!"!!%"!!! | ||
804 | !!!!!!!!!!!!!!3!!!!!!!!!!!3!!@!!!!&J#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
805 | !!!%!!!!!!!!!!!%!!&N!!!"C!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
806 | !!!!"!!"D!!!!@J)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!@`! | ||
807 | !!&X#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!&`!!!"F!J%!!!! | ||
808 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!"G!!!!A3)"!!!!!!!"!!%"!!! | ||
809 | !!!!!!!!!!!!!!3!!!!!!!!!!!3!!AJ!!!&i#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
810 | !!!%!!!!!!!!!!!%!!&m!!!"I!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
811 | !!!!"!!"J!!!!B!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!B3! | ||
812 | !!'%#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!')!!!"L!J%!!!! | ||
813 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!"M!!!!B`)"!!!!!!!"!!%"!!! | ||
814 | !!!!!!!!!!!!!!3!!!!!!!!!!!3!!C!!!!'3#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
815 | !!!%!!!!!!!!!!!%!!'8!!!"P!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
816 | !!!!"!!"Q!!!!CJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!C`! | ||
817 | !!'F#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!'J!!!"S!J%!!!! | ||
818 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!"T!!!!D3)"!!!!!!!"!!%"!!! | ||
819 | !!!!!!!!!!!!!!3!!!!!!!!!!!3!!DJ!!!'S#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
820 | !!!%!!!!!!!!!!!%!!'X!!!"V!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
821 | !!!!"!!"X!!!!E!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!E3! | ||
822 | !!'d#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!'i!!!"Z!J%!!!! | ||
823 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!"[!!!!E`)"!!!!!!!"!!%"!!! | ||
824 | !!!!!!!!!!!!!!3!!!!!!!!!!!3!!F!!!!(!#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
825 | !!!%!!!!!!!!!!!%!!(%!!!"a!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
826 | !!!!"!!"b!!!!FJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!F`! | ||
827 | !!(-#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!(3!!!"d!J%!!!! | ||
828 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!"e!!!!G3)"!!!!!!!"!!%"!!! | ||
829 | !!!!!!!!!!!!!!3!!!!!!!!!!!3!!GJ!!!(B#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
830 | !!!%!!!!!!!!!!!%!!(F!!!"h!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
831 | !!!!"!!"i!!!!H!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!H3! | ||
832 | !!(N#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!(S!!!"k!J%!!!! | ||
833 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!"l!!!!H`)"!!!!!!!"!!%"!!! | ||
834 | !!!!!!!!!!!!!!3!!!!!!!!!!!3!!I!!!!(`#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
835 | !!!%!!!!!!!!!!!%!!(d!!!"p!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
836 | !!!!"!!"q!!!!IJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!I`! | ||
837 | !!(m#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!)!!!!#!!J%!!!! | ||
838 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!#"!!!!J3)"!!!!!!!"!!%"!!! | ||
839 | !!!!!!!!!!!!!!3!!!!!!!!!!!3!!JJ!!!))#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
840 | !!!%!!!!!!!!!!!%!!)-!!!#$!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
841 | !!!!"!!#%!!!!K!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!K3! | ||
842 | !!)8#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!)B!!!#'!J%!!!! | ||
843 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!#(!!!!K`)"!!!!!!!"!!%"!!! | ||
844 | !!!!!!!!!!!!!!3!!!!!!!!!!!3!!L!!!!)J#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
845 | !!!%!!!!!!!!!!!%!!)N!!!#*!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
846 | !!!!"!!#+!!!!LJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!L`! | ||
847 | !!)X#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!)`!!!#-!J%!!!! | ||
848 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!#0!!!!M3)"!!!!!!!"!!%"!!! | ||
849 | !!!!!!!!!!!!!!3!!!!!!!!!!!3!!MJ!!!)i#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
850 | !!!%!!!!!!!!!!!%!!)m!!!#2!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
851 | !!!!"!!#3!!!!!*!!!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!# | ||
852 | 4!!!!N3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!NJ!!!*)#!3! | ||
853 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!*-!!!#6!J%!!!!!!!%!!3% | ||
854 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!#8!!!!P!)"!!!!!!!"!!%"!!!!!!!!!!! | ||
855 | !!!!!!3!!!!!!!!!!!3!!P3!!!*8#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
856 | !!!!!!!%!!*B!!!#@!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!# | ||
857 | A!!!!P`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!Q!!!!*J#!3! | ||
858 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!*N!!!#C!J%!!!!!!!%!!3% | ||
859 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!#D!!!!QJ)"!!!!!!!"!!%"!!!!!!!!!!! | ||
860 | !!!!!!3!!!!!!!!!!!3!!Q`!!!*X#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
861 | !!!!!!!%!!*`!!!#F!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!# | ||
862 | G!!!!R3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!RJ!!!*i#!3! | ||
863 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!*m!!!#I!J%!!!!!!!%!!3% | ||
864 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!#J!!!!S!)"!!!!!!!"!!%"!!!!!!!!!!! | ||
865 | !!!!!!3!!!!!!!!!!!3!!S3!!!+%#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
866 | !!!!!!!%!!+)!!!#L!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!# | ||
867 | M!!!!S`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!T!!!!+3#!3! | ||
868 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!+8!!!#P!J%!!!!!!!%!!3% | ||
869 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!#Q!!!!TJ)"!!!!!!!"!!%"!!!!!!!!!!! | ||
870 | !!!!!!3!!!!!!!!!!!3!!T`!!!+F#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
871 | !!!!!!!%!!+J!!!#S!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!# | ||
872 | T!!!!U3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!UJ!!!+S#!3! | ||
873 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!+X!!!#V!J%!!!!!!!%!!3% | ||
874 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!#X!!!!V!)"!!!!!!!"!!%"!!!!!!!!!!! | ||
875 | !!!!!!3!!!!!!!!!!!3!!V3!!!+d#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
876 | !!!!!!!%!!+i!!!#Z!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!# | ||
877 | [!!!!V`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!X!!!!,!#!3! | ||
878 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!,%!!!#a!J%!!!!!!!%!!3% | ||
879 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!#b!!!!XJ)"!!!!!!!"!!%"!!!!!!!!!!! | ||
880 | !!!!!!3!!!!!!!!!!!3!!X`!!!,-#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
881 | !!!!!!!%!!,3!!!#d!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!# | ||
882 | e!!!!Y3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!YJ!!!,B#!3! | ||
883 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!,F!!!#h!J%!!!!!!!%!!3% | ||
884 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!#i!!!!Z!)"!!!!!!!"!!%"!!!!!!!!!!! | ||
885 | !!!!!!3!!!!!!!!!!!3!!Z3!!!,N#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
886 | !!!!!!!%!!,S!!!#k!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!# | ||
887 | l!!!!Z`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!![!!!!,`#!3! | ||
888 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!,d!!!#p!J%!!!!!!!%!!3% | ||
889 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!#q!!!![J)"!!!!!!!"!!%"!!!!!!!!!!! | ||
890 | !!!!!!3!!!!!!!!!!!3!![`!!!,m#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
891 | !!!!!!!%!!-!!!!$!!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!$ | ||
892 | "!!!!`3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!`J!!!-)#!3! | ||
893 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!--!!!$$!J%!!!!!!!%!!3% | ||
894 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!$%!!!!a!)"!!!!!!!"!!%"!!!!!!!!!!! | ||
895 | !!!!!!3!!!!!!!!!!!3!!a3!!!-8#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
896 | !!!!!!!%!!-B!!!$'!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!$ | ||
897 | (!!!!a`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!b!!!!-J#!3! | ||
898 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!-N!!!$*!J%!!!!!!!%!!3% | ||
899 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!$+!!!!bJ)"!!!!!!!"!!%"!!!!!!!!!!! | ||
900 | !!!!!!3!!!!!!!!!!!3!!b`!!!-X#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
901 | !!!!!!!%!!-`!!!$-!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!$ | ||
902 | 0!!!!c3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!cJ!!!-i#!3! | ||
903 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!-m!!!$2!J%!!!!!!!%!!3% | ||
904 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!$3!!!!d!)"!!!!!!!"!!%"!!!!!!!!!!! | ||
905 | !!!!!!3!!!!!!!!!!!3!!d3!!!0%#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
906 | !!!!!!!%!!0)!!!$5!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!$ | ||
907 | 6!!!!d`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!e!!!!03#!3! | ||
908 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!08!!!$9!J%!!!!!!!%!!3% | ||
909 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!$@!!!!eJ)"!!!!!!!"!!%"!!!!!!!!!!! | ||
910 | !!!!!!3!!!!!!!!!!!3!!e`!!!0F#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
911 | !!!!!!!%!!0J!!!$B!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!$ | ||
912 | C!!!!f3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!fJ!!!0S#!3! | ||
913 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!0X!!!$E!J%!!!!!!!%!!3% | ||
914 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!$F!!!!h!)"!!!!!!!"!!%"!!!!!!!!!!! | ||
915 | !!!!!!3!!!!!!!!!!!3!!h3!!!0d#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
916 | !!!!!!!%!!0i!!!$H!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!$ | ||
917 | I!!!!h`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!i!!!!1!#!3! | ||
918 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!1%!!!$K!J%!!!!!!!%!!3% | ||
919 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!$L!!!!iJ)"!!!!!!!"!!%"!!!!!!!!!!! | ||
920 | !!!!!!3!!!!!!!!!!!3!!i`!!!1-#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
921 | !!!!!!!%!!13!!!$N!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!$ | ||
922 | P!!!!j3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!jJ!!!1B#!3! | ||
923 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!1F!!!$R!J%!!!!!!!%!!3% | ||
924 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!$S!!!!k!)"!!!!!!!"!!%"!!!!!!!!!!! | ||
925 | !!!!!!3!!!!!!!!!!!3!!k3!!!1N#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
926 | !!!!!!!%!!1S!!!$U!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!$ | ||
927 | V!!!!k`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!l!!!!1`#!3! | ||
928 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!1d!!!$Y!J%!!!!!!!%!!3% | ||
929 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!$Z!!!!lJ)"!!!!!!!"!!%"!!!!!!!!!!! | ||
930 | !!!!!!3!!!!!!!!!!!3!!l`!!!1m#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
931 | !!!!!!!%!!2!!!!$`!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!$ | ||
932 | a!!!!m3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!mJ!!!2)#!3! | ||
933 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!2-!!!$c!J%!!!!!!!%!!3% | ||
934 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!$d!!!!p!)"!!!!!!!"!!%"!!!!!!!!!!! | ||
935 | !!!!!!3!!!!!!!!!!!3!!p3!!!28#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
936 | !!!!!!!%!!2B!!!$f!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!$ | ||
937 | h!!!!p`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!q!!!!2J#!3! | ||
938 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!2N!!!$j!J%!!!!!!!%!!3% | ||
939 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!$k!!!!qJ)"!!!!!!!"!!%"!!!!!!!!!!! | ||
940 | !!!!!!3!!!!!!!!!!!3!!q`!!!2X#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
941 | !!!!!!!%!!2`!!!$m!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!$ | ||
942 | p!!!!r3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!!rJ!!!2i#!3! | ||
943 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!2m!!!$r!J%!!!!!!!%!!3% | ||
944 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!%!!!!"!!)"!!!!!!!"!!%"!!!!!!!!!!! | ||
945 | !!!!!!3!!!!!!!!!!!3!"!3!!!3%#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
946 | !!!!!!!%!!3)!!!%#!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!% | ||
947 | $!!!"!`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!""!!!!33#!3! | ||
948 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!38!!!%&!J%!!!!!!!%!!3% | ||
949 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!%'!!!""J)"!!!!!!!"!!%"!!!!!!!!!!! | ||
950 | !!!!!!3!!!!!!!!!!!3!""`!!!3F#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
951 | !!!!!!!%!!3J!!!%)!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!% | ||
952 | *!!!"#3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!"#J!!!3S#!3! | ||
953 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!3X!!!%,!J%!!!!!!!%!!3% | ||
954 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!%-!!!"$!)"!!!!!!!"!!%"!!!!!!!!!!! | ||
955 | !!!!!!3!!!!!!!!!!!3!"$3!!!3d#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
956 | !!!!!!!%!!3i!!!%1!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!% | ||
957 | 2!!!"$`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!"%!!!!4!#!3! | ||
958 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!4%!!!%4!J%!!!!!!!%!!3% | ||
959 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!%5!!!"%J)"!!!!!!!"!!%"!!!!!!!!!!! | ||
960 | !!!!!!3!!!!!!!!!!!3!"%`!!!4-#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
961 | !!!!!!!%!!43!!!%8!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!% | ||
962 | 9!!!"&3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!"&J!!!4B#!3! | ||
963 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!4F!!!%A!J%!!!!!!!%!!3% | ||
964 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!%B!!!"'!)"!!!!!!!"!!%"!!!!!!!!!!! | ||
965 | !!!!!!3!!!!!!!!!!!3!"'3!!!4N#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
966 | !!!!!!!%!!4S!!!%D!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!% | ||
967 | E!!!"'`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!"(!!!!4`#!3! | ||
968 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!4d!!!%G!J%!!!!!!!%!!3% | ||
969 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!%H!!!"(J)"!!!!!!!"!!%"!!!!!!!!!!! | ||
970 | !!!!!!3!!!!!!!!!!!3!"(`!!!4m#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
971 | !!!!!!!%!!5!!!!%J!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!% | ||
972 | K!!!")3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!")J!!!5)#!3! | ||
973 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!5-!!!%M!J%!!!!!!!%!!3% | ||
974 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!%N!!!"*!)"!!!!!!!"!!%"!!!!!!!!!!! | ||
975 | !!!!!!3!!!!!!!!!!!3!"*3!!!58#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
976 | !!!!!!!%!!5B!!!%Q!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!% | ||
977 | R!!!"*`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!"+!!!!5J#!3! | ||
978 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!5N!!!%T!J%!!!!!!!%!!3% | ||
979 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!%U!!!"+J)"!!!!!!!"!!%"!!!!!!!!!!! | ||
980 | !!!!!!3!!!!!!!!!!!3!"+`!!!5X#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
981 | !!!!!!!%!!5`!!!%X!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!% | ||
982 | Y!!!",3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!",J!!!5i#!3! | ||
983 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!5m!!!%[!J%!!!!!!!%!!3% | ||
984 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!%`!!!"-!)"!!!!!!!"!!%"!!!!!!!!!!! | ||
985 | !!!!!!3!!!!!!!!!!!3!"-3!!!6%#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
986 | !!!!!!!%!!6)!!!%b!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!% | ||
987 | c!!!"-`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!"0!!!!63#!3! | ||
988 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!68!!!%e!J%!!!!!!!%!!3% | ||
989 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!%f!!!"0J)"!!!!!!!"!!%"!!!!!!!!!!! | ||
990 | !!!!!!3!!!!!!!!!!!3!"0`!!!6F#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
991 | !!!!!!!%!!6J!!!%i!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!% | ||
992 | j!!!"13)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!"1J!!!6S#!3! | ||
993 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!6X!!!%l!J%!!!!!!!%!!3% | ||
994 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!%m!!!"2!)"!!!!!!!"!!%"!!!!!!!!!!! | ||
995 | !!!!!!3!!!!!!!!!!!3!"23!!!6d#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
996 | !!!!!!!%!!6i!!!%q!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!% | ||
997 | r!!!"2`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!"3!!!!8!#!3! | ||
998 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!8%!!!&"!J%!!!!!!!%!!3% | ||
999 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!&#!!!"3J)"!!!!!!!"!!%"!!!!!!!!!!! | ||
1000 | !!!!!!3!!!!!!!!!!!3!"3`!!!8-#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
1001 | !!!!!!!%!!83!!!&%!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!& | ||
1002 | &!!!"43)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!"4J!!!8B#!3! | ||
1003 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!8F!!!&(!J%!!!!!!!%!!3% | ||
1004 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!&)!!!"5!)"!!!!!!!"!!%"!!!!!!!!!!! | ||
1005 | !!!!!!3!!!!!!!!!!!3!"53!!!8N#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
1006 | !!!!!!!%!!8S!!!&+!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!& | ||
1007 | ,!!!"5`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!"6!!!!8`#!3! | ||
1008 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!8d!!!&0!J%!!!!!!!%!!3% | ||
1009 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!&1!!!"6J)"!!!!!!!"!!%"!!!!!!!!!!! | ||
1010 | !!!!!!3!!!!!!!!!!!3!"6`!!!8m#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
1011 | !!!!!!!%!!9!!!!&3!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!& | ||
1012 | 4!!!"83)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!"8J!!!9)#!3! | ||
1013 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!9-!!!&6!J%!!!!!!!%!!3% | ||
1014 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!&8!!!"9!)"!!!!!!!"!!%"!!!!!!!!!!! | ||
1015 | !!!!!!3!!!!!!!!!!!3!"93!!!98#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
1016 | !!!!!!!%!!9B!!!&@!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!& | ||
1017 | A!!!"9`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!"@!!!!9J#!3! | ||
1018 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!9N!!!&C!J%!!!!!!!%!!3% | ||
1019 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!&D!!!"@J)"!!!!!!!"!!%"!!!!!!!!!!! | ||
1020 | !!!!!!3!!!!!!!!!!!3!"@`!!!9X#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
1021 | !!!!!!!%!!9`!!!&F!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!& | ||
1022 | G!!!"A3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!"AJ!!!9i#!3! | ||
1023 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!9m!!!&I!J%!!!!!!!%!!3% | ||
1024 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!&J!!!"B!)"!!!!!!!"!!%"!!!!!!!!!!! | ||
1025 | !!!!!!3!!!!!!!!!!!3!"B3!!!@%#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
1026 | !!!!!!!%!!@)!!!&L!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!& | ||
1027 | M!!!"B`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!"C!!!!@3#!3! | ||
1028 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!@8!!!&P!J%!!!!!!!%!!3% | ||
1029 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!&Q!!!"CJ)"!!!!!!!"!!%"!!!!!!!!!!! | ||
1030 | !!!!!!3!!!!!!!!!!!3!"C`!!!@F#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
1031 | !!!!!!!%!!@J!!!&S!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!& | ||
1032 | T!!!"D3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!"DJ!!!@S#!3! | ||
1033 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!@X!!!&V!J%!!!!!!!%!!3% | ||
1034 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!&X!!!"E!)"!!!!!!!"!!%"!!!!!!!!!!! | ||
1035 | !!!!!!3!!!!!!!!!!!3!"E3!!!@d#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
1036 | !!!!!!!%!!@i!!!&Z!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!& | ||
1037 | [!!!"E`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!"F!!!!A!#!3! | ||
1038 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!A%!!!&a!J%!!!!!!!%!!3% | ||
1039 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!&b!!!"FJ)"!!!!!!!"!!%"!!!!!!!!!!! | ||
1040 | !!!!!!3!!!!!!!!!!!3!"F`!!!A-#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
1041 | !!!!!!!%!!A3!!!&d!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!& | ||
1042 | e!!!"G3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!"GJ!!!AB#!3! | ||
1043 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!AF!!!&h!J%!!!!!!!%!!3% | ||
1044 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!&i!!!"H!)"!!!!!!!"!!%"!!!!!!!!!!! | ||
1045 | !!!!!!3!!!!!!!!!!!3!"H3!!!AN#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
1046 | !!!!!!!%!!AS!!!&k!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!& | ||
1047 | l!!!"H`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!"I!!!!A`#!3! | ||
1048 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!Ad!!!&p!J%!!!!!!!%!!3% | ||
1049 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!&q!!!"IJ)"!!!!!!!"!!%"!!!!!!!!!!! | ||
1050 | !!!!!!3!!!!!!!!!!!3!"I`!!!Am#!3!!!!!!!3!"!`!!!!!!!!!!!!!!!!%!!!! | ||
1051 | !!!!!!!%!!B!!!!'!!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!' | ||
1052 | "!!!"J3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!"JJ!!!B)#!3! | ||
1053 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!B-!!!'$!J%!!!!!!!%!!3% | ||
1054 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!'%!!!"K!)"!!!!!!!"!!%"!!!!!!!!!!! | ||
1055 | !!!!!!3!!!!!!!!!!!3!"K3!!!B8#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
1056 | !!!!!!!%!!BB!!!''!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!' | ||
1057 | (!!!"K`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!"L!!!!BJ#!3! | ||
1058 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!BN!!!'*!J%!!!!!!!%!!3% | ||
1059 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!'+!!!"LJ)"!!!!!!!"!!%"!!!!!!!!!!! | ||
1060 | !!!!!!3!!!!!!!!!!!3!"L`!!!BX#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
1061 | !!!!!!!%!!B`!!!'-!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!' | ||
1062 | 0!!!"M3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!"MJ!!!Bi#!3! | ||
1063 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!Bm!!!'2!J%!!!!!!!%!!3% | ||
1064 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!'3!!!!!C!!!J%!!!!!!!%!!3%!!!!!!!! | ||
1065 | !!!!!!!!"!!!!!!!!!!!"!!'4!!!"N3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3! | ||
1066 | !!!!!!!!!!3!"NJ!!!C)#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!% | ||
1067 | !!C-!!!'6!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!'8!!!"P!) | ||
1068 | "!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!"P3!!!C8#!3!!!!!!!3! | ||
1069 | "!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!CB!!!'@!J%!!!!!!!%!!3%!!!!!!!! | ||
1070 | !!!!!!!!"!!!!!!!!!!!"!!'A!!!"P`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3! | ||
1071 | !!!!!!!!!!3!"Q!!!!CJ#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!% | ||
1072 | !!CN!!!'C!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!'D!!!"QJ) | ||
1073 | "!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!"Q`!!!CX#!3!!!!!!!3! | ||
1074 | "!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!C`!!!'F!J%!!!!!!!%!!3%!!!!!!!! | ||
1075 | !!!!!!!!"!!!!!!!!!!!"!!'G!!!"R3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3! | ||
1076 | !!!!!!!!!!3!"RJ!!!Ci#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!% | ||
1077 | !!Cm!!!'I!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!'J!!!"S!) | ||
1078 | "!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!"S3!!!D%#!3!!!!!!!3! | ||
1079 | "!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!D)!!!'L!J%!!!!!!!%!!3%!!!!!!!! | ||
1080 | !!!!!!!!"!!!!!!!!!!!"!!'M!!!"S`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3! | ||
1081 | !!!!!!!!!!3!"T!!!!D3#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!% | ||
1082 | !!D8!!!'P!J%!!!!!!!%!!3-!!!!!!!!!!!!!!!!"!!!!!!!!!!!"!!'Q!!!"TJ) | ||
1083 | "!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!3!"T`!!!DF#!3!!!!!!!3! | ||
1084 | "!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!%!!DJ!!!'S!J%!!!!!!!%!!3%!!!!!!!! | ||
1085 | !!!!!!!!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1086 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1087 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1088 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1089 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1090 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1091 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1092 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1093 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1094 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1095 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1096 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1097 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1098 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1099 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1100 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1101 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1102 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1103 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1104 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1105 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3!!!!)!!!!$!!!!"!!!!!8!!!!'!!!!"`! | ||
1106 | !!!J!!!!*!!!!#J!!!!X!!!!-!!!!$3!!!!i!!!!2!!!!%!!!!"%!!!!5!!!!%`! | ||
1107 | !!"3!!!!9!!!!&J!!!"F!!!!B!!!!'3!!!"S!!!!E!!!!(!!!!"d!!!!H!!!!(`! | ||
1108 | !!#!!!!!K!!!!)J!!!#-!!!!N!!!!*3!!!#B!!!!R!!!!+!!!!#N!!!!U!!!!+`! | ||
1109 | !!#`!!!!Y!!!!,J!!!#m!!!!`!!!!-3!!!$)!!!!c!!!!0!!!!$8!!!!f!!!!0`! | ||
1110 | !!$J!!!!j!!!!1J!!!$X!!!!m!!!!23!!!$i!!!!r!!!!3!!!!%%!!!"#!!!!3`! | ||
1111 | !!%3!!!"&!!!!4J!!!%F!!!")!!!!53!!!%S!!!",!!!!6!!!!%d!!!"1!!!!6`! | ||
1112 | !!&!!!!"4!!!!8J!!!&-!!!"8!!!!93!!!&B!!!"A!!!!@!!!!&N!!!"D!!!!@`! | ||
1113 | !!&`!!!"G!!!!AJ!!!&m!!!"J!!!!B3!!!')!!!"M!!!!C!!!!'8!!!"Q!!!!C`! | ||
1114 | !!'J!!!"T!!!!DJ!!!'X!!!"X!!!!E3!!!'i!!!"[!!!!F!!!!(%!!!"b!!!!F`! | ||
1115 | !!(3!!!"e!!!!GJ!!!(F!!!"i!!!!H3!!!(S!!!"l!!!!I!!!!(d!!!"q!!!!I`! | ||
1116 | !!)!!!!#"!!!!JJ!!!)-!!!#%!!!!K3!!!)B!!!#(!!!!L!!!!)N!!!#+!!!!L`! | ||
1117 | !!)`!!!#0!!!!MJ!!!)m!!!#3!!!!!*%!!!#5!!!!N`!!!*3!!!#9!!!!PJ!!!*F | ||
1118 | !!!#B!!!!Q3!!!*S!!!#E!!!!R!!!!*d!!!#H!!!!R`!!!+!!!!#K!!!!SJ!!!+- | ||
1119 | !!!#N!!!!T3!!!+B!!!#R!!!!U!!!!+N!!!#U!!!!U`!!!+`!!!#Y!!!!VJ!!!+m | ||
1120 | !!!#`!!!!X3!!!,)!!!#c!!!!Y!!!!,8!!!#f!!!!Y`!!!,J!!!#j!!!!ZJ!!!,X | ||
1121 | !!!#m!!!![3!!!,i!!!#r!!!!`!!!!-%!!!$#!!!!``!!!-3!!!$&!!!!aJ!!!-F | ||
1122 | !!!$)!!!!b3!!!-S!!!$,!!!!c!!!!-d!!!$1!!!!c`!!!0!!!!$4!!!!dJ!!!0- | ||
1123 | !!!$8!!!!e3!!!0B!!!$A!!!!f!!!!0N!!!$D!!!!f`!!!0`!!!$G!!!!hJ!!!0m | ||
1124 | !!!$J!!!!i3!!!1)!!!$M!!!!j!!!!18!!!$Q!!!!j`!!!1J!!!$T!!!!kJ!!!1X | ||
1125 | !!!$X!!!!l3!!!1i!!!$[!!!!m!!!!2%!!!$b!!!!m`!!!23!!!$e!!!!pJ!!!2F | ||
1126 | !!!$i!!!!q3!!!2S!!!$l!!!!r!!!!2d!!!$q!!!!r`!!!3!!!!%"!!!"!J!!!3- | ||
1127 | !!!%%!!!""3!!!3B!!!%(!!!"#!!!!3N!!!%+!!!"#`!!!3`!!!%0!!!"$J!!!3m | ||
1128 | !!!%3!!!"%3!!!4)!!!%6!!!"&!!!!48!!!%@!!!"&`!!!4J!!!%C!!!"'J!!!4X | ||
1129 | !!!%F!!!"(3!!!4i!!!%I!!!")!!!!5%!!!%L!!!")`!!!53!!!%P!!!"*J!!!5F | ||
1130 | !!!%S!!!"+3!!!5S!!!%V!!!",!!!!5d!!!%Z!!!",`!!!6!!!!%a!!!"-J!!!6- | ||
1131 | !!!%d!!!"03!!!6B!!!%h!!!"1!!!!6N!!!%k!!!"1`!!!6`!!!%p!!!"2J!!!6m | ||
1132 | !!!&!!!!"33!!!8)!!!&$!!!"4!!!!88!!!&'!!!"4`!!!8J!!!&*!!!"5J!!!8X | ||
1133 | !!!&-!!!"63!!!8i!!!&2!!!"8!!!!9%!!!&5!!!"8`!!!93!!!&9!!!"9J!!!9F | ||
1134 | !!!&B!!!"@3!!!9S!!!&E!!!"A!!!!9d!!!&H!!!"A`!!!@!!!!&K!!!"BJ!!!@- | ||
1135 | !!!&N!!!"C3!!!@B!!!&R!!!"D!!!!@N!!!&U!!!"D`!!!@`!!!&Y!!!"EJ!!!@m | ||
1136 | !!!&`!!!"F3!!!A)!!!&c!!!"G!!!!A8!!!&f!!!"G`!!!AJ!!!&j!!!"HJ!!!AX | ||
1137 | !!!&m!!!"I3!!!Ai!!!&r!!!"J!!!!B%!!!'#!!!"J`!!!B3!!!'&!!!"KJ!!!BF | ||
1138 | !!!')!!!"L3!!!BS!!!',!!!"M!!!!Bd!!!'1!!!"M`!!!C!!!!!"N3!!!C)!!!' | ||
1139 | 6!!!"P!!!!C8!!!'@!!!"P`!!!CJ!!!'C!!!"QJ!!!CX!!!'F!!!"R3!!!Ci!!!' | ||
1140 | I!!!"S!!!!D%!!!'L!!!"S`!!!D3!!!'P!!!"TJ!!!DF!!!!!!!!!!!!!!!!!!!! | ||
1141 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1142 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'S!!!"`!%!!!!"!!' | ||
1143 | S!3!"SJ%!!D-"!!'S!3!"S3%!!D!"!!!,!3!!$!%!!!S"!!!0!3!!$J%!!!m"!!! | ||
1144 | 3!3!!%3%!!")"!!!6!3!!&!%!!"8"!!!@!3!!&`%!!"J"!!!C!3!!'J%!!"X"!!! | ||
1145 | F!3!!(3%!!"i"!!!I!3!!)!%!!#%"!!!L!3!!)`%!!#3"!!!P!3!!*J%!!#F"!!! | ||
1146 | S!3!!+3%!!#S"!!!V!3!!,!%!!#d"!!!Z!3!!,`%!!$!"!!!a!3!!-J%!!$-"!!! | ||
1147 | d!3!!03%!!$B"!!!h!3!!1!%!!$N"!!!k!3!!1`%!!$`"!!!p!3!!2J%!!$m"!!" | ||
1148 | !!3!!33%!!%)"!!"$!3!!4!%!!%8"!!"'!3!!4`%!!%J"!!"*!3!!5J%!!%X"!!" | ||
1149 | -!3!!63%!!%i"!!"2!3!!8!%!!&%"!!"5!3!!8`%!!&3"!!"9!3!!9J%!!&F"!!" | ||
1150 | B!3!!@3%!!&S"!!"E!3!!A!%!!&d"!!"H!3!!A`%!!'!"!!"K!3!!BJ%!!'-"!!" | ||
1151 | N!3!!C3%!!'B"!!"R!3!!D!%!!'N"!!"U!3!!D`%!!'`"!!"Y!3!!EJ%!!'m"!!" | ||
1152 | `!3!!F3%!!()"!!"c!3!!G!%!!(8"!!"f!3!!G`%!!(J"!!"j!3!!HJ%!!(X"!!" | ||
1153 | m!3!!I3%!!(i"!!"r!3!!J!%!!)%"!!##!3!!J`%!!)3"!!#&!3!!KJ%!!)F"!!# | ||
1154 | )!3!!L3%!!)S"!!#,!3!!M!%!!)d"!!#1!3!!M`%!!*!!!3!"TJ%!!*%"!!#5!3! | ||
1155 | !N`%!!*3"!!#9!3!!PJ%!!*F"!!#B!3!!Q3%!!*S"!!#E!3!!R!%!!*d"!!#H!3! | ||
1156 | !R`%!!+!"!!#K!3!!SJ%!!+-"!!#N!3!!T3%!!+B"!!#R!3!!U!%!!+N"!!#U!3! | ||
1157 | !U`%!!+`"!!#Y!3!!VJ%!!+m"!!#`!3!!X3%!!,)"!!#c!3!!Y!%!!,8"!!#f!3! | ||
1158 | !Y`%!!,J"!!#j!3!!ZJ%!!,X"!!#m!3!![3%!!,i"!!#r!3!!`!%!!-%"!!$#!3! | ||
1159 | !``%!!-3"!!$&!3!!aJ%!!-F"!!$)!3!!b3%!!-S"!!$,!3!!c!%!!-d"!!$1!3! | ||
1160 | !c`%!!0!"!!$4!3!!dJ%!!0-"!!$8!3!!e3%!!0B"!!$A!3!!f!%!!0N"!!$D!3! | ||
1161 | !f`%!!0`"!!$G!3!!hJ%!!0m"!!$J!3!!i3%!!1)"!!$M!3!!j!%!!18"!!$Q!3! | ||
1162 | !j`%!!1J"!!$T!3!!kJ%!!1X"!!$X!3!!l3%!!1i"!!$[!3!!m!%!!2%"!!$b!3! | ||
1163 | !m`%!!23"!!$e!3!!pJ%!!2F"!!$i!3!!q3%!!2S"!!$l!3!!r!%!!2d"!!$q!3! | ||
1164 | !r`%!!3!"!!%"!3!"!J%!!3-"!!%%!3!""3%!!3B"!!%(!3!"#!%!!3N"!!%+!3! | ||
1165 | "#`%!!3`"!!%0!3!"$J%!!3m"!!%3!3!"%3%!!4)"!!%6!3!"&!%!!48"!!%@!3! | ||
1166 | "&`%!!4J"!!%C!3!"'J%!!4X"!!%F!3!"(3%!!4i"!!%I!3!")!%!!5%"!!%L!3! | ||
1167 | ")`%!!53"!!%P!3!"*J%!!5F"!!%S!3!"+3%!!5S"!!%V!3!",!%!!5d"!!%Z!3! | ||
1168 | ",`%!!6!"!!%a!3!"-J%!!6-"!!%d!3!"03%!!6B"!!'R!3!"0`%!!6J"!!%j!3! | ||
1169 | "1J%!!6X"!!%m!3!"23%!!6i"!!%r!3!"3!%!!8%"!!&#!3!"3`%!!83"!!&&!3! | ||
1170 | "4J%!!8F"!!&)!3!"53%!!8S"!!&,!3!"6!%!!8d"!!&1!3!"6`%!!9!"!!&4!3! | ||
1171 | "8J%!!9-"!!&8!3!"93%!!9B"!!&A!3!"@!%!!9N"!!&D!3!"@`%!!9`"!!&G!3! | ||
1172 | "AJ%!!9m"!!&J!3!"B3%!!@)"!!&M!3!"C!%!!@8"!!&Q!3!"C`%!!@J"!!&T!3! | ||
1173 | "DJ%!!@X"!!&X!3!"E3%!!@i"!!&[!3!"F!%!!A%"!!&b!3!"F`%!!A3"!!&e!3! | ||
1174 | "GJ%!!AF"!!&i!3!"H3%!!AS"!!&l!3!"I!%!!Ad"!!&q!3!"J!%!!B%"!!'#!3! | ||
1175 | "J`%!!B3"!!'&!3!"KJ%!!BF"!!')!3!"L3%!!BS"!!',!3!"M!%!!Bd"!!'1!3! | ||
1176 | "M`%!!C!!!3!"N3%!!C)"!!'6!3!"P!%!!C8"!!'@!3!"P`%!!CJ"!!'C!3!"QJ% | ||
1177 | !!CX"!!'F!3!"R3%!!Ci"!!'I!3!"T!%!!Am"!!!"!3!!"!%!!!-"!!!#!3!!#3% | ||
1178 | !!!8"!!!'!3!!"`%!!!J"!!'P!!!"U3!"!#J!!!!JrrrjT!!""!!!!!!!!!!!!!! | ||
1179 | !!!!!!J!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1180 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1181 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1182 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1183 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1184 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1185 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1186 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1187 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1188 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1189 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3!"1NKjF'9 | ||
1190 | b3f&bC!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1191 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1192 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1193 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1194 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1195 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1196 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1197 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1198 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1199 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1200 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!,#2Z!!!!!!!!!"!!, | ||
1201 | #4r!!!J!!!!!!!!!!!!!#`MD!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1202 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1203 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1204 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1205 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1206 | !!!!!!J!!!3!!!!!&!!"rr`!!!!"rr`!!!!"rr`!!!!"rr`!!!!`!!3!#!!B!!!! | ||
1207 | &3!!!#!!"!!%k!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1208 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1209 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1210 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1211 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1212 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1213 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1214 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1215 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1216 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1217 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1218 | !!3!!!2rrrrm!!!!$!!%!!6Sk!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1219 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1220 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1221 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1222 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1223 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1224 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1225 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1226 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1227 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1228 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1229 | !!!!!!!!!!!!"!!!!rrrrr`!!!!3!!3!"1MTTEQ0XG@4P1J!!!!!!!!!!!!!!!!! | ||
1230 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1231 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1232 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1233 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1234 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1235 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1236 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1237 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1238 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1239 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1240 | !!!!!!!!!!!!!!!!!!!!!!!!!!!$rrrrr3!!!!J!"!!%k!!!!!!!!!!!!!!!!!!! | ||
1241 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1242 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1243 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1244 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1245 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1246 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1247 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1248 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1249 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1250 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1251 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!2rrrrp!!!!$!!%!!6Sk1NG98dN | ||
1252 | kD@jME(9NC6S!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1253 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1254 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1255 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1256 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1257 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1258 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1259 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1260 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1261 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1262 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!rrrrrd!!!!3!!3! | ||
1263 | "1MSk4e9656TXD@)k!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1264 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1265 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1266 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1267 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1268 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1269 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1270 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1271 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1272 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1273 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$rrrr | ||
1274 | r3!!!"3!#!!%k6@&M6e-J8h9`F'pbG$S!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1275 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1276 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1277 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1278 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1279 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1280 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1281 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1282 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1283 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1284 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1285 | !!3!!!2rrrrp!!!!'!!)!!6T08d`k!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1286 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1287 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1288 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1289 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1290 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1291 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1292 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1293 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1294 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1295 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1296 | !!!!!!!!!!!!"!!!!rrrrrd!!!!F!#J!!6@&M6e-J8&"$)%aTEQYPFJ!!!!!!!!! | ||
1297 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1298 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1299 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1300 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1301 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1302 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1303 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1304 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1305 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1306 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1307 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1308 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1309 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1310 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1311 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1312 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!6h"PEP066#"38%-!!!!!!!!!!!!!!!! | ||
1313 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1314 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1315 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1316 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1317 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!%k!!! | ||
1318 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1319 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1320 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1321 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1322 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1323 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1324 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1325 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1326 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1327 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1328 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#!!&0B@0 | ||
1329 | 28b"38%-J6'PZDf9b!!!!!!!!!!!!!!!!!!!!!!!H39"36!!!!!!!!!!!!!!!!!! | ||
1330 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1331 | !!!"J!!!!3A"`E!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1332 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!!!68e-3J!!!!!!!!!!!!!!!!! | ||
1333 | !!!!!!!!!!!!!!!!!!!!!!!!!6'PL)%PYF'pbG#"38%-!!!!!!!!!!!!!!!!!!!! | ||
1334 | !!!!!!!!!69"-4J!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!6'PL)%P | ||
1335 | YF'pbG#"38%-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69G$4!!!!!!!!!!!!!!!!!! | ||
1336 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1337 | !!!"J!!!!8P053`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1338 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!!!9%9B9#jLD!!!!!!!!!!!!!! | ||
1339 | !!!!!!!!!!!!!!!!!!!!!!!!!3Q&XE'p[EL")C@a`!!!!!!!!!!!!!!!!!!!!!!! | ||
1340 | !!!!!!!!!9%9B9#jM!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp | ||
1341 | $+bXJ8&"$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#jM+bX!!!!!!!!!!!! | ||
1342 | !!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp$+bXJ8&"$!!!!!!!!!!!!!!!!!!!!!!! | ||
1343 | !!!!!!!!!9%9B9#jMB`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp | ||
1344 | $+bXJ8&"$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#jMF!!!!!!!!!!!!!! | ||
1345 | !!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp$+bXJ8&"$!!!!!!!!!!!!!!!!!!!!!!! | ||
1346 | !!!!!!!!!9%9B9#jMF(!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp | ||
1347 | $+bXJ8&"$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#jPH(!!!!!!!!!!!!! | ||
1348 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1349 | !!!!!!!!!9%9B9#jRB`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!4f&YC80 | ||
1350 | [C'8J3fpZGQ9bG'9b!!!!!!!!!!!!!!!!!!"!!!!!9%9B9#jS!!!!!!!!!!!!!!! | ||
1351 | !!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp$+bXJ8&"$!!!!!!!!!!!!!!!!!!!!!!! | ||
1352 | !!!!3!!!!9%9B9#jX!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!4QaPH#" | ||
1353 | 3FQ9`FQpMCA0cEh)!!!!!!!!!!!!!!!!!!!#!!!!!9%9B9#j`!!!!!!!!!!!!!!! | ||
1354 | !!!!!!!!!!!!!!!!!!!!!!!!!69FJ8'&cBf&X)&"33`!!!!!!!!!!!!!!!!!!!!! | ||
1355 | !!!!!!!!!9%9B9#j`BA-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ8'& | ||
1356 | cBf&X)&"33`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#j`BfJ!!!!!!!!!!!! | ||
1357 | !!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp$+bXJ8&"$!!!!!!!!!!!!!!!!!!!!!!! | ||
1358 | !!!#!!!!!9%9B9#j`BfJV+`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp | ||
1359 | $+bXJ8&"$!!!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!9%9B9#j`F(8!!!!!!!!!!!! | ||
1360 | !!!!!!!!!!!!!!!!!!!!!!!!!69FJ8'&cBf&X)&"33`!!!!!!!!!!!!!!!!!!!!! | ||
1361 | !!!#!!!!!9%9B9#jb!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8Q9k!!! | ||
1362 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#jc!!!!!!!!!!!!!!! | ||
1363 | !!!!!!!!!!!!!!!!!!!!!!!!!8&"$3A0Y!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1364 | !!!!!!!!!9%9B9#jj!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3QPcEfi | ||
1365 | J8(*PF(*[Bf9cFfpb!!!!!!!!!!!!!!!!!!#!!!!!@%024J!!!!!!!!!!!!!!!!! | ||
1366 | !!!!!!!!!!!!!!!!!!!!!!!!!@%024NBJ5@e`Eh*d)&"33`!!!!!!!!!!!!!!!!! | ||
1367 | !!!!!!!!!C'pMG3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1368 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!!!FR0bB`!!!!!!!!!!!!!!!!! | ||
1369 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1370 | !!!"J!!!!FfKXBJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8%9')%P | ||
1371 | YF'pbG#"38%-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Fh4eBJ!!!!!!!!!!!!!!!!! | ||
1372 | !!!!!!!!!!!!!!!!!!!!!!!!!8%9')%PYF'pbG#"38%-!!!!!!!!!!!!!!!!!!!! | ||
1373 | !!!!!!!!!!!!!!#jNEf-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1374 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"3!!!!!!8"!3!"!!!!!!!!!!!!!!! | ||
1375 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1376 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1377 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1378 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1379 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1380 | !!!!!!!!!"J!!!!!"!!!!!!8!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1381 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1382 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1383 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1384 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1385 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1386 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1387 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1388 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1389 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1390 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1391 | !!!!!!!!!!!!!!!!!!!!!!!!"!3!!E@&TEJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1392 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1393 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1394 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1395 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1396 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)!3!"!!!!!3% | ||
1397 | "!3%!!3%!!!!!!!%"!!!"!3!"!!!"!!%!!!!!!!!!!!!)!3!"!3!"!3!!!!%!!!N | ||
1398 | !!"G0B@028b"8EfpXBQpi)%4&3P9()$Bi5`!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1399 | !!!!!!!!!!!!!!!!!!!!!!!!r2cmr39"36!!!!B"B`!!!!!!!!!!!!!!!!!!!!!! | ||
1400 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1401 | !!$mr2cm!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!!!!!!!!!!!!! | ||
1402 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1403 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!0!!%!!!!!!"9I69G&8NY6AdG98dPIF(*PCQP | ||
1404 | i,QJ!!!!!!!!!!!!!!!!"!!!"!!!!!!!"!!!!!!!!!!!!!!8"!3%!!!%"!!%!!!! | ||
1405 | !"!!!!!!!!!!!!!!!!!!!!!!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1406 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1407 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1408 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1409 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1410 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1411 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1412 | !!!!!!!"IAh0dBA*d!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1413 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1414 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!3!!#8e | ||
1415 | PFQGP)%peG!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1416 | !!!!!!!!!!!!!!!!!!$mr2cp"8&"-!!%"!!!%)#!J)!1ARe!$GYpi!`@Z%!!&!J% | ||
1417 | !!3%!!3%"!!!"!!!!!!!!!!%"!3%!!3%!!3!""!!!!!!!!!!!!!!(!3%!!3!!!3! | ||
1418 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1419 | !!!!!!!!!!!!!!!!!!!"IAh0dBA*d!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1420 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1421 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1422 | !#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1423 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1424 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1425 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1426 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1427 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8!!!G2F'9 | ||
1428 | Z8e0-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!2cmr2d&38%`!!!3!!!!%!!!!!%! | ||
1429 | !!&M!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1430 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1431 | !!!!!!!%r2cmr!!!!!!!!!!)!!!!#!!)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1432 | !!!!!!!!!!!!!!!!!!!!#!&!!!3!"!!%!!3!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1433 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1434 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1435 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1436 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1437 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8*d024%8 | ||
1438 | R)#G%394"*b!R8%P$9#F!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1439 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1440 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1441 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1442 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1443 | !!!!!!!!!!!!!!J!!!3!!!!%#!3!!!!!!!3!"!`!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1444 | !!!)!!!)!!!!#!J%!!!!!!!%!!3-!!!!!!!!!!!!!!!!%!!!!!!!!!!!#!!!$!!! | ||
1445 | !!`)"!!!!!!!"!!%$!!!!!!!!!!!!!!!!"!!!!!!!!!!!!J!!"!!!!!3#!3!!!!! | ||
1446 | !!3!"!`!!!!!!!!!!!!!!!!!!!!!!!!!!!!)!!!8!!!!&!J%!!!!!!!%!!3-!!!! | ||
1447 | !!!!!!!!!!!!"!!!!!!!!!!!#!!!'!!!!"J)"!!!!!!!"!!%$!!!!!!!!!!!!!!! | ||
1448 | !"3!!!!!!!!!!!J!!"`!!!!F#!3!!!!!!!3!"!`!!!!!!!!!!!!!!!!%!!!!!!!! | ||
1449 | !!!)!!!J!!!!)!J%!!!!!!!%!!3-!!!!!!!!!!!!!!!!&!!!!!!!!!!!#!!!*!!! | ||
1450 | !#3)"!!!!!!!"!!%$!!!!!!!!!!!!!!!!"3!!!!!!!!!!!J!!#J!!!Am#!3!!!!! | ||
1451 | !!3!"!`!!!!!!!!!!!!!!!!%!!!!!!!!!!!)!!!X!!!'U!J%!!!!!!!%!!3%!!!! | ||
1452 | !!!!!!!!!!!!"!!!!!!!!!!!#!!!-!!!"U`)"!!!!!!!"!!%"!!!!!!!!!!!!!!! | ||
1453 | !!3!!!!!!!!!!!J!!$3!!!D`#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!! | ||
1454 | !!!)!!!i!!!'Y!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!#!!!2!!! | ||
1455 | "VJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!J!!%!!!!Dm#!3!!!!! | ||
1456 | !!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!)!!"%!!!'`!J%!!!!!!!%!!3%!!!! | ||
1457 | !!!!!!!!!!!!"!!!!!!!!!!!#!!!5!!!"X3)"!!!!!!!"!!%"!!!!!!!!!!!!!!! | ||
1458 | !!3!!!!!!!!!!!J!!%`!!!E)#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!! | ||
1459 | !!!)!!"3!!!'c!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!#!!!9!!! | ||
1460 | "Y!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!J!!&J!!!E8#!3!!!!! | ||
1461 | !!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!)!!"F!!!'f!J%!!!!!!!%!!3%!!!! | ||
1462 | !!!!!!!!!!!!"!!!!!!!!!!!#!!!B!!!"Y`)"!!!!!!!"!!%"!!!!!!!!!!!!!!! | ||
1463 | !!3!!!!!!!!!!!J!!'3!!!EJ#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!! | ||
1464 | !!!)!!"S!!!'j!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!#!!!E!!! | ||
1465 | "ZJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!J!!(!!!!EX#!3!!!!! | ||
1466 | !!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!)!!"d!!!'m!J%!!!!!!!%!!3%!!!! | ||
1467 | !!!!!!!!!!!!"!!!!!!!!!!!#!!!H!!!"[3)"!!!!!!!"!!%"!!!!!!!!!!!!!!! | ||
1468 | !!3!!!!!!!!!!!J!!(`!!!Ei#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!! | ||
1469 | !!!)!!#!!!!'r!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!#!!!K!!! | ||
1470 | "`!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!J!!)J!!!F%#!3!!!!! | ||
1471 | !!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!)!!#-!!!(#!J%!!!!!!!%!!3%!!!! | ||
1472 | !!!!!!!!!!!!"!!!!!!!!!!!#!!!N!!!"``)"!!!!!!!"!!%"!!!!!!!!!!!!!!! | ||
1473 | !!3!!!!!!!!!!!J!!*3!!!F3#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!! | ||
1474 | !!!)!!#B!!!(&!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!#!!!R!!! | ||
1475 | "aJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!J!!+!!!!FF#!3!!!!! | ||
1476 | !!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!)!!#N!!!()!J%!!!!!!!%!!3%!!!! | ||
1477 | !!!!!!!!!!!!"!!!!!!!!!!!#!!!U!!!"b3)"!!!!!!!"!!%"!!!!!!!!!!!!!!! | ||
1478 | !!3!!!!!!!!!!!J!!+`!!!FS#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!! | ||
1479 | !!!)!!#`!!!(,!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!#!!!Y!!! | ||
1480 | "c!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!J!!,J!!!D8#!3!!!!! | ||
1481 | !!3!"!`!!!!!!!!!!!!!!!!%!!!!!!!!!!!)!!#m!!!(0!J%!!!!!!!%!!3%!!!! | ||
1482 | !!!!!!!!!!!!"!!!!!!!!!!!#!!!`!!!"cJ)"!!!!!!!"!!%$!!!!!!!!!!!!!!! | ||
1483 | !!3!!!!!!!!!!!J!!-3!!!Fm#!3!!!!!!!3!"!`!!!!!!!!!!!!!!!!%!!!!!!!! | ||
1484 | !!!)!!$)!!!(3!J%!!!!!!!%!!3-!!!!!!!!!!!!!!!!"!!!!!!!!!!!#!!!c!!! | ||
1485 | "d33"!!!!!!!!!!%$!!!!!!!!!!!!!!!!J3!!!!!!!!!!!J!!0!!!!G)%!3!!!!! | ||
1486 | !!!!"!`!!!!!!!!!!!!!!!)%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1487 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1488 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1489 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1490 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1491 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1492 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1493 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1494 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1495 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1496 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!!!!J!!!!-!!!!%!!! | ||
1497 | !"3!!!!B!!!!(!!!!#!!!!!N!!!!Y!!!!#J!!!!X!!!!-!!!!$3!!!!i!!!!2!!! | ||
1498 | !%!!!!"%!!!!5!!!!%`!!!"3!!!!9!!!!&J!!!"F!!!!B!!!!'3!!!"S!!!!E!!! | ||
1499 | !(!!!!"d!!!!H!!!!(`!!!#!!!!!K!!!!)J!!!#-!!!!N!!!!*3!!!#B!!!!R!!! | ||
1500 | !+!!!!#N!!!!U!!!!+`!!!#`!!!!Z!!!!,`!!!$!!!!!a!!!!-J!!!$-!!!!!!!! | ||
1501 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!d!!! | ||
1502 | !3!)!!!!#!!!d!J!!(!)!!"d#!!!H!J!!(`)!!#!#!!!K!J!!)J)!!#-#!!!N!J! | ||
1503 | !*3)!!#B#!!!R!J!!+!)!!#N#!!!U!J!!+`)!!#`#!!!Y!J!!#`)!!!`#!!!0!J! | ||
1504 | !$J)!!!m#!!!3!J!!%3)!!")#!!!6!J!!&!)!!"8#!!!@!J!!&`)!!"J#!!!C!J! | ||
1505 | !'J)!!"X#!!!c!J!!0!)!!#m#!!!`!J!!-J)!!$%#!!!+!J!!!3)!!!3#!!!$!J! | ||
1506 | !!J)!!!N#!!!&!J!!"J)!!!F#!!!)!J!!,J!!!DN!!3!S!J!!%`)!!"3#!!!9!J! | ||
1507 | !&J)!!"F#!!!B!!)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1508 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1509 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1510 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1511 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1512 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1513 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1514 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1515 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1516 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1517 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1518 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1519 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1520 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1521 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1522 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1523 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1524 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1525 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1526 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1527 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1528 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#`MlJ!!! | ||
1529 | !!!!!!3!#`NI`!!)!!!!!!!!!!!!!!X)fJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1530 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1531 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1532 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1533 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1534 | !!!!!!!!!!!!!!!)!!!%!!!!!"3!!Irm!!!!!Irm!!!!!Irm!!!!!Irm!!!!-!!% | ||
1535 | !!J!%!!!!"8!!!!B!!3!"1J!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1536 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1537 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1538 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1539 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1540 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1541 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1542 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1543 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1544 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1545 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1546 | !!!!!!!!!!!%!!!$rrrrr!!!!!`!"!!%k1J!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1547 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1548 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1549 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1550 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1551 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1552 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1553 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1554 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1555 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1556 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1557 | !!!!!!!!!!!!!!!!!!!!!!3!!!2rrrrm!!!!%!!%!!6SkD@jME(9NC6S!!!!!!!! | ||
1558 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1559 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1560 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1561 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1562 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1563 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1564 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1565 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1566 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1567 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1568 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!rrrrrd!!!!)!!3!"1J!!!!!!!!! | ||
1569 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1570 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1571 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1572 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1573 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1574 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1575 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1576 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1577 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1578 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1579 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$rrrrr3!!!!`!#!!% | ||
1580 | k6@&M6e-J8h9`F'pbG$S!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1581 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1582 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1583 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1584 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1585 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1586 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1587 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1588 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1589 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1590 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3!!!2rrrrp | ||
1591 | !!!!%!!)!!6T08d`k!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1592 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1593 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1594 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1595 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1596 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1597 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1598 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1599 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1600 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1601 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1602 | "!!!!rrrrrd!!!!8!#J!!6@&M6e-J0MK,)%aTEQYPFJ!!!!!!!!!!!!!!!!!!!!! | ||
1603 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1604 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1605 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1606 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1607 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1608 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1609 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1610 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1611 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1612 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1613 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1614 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1615 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1616 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1617 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1618 | !!!!!!!!!!!!!!!!!!!!!4f9d5&488&-J0MK,!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1619 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1620 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1621 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1622 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1623 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!%k!!!!!!!!!!!!!!! | ||
1624 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1625 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1626 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1627 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1628 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1629 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1630 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1631 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1632 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1633 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1634 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#!!&0B@028b!f1%XJ6'P | ||
1635 | ZDf9b!!!!!!!!!!!!!!!!!!!!!!!J39"36!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1636 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!!!3A" | ||
1637 | `E!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1638 | !!!!!!!!!!!!!!!!!!!!!!!"J!!!!68e-3J!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1639 | !!!!!!!!!!!!!6'PL)%PYF'pbG#!f1%X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69" | ||
1640 | -4J!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!6'PL)%PYF'pbG#!f1%X | ||
1641 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!69G$4!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1642 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!!!6d* | ||
1643 | +)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69"A)%PYF'pbG#!f1%X | ||
1644 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!8%a[BJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1645 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!!!8P0 | ||
1646 | 53`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1647 | !!!!!!!!!!!!!!!!!!!!!!!"J!!!!9%9B9#jLD!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1648 | !!!!!!!!!!!!!3Q&XE'p[EL")C@a`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9 | ||
1649 | B9#jM!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp$+bXJ0MK,!!! | ||
1650 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#jM+bX!!!!!!!!!!!!!!!!!!!!!!!! | ||
1651 | !!!!!!!!!!!!!69FJ3bp$+bXJ0MK,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9 | ||
1652 | B9#jMB`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp$+bXJ0MK,!!! | ||
1653 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#jMF!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1654 | !!!!!!!!!!!!!69FJ3bp$+bXJ0MK,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9 | ||
1655 | B9#jMF(!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp$+bXJ0MK,!!! | ||
1656 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#jPH(!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1657 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9 | ||
1658 | B9#jRB`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!4f&YC80[C'8J3fpZGQ9 | ||
1659 | bG'9b!!!!!!!!!!!!!!!!!!"!!!!!9%9B9#jS!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1660 | !!!!!!!!!!!!!69FJ3bp$+bXJ0MK,!!!!!!!!!!!!!!!!!!!!!!!!!!!3!!!!9%9 | ||
1661 | B9#jX!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!4QaPH#"3FQ9`FQpMCA0 | ||
1662 | cEh)!!!!!!!!!!!!!!!!!!!#!!!!!9%9B9#j`!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1663 | !!!!!!!!!!!!!69FJ8'&cBf&X)$Bi5`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9 | ||
1664 | B9#j`BA-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ8'&cBf&X)$Bi5`! | ||
1665 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#j`BfJ!!!!!!!!!!!!!!!!!!!!!!!! | ||
1666 | !!!!!!!!!!!!!69FJ3bp$+bXJ0MK,!!!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!9%9 | ||
1667 | B9#j`BfJV+`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp$+bXJ0MK,!!! | ||
1668 | !!!!!!!!!!!!!!!!!!!!!!!#!!!!!9%9B9#j`F(8!!!!!!!!!!!!!!!!!!!!!!!! | ||
1669 | !!!!!!!!!!!!!69FJ8'&cBf&X)$Bi5`!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!9%9 | ||
1670 | B9#jb!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8Q9k!!!!!!!!!!!!!!! | ||
1671 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#jcC@F!!!!!!!!!!!!!!!!!!!!!!!! | ||
1672 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9 | ||
1673 | B9#jj!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3QPcEfiJ8(*PF(*[Bf9 | ||
1674 | cFfpb!!!!!!!!!!!!!!!!!!#!!!!!C'pMG3!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1675 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!!!FR0 | ||
1676 | bB`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1677 | !!!!!!!!!!!!!!!!!!!!!!!"J!!!!FfKXBJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1678 | !!!!!!!!!!!!!8%9')%PYF'pbG#!f1%X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Fh4 | ||
1679 | eBJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8%9')%PYF'pbG#!f1%X | ||
1680 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#jNEf-!!!!!!!!!!!!!!!!!!!!!!!! | ||
1681 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"3!!!!!!! | ||
1682 | !!#jbFh*M!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1683 | !!!!!!!!!!!!!!!!!!!!!!!"J!!!!!!8"!3!"!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1684 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1685 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1686 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1687 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1688 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J! | ||
1689 | !!!!"!!!!!!8!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1690 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1691 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1692 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1693 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1694 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1695 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1696 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1697 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1698 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1699 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1700 | !!!!!!!!!!!!"!3!!E@&TEJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1701 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1702 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1703 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1704 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1705 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)!3%"!!!!!3%"!!!"!3%!!!! | ||
1706 | !!!%"!!!"!3!"!!!""!!!!!!!!!!!!!!)!3!"!3!"!3!!!!%!!!N!!!e(CA4)9&4 | ||
1707 | 38bJf1%XT!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1708 | !!!!!!!!!!!!r2cmr39"36!!!!J"B`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1709 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$mr2cm!!!! | ||
1710 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1711 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1712 | !!!!!!!!!!!!!!!!0!!%!!!!!!""I69G&8NY6Ah"bC@CTH#jS!!!!!!!!!!!!!!! | ||
1713 | !!!!!!!!"!!!!!!!!!!!"!!!!!!!!!!!!!!8"!3%!!!%"!!%!!!!!"!!!!!!!!!! | ||
1714 | !!!!!!!!!!!!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1715 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1716 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1717 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1718 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1719 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1720 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"IAh0 | ||
1721 | dBA*d!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1722 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1723 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!3!!#8ePFQGP)%peG!! | ||
1724 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1725 | !!!!!!$mr2cp"8&"-!!%"!!!%)#!J)!1ARe!$GYpi!`@Z%!!&!J%!!3%!!3%"!!! | ||
1726 | "!!!!!!!!!!%"!3%!!3%!!3!""!!!!!!!!!!!!!!(!3%!!3!!!3!!!!!!!!!!!!! | ||
1727 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1728 | !!!!!!!"IAh0dBA*d!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1729 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1730 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!!!!!! | ||
1731 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1732 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1733 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1734 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1735 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1736 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8!!!K(CA4)9&438`!!!!! | ||
1737 | !!!!!!!!!!!!!!!!!!!!!!!!!2cmr2d&38%`!!!3!!!!%!!!!!%!!!&M!!!!!!!! | ||
1738 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1739 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%r2cm | ||
1740 | r!!!!!!!!!!)!!!!#!!)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1741 | !!!!!!!!#!&!!!3!"!!%!!3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1742 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1743 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1744 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1745 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1746 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8*d024%8R)#G%394"*b! | ||
1747 | R8%P$9#F!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1748 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1749 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1750 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1751 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
1752 | !!`!!!3!!!!S#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!!)!!!! | ||
1753 | ,!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!!$!!!!$!)"!!!!!!! | ||
1754 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!"!!!!!d#!3!!!!!!!3!"!3!!!!! | ||
1755 | !!!!!!!!!!!%!!!!!!!!!!!-!!!8!!!!1!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
1756 | "!!!!!!!!!!!$!!!'!!!!$`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
1757 | !!`!!"`!!!"!#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!!J!!!! | ||
1758 | 4!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!!*!!!!%J)"!!!!!!! | ||
1759 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!#J!!!"-#!3!!!!!!!3!"!3!!!!! | ||
1760 | !!!!!!!!!!!%!!!!!!!!!!!-!!!X!!!!8!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
1761 | "!!!!!!!!!!!$!!!-!!!!&3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
1762 | !!`!!$3!!!"B#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!!i!!!! | ||
1763 | A!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!!2!!!!'!)"!!!!!!! | ||
1764 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!%!!!!"N#!3!!!!!!!3!"!3!!!!! | ||
1765 | !!!!!!!!!!!%!!!!!!!!!!!-!!"%!!!!D!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
1766 | "!!!!!!!!!!!$!!!5!!!!'`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
1767 | !!`!!%`!!!"`#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!"3!!!! | ||
1768 | G!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!!9!!!!(J)"!!!!!!! | ||
1769 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!&J!!!"m#!3!!!!!!!3!"!3!!!!! | ||
1770 | !!!!!!!!!!!%!!!!!!!!!!!-!!"F!!!!J!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
1771 | "!!!!!!!!!!!$!!!B!!!!)3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
1772 | !!`!!'3!!!#)#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!"S!!!! | ||
1773 | M!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!!E!!!!*!)"!!!!!!! | ||
1774 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!(!!!!#8#!3!!!!!!!3!"!3!!!!! | ||
1775 | !!!!!!!!!!!%!!!!!!!!!!!-!!"d!!!!Q!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
1776 | "!!!!!!!!!!!$!!!H!!!!*`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
1777 | !!`!!(`!!!#J#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!#!!!!! | ||
1778 | T!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!!K!!!!+J)"!!!!!!! | ||
1779 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!)J!!!#X#!3!!!!!!!3!"!3!!!!! | ||
1780 | !!!!!!!!!!!%!!!!!!!!!!!-!!#-!!!!X!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
1781 | "!!!!!!!!!!!$!!!N!!!!,3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
1782 | !!`!!*3!!!#i#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!#B!!!! | ||
1783 | [!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!!R!!!!-!)"!!!!!!! | ||
1784 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!+!!!!$%#!3!!!!!!!3!"!3!!!!! | ||
1785 | !!!!!!!!!!!%!!!!!!!!!!!-!!#N!!!!b!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
1786 | "!!!!!!!!!!!$!!!U!!!!-`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
1787 | !!`!!+`!!!$3#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!#`!!!! | ||
1788 | e!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!!Y!!!!0J)"!!!!!!! | ||
1789 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!,J!!!$F#!3!!!!!!!3!"!3!!!!! | ||
1790 | !!!!!!!!!!!%!!!!!!!!!!!-!!#m!!!!i!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
1791 | "!!!!!!!!!!!$!!!`!!!!13)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
1792 | !!`!!-3!!!$S#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!$)!!!! | ||
1793 | l!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!!c!!!!2!)"!!!!!!! | ||
1794 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!0!!!!$d#!3!!!!!!!3!"!3!!!!! | ||
1795 | !!!!!!!!!!!%!!!!!!!!!!!-!!$8!!!!q!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
1796 | "!!!!!!!!!!!$!!!f!!!!2`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
1797 | !!`!!0`!!!%!#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!$J!!!" | ||
1798 | "!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!!j!!!!3J)"!!!!!!! | ||
1799 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!1J!!!%-#!3!!!!!!!3!"!3!!!!! | ||
1800 | !!!!!!!!!!!%!!!!!!!!!!!-!!$X!!!"%!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
1801 | "!!!!!!!!!!!$!!!m!!!!43)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
1802 | !!`!!23!!!%B#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!$i!!!" | ||
1803 | (!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!!r!!!!5!)"!!!!!!! | ||
1804 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!3!!!!%N#!3!!!!!!!3!"!3!!!!! | ||
1805 | !!!!!!!!!!!%!!!!!!!!!!!-!!%%!!!"+!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
1806 | "!!!!!!!!!!!$!!"#!!!!5`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
1807 | !!`!!3`!!!%`#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!%3!!!" | ||
1808 | 0!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!"&!!!!6J)"!!!!!!! | ||
1809 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!4J!!!%m#!3!!!!!!!3!"!3!!!!! | ||
1810 | !!!!!!!!!!!%!!!!!!!!!!!-!!%F!!!"3!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
1811 | "!!!!!!!!!!!$!!")!!!!83)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
1812 | !!`!!53!!!&)#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!%S!!!" | ||
1813 | 6!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!",!!!!9!)"!!!!!!! | ||
1814 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!6!!!!&8#!3!!!!!!!3!"!3!!!!! | ||
1815 | !!!!!!!!!!!%!!!!!!!!!!!-!!%d!!!"@!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
1816 | "!!!!!!!!!!!$!!"1!!!!9`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
1817 | !!`!!6`!!!&J#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!&!!!!" | ||
1818 | C!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!"4!!!!@J)"!!!!!!! | ||
1819 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!8J!!!&X#!3!!!!!!!3!"!3!!!!! | ||
1820 | !!!!!!!!!!!%!!!!!!!!!!!-!!&-!!!"F!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
1821 | "!!!!!!!!!!!$!!"8!!!!A3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
1822 | !!`!!93!!!&i#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!&B!!!" | ||
1823 | I!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!"A!!!!B!)"!!!!!!! | ||
1824 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!@!!!!'%#!3!!!!!!!3!"!3!!!!! | ||
1825 | !!!!!!!!!!!%!!!!!!!!!!!-!!&N!!!"L!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
1826 | "!!!!!!!!!!!$!!"D!!!!B`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
1827 | !!`!!@`!!!'3#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!&`!!!" | ||
1828 | P!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!"G!!!!CJ)"!!!!!!! | ||
1829 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!AJ!!!'F#!3!!!!!!!3!"!3!!!!! | ||
1830 | !!!!!!!!!!!%!!!!!!!!!!!-!!&m!!!"S!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
1831 | "!!!!!!!!!!!$!!"J!!!!D3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
1832 | !!`!!B3!!!'S#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!')!!!" | ||
1833 | V!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!"M!!!!E!)"!!!!!!! | ||
1834 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!C!!!!'d#!3!!!!!!!3!"!3!!!!! | ||
1835 | !!!!!!!!!!!%!!!!!!!!!!!-!!'8!!!"Z!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
1836 | "!!!!!!!!!!!$!!"Q!!!!E`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
1837 | !!`!!C`!!!(!#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!'J!!!" | ||
1838 | a!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!"T!!!!FJ)"!!!!!!! | ||
1839 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!DJ!!!(-#!3!!!!!!!3!"!3!!!!! | ||
1840 | !!!!!!!!!!!%!!!!!!!!!!!-!!'X!!!"d!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
1841 | "!!!!!!!!!!!$!!"X!!!!G3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
1842 | !!`!!E3!!!(B#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!'i!!!" | ||
1843 | h!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!"[!!!!H!)"!!!!!!! | ||
1844 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!F!!!!(N#!3!!!!!!!3!"!3!!!!! | ||
1845 | !!!!!!!!!!!%!!!!!!!!!!!-!!(%!!!"k!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
1846 | "!!!!!!!!!!!$!!"b!!!!H`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
1847 | !!`!!F`!!!(`#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!(3!!!" | ||
1848 | p!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!"e!!!!IJ)"!!!!!!! | ||
1849 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!GJ!!!(m#!3!!!!!!!3!"!3!!!!! | ||
1850 | !!!!!!!!!!!%!!!!!!!!!!!-!!(F!!!#!!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
1851 | "!!!!!!!!!!!$!!"i!!!!J3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
1852 | !!`!!H3!!!))#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!(S!!!# | ||
1853 | $!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!"l!!!!K!)"!!!!!!! | ||
1854 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!I!!!!)8#!3!!!!!!!3!"!3!!!!! | ||
1855 | !!!!!!!!!!!%!!!!!!!!!!!-!!(d!!!#'!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
1856 | "!!!!!!!!!!!$!!"q!!!!K`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
1857 | !!`!!I`!!!)J#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!)!!!!# | ||
1858 | *!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!#"!!!!LJ)"!!!!!!! | ||
1859 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!JJ!!!)X#!3!!!!!!!3!"!3!!!!! | ||
1860 | !!!!!!!!!!!%!!!!!!!!!!!-!!)-!!!#-!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
1861 | "!!!!!!!!!!!$!!#%!!!!M3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
1862 | !!`!!K3!!!)i#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!)B!!!# | ||
1863 | 2!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!#(!!!!N!!#!3!!!!! | ||
1864 | !!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!)J!!!#4!J%!!!!!!!%!!3%!!!! | ||
1865 | !!!!!!!!!!!!"!!!!!!!!!!!$!!#*!!!!NJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!! | ||
1866 | !!3!!!!!!!!!!!`!!LJ!!!*-#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!! | ||
1867 | !!!-!!)X!!!#8!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!#-!!! | ||
1868 | !P3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!M3!!!*B#!3!!!!! | ||
1869 | !!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!)i!!!#A!J%!!!!!!!%!!3%!!!! | ||
1870 | !!!!!!!!!!!!"!!!!!!!!!!!$!!#2!!!!Q!)"!!!!!!!"!!%"!!!!!!!!!!!!!!! | ||
1871 | !!3!!!!!!!!!!!`!!N!!!!!#C!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
1872 | !!!!$!!#4!!!!QJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!NJ! | ||
1873 | !!*X#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!*-!!!#F!J%!!!! | ||
1874 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!#8!!!!R3)"!!!!!!!"!!%"!!! | ||
1875 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!!P3!!!*i#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
1876 | !!!%!!!!!!!!!!!-!!*B!!!#I!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
1877 | !!!!$!!#A!!!!S!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!Q!! | ||
1878 | !!+%#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!*N!!!#L!J%!!!! | ||
1879 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!#D!!!!S`)"!!!!!!!"!!%"!!! | ||
1880 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!!Q`!!!+3#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
1881 | !!!%!!!!!!!!!!!-!!*`!!!#P!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
1882 | !!!!$!!#G!!!!TJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!RJ! | ||
1883 | !!+F#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!*m!!!#S!J%!!!! | ||
1884 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!#J!!!!U3)"!!!!!!!"!!%"!!! | ||
1885 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!!S3!!!+S#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
1886 | !!!%!!!!!!!!!!!-!!+)!!!#V!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
1887 | !!!!$!!#M!!!!V!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!T!! | ||
1888 | !!+d#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!+8!!!#Z!J%!!!! | ||
1889 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!#Q!!!!V`)"!!!!!!!"!!%"!!! | ||
1890 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!!T`!!!,!#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
1891 | !!!%!!!!!!!!!!!-!!+J!!!#a!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
1892 | !!!!$!!#T!!!!XJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!UJ! | ||
1893 | !!,-#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!+X!!!#d!J%!!!! | ||
1894 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!#X!!!!Y3)"!!!!!!!"!!%"!!! | ||
1895 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!!V3!!!,B#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
1896 | !!!%!!!!!!!!!!!-!!+i!!!#h!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
1897 | !!!!$!!#[!!!!Z!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!X!! | ||
1898 | !!,N#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!,%!!!#k!J%!!!! | ||
1899 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!#b!!!!Z`)"!!!!!!!"!!%"!!! | ||
1900 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!!X`!!!,`#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
1901 | !!!%!!!!!!!!!!!-!!,3!!!#p!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
1902 | !!!!$!!#e!!!![J)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!YJ! | ||
1903 | !!,m#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!,F!!!$!!J%!!!! | ||
1904 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!#i!!!!`3)"!!!!!!!"!!%"!!! | ||
1905 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!!Z3!!!-)#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
1906 | !!!%!!!!!!!!!!!-!!,S!!!$$!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
1907 | !!!!$!!#l!!!!a!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!![!! | ||
1908 | !!-8#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!,d!!!$'!J%!!!! | ||
1909 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!#q!!!!a`)"!!!!!!!"!!%"!!! | ||
1910 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!![`!!!-J#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
1911 | !!!%!!!!!!!!!!!-!!-!!!!$*!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
1912 | !!!!$!!$"!!!!bJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!`J! | ||
1913 | !!-X#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!--!!!$-!J%!!!! | ||
1914 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!$%!!!!c3)"!!!!!!!"!!%"!!! | ||
1915 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!!a3!!!-i#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
1916 | !!!%!!!!!!!!!!!-!!-B!!!$2!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
1917 | !!!!$!!$(!!!!d!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!b!! | ||
1918 | !!0%#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!-N!!!$5!J%!!!! | ||
1919 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!$+!!!!d`)"!!!!!!!"!!%"!!! | ||
1920 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!!b`!!!03#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
1921 | !!!%!!!!!!!!!!!-!!-`!!!$9!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
1922 | !!!!$!!$0!!!!eJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!cJ! | ||
1923 | !!0F#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!-m!!!$B!J%!!!! | ||
1924 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!$3!!!!f3)"!!!!!!!"!!%"!!! | ||
1925 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!!d3!!!0S#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
1926 | !!!%!!!!!!!!!!!-!!0)!!!$E!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
1927 | !!!!$!!$6!!!!h!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!e!! | ||
1928 | !!0d#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!08!!!$H!J%!!!! | ||
1929 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!$@!!!!h`)"!!!!!!!"!!%"!!! | ||
1930 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!!e`!!!1!#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
1931 | !!!%!!!!!!!!!!!-!!0J!!!$K!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
1932 | !!!!$!!$C!!!!iJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!fJ! | ||
1933 | !!1-#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!0X!!!$N!J%!!!! | ||
1934 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!$F!!!!j3)"!!!!!!!"!!%"!!! | ||
1935 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!!h3!!!1B#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
1936 | !!!%!!!!!!!!!!!-!!0i!!!$R!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
1937 | !!!!$!!$I!!!!k!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!i!! | ||
1938 | !!1N#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!1%!!!$U!J%!!!! | ||
1939 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!$L!!!!k`)"!!!!!!!"!!%"!!! | ||
1940 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!!i`!!!1`#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
1941 | !!!%!!!!!!!!!!!-!!13!!!$Y!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
1942 | !!!!$!!$P!!!!lJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!jJ! | ||
1943 | !!1m#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!1F!!!$`!J%!!!! | ||
1944 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!$S!!!!m3)"!!!!!!!"!!%"!!! | ||
1945 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!!k3!!!2)#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
1946 | !!!%!!!!!!!!!!!-!!1S!!!$c!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
1947 | !!!!$!!$V!!!!p!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!l!! | ||
1948 | !!28#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!1d!!!$f!J%!!!! | ||
1949 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!$Z!!!!p`)"!!!!!!!"!!%"!!! | ||
1950 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!!l`!!!2J#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
1951 | !!!%!!!!!!!!!!!-!!2!!!!$j!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
1952 | !!!!$!!$a!!!!qJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!mJ! | ||
1953 | !!2X#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!2-!!!$m!J%!!!! | ||
1954 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!$d!!!!r3)"!!!!!!!"!!%"!!! | ||
1955 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!!p3!!!2i#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
1956 | !!!%!!!!!!!!!!!-!!2B!!!$r!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
1957 | !!!!$!!$h!!!"!!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!q!! | ||
1958 | !!3%#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!2N!!!%#!J%!!!! | ||
1959 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!$k!!!"!`)"!!!!!!!"!!%"!!! | ||
1960 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!!q`!!!33#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
1961 | !!!%!!!!!!!!!!!-!!2`!!!%&!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
1962 | !!!!$!!$p!!!""J)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!!rJ! | ||
1963 | !!3F#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!2m!!!%)!J%!!!! | ||
1964 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!%!!!!"#3)"!!!!!!!"!!%"!!! | ||
1965 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!"!3!!!3S#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
1966 | !!!%!!!!!!!!!!!-!!3)!!!%,!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
1967 | !!!!$!!%$!!!"$!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!""!! | ||
1968 | !!3d#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!38!!!%1!J%!!!! | ||
1969 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!%'!!!"$`)"!!!!!!!"!!%"!!! | ||
1970 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!""`!!!4!#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
1971 | !!!%!!!!!!!!!!!-!!3J!!!%4!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
1972 | !!!!$!!%*!!!"%J)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!"#J! | ||
1973 | !!4-#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!3X!!!%8!J%!!!! | ||
1974 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!%-!!!"&3)"!!!!!!!"!!%"!!! | ||
1975 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!"$3!!!4B#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
1976 | !!!%!!!!!!!!!!!-!!3i!!!%A!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
1977 | !!!!$!!%2!!!"'!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!"%!! | ||
1978 | !!4N#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!4%!!!%D!J%!!!! | ||
1979 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!%5!!!"'`)"!!!!!!!"!!%"!!! | ||
1980 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!"%`!!!4`#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
1981 | !!!%!!!!!!!!!!!-!!43!!!%G!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
1982 | !!!!$!!%9!!!"(J)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!"&J! | ||
1983 | !!4m#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!4F!!!%J!J%!!!! | ||
1984 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!%B!!!")3)"!!!!!!!"!!%"!!! | ||
1985 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!"'3!!!5)#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
1986 | !!!%!!!!!!!!!!!-!!4S!!!%M!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
1987 | !!!!$!!%E!!!"*!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!"(!! | ||
1988 | !!58#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!4d!!!%Q!J%!!!! | ||
1989 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!%H!!!"*`)"!!!!!!!"!!%"!!! | ||
1990 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!"(`!!!5J#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
1991 | !!!%!!!!!!!!!!!-!!5!!!!%T!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
1992 | !!!!$!!%K!!!"+J)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!")J! | ||
1993 | !!5X#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!5-!!!%X!J%!!!! | ||
1994 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!%N!!!",3)"!!!!!!!"!!%"!!! | ||
1995 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!"*3!!!5i#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
1996 | !!!%!!!!!!!!!!!-!!5B!!!%[!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
1997 | !!!!$!!%R!!!"-!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!"+!! | ||
1998 | !!6%#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!5N!!!%b!J%!!!! | ||
1999 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!%U!!!"-`)"!!!!!!!"!!%"!!! | ||
2000 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!"+`!!!63#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
2001 | !!!%!!!!!!!!!!!-!!5`!!!%e!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
2002 | !!!!$!!%Y!!!"0J)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!",J! | ||
2003 | !!6F#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!5m!!!%i!J%!!!! | ||
2004 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!%`!!!"13)"!!!!!!!"!!%"!!! | ||
2005 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!"-3!!!6S#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
2006 | !!!%!!!!!!!!!!!-!!6)!!!%l!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
2007 | !!!!$!!%c!!!"2!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!"0!! | ||
2008 | !!6d#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!68!!!%q!J%!!!! | ||
2009 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!%f!!!"2`)"!!!!!!!"!!%"!!! | ||
2010 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!"0`!!!8!#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
2011 | !!!%!!!!!!!!!!!-!!6J!!!&"!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
2012 | !!!!$!!%j!!!"3J)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!"1J! | ||
2013 | !!8-#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!6X!!!&%!J%!!!! | ||
2014 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!%m!!!"43)"!!!!!!!"!!%"!!! | ||
2015 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!"23!!!8B#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
2016 | !!!%!!!!!!!!!!!-!!6i!!!&(!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
2017 | !!!!$!!%r!!!"5!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!"3!! | ||
2018 | !!8N#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!8%!!!&+!J%!!!! | ||
2019 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!&#!!!"5`)"!!!!!!!"!!%"!!! | ||
2020 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!"3`!!!8`#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
2021 | !!!%!!!!!!!!!!!-!!83!!!&0!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
2022 | !!!!$!!&&!!!"6J)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!"4J! | ||
2023 | !!8m#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!8F!!!&3!J%!!!! | ||
2024 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!&)!!!"83)"!!!!!!!"!!%"!!! | ||
2025 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!"53!!!9)#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
2026 | !!!%!!!!!!!!!!!-!!8S!!!&6!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
2027 | !!!!$!!&,!!!"9!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!"6!! | ||
2028 | !!98#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!8d!!!&@!J%!!!! | ||
2029 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!&1!!!"9`)"!!!!!!!"!!%"!!! | ||
2030 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!"6`!!!9J#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
2031 | !!!%!!!!!!!!!!!-!!9!!!!&C!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
2032 | !!!!$!!&4!!!"@J)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!"8J! | ||
2033 | !!9X#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!9-!!!&F!J%!!!! | ||
2034 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!&8!!!"A3)"!!!!!!!"!!%"!!! | ||
2035 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!"93!!!9i#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
2036 | !!!%!!!!!!!!!!!-!!9B!!!&I!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
2037 | !!!!$!!&A!!!"B!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!"@!! | ||
2038 | !!@%#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!9N!!!&L!J%!!!! | ||
2039 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!&D!!!"B`)"!!!!!!!"!!%"!!! | ||
2040 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!"@`!!!@3#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
2041 | !!!%!!!!!!!!!!!-!!9`!!!&P!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
2042 | !!!!$!!&G!!!"CJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!"AJ! | ||
2043 | !!@F#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!9m!!!&S!J%!!!! | ||
2044 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!&J!!!"D3)"!!!!!!!"!!%"!!! | ||
2045 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!"B3!!!@S#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
2046 | !!!%!!!!!!!!!!!-!!@)!!!&V!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
2047 | !!!!$!!&M!!!"E!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!"C!! | ||
2048 | !!@d#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!@8!!!&Z!J%!!!! | ||
2049 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!&Q!!!"E`)"!!!!!!!"!!%"!!! | ||
2050 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!"C`!!!A!#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
2051 | !!!%!!!!!!!!!!!-!!@J!!!&a!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
2052 | !!!!$!!&T!!!"FJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!"DJ! | ||
2053 | !!A-#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!@X!!!&d!J%!!!! | ||
2054 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!&X!!!"G3)"!!!!!!!"!!%"!!! | ||
2055 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!"E3!!!AB#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
2056 | !!!%!!!!!!!!!!!-!!@i!!!&h!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
2057 | !!!!$!!&[!!!"H!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!"F!! | ||
2058 | !!AN#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!A%!!!&k!J%!!!! | ||
2059 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!&b!!!"H`)"!!!!!!!"!!%"!!! | ||
2060 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!"F`!!!A`#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
2061 | !!!%!!!!!!!!!!!-!!A3!!!&p!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
2062 | !!!!$!!&e!!!"IJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!"GJ! | ||
2063 | !!B!#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!AF!!!'"!J%!!!! | ||
2064 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!&i!!!"JJ)"!!!!!!!"!!%"!!! | ||
2065 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!"H3!!!B-#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
2066 | !!!%!!!!!!!!!!!-!!AS!!!'%!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
2067 | !!!!$!!&l!!!"K3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!"I!! | ||
2068 | !!BB#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!Ad!!!'(!J%!!!! | ||
2069 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!&q!!!"L!)"!!!!!!!"!!%"!!! | ||
2070 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!"I`!!!BN#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
2071 | !!!%!!!!!!!!!!!-!!B!!!!'+!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
2072 | !!!!$!!'"!!!"L`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!"JJ! | ||
2073 | !!B`#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!B-!!!'0!J%!!!! | ||
2074 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!'%!!!"MJ)"!!!!!!!"!!%"!!! | ||
2075 | !!!!!!!!!!!!!!3!!!!!!!!!!!`!"K3!!!Bm#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
2076 | !!!%!!!!!!!!!!!-!!BB!!!'3!!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!! | ||
2077 | !!!!!!`!"K`!!!C%#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!BJ | ||
2078 | !!!'5!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!'*!!!"N`)"!!! | ||
2079 | !!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!"LJ!!!C3#!3!!!!!!!3!"!3! | ||
2080 | !!!!!!!!!!!!!!!%!!!!!!!!!!!-!!BX!!!'9!J%!!!!!!!%!!3%!!!!!!!!!!!! | ||
2081 | !!!!"!!!!!!!!!!!$!!'-!!!"PJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!! | ||
2082 | !!!!!!`!"M3!!!CF#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!Bi | ||
2083 | !!!'B!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!'2!!!"Q3)"!!! | ||
2084 | !!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!"N!!!!!'D!J%!!!!!!!%!!3% | ||
2085 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!'4!!!"Q`)"!!!!!!!"!!%"!!!!!!!!!!! | ||
2086 | !!!!!!3!!!!!!!!!!!`!"NJ!!!C`#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
2087 | !!!!!!!-!!C-!!!'G!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!' | ||
2088 | 8!!!"RJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!"P3!!!Cm#!3! | ||
2089 | !!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!CB!!!'J!J%!!!!!!!%!!3% | ||
2090 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!'A!!!"S3)"!!!!!!!"!!%"!!!!!!!!!!! | ||
2091 | !!!!!!3!!!!!!!!!!!`!"Q!!!!D)#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
2092 | !!!!!!!-!!CN!!!'M!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!' | ||
2093 | D!!!"d`)"!!!!!!!"!!%$!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!"Q`!!!G3#!3! | ||
2094 | !!!!!!3!"!`!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!C`!!!(9!J%!!!!!!!%!!3- | ||
2095 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!'G!!!"eJ)"!!!!!!!"!!%$!!!!!!!!!!! | ||
2096 | !!!!!!3!!!!!!!!!!!`!"RJ!!!D3#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
2097 | !!!!!!!-!!Cm!!!(A!J%!!!!!!!%!!3-!!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!' | ||
2098 | J!!!"f!)"!!!!!!!"!!%$!!!!!!!!!!!!!!!!!3!!!!!!!!!!!`!"S3!!!GN#!3! | ||
2099 | !!!!!!3!"!`!!!!!!!!!!!!!!!!%!!!!!!!!!!!-!!D)!!!(D!J%!!!!!!!%!!3- | ||
2100 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!$!!'M!!!"TJ)"!!!!!!!"!!%"!!!!!!!!!!! | ||
2101 | !!!!!!3!!!!!!!!!!!`!"T!!!!DF#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!! | ||
2102 | !!!!!!!-!!D8!!!'S!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!!!!! | ||
2103 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2104 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2105 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2106 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2107 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2108 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2109 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2110 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2111 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2112 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2113 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2114 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2115 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2116 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2117 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2118 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2119 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2120 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2121 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2122 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2123 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2124 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2125 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3!!!!)!!!!$!!!!"!!!!!8!!!! | ||
2126 | '!!!!"`!!!!J!!!!*!!!!#J!!!!X!!!!-!!!!$3!!!!i!!!!2!!!!%!!!!"%!!!! | ||
2127 | 5!!!!%`!!!"3!!!!9!!!!&J!!!"F!!!!B!!!!'3!!!"S!!!!E!!!!(!!!!"d!!!! | ||
2128 | H!!!!(`!!!#!!!!!K!!!!)J!!!#-!!!!N!!!!*3!!!#B!!!!R!!!!+!!!!#N!!!! | ||
2129 | U!!!!+`!!!#`!!!!Y!!!!,J!!!#m!!!!`!!!!-3!!!$)!!!!c!!!!0!!!!$8!!!! | ||
2130 | f!!!!0`!!!$J!!!!j!!!!1J!!!$X!!!!m!!!!23!!!$i!!!!r!!!!3!!!!%%!!!" | ||
2131 | #!!!!3`!!!%3!!!"&!!!!4J!!!%F!!!")!!!!53!!!%S!!!",!!!!6!!!!%d!!!" | ||
2132 | 1!!!!6`!!!&!!!!"4!!!!8J!!!&-!!!"8!!!!93!!!&B!!!"A!!!!@!!!!&N!!!" | ||
2133 | D!!!!@`!!!&`!!!"G!!!!AJ!!!&m!!!"J!!!!B3!!!')!!!"M!!!!C!!!!'8!!!" | ||
2134 | Q!!!!C`!!!'J!!!"T!!!!DJ!!!'X!!!"X!!!!E3!!!'i!!!"[!!!!F!!!!(%!!!" | ||
2135 | b!!!!F`!!!(3!!!"e!!!!GJ!!!(F!!!"i!!!!H3!!!(S!!!"l!!!!I!!!!(d!!!" | ||
2136 | q!!!!I`!!!)!!!!#"!!!!JJ!!!)-!!!#%!!!!K3!!!)B!!!#(!!!!L!!!!)N!!!# | ||
2137 | +!!!!L`!!!)`!!!#0!!!!MJ!!!)m!!!#3!!!!!*%!!!#5!!!!N`!!!*3!!!#9!!! | ||
2138 | !PJ!!!*F!!!#B!!!!Q3!!!*S!!!#E!!!!R!!!!*d!!!#H!!!!R`!!!+!!!!#K!!! | ||
2139 | !SJ!!!+-!!!#N!!!!T3!!!+B!!!#R!!!!U!!!!+N!!!#U!!!!U`!!!+`!!!#Y!!! | ||
2140 | !VJ!!!+m!!!#`!!!!X3!!!,)!!!#c!!!!Y!!!!,8!!!#f!!!!Y`!!!,J!!!#j!!! | ||
2141 | !ZJ!!!,X!!!#m!!!![3!!!,i!!!#r!!!!`!!!!-%!!!$#!!!!``!!!-3!!!$&!!! | ||
2142 | !aJ!!!-F!!!$)!!!!b3!!!-S!!!$,!!!!c!!!!-d!!!$1!!!!c`!!!0!!!!$4!!! | ||
2143 | !dJ!!!0-!!!$8!!!!e3!!!0B!!!$A!!!!f!!!!0N!!!$D!!!!f`!!!0`!!!$G!!! | ||
2144 | !hJ!!!0m!!!$J!!!!i3!!!1)!!!$M!!!!j!!!!18!!!$Q!!!!j`!!!1J!!!$T!!! | ||
2145 | !kJ!!!1X!!!$X!!!!l3!!!1i!!!$[!!!!m!!!!2%!!!$b!!!!m`!!!23!!!$e!!! | ||
2146 | !pJ!!!2F!!!$i!!!!q3!!!2S!!!$l!!!!r!!!!2d!!!$q!!!!r`!!!3!!!!%"!!! | ||
2147 | "!J!!!3-!!!%%!!!""3!!!3B!!!%(!!!"#!!!!3N!!!%+!!!"#`!!!3`!!!%0!!! | ||
2148 | "$J!!!3m!!!%3!!!"%3!!!4)!!!%6!!!"&!!!!48!!!%@!!!"&`!!!4J!!!%C!!! | ||
2149 | "'J!!!4X!!!%F!!!"(3!!!4i!!!%I!!!")!!!!5%!!!%L!!!")`!!!53!!!%P!!! | ||
2150 | "*J!!!5F!!!%S!!!"+3!!!5S!!!%V!!!",!!!!5d!!!%Z!!!",`!!!6!!!!%a!!! | ||
2151 | "-J!!!6-!!!%d!!!"03!!!6B!!!%h!!!"1!!!!6N!!!%k!!!"1`!!!6`!!!%p!!! | ||
2152 | "2J!!!6m!!!&!!!!"33!!!8)!!!&$!!!"4!!!!88!!!&'!!!"4`!!!8J!!!&*!!! | ||
2153 | "5J!!!8X!!!&-!!!"63!!!8i!!!&2!!!"8!!!!9%!!!&5!!!"8`!!!93!!!&9!!! | ||
2154 | "9J!!!9F!!!&B!!!"@3!!!9S!!!&E!!!"A!!!!9d!!!&H!!!"A`!!!@!!!!&K!!! | ||
2155 | "BJ!!!@-!!!&N!!!"C3!!!@B!!!&R!!!"D!!!!@N!!!&U!!!"D`!!!@`!!!&Y!!! | ||
2156 | "EJ!!!@m!!!&`!!!"F3!!!A)!!!&c!!!"G!!!!A8!!!&f!!!"G`!!!AJ!!!&j!!! | ||
2157 | "HJ!!!AX!!!&m!!!"I3!!!Ai!!!&r!!!"J!!!!B%!!!'#!!!"J`!!!B3!!!'&!!! | ||
2158 | "KJ!!!BF!!!')!!!"L3!!!BS!!!',!!!"M!!!!Bd!!!'1!!!"M`!!!C!!!!!"N3! | ||
2159 | !!C)!!!'6!!!"P!!!!C8!!!'@!!!"P`!!!CJ!!!'G!!!"SJ!!!D-!!!'N!!!"Q3! | ||
2160 | !!CS!!!'E!!!"R!!!!Ci!!!'I!!!"S!!!!D%!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2161 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2162 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'P!!!"`!- | ||
2163 | !!!!$!!'P!!!"f`!"!"`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!'B!`!"Q3- | ||
2164 | !!D8$!!'A!`!"PJ-!!!)$!!!$!`!!!3-!!!3$!!!&!`!!"J-!!!F$!!!)!`!!#3- | ||
2165 | !!!S$!!!,!`!!$!-!!!d$!!!1!`!!$`-!!"!$!!!4!`!!%J-!!"-$!!!8!`!!&3- | ||
2166 | !!"B$!!!A!`!!'!-!!"N$!!!D!`!!'`-!!"`$!!!G!`!!(J-!!"m$!!!J!`!!)3- | ||
2167 | !!#)$!!!M!`!!*!-!!#8$!!!Q!`!!*`-!!#J$!!!T!`!!+J-!!#X$!!!X!`!!,3- | ||
2168 | !!#i$!!![!`!!-!-!!$%$!!!b!`!!-`-!!$3$!!!e!`!!0J-!!$F$!!!i!`!!13- | ||
2169 | !!$S$!!!l!`!!2!-!!$d$!!!q!`!!2`-!!%!$!!""!`!!3J-!!%-$!!"%!`!!43- | ||
2170 | !!%B$!!"(!`!!5!-!!%N$!!"+!`!!5`-!!%`$!!"0!`!!6J-!!%m$!!"3!`!!83- | ||
2171 | !!&)$!!"6!`!!9!-!!&8$!!"@!`!!9`-!!&J$!!"C!`!!@J-!!&X$!!"F!`!!A3- | ||
2172 | !!&i$!!"I!`!!B!-!!'%$!!"L!`!!B`-!!'3$!!"P!`!!CJ-!!'F$!!"S!`!!D3- | ||
2173 | !!'S$!!"V!`!!E!-!!'d$!!"Z!`!!E`-!!(!$!!"a!`!!FJ-!!(-$!!"d!`!!G3- | ||
2174 | !!(B$!!"h!`!!H!-!!(N$!!"k!`!!H`-!!(`$!!"p!`!!IJ-!!(m$!!#!!`!!J3- | ||
2175 | !!))$!!#$!`!!K!-!!)8$!!'M!`!!KJ-!!)F$!!#)!`!!L3-!!)S$!!#,!`!!M!- | ||
2176 | !!)d$!!#1!`!!M`-!!*!!!`!!N3-!!*)$!!#6!`!!P!-!!*8$!!#@!`!!P`-!!*J | ||
2177 | $!!#C!`!!QJ-!!*X$!!#F!`!!R3-!!*i$!!#I!`!!S!-!!+%$!!#L!`!!S`-!!+3 | ||
2178 | $!!#P!`!!TJ-!!+F$!!#S!`!!U3-!!+S$!!#V!`!!V!-!!+d$!!#Z!`!!V`-!!,! | ||
2179 | $!!#a!`!!XJ-!!,-$!!#d!`!!Y3-!!,B$!!#h!`!!Z!-!!,N$!!#k!`!!Z`-!!,` | ||
2180 | $!!#p!`!![J-!!,m$!!$!!`!!`3-!!-)$!!$$!`!!a!-!!-8$!!$'!`!!a`-!!-J | ||
2181 | $!!$*!`!!bJ-!!-X$!!$-!`!!c3-!!-i$!!$2!`!!d!-!!0%$!!$5!`!!d`-!!03 | ||
2182 | $!!$9!`!!eJ-!!0F$!!$B!`!!f3-!!0S$!!$E!`!!h!-!!0d$!!$H!`!!h`-!!1! | ||
2183 | $!!$K!`!!iJ-!!1-$!!$N!`!!j3-!!1B$!!$R!`!!k!-!!1N$!!$U!`!!k`-!!1` | ||
2184 | $!!$Y!`!!lJ-!!1m$!!$`!`!!m3-!!2)$!!$c!`!!p!-!!28$!!$f!`!!p`-!!2J | ||
2185 | $!!$j!`!!qJ-!!2X$!!$m!`!!r3-!!2i$!!$r!`!"!!-!!3%$!!%#!`!"!`-!!33 | ||
2186 | $!!%&!`!""J-!!3F$!!%)!`!"#3-!!3S$!!%,!`!"$!-!!3d$!!%1!`!"$`-!!4! | ||
2187 | $!!%4!`!"%J-!!4-$!!%8!`!"&3-!!4B$!!%A!`!"'!-!!4N$!!%D!`!"'`-!!4` | ||
2188 | $!!%G!`!"(J-!!4m$!!%J!`!")3-!!5)$!!%M!`!"*!-!!58$!!%Q!`!"*`-!!5J | ||
2189 | $!!%T!`!"+J-!!5X$!!%X!`!",3-!!D3$!!%Z!`!",`-!!6!$!!%a!`!"-J-!!6- | ||
2190 | $!!%d!`!"03-!!6B$!!%h!`!"1!-!!6N$!!%k!`!"1`-!!6`$!!%p!`!"2J-!!6m | ||
2191 | $!!&!!`!"33-!!8)$!!&$!`!"4!-!!88$!!&'!`!"4`-!!8J$!!&*!`!"5J-!!8X | ||
2192 | $!!&-!`!"63-!!8i$!!&2!`!"8!-!!9%$!!&5!`!"8`-!!93$!!&9!`!"9J-!!9F | ||
2193 | $!!&B!`!"@3-!!9S$!!&E!`!"A!-!!9d$!!&H!`!"A`-!!@!$!!&K!`!"BJ-!!@- | ||
2194 | $!!&N!`!"C3-!!@B$!!&R!`!"D!-!!@N$!!&U!`!"D`-!!@`$!!&Y!`!"EJ-!!@m | ||
2195 | $!!&`!`!"F3-!!A)$!!&c!`!"G!-!!A8$!!&f!`!"G`-!!AJ$!!&j!`!"HJ-!!AX | ||
2196 | $!!&m!`!"I3-!!Ai$!!&r!`!"J!-!!B%$!!'#!`!"J`-!!B3$!!'&!`!"KJ-!!BF | ||
2197 | $!!')!`!"L3-!!BS$!!',!`!"M!-!!Bd$!!'1!`!"M`-!!C!!!`!"N3-!!C)$!!' | ||
2198 | 6!`!"P!-!!C8$!!'H!`!"S!-!!D%$!!'E!`!"SJ-!!CS$!!'F!`!"R3-!!Cm!!J! | ||
2199 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2200 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2201 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2202 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2203 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2204 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2205 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2206 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2207 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2208 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2209 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2210 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2211 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2212 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2213 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2214 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2215 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2216 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2217 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2218 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2219 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2220 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!,#2Z!!!!!!!!!"!!,#4r!!!J! | ||
2221 | !!!!!!!!!!!!#`MD!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2222 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2223 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2224 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2225 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!J! | ||
2226 | !!3!!!!!&!!"rr`!!!!"rr`!!!!"rr`!!!!"rr`!!!!`!!3!#!!B!!!!&3!!!#!! | ||
2227 | "!!%k!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2228 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2229 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2230 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2231 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2232 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2233 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2234 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2235 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2236 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2237 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3!!!2r | ||
2238 | rrrm!!!!$!!%!!6Sk!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2239 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2240 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2241 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2242 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2243 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2244 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2245 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2246 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2247 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2248 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2249 | !!!!"!!!!rrrrr`!!!!3!!3!"1MTTEQ0XG@4P1J!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2250 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2251 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2252 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2253 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2254 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2255 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2256 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2257 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2258 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2259 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2260 | !!!!!!!!!!!!!!!!!!!$rrrrr3!!!!J!"!!%k!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2261 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2262 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2263 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2264 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2265 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2266 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2267 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2268 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2269 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2270 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2271 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!2rrrrp!!!!$!!%!!6Sk1NG98dNkD@jME(9 | ||
2272 | NC6S!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2273 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2274 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2275 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2276 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2277 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2278 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2279 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2280 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2281 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2282 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!rrrrrd!!!!3!!3!"1MSk4e9 | ||
2283 | 656TXD@)k!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2284 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2285 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2286 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2287 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2288 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2289 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2290 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2291 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2292 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2293 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$rrrrr3!!!"3! | ||
2294 | #!!%k6@&M6e-J8h9`F'pbG$S!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2295 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2296 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2297 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2298 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2299 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2300 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2301 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2302 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2303 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2304 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3!!!2r | ||
2305 | rrrp!!!!'!!)!!6T08d`k!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2306 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2307 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2308 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2309 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2310 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2311 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2312 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2313 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2314 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2315 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2316 | !!!!"!!!!rrrrrd!!!!F!#J!!6@&M6e-J0MK,)%aTEQYPFJ!!!!!!!!!!!!!!!!! | ||
2317 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2318 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2319 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2320 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2321 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2322 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2323 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2324 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2325 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2326 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2327 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2328 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2329 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2330 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2331 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2332 | !!!!!!!!!!!!!!!!!!!!!!!!!6'PL8e0-)$Bi5`!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2333 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2334 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2335 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2336 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2337 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!%k!!!!!!!!!!! | ||
2338 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2339 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2340 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2341 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2342 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2343 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2344 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2345 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2346 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2347 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2348 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#!!&0B@028b!f1%X | ||
2349 | J6'PZDf9b!!!!!!!!!!!!!!!!!!!!!!!J39"36!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2350 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!! | ||
2351 | !3A"`E!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2352 | !!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!!!68e-3J!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2353 | !!!!!!!!!!!!!!!!!6'PL)%PYF'pbG#!f1%X!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2354 | !69"-4J!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!6'PL)%PYF'pbG#! | ||
2355 | f1%X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69G$4!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2356 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!! | ||
2357 | !6d*+)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69"A)%PYF'pbG#! | ||
2358 | f1%X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8%a[BJ!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2359 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!! | ||
2360 | !8P053`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2361 | !!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!!!9%9B9#jLD!!!!!!!!!!!!!!!!!!!!!! | ||
2362 | !!!!!!!!!!!!!!!!!3Q&XE'p[EL")C@a`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2363 | !9%9B9#jM!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp$+bXJ0MK | ||
2364 | ,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#jM+bX!!!!!!!!!!!!!!!!!!!! | ||
2365 | !!!!!!!!!!!!!!!!!69FJ3bp$+bXJ0MK,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2366 | !9%9B9#jMB`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp$+bXJ0MK | ||
2367 | ,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#jMF!!!!!!!!!!!!!!!!!!!!!! | ||
2368 | !!!!!!!!!!!!!!!!!69FJ3bp$+bXJ0MK,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2369 | !9%9B9#jMF(!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp$+bXJ0MK | ||
2370 | ,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#jPH(!!!!!!!!!!!!!!!!!!!!! | ||
2371 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2372 | !9%9B9#jRB`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!4f&YC80[C'8J3fp | ||
2373 | ZGQ9bG'9b!!!!!!!!!!!!!!!!!!"!!!!!9%9B9#jS!!!!!!!!!!!!!!!!!!!!!!! | ||
2374 | !!!!!!!!!!!!!!!!!69FJ3bp$+bXJ0MK,!!!!!!!!!!!!!!!!!!!!!!!!!!!3!!! | ||
2375 | !9%9B9#jX!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!4QaPH#"3FQ9`FQp | ||
2376 | MCA0cEh)!!!!!!!!!!!!!!!!!!!#!!!!!9%9B9#j`!!!!!!!!!!!!!!!!!!!!!!! | ||
2377 | !!!!!!!!!!!!!!!!!69FJ8'&cBf&X)$Bi5`!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2378 | !9%9B9#j`BA-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ8'&cBf&X)$B | ||
2379 | i5`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#j`BfJ!!!!!!!!!!!!!!!!!!!! | ||
2380 | !!!!!!!!!!!!!!!!!69FJ3bp$+bXJ0MK,!!!!!!!!!!!!!!!!!!!!!!!!!!#!!!! | ||
2381 | !9%9B9#j`BfJV+`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp$+bXJ0MK | ||
2382 | ,!!!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!9%9B9#j`F(8!!!!!!!!!!!!!!!!!!!! | ||
2383 | !!!!!!!!!!!!!!!!!69FJ8'&cBf&X)$Bi5`!!!!!!!!!!!!!!!!!!!!!!!!#!!!! | ||
2384 | !9%9B9#jb!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8Q9k!!!!!!!!!!! | ||
2385 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#jcC@F!!!!!!!!!!!!!!!!!!!! | ||
2386 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2387 | !9%9B9#jj!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3QPcEfiJ8(*PF(* | ||
2388 | [Bf9cFfpb!!!!!!!!!!!!!!!!!!#!!!!!C'pMG3!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2389 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!! | ||
2390 | !FR0bB`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2391 | !!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!!!FfKXBJ!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2392 | !!!!!!!!!!!!!!!!!8%9')%PYF'pbG#!f1%X!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2393 | !Fh4eBJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8%9')%PYF'pbG#! | ||
2394 | f1%X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#jNEf-!!!!!!!!!!!!!!!!!!!! | ||
2395 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"3!!! | ||
2396 | !!!!!!#jbFh*M!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2397 | !!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!!!!!8"!3!"!!!!!!!!!!!!!!!!!!!!!!! | ||
2398 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2399 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2400 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2401 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2402 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2403 | !"J!!!!!"!!!!!!8!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2404 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2405 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2406 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2407 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2408 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2409 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2410 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2411 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2412 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2413 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2414 | !!!!!!!!!!!!!!!!"!3!!E@&TEJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2415 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2416 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2417 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2418 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2419 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)!3%"!!!!!3%"!!!"!3% | ||
2420 | !!!!!!!%"!!!"!3!"!!!""!!!!!!!!!!!!!!)!3!"!3!"!3!!!!%!!!N!!aK-D@* | ||
2421 | 68d`Z0MK,)%CK+$4TAcKN+5j-D@)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2422 | !!!!!!!!!!!!!!!!r2cmr2cmr2`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2423 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$mr2cm | ||
2424 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2425 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2426 | !!!!!!!!!!!!!!!!!!!!0!!%!!!!!!"9I69G&8NY6AdG98dPIF(*PCQPi,QJ!!!! | ||
2427 | !!!!!!!!!!!!"!!!!!!!!!!!"!!!!!!!!!!!!!!8"!3%!!!%"!!%!!!!!"!!!!!! | ||
2428 | !!!!!!!!!!!!!!!!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2429 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2430 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2431 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2432 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2433 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2434 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" | ||
2435 | IAh0dBA*d!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2436 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2437 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!3!!#8ePFQGP)%p | ||
2438 | eG!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2439 | !!!!!!!!!!$mr2cp"8&"-!!%"!!!%)#!J)!1ARe!$GYpi!`@Z%!!&!J%!!3%!!3% | ||
2440 | "!!!"!!!!!!!!!!%"!3%!!3%!!3!""!!!!!!!!!!!!!!(!3%!!3!!!3!!!!!!!!! | ||
2441 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2442 | !!!!!!!!!!!"IAh0dBA*d!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2443 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2444 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!! | ||
2445 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2446 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2447 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2448 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2449 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2450 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8!!!K(CA4)9&438`! | ||
2451 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!2cmr2d&38%`!!!3!!!!%!!!!!%!!!&M!!!! | ||
2452 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2453 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!% | ||
2454 | r2cmr!!!!!!!!!!)!!!!#!!)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2455 | !!!!!!!!!!!!#!&!!!3!"!!%!!3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2456 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2457 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2458 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2459 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2460 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8*d024%8R)#G%394 | ||
2461 | "*b!R8%P$9#F!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2462 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2463 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2464 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2465 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2466 | !!!!!"!!!!3!!!!S#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!3!!!) | ||
2467 | !!!!,!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!%!!!$!!!!$!)"!!! | ||
2468 | !!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"!!!"!!!!!d#!3!!!!!!!3!"!3! | ||
2469 | !!!!!!!!!!!!!!!%!!!!!!!!!!!3!!!8!!!!1!J%!!!!!!!%!!3%!!!!!!!!!!!! | ||
2470 | !!!!"!!!!!!!!!!!%!!!'!!!!$`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!! | ||
2471 | !!!!!"!!!"`!!!"!#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!3!!!J | ||
2472 | !!!!4!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!%!!!*!!!!%J)"!!! | ||
2473 | !!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"!!!#J!!!"-#!3!!!!!!!3!"!3! | ||
2474 | !!!!!!!!!!!!!!!%!!!!!!!!!!!3!!!X!!!!8!J%!!!!!!!%!!3%!!!!!!!!!!!! | ||
2475 | !!!!"!!!!!!!!!!!%!!!-!!!!&3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!! | ||
2476 | !!!!!"!!!$3!!!"B#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!3!!!i | ||
2477 | !!!!A!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!%!!!2!!!!'!)"!!! | ||
2478 | !!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"!!!%!!!!"N#!3!!!!!!!3!"!3! | ||
2479 | !!!!!!!!!!!!!!!%!!!!!!!!!!!3!!"%!!!!D!J%!!!!!!!%!!3%!!!!!!!!!!!! | ||
2480 | !!!!"!!!!!!!!!!!%!!!5!!!!'`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!! | ||
2481 | !!!!!"!!!%`!!!"`#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!3!!"3 | ||
2482 | !!!!G!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!%!!!9!!!!(J)"!!! | ||
2483 | !!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"!!!&J!!!"m#!3!!!!!!!3!"!3! | ||
2484 | !!!!!!!!!!!!!!!%!!!!!!!!!!!3!!"F!!!!J!J%!!!!!!!%!!3%!!!!!!!!!!!! | ||
2485 | !!!!"!!!!!!!!!!!%!!!B!!!!)3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!! | ||
2486 | !!!!!"!!!'3!!!#)#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!3!!"S | ||
2487 | !!!!M!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!%!!!E!!!!*!)"!!! | ||
2488 | !!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"!!!(!!!!#8#!3!!!!!!!3!"!3! | ||
2489 | !!!!!!!!!!!!!!!%!!!!!!!!!!!3!!"d!!!!Q!J%!!!!!!!%!!3%!!!!!!!!!!!! | ||
2490 | !!!!"!!!!!!!!!!!%!!!H!!!!*`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!! | ||
2491 | !!!!!"!!!(`!!!#J#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!3!!#! | ||
2492 | !!!!T!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!%!!!K!!!!+J)"!!! | ||
2493 | !!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"!!!)J!!!#X#!3!!!!!!!3!"!3! | ||
2494 | !!!!!!!!!!!!!!!%!!!!!!!!!!!3!!#-!!!!X!J%!!!!!!!%!!3%!!!!!!!!!!!! | ||
2495 | !!!!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2496 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2497 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2498 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2499 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2500 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2501 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2502 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2503 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2504 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2505 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2506 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2507 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2508 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2509 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2510 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2511 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2512 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2513 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2514 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2515 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2516 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2517 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2518 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2519 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!!!!J!!!!-!!!!%!!!!"3!!!!B | ||
2520 | !!!!(!!!!#!!!!!N!!!!+!!!!#`!!!!`!!!!0!!!!$J!!!!m!!!!3!!!!%3!!!") | ||
2521 | !!!!6!!!!&!!!!"8!!!!@!!!!&`!!!"J!!!!C!!!!'J!!!"X!!!!F!!!!(3!!!"i | ||
2522 | !!!!I!!!!)!!!!#%!!!!L!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2523 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2524 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!M!!!!3!3!!!! | ||
2525 | %!!!M!!!"f`!"!"`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!!&"!!!"!3!!!- | ||
2526 | %!!!#"!!!"J3!!!X%!!!+"!!!#33!!!J%!!!("!!!$!3!!")%!!!4"!!!%!3!!!m | ||
2527 | %!!!0"!!!$J3!!"-%!!!L"!!!)33!!#!%!!!I"!!!)`3!!!%%!!!8"!!!&33!!"B | ||
2528 | %!!!A"!!!'!3!!"N%!!!D"!!!'`3!!"`%!!!G"!!!(J!#!!!!!!!!!!!!!!!!!!! | ||
2529 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2530 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2531 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2532 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2533 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2534 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2535 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2536 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2537 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2538 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2539 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2540 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2541 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2542 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2543 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2544 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2545 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2546 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2547 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2548 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2549 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2550 | !!!!!!!!!!!!!!!!!!!!!!X)qi!!!!!!!!!%!!X*(m!!#!!!!!!!!!!!!!!,#0S! | ||
2551 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2552 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2553 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2554 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2555 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#!!!"!!!!!!8!!(rr!!! | ||
2556 | !!(rr!!!!!(rr!!!!!(rr!!!!$!!"!!)!"J!!!!9!!!!)!!%!!6S!!!!!!!!!!!! | ||
2557 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2558 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2559 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2560 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2561 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2562 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2563 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2564 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2565 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2566 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2567 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!!!rrrrr`!!!!-!!3!"1MS | ||
2568 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2569 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2570 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2571 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2572 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2573 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2574 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2575 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2576 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2577 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2578 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!!$rrrrr!!! | ||
2579 | !"!!"!!%k1QPZBfaeC'8k!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2580 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2581 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2582 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2583 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2584 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2585 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2586 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2587 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2588 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2589 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2590 | !!2rrrrp!!!!#!!%!!6S!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2591 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2592 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2593 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2594 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2595 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2596 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2597 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2598 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2599 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2600 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2601 | !!!!!!!!!!!!!rrrrrd!!!!-!!3!"1MSk4e9656TTEQ0XG@4P1J!!!!!!!!!!!!! | ||
2602 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2603 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2604 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2605 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2606 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2607 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2608 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2609 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2610 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2611 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2612 | !!!!!!!!!!!!!!!!!!!!!!!$rrrrr3!!!"!!"!!%k1MT(990*1QaTBMS!!!!!!!! | ||
2613 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2614 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2615 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2616 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2617 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2618 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2619 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2620 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2621 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2622 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2623 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!2rrrrp!!!!&!!)!!6T0B@028b"6GA" | ||
2624 | `Eh*d1J!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2625 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2626 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2627 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2628 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2629 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2630 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2631 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2632 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2633 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2634 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!!!rrrrrd!!!!B!!J!"1Ne | ||
2635 | 66$S!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2636 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2637 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2638 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2639 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2640 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2641 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2642 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2643 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2644 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2645 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!!$rrrrr3!! | ||
2646 | !"`!+!!"0B@028b!f1%XJ6'PZDf9b!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2647 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2648 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2649 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2650 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2651 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2652 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2653 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2654 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2655 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2656 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2657 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2658 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2659 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2660 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2661 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2662 | !!!!!!!"2F'9Z8e0-)$BiD`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2663 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2664 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2665 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2666 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2667 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!6S!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2668 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2669 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2670 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2671 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2672 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2673 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2674 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2675 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2676 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2677 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2678 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)!!8eKBdp6)$Bi5b"-D@jVCA)!!!!!!!! | ||
2679 | !!!!!!!!!!!!!!#""8&"-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2680 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'!!!!""F("X!!!!!!!!!!! | ||
2681 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2682 | !!!!!!!!!!'!!!!"068a#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" | ||
2683 | -D@)J5@e`Eh*d)$Bi5`!!!!!!!!!!!!!!!!!!!!!!!!!!!!"08%a'!!!!!!!!!!! | ||
2684 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"-D@)J5@e`Eh*d)$Bi5`!!!!!!!!!!!!! | ||
2685 | !!!!!!!!!!!!!!!"09d0%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2686 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'!!!!"23NSJ!!!!!!!!!!! | ||
2687 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"08&FJ5@e`Eh*d)$Bi5`!!!!!!!!!!!!! | ||
2688 | !!!!!!!!!!!!!!!"36'pL!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2689 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'!!!!"58e*$!!!!!!!!!!! | ||
2690 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2691 | !!!!!!!!!!'!!!!"849K8,Q*S!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" | ||
2692 | #B@aXEfpZ)%KPE(!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"849K8,Q-!!!!!!!! | ||
2693 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"09b"$,d-V+b!f1%X!!!!!!!!!!!!!!!! | ||
2694 | !!!!!!!!!!!!!!!"849K8,Q-V+`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" | ||
2695 | 09b"$,d-V+b!f1%X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"849K8,Q0M!!!!!!! | ||
2696 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"09b"$,d-V+b!f1%X!!!!!!!!!!!!!!!! | ||
2697 | !!!!!!!!!!!!!!!"849K8,Q0`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" | ||
2698 | 09b"$,d-V+b!f1%X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"849K8,Q0`F!!!!!! | ||
2699 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"09b"$,d-V+b!f1%X!!!!!!!!!!!!!!!! | ||
2700 | !!!!!!!!!!!!!!!"849K8,Q9iF!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2701 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"849K8,QGM!!!!!!! | ||
2702 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"(B@eP3fpNC5"$EfjfCA*dCA)!!!!!!!! | ||
2703 | !!!!!!!!!!%!!!!"849K8,QJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" | ||
2704 | 09b"$,d-V+b!f1%X!!!!!!!!!!!!!!!!!!!!!!!!!!"!!!!"849K8,Q`!!!!!!!! | ||
2705 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"'E'9i)&"bCA"bEf0PFh0[FJ!!!!!!!!! | ||
2706 | !!!!!!!!!!)!!!!"849K8,R!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" | ||
2707 | 09b"3BA0MB@`J0MK,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"849K8,R"KF`!!!!! | ||
2708 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"09b"3BA0MB@`J0MK,!!!!!!!!!!!!!!! | ||
2709 | !!!!!!!!!!!!!!!"849K8,R"MD!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" | ||
2710 | 09b"$,d-V+b!f1%X!!!!!!!!!!!!!!!!!!!!!!!!!!)!!!!"849K8,R"MD#XV!!! | ||
2711 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"09b"$,d-V+b!f1%X!!!!!!!!!!!!!!!! | ||
2712 | !!!!!!!!!!)!!!!"849K8,R"`G3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" | ||
2713 | 09b"3BA0MB@`J0MK,!!!!!!!!!!!!!!!!!!!!!!!!!)!!!!"849K8,R)!!!!!!!! | ||
2714 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"5CAS!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2715 | !!!!!!!!!!!!!!!"849K8,R0PC`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2716 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"849K8,RN!!!!!!!! | ||
2717 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"#DA0[EL"3FQ9`FQpMCA0cEh)!!!!!!!! | ||
2718 | !!!!!!!!!!)!!!!"NEf0e!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2719 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'!!!!"bFh*M!!!!!!!!!!! | ||
2720 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2721 | !!!!!!!!!!'!!!!"cD'aL!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" | ||
2722 | 348BJ5@e`Eh*d)$Bi5`!!!!!!!!!!!!!!!!!!!!!!!!!!!!"cG(9L!!!!!!!!!!! | ||
2723 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"348BJ5@e`Eh*d)$Bi5`!!!!!!!!!!!!! | ||
2724 | !!!!!!!!!!!!!!!!!!!!!,Q4[B`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2725 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&!!!!!!!!!!,R*cFQ-!!!! | ||
2726 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2727 | !!!!!!!!!!'!!!!!!"3%"!!%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2728 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2729 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2730 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2731 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2732 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'!!!!!!%!!!!!"3! | ||
2733 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2734 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2735 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2736 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2737 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2738 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2739 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2740 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2741 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2742 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2743 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!% | ||
2744 | "!!"YB@PZ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2745 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2746 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2747 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2748 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2749 | !!!!!!!!!!!!!!!!!!!!!!!!!!!J"!!%!!!!"!3%!!!%"!3!!!!!!!3%!!!%"!!% | ||
2750 | !!!%%!!!!!!!!!!!!!!J"!!%"!!%"!!!!!3!!#3!!$%p`C@j68d`S0MKV+3!!!!! | ||
2751 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$m | ||
2752 | r2cp"8&"-!!!#!&M!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2753 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!2cmr2`!!!!!!!!!!!!!!!!! | ||
2754 | !!!!!!!!!!!!!!!!!!!!!!!)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2755 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2756 | !!!d!!3!!!!!!&9p09d955e0I4e9659p`FQ9QDAJZD!!!!!!!!!!!!!!!!!%!!!! | ||
2757 | !!!!!!!%!!!!!!!!!!!!!"3%"!3!!!3%!!3!!!!!%!!!!!!!!!!!!!!!!!!!!!!% | ||
2758 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2759 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2760 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2761 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2762 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2763 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2764 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&pIFh4KFR3!!!!!!!! | ||
2765 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2766 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2767 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3!"!!!*6@9bCf8J6h9d!!!!!!!!!!!!!!! | ||
2768 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!2cmr2d& | ||
2769 | 38%`!!3%!!!3J)#!J!jHI8!0fhhJ$"Di3!!8#!3!"!3!"!3%!!!%!!!!!!!!!!3% | ||
2770 | "!3!"!3!"!!%%!!!!!!!!!!!!!!F"!3!"!!!"!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2771 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&pIFh4 | ||
2772 | KFR3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2773 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2774 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)!!!!!!!!!!!!!!!!!!!!!!! | ||
2775 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2776 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2777 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2778 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2779 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2780 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!"3!!"dp`C@j68d`!!!!!!!!!!!!!!!!!!!! | ||
2781 | !!!!!!!!!!!!r2cmr39"36!!!"!!!!!3!!!!!3!!!@-!!!!!!!!!!!!!!!!!!!!! | ||
2782 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2783 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!6mr2cm!!!!!!!!!!J! | ||
2784 | !!!)!!J!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)!8!! | ||
2785 | "!!%!!3!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2786 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2787 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2788 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2789 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2790 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"3R3dp%45FJ*d4"9%%R)#G35808*`!!!!! | ||
2791 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2792 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2793 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2794 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2795 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&!!!"!!!"Z`) | ||
2796 | "!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"3!!!J!!!E`#!3!!!!!!!3! | ||
2797 | "!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!8!!!-!!!'p!J%!!!!!!!%!!3%!!!!!!!! | ||
2798 | !!!!!!!!"!!!!!!!!!!!&!!!%!!!"[J)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3! | ||
2799 | !!!!!!!!!"3!!"3!!!Em#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!8 | ||
2800 | !!!B!!!(!!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!&!!!(!!!"`3) | ||
2801 | "!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"3!!#!!!!F)#!3!!!!!!!3! | ||
2802 | "!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!8!!!N!!!($!J%!!!!!!!%!!3%!!!!!!!! | ||
2803 | !!!!!!!!"!!!!!!!!!!!&!!!+!!!"a!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3! | ||
2804 | !!!!!!!!!"3!!#`!!!F8#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!8 | ||
2805 | !!!`!!!('!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!&!!!0!!!"a`) | ||
2806 | "!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"3!!$J!!!FJ#!3!!!!!!!3! | ||
2807 | "!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!8!!!m!!!(*!J%!!!!!!!%!!3%!!!!!!!! | ||
2808 | !!!!!!!!"!!!!!!!!!!!&!!!3!!!"bJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3! | ||
2809 | !!!!!!!!!"3!!%3!!!FX#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!8 | ||
2810 | !!")!!!(-!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!&!!!6!!!"c3) | ||
2811 | "!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"3!!&!!!!G`#!3!!!!!!!3! | ||
2812 | "!`!!!!!!!!!!!!!!!!%!!!!!!!!!!!8!!"8!!!(G!J%!!!!!!!%!!3-!!!!!!!! | ||
2813 | !!!!!!!!"!!!!!!!!!!!&!!!@!!!"hJ)"!!!!!!!"!!%$!!!!!!!!!!!!!!!!!3! | ||
2814 | !!!!!!!!!"3!!&`!!!G-#!3!!!!!!!3!"!`!!!!!!!!!!!!!!!!%!!!!!!!!!!!8 | ||
2815 | !!"J!!!(D!J%!!!!!!!%!!3-!!!!!!!!!!!!!!!!"!!!!!!!!!!!&!!!C!!!"e3) | ||
2816 | "!!!!!!!"!!%$!!!!!!!!!!!!!!!!!3!!!!!!!!!!"3!!'J!!!GB#!3!!!!!!!3! | ||
2817 | "!`!!!!!!!!!!!!!!!!%!!!!!!!!!!!8!!"X!!!(A!J%!!!!!!!%!!3-!!!!!!!! | ||
2818 | !!!!!!!!"!!!!!!!!!!!&!!!F!!!"e!)"!!!!!!!"!!%$!!!!!!!!!!!!!!!!!3! | ||
2819 | !!!!!!!!!"3!!(3!!!GJ#!3!!!!!!!3!"!`!!!!!!!!!!!!!!!!%!!!!!!!!!!!8 | ||
2820 | !!"i!!!(C!J%!!!!!!!%!!3-!!!!!!!!!!!!!!!!"!!!!!!!!!!!&!!!I!!!"h`3 | ||
2821 | "!!!!!!!!!!%$!!!!!!!!!!!!!!!!J3!!!!!!!!!!"3!!)!!!!H!#!3!!!!!!!3! | ||
2822 | "!`!!!!!!!!!!!!!!!)%!!!!!!!!!!!!!!!!!!!!"!!!!!J!!!!-!!!!%!!!!"3! | ||
2823 | !!!B!!!!(!!!!#!!!!!N!!!!+!!!!#`!!!!`!!!!0!!!!$J!!!!m!!!!3!!!!%3! | ||
2824 | !!")!!!!@!!!!'`!!!"J!!!!C!!!!'J!!!"`!!!!G!!!!&`!!!"-!!!!8!!!!&3! | ||
2825 | !!"i!!!!I!!!!)!!!!#!&!!!!"3!!)!!!!GX!!3!F!!!!!!!!!!!!!!!!!!!!!!! | ||
2826 | !!!!!!!!!"3!!!38!!!)&!!!$"3!!"!8!!!8&!!!'"3!!"`8!!!J&!!!*"3!!#J8 | ||
2827 | !!!X&!!!-"3!!$38!!!i&!!!2"3!!%!8!!"%&!!!5"3!!)!8!!"m&!!!6"3!!&!8 | ||
2828 | !!"8&!!!@"3!!(38!!"i&!!!F"3!!'!8!!"F&!!!C"3!!'J8!!"X!!J!!!!!!!!! | ||
2829 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2830 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2831 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2832 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2833 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2834 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2835 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2836 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2837 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2838 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2839 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2840 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2841 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2842 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2843 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2844 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2845 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2846 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2847 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2848 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2849 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2850 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!,#2Z!!!!!!!!!"!!,#4r!!!J!!!!!!!!! | ||
2851 | !!!!#`MD!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2852 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2853 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2854 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2855 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!J!!!3!!!!! | ||
2856 | &!!"rr`!!!!"rr`!!!!"rr`!!!!"rr`!!!!`!!3!#!!B!!!!&3!!!#!!"!!%k!!! | ||
2857 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2858 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2859 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2860 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2861 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2862 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2863 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2864 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2865 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2866 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2867 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3!!!2rrrrm!!!! | ||
2868 | $!!%!!6Sk!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2869 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2870 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2871 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2872 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2873 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2874 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2875 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2876 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2877 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2878 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!! | ||
2879 | !rrrrr`!!!!3!!3!"1MTTEQ0XG@4P1J!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2880 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2881 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2882 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2883 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2884 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2885 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2886 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2887 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2888 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2889 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2890 | !!!!!!!!!!!$rrrrr3!!!!J!"!!%k!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2891 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2892 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2893 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2894 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2895 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2896 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2897 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2898 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2899 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2900 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2901 | !!!!!!!!!!!!!!!!!!!!!!2rrrrp!!!!$!!%!!6Sk1NG98dNkD@jME(9NC6S!!!! | ||
2902 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2903 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2904 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2905 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2906 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2907 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2908 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2909 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2910 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2911 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2912 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!rrrrrd!!!!3!!3!"1MSk4e9656TXD@) | ||
2913 | k!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2914 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2915 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2916 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2917 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2918 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2919 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2920 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2921 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2922 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2923 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$rrrrr3!!!"3!#!!%k6@& | ||
2924 | M6e-J8h9`F'pbG$S!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2925 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2926 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2927 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2928 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2929 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2930 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2931 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2932 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2933 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2934 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3!!!2rrrrp!!!! | ||
2935 | '!!)!!6T08d`k!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2936 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2937 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2938 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2939 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2940 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2941 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2942 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2943 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2944 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2945 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!! | ||
2946 | !rrrrrd!!!!F!#J!!6@&M6e-J8&"$)%aTEQYPFJ!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2947 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2948 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2949 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2950 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2951 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2952 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2953 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2954 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2955 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2956 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2957 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2958 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2959 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2960 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2961 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2962 | !!!!!!!!!!!!!!!!!6'PL8e0-)&"33`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2963 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2964 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2965 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2966 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2967 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!%k!!!!!!!!!!!!!!!!!!! | ||
2968 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2969 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2970 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2971 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2972 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2973 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2974 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2975 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2976 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2977 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2978 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#!!&0B@028b"38%-J6'PZDf9 | ||
2979 | b!!!!!!!!!!!!!!!!!!!!!!!H39"36!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2980 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!!!3A"`E!! | ||
2981 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2982 | !!!!!!!!!!!!!!!!!!!"J!!!!68e-3J!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2983 | !!!!!!!!!6'PL)%PYF'pbG#"38%-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69"-4J! | ||
2984 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!6'PL)%PYF'pbG#"38%-!!!! | ||
2985 | !!!!!!!!!!!!!!!!!!!!!!!!!69G$4!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2986 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!!!8P053`! | ||
2987 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2988 | !!!!!!!!!!!!!!!!!!!"J!!!!9%9B9#jLD!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2989 | !!!!!!!!!3Q&XE'p[EL")C@a`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#j | ||
2990 | M!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp$+bXJ8&"$!!!!!!! | ||
2991 | !!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#jM+bX!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2992 | !!!!!!!!!69FJ3bp$+bXJ8&"$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#j | ||
2993 | MB`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp$+bXJ8&"$!!!!!!! | ||
2994 | !!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#jMF!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2995 | !!!!!!!!!69FJ3bp$+bXJ8&"$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#j | ||
2996 | MF(!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp$+bXJ8&"$!!!!!!! | ||
2997 | !!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#jPH(!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
2998 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#j | ||
2999 | RB`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!4f&YC80[C'8J3fpZGQ9bG'9 | ||
3000 | b!!!!!!!!!!!!!!!!!!"!!!!!9%9B9#jS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3001 | !!!!!!!!!69FJ3bp$+bXJ8&"$!!!!!!!!!!!!!!!!!!!!!!!!!!!3!!!!9%9B9#j | ||
3002 | X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!4QaPH#"3FQ9`FQpMCA0cEh) | ||
3003 | !!!!!!!!!!!!!!!!!!!#!!!!!9%9B9#j`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3004 | !!!!!!!!!69FJ8'&cBf&X)&"33`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#j | ||
3005 | `BA-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ8'&cBf&X)&"33`!!!!! | ||
3006 | !!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#j`BfJ!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3007 | !!!!!!!!!69FJ3bp$+bXJ8&"$!!!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!9%9B9#j | ||
3008 | `BfJV+`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp$+bXJ8&"$!!!!!!! | ||
3009 | !!!!!!!!!!!!!!!!!!!#!!!!!9%9B9#j`F(8!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3010 | !!!!!!!!!69FJ8'&cBf&X)&"33`!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!9%9B9#j | ||
3011 | b!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8Q9k!!!!!!!!!!!!!!!!!!! | ||
3012 | !!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#jc!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3013 | !!!!!!!!!8&"$3A0Y!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#j | ||
3014 | j!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3QPcEfiJ8(*PF(*[Bf9cFfp | ||
3015 | b!!!!!!!!!!!!!!!!!!#!!!!!@%024J!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3016 | !!!!!!!!!@%024NBJ5@e`Eh*d)&"33`!!!!!!!!!!!!!!!!!!!!!!!!!!C'pMG3! | ||
3017 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3018 | !!!!!!!!!!!!!!!!!!!"J!!!!FR0bB`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3019 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!!!FfKXBJ! | ||
3020 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8%9')%PYF'pbG#"38%-!!!! | ||
3021 | !!!!!!!!!!!!!!!!!!!!!!!!!Fh4eBJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3022 | !!!!!!!!!8%9')%PYF'pbG#"38%-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#j | ||
3023 | NEf-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3024 | !!!!!!!!!!!!!!!!!!!"3!!!!!!8"!3!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3025 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3026 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3027 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3028 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3029 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!!!! | ||
3030 | "!!!!!!8!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3031 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3032 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3033 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3034 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3035 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3036 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3037 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3038 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3039 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3040 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3041 | !!!!!!!!"!3!!E@&TEJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3042 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3043 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3044 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3045 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3046 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)!3%"!!!!!3%"!!!"!3%!!!!!!!% | ||
3047 | "!!!"!3!"!!!""!!!!!!!!!!!!!!)!3!"!3!"!3!!!!%!!!N!!aK-D@*68d`Z0MK | ||
3048 | ,)%CK+$KTAc4N+5j-D@)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3049 | !!!!!!!!r2cmr2cmr2`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3050 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$mr2cm!!!!!!!! | ||
3051 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3052 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3053 | !!!!!!!!!!!!0!!%!!!!!!"9I69G&8NY6AdG98dPIF(*PCQPi,QJ!!!!!!!!!!!! | ||
3054 | !!!!"!!!"!!!!!!!"!!!!!!!!!!!!!!8"!3%!!!%"!!%!!!!!"!!!!!!!!!!!!!! | ||
3055 | !!!!!!!!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3056 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3057 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3058 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3059 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3060 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3061 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"IAh0dBA* | ||
3062 | d!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3063 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3064 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!3!!#8ePFQGP)%peG!!!!!! | ||
3065 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3066 | !!$mr2cp"8&"-!!%"!!!%)#!J)!1ARe!$GYpi!`@Z%!!&!J%!!3%!!3%"!!!"!!! | ||
3067 | !!!!!!!%"!3%!!3%!!3!""!!!!!!!!!!!!!!(!3%!!3!!!3!!!!!!!!!!!!!!!!! | ||
3068 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3069 | !!!"IAh0dBA*d!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3070 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3071 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!!!!!!!!!! | ||
3072 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3073 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3074 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3075 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3076 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3077 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8!!`j-D@*68d`Z8&"$,NaTBJ! | ||
3078 | !!!!!!!!!!!!!!!!!!!!!2cmr2cmr2cm!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3079 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3080 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%r2cmr!!! | ||
3081 | !!!!!!!)!!!!#!!)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3082 | !!!!#!&!!!3!"!!%!!3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3083 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3084 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3085 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3086 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3087 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8*d024%8R)#G%394"*b!R8%P | ||
3088 | $9#F!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3089 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3090 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3091 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3092 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J! | ||
3093 | !!3!!!!S#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!B!!!)!!!!,!J% | ||
3094 | !!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!'!!!$!!!!$!)"!!!!!!!"!!% | ||
3095 | "!!!!!!!!!!!!!!!!!3!!!!!!!!!!"J!!"!!!!!d#!3!!!!!!!3!"!3!!!!!!!!! | ||
3096 | !!!!!!!%!!!!!!!!!!!B!!!8!!!!1!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!! | ||
3097 | !!!!!!!!'!!!'!!!!$`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"J! | ||
3098 | !"`!!!"!#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!B!!!J!!!!4!J% | ||
3099 | !!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!'!!!*!!!!%J)"!!!!!!!"!!% | ||
3100 | "!!!!!!!!!!!!!!!!!3!!!!!!!!!!"J!!#J!!!"-#!3!!!!!!!3!"!3!!!!!!!!! | ||
3101 | !!!!!!!%!!!!!!!!!!!B!!!X!!!!8!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!! | ||
3102 | !!!!!!!!'!!!-!!!!&3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"J! | ||
3103 | !$3!!!"B#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!B!!!i!!!!A!J% | ||
3104 | !!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!'!!!2!!!!'!)"!!!!!!!"!!% | ||
3105 | "!!!!!!!!!!!!!!!!!3!!!!!!!!!!"J!!%!!!!"N#!3!!!!!!!3!"!3!!!!!!!!! | ||
3106 | !!!!!!!%!!!!!!!!!!!B!!"%!!!!D!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!! | ||
3107 | !!!!!!!!'!!!5!!!!'`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"J! | ||
3108 | !%`!!!"`#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!B!!"3!!!!G!J% | ||
3109 | !!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!'!!!9!!!!(J)"!!!!!!!"!!% | ||
3110 | "!!!!!!!!!!!!!!!!!3!!!!!!!!!!"J!!&J!!!"m#!3!!!!!!!3!"!3!!!!!!!!! | ||
3111 | !!!!!!!%!!!!!!!!!!!B!!"F!!!!J!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!! | ||
3112 | !!!!!!!!'!!!B!!!!)3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"J! | ||
3113 | !'3!!!#)#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!B!!"S!!!!M!J% | ||
3114 | !!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!'!!!E!!!!*!)"!!!!!!!"!!% | ||
3115 | "!!!!!!!!!!!!!!!!!3!!!!!!!!!!"J!!(!!!!#8#!3!!!!!!!3!"!3!!!!!!!!! | ||
3116 | !!!!!!!%!!!!!!!!!!!B!!"d!!!!Q!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!! | ||
3117 | !!!!!!!!'!!!H!!!!*`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"J! | ||
3118 | !(`!!!#J#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!B!!#!!!!!T!J% | ||
3119 | !!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!'!!!K!!!!+J)"!!!!!!!"!!% | ||
3120 | "!!!!!!!!!!!!!!!!!3!!!!!!!!!!"J!!)J!!!#X#!3!!!!!!!3!"!3!!!!!!!!! | ||
3121 | !!!!!!!%!!!!!!!!!!!B!!#-!!!!X!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!! | ||
3122 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3123 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3124 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3125 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3126 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3127 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3128 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3129 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3130 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3131 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3132 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3133 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3134 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3135 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3136 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3137 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3138 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3139 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3140 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3141 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3142 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3143 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3144 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3145 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3146 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!!!!J!!!!-!!!!%!!!!"3!!!!B!!!!(!!! | ||
3147 | !#!!!!!N!!!!+!!!!#`!!!!`!!!!0!!!!$J!!!!m!!!!3!!!!%3!!!")!!!!6!!! | ||
3148 | !&!!!!"8!!!!@!!!!&`!!!"J!!!!C!!!!'J!!!"X!!!!F!!!!(3!!!"i!!!!I!!! | ||
3149 | !)!!!!#%!!!!L!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3150 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3151 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!M!!!!3!B!!!!'!!!M"J! | ||
3152 | !"3B!!!3'!!!$"J!!!JB!!!B'!!!,"J!!#JB!!!N'!!!)"J!!"`B!!!`'!!!5"J! | ||
3153 | !%3B!!"!'!!!2"J!!$3B!!!i'!!!6"J!!)JB!!#%'!!!J"J!!(`B!!#-'!!!""J! | ||
3154 | !&!B!!"8'!!!@"J!!&`B!!"J'!!!C"J!!'JB!!"X'!!!F"J!!(3B!!"i!!!'T!!% | ||
3155 | !+!!!!!!$Pj@!!!!!!!!!Irm!!!%!!!"j`!!#!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3156 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3157 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3158 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3159 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3160 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3161 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3162 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3163 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3164 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3165 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3166 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3167 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3168 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3169 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3170 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3171 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3172 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3173 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3174 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3175 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3176 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3177 | !!!!!!!!!!!!!!X)qi!!!!!!!!!%!!X*(m!!#!!!!!!!!!!!!!!,#0S!!!!!!!!! | ||
3178 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3179 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3180 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3181 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3182 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#!!!"!!!!!!8!!(rr!!!!!(rr!!! | ||
3183 | !!(rr!!!!!(rr!!!!$!!"!!)!"J!!!!9!!!!)!!%!!6S!!!!!!!!!!!!!!!!!!!! | ||
3184 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3185 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3186 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3187 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3188 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3189 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3190 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3191 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3192 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3193 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3194 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!!!rrrrr`!!!!-!!3!"1MS!!!!!!!! | ||
3195 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3196 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3197 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3198 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3199 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3200 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3201 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3202 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3203 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3204 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3205 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!!$rrrrr!!!!"!!"!!% | ||
3206 | k1QPZBfaeC'8k!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3207 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3208 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3209 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3210 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3211 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3212 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3213 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3214 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3215 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3216 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!2rrrrp | ||
3217 | !!!!#!!%!!6S!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3218 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3219 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3220 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3221 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3222 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3223 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3224 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3225 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3226 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3227 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3228 | !!!!!rrrrrd!!!!-!!3!"1MSk4e9656TTEQ0XG@4P1J!!!!!!!!!!!!!!!!!!!!! | ||
3229 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3230 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3231 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3232 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3233 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3234 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3235 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3236 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3237 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3238 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3239 | !!!!!!!!!!!!!!!$rrrrr3!!!"!!"!!%k1MT(990*1QaTBMS!!!!!!!!!!!!!!!! | ||
3240 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3241 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3242 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3243 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3244 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3245 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3246 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3247 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3248 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3249 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3250 | !!!!!!!!!!!!!!!!!!!!!!!!!!2rrrrp!!!!&!!)!!6T0B@028b"6GA"`Eh*d1J! | ||
3251 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3252 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3253 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3254 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3255 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3256 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3257 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3258 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3259 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3260 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3261 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!!!rrrrrd!!!!B!!J!"1Ne66$S!!!! | ||
3262 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3263 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3264 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3265 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3266 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3267 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3268 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3269 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3270 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3271 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3272 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!!$rrrrr3!!!"`!+!!" | ||
3273 | 0B@028b"38%-J6'PZDf9b!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3274 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3275 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3276 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3277 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3278 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3279 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3280 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3281 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3282 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3283 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3284 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3285 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3286 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3287 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3288 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" | ||
3289 | -D@*$FRP`G'mJ8&"$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3290 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3291 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3292 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3293 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3294 | !!!!!!!!!!!!!!!!!!!!!!!%!!6S!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3295 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3296 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3297 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3298 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3299 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3300 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3301 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3302 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3303 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3304 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3305 | !!!!!!!!!!!!!!!!!!!!!!!)!!8eKBdp6)&"33b"-D@jVCA)!!!!!!!!!!!!!!!! | ||
3306 | !!!!!!"j"8&"-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3307 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'!!!!""F("X!!!!!!!!!!!!!!!!!!! | ||
3308 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3309 | !!'!!!!"068a#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"-D@)J5@e | ||
3310 | `Eh*d)&"33`!!!!!!!!!!!!!!!!!!!!!!!!!!!!"08%a'!!!!!!!!!!!!!!!!!!! | ||
3311 | !!!!!!!!!!!!!!!!!!!!!!!"-D@)J5@e`Eh*d)&"33`!!!!!!!!!!!!!!!!!!!!! | ||
3312 | !!!!!!!"09d0%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3313 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'!!!!"58e*$!!!!!!!!!!!!!!!!!!! | ||
3314 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3315 | !!'!!!!"849K8,Q*S!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"#B@aXEfp | ||
3316 | Z)%KPE(!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"849K8,Q-!!!!!!!!!!!!!!!! | ||
3317 | !!!!!!!!!!!!!!!!!!!!!!!"09b"$,d-V+b"38%-!!!!!!!!!!!!!!!!!!!!!!!! | ||
3318 | !!!!!!!"849K8,Q-V+`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"09b"$,d- | ||
3319 | V+b"38%-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"849K8,Q0M!!!!!!!!!!!!!!! | ||
3320 | !!!!!!!!!!!!!!!!!!!!!!!"09b"$,d-V+b"38%-!!!!!!!!!!!!!!!!!!!!!!!! | ||
3321 | !!!!!!!"849K8,Q0`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"09b"$,d- | ||
3322 | V+b"38%-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"849K8,Q0`F!!!!!!!!!!!!!! | ||
3323 | !!!!!!!!!!!!!!!!!!!!!!!"09b"$,d-V+b"38%-!!!!!!!!!!!!!!!!!!!!!!!! | ||
3324 | !!!!!!!"849K8,Q9iF!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3325 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"849K8,QGM!!!!!!!!!!!!!!! | ||
3326 | !!!!!!!!!!!!!!!!!!!!!!!"(B@eP3fpNC5"$EfjfCA*dCA)!!!!!!!!!!!!!!!! | ||
3327 | !!%!!!!"849K8,QJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"09b"$,d- | ||
3328 | V+b"38%-!!!!!!!!!!!!!!!!!!!!!!!!!!"!!!!"849K8,Q`!!!!!!!!!!!!!!!! | ||
3329 | !!!!!!!!!!!!!!!!!!!!!!!"'E'9i)&"bCA"bEf0PFh0[FJ!!!!!!!!!!!!!!!!! | ||
3330 | !!)!!!!"849K8,R!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"09b"3BA0 | ||
3331 | MB@`J8&"$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"849K8,R"KF`!!!!!!!!!!!!! | ||
3332 | !!!!!!!!!!!!!!!!!!!!!!!"09b"3BA0MB@`J8&"$!!!!!!!!!!!!!!!!!!!!!!! | ||
3333 | !!!!!!!"849K8,R"MD!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"09b"$,d- | ||
3334 | V+b"38%-!!!!!!!!!!!!!!!!!!!!!!!!!!)!!!!"849K8,R"MD#XV!!!!!!!!!!! | ||
3335 | !!!!!!!!!!!!!!!!!!!!!!!"09b"$,d-V+b"38%-!!!!!!!!!!!!!!!!!!!!!!!! | ||
3336 | !!)!!!!"849K8,R"`G3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"09b"3BA0 | ||
3337 | MB@`J8&"$!!!!!!!!!!!!!!!!!!!!!!!!!)!!!!"849K8,R)!!!!!!!!!!!!!!!! | ||
3338 | !!!!!!!!!!!!!!!!!!!!!!!"5CAS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3339 | !!!!!!!"849K8,R-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"38%0"Ffd | ||
3340 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"849K8,RN!!!!!!!!!!!!!!!! | ||
3341 | !!!!!!!!!!!!!!!!!!!!!!!"#DA0[EL"3FQ9`FQpMCA0cEh)!!!!!!!!!!!!!!!! | ||
3342 | !!)!!!!"B3dp'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"B3dp'4L" | ||
3343 | *EA"[FR3J8&"$!!!!!!!!!!!!!!!!!!!!!!!!!!"NEf0e!!!!!!!!!!!!!!!!!!! | ||
3344 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3345 | !!'!!!!"bFh*M!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3346 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'!!!!"cD'aL!!!!!!!!!!!!!!!!!!! | ||
3347 | !!!!!!!!!!!!!!!!!!!!!!!"348BJ5@e`Eh*d)&"33`!!!!!!!!!!!!!!!!!!!!! | ||
3348 | !!!!!!!"cG(9L!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"348BJ5@e | ||
3349 | `Eh*d)&"33`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!,Q4[B`!!!!!!!!!!!!! | ||
3350 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3351 | !!&!!!!!!"3%"!!%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3352 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3353 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3354 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3355 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3356 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'!!!!!!%!!!!!"3!!!!!!!!! | ||
3357 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3358 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3359 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3360 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3361 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3362 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3363 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3364 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3365 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3366 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3367 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%"!!"YB@P | ||
3368 | Z!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3369 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3370 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3371 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3372 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3373 | !!!!!!!!!!!!!!!!!!!J"!!%!!!!"!3%"!3!"!3!!!!!!!3%!!!%"!!%!!!%!!3! | ||
3374 | !!!!!!!!!!!J"!!%"!!%"!!!!!3!!#3!!&deKBdp6)&4[EfaLEhJJ4%9#98FJ0MK | ||
3375 | ,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$mr2cp"8&" | ||
3376 | -!!!"J&M!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3377 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!2cmr2`!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3378 | !!!!!!!!!!!!!!!'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3379 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!d!!3! | ||
3380 | !!!!!&9p09d955e0I4e9659p`FQ9QDAJZD!!!!!!!!!!!!!!!!!%!!!%!!!!!!!% | ||
3381 | !!!!!!!!!!!!!"3%"!3!!!3%!!3!!!!!%!!!!!!!!!!!!!!!!!!!!!!%!!!!!!!! | ||
3382 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3383 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3384 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3385 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3386 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3387 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3388 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&pIFh4KFR3!!!!!!!!!!!!!!!! | ||
3389 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3390 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3391 | !!!!!!!!!!!!!!!!!!!!!!3!"!!!*6@9bCf8J6h9d!!!!!!!!!!!!!!!!!!!!!!! | ||
3392 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!2cmr2d&38%`!!3% | ||
3393 | !!!3J)#!J!jHI8!0fhhJ$"Di3!!8#!3!"!3!"!3%!!!%!!!!!!!!!!3%"!3!"!3! | ||
3394 | "!!%%!!!!!!!!!!!!!!F"!3!"!!!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3395 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&pIFh4KFR3!!!! | ||
3396 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3397 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3398 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3399 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3400 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3401 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3402 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3403 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3404 | !!!!!!!!!!!!!!!!!!!!!"3!$%8aTBN0bHA"dEbj38%-Z6'PL!!!!!!!!!!!!!!! | ||
3405 | !!!!r2cmr2cmr2`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3406 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3407 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!6mr2cm!!!!!!!!!!J!!!!)!!J! | ||
3408 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)!8!!"!!%!!3! | ||
3409 | "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3410 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3411 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3412 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3413 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3414 | !!!!!!!!!!!!!!!!!!!!!!"3R3dp%45FJ*d4"9%%R)#G35808*`!!!!!!!!!!!!! | ||
3415 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3416 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3417 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3418 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3419 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(!!!"!!!!,3)"!!!!!!! | ||
3420 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!!J!!!#i#!3!!!!!!!3!"!3!!!!! | ||
3421 | !!!!!!!!!!!%!!!!!!!!!!!F!!!-!!!![!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
3422 | "!!!!!!!!!!!(!!!%!!!!-!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
3423 | !"`!!"3!!!$%#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!!B!!!! | ||
3424 | b!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!!(!!!!-`)"!!!!!!! | ||
3425 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!#!!!!$3#!3!!!!!!!3!"!3!!!!! | ||
3426 | !!!!!!!!!!!%!!!!!!!!!!!F!!!N!!!!e!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
3427 | "!!!!!!!!!!!(!!!+!!!!0J)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
3428 | !"`!!#`!!!$F#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!!`!!!! | ||
3429 | i!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!!0!!!!13)"!!!!!!! | ||
3430 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!$J!!!$S#!3!!!!!!!3!"!3!!!!! | ||
3431 | !!!!!!!!!!!%!!!!!!!!!!!F!!!m!!!!l!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
3432 | "!!!!!!!!!!!(!!!3!!!!2!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
3433 | !"`!!%3!!!$d#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!")!!!! | ||
3434 | q!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!!6!!!!2`)"!!!!!!! | ||
3435 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!&!!!!%!#!3!!!!!!!3!"!3!!!!! | ||
3436 | !!!!!!!!!!!%!!!!!!!!!!!F!!"8!!!""!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
3437 | "!!!!!!!!!!!(!!!@!!!!3J)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
3438 | !"`!!&`!!!%-#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!"J!!!" | ||
3439 | %!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!!C!!!!43)"!!!!!!! | ||
3440 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!'J!!!%B#!3!!!!!!!3!"!3!!!!! | ||
3441 | !!!!!!!!!!!%!!!!!!!!!!!F!!"X!!!"(!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
3442 | "!!!!!!!!!!!(!!!F!!!!5!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
3443 | !"`!!(3!!!%N#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!"i!!!" | ||
3444 | +!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!!I!!!!5`)"!!!!!!! | ||
3445 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!)!!!!%`#!3!!!!!!!3!"!3!!!!! | ||
3446 | !!!!!!!!!!!%!!!!!!!!!!!F!!#%!!!"0!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
3447 | "!!!!!!!!!!!(!!!L!!!!6J)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
3448 | !"`!!)`!!!%m#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!#3!!!" | ||
3449 | 3!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!!P!!!!83)"!!!!!!! | ||
3450 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!*J!!!&)#!3!!!!!!!3!"!3!!!!! | ||
3451 | !!!!!!!!!!!%!!!!!!!!!!!F!!#F!!!"6!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
3452 | "!!!!!!!!!!!(!!!S!!!!9!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
3453 | !"`!!+3!!!&8#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!#S!!!" | ||
3454 | @!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!!V!!!!9`)"!!!!!!! | ||
3455 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!,!!!!&J#!3!!!!!!!3!"!3!!!!! | ||
3456 | !!!!!!!!!!!%!!!!!!!!!!!F!!#d!!!"C!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
3457 | "!!!!!!!!!!!(!!!Z!!!!@J)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
3458 | !"`!!,`!!!&X#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!$!!!!" | ||
3459 | F!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!!a!!!!A3)"!!!!!!! | ||
3460 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!-J!!!&i#!3!!!!!!!3!"!3!!!!! | ||
3461 | !!!!!!!!!!!%!!!!!!!!!!!F!!$-!!!"I!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
3462 | "!!!!!!!!!!!(!!!d!!!!B!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
3463 | !"`!!03!!!'%#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!$B!!!" | ||
3464 | L!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!!h!!!!B`)"!!!!!!! | ||
3465 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!1!!!!'3#!3!!!!!!!3!"!3!!!!! | ||
3466 | !!!!!!!!!!!%!!!!!!!!!!!F!!$N!!!"P!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
3467 | "!!!!!!!!!!!(!!!k!!!!CJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
3468 | !"`!!1`!!!'F#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!$`!!!" | ||
3469 | S!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!!p!!!!D3)"!!!!!!! | ||
3470 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!2J!!!'S#!3!!!!!!!3!"!3!!!!! | ||
3471 | !!!!!!!!!!!%!!!!!!!!!!!F!!$m!!!"V!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
3472 | "!!!!!!!!!!!(!!"!!!!!E!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
3473 | !"`!!33!!!'d#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!%)!!!" | ||
3474 | Z!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!"$!!!!E`)"!!!!!!! | ||
3475 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!4!!!!(!#!3!!!!!!!3!"!3!!!!! | ||
3476 | !!!!!!!!!!!%!!!!!!!!!!!F!!%8!!!"a!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
3477 | "!!!!!!!!!!!(!!"'!!!!FJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
3478 | !"`!!4`!!!(-#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!%J!!!" | ||
3479 | d!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!"*!!!!G3)"!!!!!!! | ||
3480 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!5J!!!(B#!3!!!!!!!3!"!3!!!!! | ||
3481 | !!!!!!!!!!!%!!!!!!!!!!!F!!%X!!!"h!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
3482 | "!!!!!!!!!!!(!!"-!!!!H!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
3483 | !"`!!63!!!(N#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!%i!!!" | ||
3484 | k!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!"2!!!!H`)"!!!!!!! | ||
3485 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!8!!!!(`#!3!!!!!!!3!"!3!!!!! | ||
3486 | !!!!!!!!!!!%!!!!!!!!!!!F!!&%!!!"p!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
3487 | "!!!!!!!!!!!(!!"5!!!!IJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
3488 | !"`!!8`!!!(m#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!&3!!!# | ||
3489 | !!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!"9!!!!J3)"!!!!!!! | ||
3490 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!9J!!!))#!3!!!!!!!3!"!3!!!!! | ||
3491 | !!!!!!!!!!!%!!!!!!!!!!!F!!&F!!!#$!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
3492 | "!!!!!!!!!!!(!!"B!!!!K!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
3493 | !"`!!@3!!!)8#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!&S!!!# | ||
3494 | '!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!"E!!!!K`)"!!!!!!! | ||
3495 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!A!!!!)J#!3!!!!!!!3!"!3!!!!! | ||
3496 | !!!!!!!!!!!%!!!!!!!!!!!F!!&d!!!#*!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
3497 | "!!!!!!!!!!!(!!"H!!!!LJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
3498 | !"`!!A`!!!)X#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!'!!!!# | ||
3499 | -!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!"K!!!!M3)"!!!!!!! | ||
3500 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!BJ!!!)i#!3!!!!!!!3!"!3!!!!! | ||
3501 | !!!!!!!!!!!%!!!!!!!!!!!F!!'-!!!#2!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
3502 | "!!!!!!!!!!!(!!"N!!!!N!!#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!! | ||
3503 | !!!F!!'8!!!#4!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!"Q!!! | ||
3504 | !NJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!C`!!!*-#!3!!!!! | ||
3505 | !!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!'J!!!#8!J%!!!!!!!%!!3%!!!! | ||
3506 | !!!!!!!!!!!!"!!!!!!!!!!!(!!"T!!!!P3)"!!!!!!!"!!%"!!!!!!!!!!!!!!! | ||
3507 | !!3!!!!!!!!!!"`!!DJ!!!*B#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!! | ||
3508 | !!!F!!'X!!!#A!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!"X!!! | ||
3509 | !Q!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!E3!!!*N#!3!!!!! | ||
3510 | !!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!'i!!!#D!J%!!!!!!!%!!3%!!!! | ||
3511 | !!!!!!!!!!!!"!!!!!!!!!!!(!!"[!!!!Q`)"!!!!!!!"!!%"!!!!!!!!!!!!!!! | ||
3512 | !!3!!!!!!!!!!"`!!F!!!!*`#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!! | ||
3513 | !!!F!!(%!!!#G!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!"b!!! | ||
3514 | !RJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!F`!!!*m#!3!!!!! | ||
3515 | !!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!(3!!!#J!J%!!!!!!!%!!3%!!!! | ||
3516 | !!!!!!!!!!!!"!!!!!!!!!!!(!!"e!!!!S3)"!!!!!!!"!!%"!!!!!!!!!!!!!!! | ||
3517 | !!3!!!!!!!!!!"`!!GJ!!!+)#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!! | ||
3518 | !!!F!!(F!!!#M!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!"i!!! | ||
3519 | !T!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!H3!!!+8#!3!!!!! | ||
3520 | !!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!(S!!!#Q!J%!!!!!!!%!!3%!!!! | ||
3521 | !!!!!!!!!!!!"!!!!!!!!!!!(!!"l!!!!T`)"!!!!!!!"!!%"!!!!!!!!!!!!!!! | ||
3522 | !!3!!!!!!!!!!"`!!I!!!!+J#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!! | ||
3523 | !!!F!!(d!!!#T!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!"q!!! | ||
3524 | !UJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!I`!!!+X#!3!!!!! | ||
3525 | !!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!)!!!!#X!J%!!!!!!!%!!3%!!!! | ||
3526 | !!!!!!!!!!!!"!!!!!!!!!!!(!!#"!!!!V3)"!!!!!!!"!!%"!!!!!!!!!!!!!!! | ||
3527 | !!3!!!!!!!!!!"`!!JJ!!!+i#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!! | ||
3528 | !!!F!!)-!!!#[!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!#%!!! | ||
3529 | !X!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!K3!!!,%#!3!!!!! | ||
3530 | !!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!)B!!!#b!J%!!!!!!!%!!3%!!!! | ||
3531 | !!!!!!!!!!!!"!!!!!!!!!!!(!!#(!!!!X`)"!!!!!!!"!!%"!!!!!!!!!!!!!!! | ||
3532 | !!3!!!!!!!!!!"`!!L!!!!,3#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!! | ||
3533 | !!!F!!)N!!!#e!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!#+!!! | ||
3534 | !YJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!L`!!!,F#!3!!!!! | ||
3535 | !!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!)`!!!#i!J%!!!!!!!%!!3%!!!! | ||
3536 | !!!!!!!!!!!!"!!!!!!!!!!!(!!#0!!!!Z3)"!!!!!!!"!!%"!!!!!!!!!!!!!!! | ||
3537 | !!3!!!!!!!!!!"`!!MJ!!!,S#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!! | ||
3538 | !!!F!!)m!!!#l!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!#3!!! | ||
3539 | !!,`#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!*%!!!#p!J%!!!! | ||
3540 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!#5!!!![J)"!!!!!!!"!!%"!!! | ||
3541 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!!N`!!!,m#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3542 | !!!%!!!!!!!!!!!F!!*3!!!$!!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3543 | !!!!(!!#9!!!!`3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!PJ! | ||
3544 | !!-)#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!*F!!!$$!J%!!!! | ||
3545 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!#B!!!!a!)"!!!!!!!"!!%"!!! | ||
3546 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!!Q3!!!-8#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3547 | !!!%!!!!!!!!!!!F!!*S!!!$'!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3548 | !!!!(!!#E!!!!a`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!R!! | ||
3549 | !!-J#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!*d!!!$*!J%!!!! | ||
3550 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!#H!!!!bJ)"!!!!!!!"!!%"!!! | ||
3551 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!!R`!!!-X#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3552 | !!!%!!!!!!!!!!!F!!+!!!!$-!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3553 | !!!!(!!#K!!!!c3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!SJ! | ||
3554 | !!-i#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!+-!!!$2!J%!!!! | ||
3555 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!#N!!!!d!)"!!!!!!!"!!%"!!! | ||
3556 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!!T3!!!0%#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3557 | !!!%!!!!!!!!!!!F!!+B!!!$5!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3558 | !!!!(!!#R!!!!d`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!U!! | ||
3559 | !!03#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!+N!!!$9!J%!!!! | ||
3560 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!#U!!!!eJ)"!!!!!!!"!!%"!!! | ||
3561 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!!U`!!!0F#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3562 | !!!%!!!!!!!!!!!F!!+`!!!$B!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3563 | !!!!(!!#Y!!!!f3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!VJ! | ||
3564 | !!0S#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!+m!!!$E!J%!!!! | ||
3565 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!#`!!!!h!)"!!!!!!!"!!%"!!! | ||
3566 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!!X3!!!0d#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3567 | !!!%!!!!!!!!!!!F!!,)!!!$H!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3568 | !!!!(!!#c!!!!h`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!Y!! | ||
3569 | !!1!#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!,8!!!$K!J%!!!! | ||
3570 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!#f!!!!iJ)"!!!!!!!"!!%"!!! | ||
3571 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!!Y`!!!1-#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3572 | !!!%!!!!!!!!!!!F!!,J!!!$N!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3573 | !!!!(!!#j!!!!j3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!ZJ! | ||
3574 | !!1B#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!,X!!!$R!J%!!!! | ||
3575 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!#m!!!!k!)"!!!!!!!"!!%"!!! | ||
3576 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!![3!!!1N#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3577 | !!!%!!!!!!!!!!!F!!,i!!!$U!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3578 | !!!!(!!#r!!!!k`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!`!! | ||
3579 | !!1`#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!-%!!!$Y!J%!!!! | ||
3580 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!$#!!!!lJ)"!!!!!!!"!!%"!!! | ||
3581 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!!``!!!1m#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3582 | !!!%!!!!!!!!!!!F!!-3!!!$`!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3583 | !!!!(!!$&!!!!m3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!aJ! | ||
3584 | !!2)#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!-F!!!$c!J%!!!! | ||
3585 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!$)!!!!p!)"!!!!!!!"!!%"!!! | ||
3586 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!!b3!!!28#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3587 | !!!%!!!!!!!!!!!F!!-S!!!$f!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3588 | !!!!(!!$,!!!!p`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!c!! | ||
3589 | !!2J#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!-d!!!$j!J%!!!! | ||
3590 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!$1!!!!qJ)"!!!!!!!"!!%"!!! | ||
3591 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!!c`!!!2X#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3592 | !!!%!!!!!!!!!!!F!!0!!!!$m!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3593 | !!!!(!!$4!!!!r3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!dJ! | ||
3594 | !!2i#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!0-!!!$r!J%!!!! | ||
3595 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!$8!!!"!!)"!!!!!!!"!!%"!!! | ||
3596 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!!e3!!!3%#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3597 | !!!%!!!!!!!!!!!F!!0B!!!%#!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3598 | !!!!(!!$A!!!"!`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!f!! | ||
3599 | !!33#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!0N!!!%&!J%!!!! | ||
3600 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!$D!!!""J)"!!!!!!!"!!%"!!! | ||
3601 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!!f`!!!3F#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3602 | !!!%!!!!!!!!!!!F!!0`!!!%)!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3603 | !!!!(!!$G!!!"#3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!hJ! | ||
3604 | !!3S#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!0m!!!%,!J%!!!! | ||
3605 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!$J!!!"$!)"!!!!!!!"!!%"!!! | ||
3606 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!!i3!!!3d#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3607 | !!!%!!!!!!!!!!!F!!1)!!!%1!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3608 | !!!!(!!$M!!!"$`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!j!! | ||
3609 | !!4!#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!18!!!%4!J%!!!! | ||
3610 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!$Q!!!"%J)"!!!!!!!"!!%"!!! | ||
3611 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!!j`!!!4-#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3612 | !!!%!!!!!!!!!!!F!!1J!!!%8!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3613 | !!!!(!!$T!!!"&3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!kJ! | ||
3614 | !!4B#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!1X!!!%A!J%!!!! | ||
3615 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!$X!!!"'!)"!!!!!!!"!!%"!!! | ||
3616 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!!l3!!!4N#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3617 | !!!%!!!!!!!!!!!F!!1i!!!%D!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3618 | !!!!(!!$[!!!"'`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!m!! | ||
3619 | !!4`#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!2%!!!%G!J%!!!! | ||
3620 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!$b!!!"(J)"!!!!!!!"!!%"!!! | ||
3621 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!!m`!!!4m#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3622 | !!!%!!!!!!!!!!!F!!23!!!%J!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3623 | !!!!(!!$e!!!")3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!pJ! | ||
3624 | !!5)#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!2F!!!%M!J%!!!! | ||
3625 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!$i!!!"*!)"!!!!!!!"!!%"!!! | ||
3626 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!!q3!!!58#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3627 | !!!%!!!!!!!!!!!F!!2S!!!%Q!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3628 | !!!!(!!$l!!!"*`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!!r!! | ||
3629 | !!5J#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!2d!!!%T!J%!!!! | ||
3630 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!$q!!!"+J)"!!!!!!!"!!%"!!! | ||
3631 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!!r`!!!5X#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3632 | !!!%!!!!!!!!!!!F!!3!!!!%X!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3633 | !!!!(!!%"!!!",3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!"!J! | ||
3634 | !!5i#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!3-!!!%[!J%!!!! | ||
3635 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!%%!!!"-!)"!!!!!!!"!!%"!!! | ||
3636 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!""3!!!6%#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3637 | !!!%!!!!!!!!!!!F!!3B!!!%b!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3638 | !!!!(!!%(!!!"-`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!"#!! | ||
3639 | !!63#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!3N!!!%e!J%!!!! | ||
3640 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!%+!!!"0J)"!!!!!!!"!!%"!!! | ||
3641 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!"#`!!!6F#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3642 | !!!%!!!!!!!!!!!F!!3`!!!%i!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3643 | !!!!(!!%0!!!"13)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!"$J! | ||
3644 | !!6S#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!3m!!!%l!J%!!!! | ||
3645 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!%3!!!"2!)"!!!!!!!"!!%"!!! | ||
3646 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!"%3!!!6d#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3647 | !!!%!!!!!!!!!!!F!!4)!!!%q!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3648 | !!!!(!!%6!!!"2`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!"&!! | ||
3649 | !!8!#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!48!!!&"!J%!!!! | ||
3650 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!%@!!!"3J)"!!!!!!!"!!%"!!! | ||
3651 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!"&`!!!8-#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3652 | !!!%!!!!!!!!!!!F!!4J!!!&%!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3653 | !!!!(!!%C!!!"43)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!"'J! | ||
3654 | !!8B#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!4X!!!&(!J%!!!! | ||
3655 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!%F!!!"5!)"!!!!!!!"!!%"!!! | ||
3656 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!"(3!!!8N#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3657 | !!!%!!!!!!!!!!!F!!4i!!!&+!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3658 | !!!!(!!%I!!!"5`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!")!! | ||
3659 | !!8`#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!5%!!!&0!J%!!!! | ||
3660 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!%L!!!"6J)"!!!!!!!"!!%"!!! | ||
3661 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!")`!!!8m#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3662 | !!!%!!!!!!!!!!!F!!53!!!&3!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3663 | !!!!(!!%P!!!"83)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!"*J! | ||
3664 | !!9)#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!5F!!!&6!J%!!!! | ||
3665 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!%S!!!"9!)"!!!!!!!"!!%"!!! | ||
3666 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!"+3!!!98#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3667 | !!!%!!!!!!!!!!!F!!5S!!!&@!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3668 | !!!!(!!%V!!!"9`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!",!! | ||
3669 | !!9J#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!5d!!!&C!J%!!!! | ||
3670 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!%Z!!!"@J)"!!!!!!!"!!%"!!! | ||
3671 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!",`!!!9X#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3672 | !!!%!!!!!!!!!!!F!!6!!!!&F!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3673 | !!!!(!!%a!!!"A3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!"-J! | ||
3674 | !!9i#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!6-!!!&I!J%!!!! | ||
3675 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!%d!!!"B!)"!!!!!!!"!!%"!!! | ||
3676 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!"03!!!@%#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3677 | !!!%!!!!!!!!!!!F!!6B!!!&L!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3678 | !!!!(!!%h!!!"B`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!"1!! | ||
3679 | !!@3#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!6N!!!&P!J%!!!! | ||
3680 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!%k!!!"CJ)"!!!!!!!"!!%"!!! | ||
3681 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!"1`!!!@F#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3682 | !!!%!!!!!!!!!!!F!!6`!!!&S!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3683 | !!!!(!!%p!!!"D3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!"2J! | ||
3684 | !!@S#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!6m!!!&V!J%!!!! | ||
3685 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!&!!!!"E!)"!!!!!!!"!!%"!!! | ||
3686 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!"33!!!@d#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3687 | !!!%!!!!!!!!!!!F!!8)!!!&Z!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3688 | !!!!(!!&$!!!"E`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!"4!! | ||
3689 | !!A!#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!88!!!&a!J%!!!! | ||
3690 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!&'!!!"FJ)"!!!!!!!"!!%"!!! | ||
3691 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!"4`!!!A-#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3692 | !!!%!!!!!!!!!!!F!!8J!!!&d!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3693 | !!!!(!!&*!!!"G3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!"5J! | ||
3694 | !!AB#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!8X!!!&h!J%!!!! | ||
3695 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!&-!!!"H!)"!!!!!!!"!!%"!!! | ||
3696 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!"63!!!AN#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3697 | !!!%!!!!!!!!!!!F!!8i!!!&k!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3698 | !!!!(!!&2!!!"H`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!"8!! | ||
3699 | !!A`#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!9%!!!&p!J%!!!! | ||
3700 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!&5!!!"IJ)"!!!!!!!"!!%"!!! | ||
3701 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!"8`!!!B!#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3702 | !!!%!!!!!!!!!!!F!!93!!!'"!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3703 | !!!!(!!&9!!!"JJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!"9J! | ||
3704 | !!B-#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!9F!!!'%!J%!!!! | ||
3705 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!&B!!!"K3)"!!!!!!!"!!%"!!! | ||
3706 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!"@3!!!BB#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3707 | !!!%!!!!!!!!!!!F!!9S!!!'(!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3708 | !!!!(!!&E!!!"L!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!"A!! | ||
3709 | !!BN#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!9d!!!'+!J%!!!! | ||
3710 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!&H!!!"L`)"!!!!!!!"!!%"!!! | ||
3711 | !!!!!!!!!!!!!!3!!!!!!!!!!"`!"A`!!!B`#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
3712 | !!!%!!!!!!!!!!!F!!@!!!!'0!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
3713 | !!!!(!!&K!!!"MJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!"BJ! | ||
3714 | !!Bm#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!@-!!!'3!!)"!!! | ||
3715 | !!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!"C!!!!C%#!3!!!!!!!3!"!3! | ||
3716 | !!!!!!!!!!!!!!!%!!!!!!!!!!!F!!@8!!!'5!J%!!!!!!!%!!3%!!!!!!!!!!!! | ||
3717 | !!!!"!!!!!!!!!!!(!!&Q!!!"N`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!! | ||
3718 | !!!!!"`!"C`!!!C3#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!@J | ||
3719 | !!!'9!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!&T!!!"PJ)"!!! | ||
3720 | !!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!"DJ!!!CF#!3!!!!!!!3!"!3! | ||
3721 | !!!!!!!!!!!!!!!%!!!!!!!!!!!F!!@X!!!'B!J%!!!!!!!%!!3%!!!!!!!!!!!! | ||
3722 | !!!!"!!!!!!!!!!!(!!&X!!!"Q3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!! | ||
3723 | !!!!!"`!"E3!!!CS#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!@i | ||
3724 | !!!'E!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!&[!!!"R!)"!!! | ||
3725 | !!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!"`!"F!!!!Cd#!3!!!!!!!3!"!3! | ||
3726 | !!!!!!!!!!!!!!!%!!!!!!!!!!!F!!A%!!!'H!J%!!!!!!!%!!3%!!!!!!!!!!!! | ||
3727 | !!!!"!!!!!!!!!!!(!!&b!!!"R`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!! | ||
3728 | !!!!!"`!"F`!!!D3#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!F!!A3 | ||
3729 | !!!'Q!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!(!!&e!!!"T`)"!!! | ||
3730 | !!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3731 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3732 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3733 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3734 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3735 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3736 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3737 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3738 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3739 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3!!!!) | ||
3740 | !!!!$!!!!"!!!!!8!!!!'!!!!"`!!!!J!!!!*!!!!#J!!!!X!!!!-!!!!$3!!!!i | ||
3741 | !!!!2!!!!%!!!!"%!!!!5!!!!%`!!!"3!!!!9!!!!&J!!!"F!!!!B!!!!'3!!!"S | ||
3742 | !!!!E!!!!(!!!!"d!!!!H!!!!(`!!!#!!!!!K!!!!)J!!!#-!!!!N!!!!*3!!!#B | ||
3743 | !!!!R!!!!+!!!!#N!!!!U!!!!+`!!!#`!!!!Y!!!!,J!!!#m!!!!`!!!!-3!!!$) | ||
3744 | !!!!c!!!!0!!!!$8!!!!f!!!!0`!!!$J!!!!j!!!!1J!!!$X!!!!m!!!!23!!!$i | ||
3745 | !!!!r!!!!3!!!!%%!!!"#!!!!3`!!!%3!!!"&!!!!4J!!!%F!!!")!!!!53!!!%S | ||
3746 | !!!",!!!!6!!!!%d!!!"1!!!!6`!!!&!!!!"4!!!!8J!!!&-!!!"8!!!!93!!!&B | ||
3747 | !!!"A!!!!@!!!!&N!!!"D!!!!@`!!!&`!!!"G!!!!AJ!!!&m!!!"J!!!!B3!!!') | ||
3748 | !!!"M!!!!C!!!!'8!!!"Q!!!!C`!!!'J!!!"T!!!!DJ!!!'X!!!"X!!!!E3!!!'i | ||
3749 | !!!"[!!!!F!!!!(%!!!"b!!!!F`!!!(3!!!"e!!!!GJ!!!(F!!!"i!!!!H3!!!(S | ||
3750 | !!!"l!!!!I!!!!(d!!!"q!!!!I`!!!)!!!!#"!!!!JJ!!!)-!!!#%!!!!K3!!!)B | ||
3751 | !!!#(!!!!L!!!!)N!!!#+!!!!L`!!!)`!!!#0!!!!MJ!!!)m!!!#3!!!!!*%!!!# | ||
3752 | 5!!!!N`!!!*3!!!#9!!!!PJ!!!*F!!!#B!!!!Q3!!!*S!!!#E!!!!R!!!!*d!!!# | ||
3753 | H!!!!R`!!!+!!!!#K!!!!SJ!!!+-!!!#N!!!!T3!!!+B!!!#R!!!!U!!!!+N!!!# | ||
3754 | U!!!!U`!!!+`!!!#Y!!!!VJ!!!+m!!!#`!!!!X3!!!,)!!!#c!!!!Y!!!!,8!!!# | ||
3755 | f!!!!Y`!!!,J!!!#j!!!!ZJ!!!,X!!!#m!!!![3!!!,i!!!#r!!!!`!!!!-%!!!$ | ||
3756 | #!!!!``!!!-3!!!$&!!!!aJ!!!-F!!!$)!!!!b3!!!-S!!!$,!!!!c!!!!-d!!!$ | ||
3757 | 1!!!!c`!!!0!!!!$4!!!!dJ!!!0-!!!$8!!!!e3!!!0B!!!$A!!!!f!!!!0N!!!$ | ||
3758 | D!!!!f`!!!0`!!!$G!!!!hJ!!!0m!!!$J!!!!i3!!!1)!!!$M!!!!j!!!!18!!!$ | ||
3759 | Q!!!!j`!!!1J!!!$T!!!!kJ!!!1X!!!$X!!!!l3!!!1i!!!$[!!!!m!!!!2%!!!$ | ||
3760 | b!!!!m`!!!23!!!$e!!!!pJ!!!2F!!!$i!!!!q3!!!2S!!!$l!!!!r!!!!2d!!!$ | ||
3761 | q!!!!r`!!!3!!!!%"!!!"!J!!!3-!!!%%!!!""3!!!3B!!!%(!!!"#!!!!3N!!!% | ||
3762 | +!!!"#`!!!3`!!!%0!!!"$J!!!3m!!!%3!!!"%3!!!4)!!!%6!!!"&!!!!48!!!% | ||
3763 | @!!!"&`!!!4J!!!%C!!!"'J!!!4X!!!%F!!!"(3!!!4i!!!%I!!!")!!!!5%!!!% | ||
3764 | L!!!")`!!!53!!!%P!!!"*J!!!5F!!!%S!!!"+3!!!5S!!!%V!!!",!!!!5d!!!% | ||
3765 | Z!!!",`!!!6!!!!%a!!!"-J!!!6-!!!%d!!!"03!!!6B!!!%h!!!"1!!!!6N!!!% | ||
3766 | k!!!"1`!!!6`!!!%p!!!"2J!!!6m!!!&!!!!"33!!!8)!!!&$!!!"4!!!!88!!!& | ||
3767 | '!!!"4`!!!8J!!!&*!!!"5J!!!8X!!!&-!!!"63!!!8i!!!&2!!!"8!!!!9%!!!& | ||
3768 | 5!!!"8`!!!93!!!&9!!!"9J!!!9F!!!&B!!!"@3!!!9S!!!&E!!!"A!!!!9d!!!& | ||
3769 | H!!!"A`!!!@!!!!&K!!!"BJ!!!@-!!!&N!!!"C3!!!@B!!!&R!!!"D!!!!@N!!!& | ||
3770 | U!!!"D`!!!@`!!!&Y!!!"EJ!!!@m!!!&`!!!"F3!!!A)!!!&c!!!"G!!!!!!!!!! | ||
3771 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"G3!!!B!(!!! | ||
3772 | !"`!"G3F!!!%(!!!#"`!!!`F!!!3(!!!&"`!!"JF!!!F(!!!)"`!!#3F!!!S(!!! | ||
3773 | ,"`!!$!F!!!d(!!!1"`!!$`F!!"!(!!!4"`!!%JF!!"-(!!!8"`!!&3F!!"B(!!! | ||
3774 | A"`!!'!F!!"N(!!!D"`!!'`F!!"`(!!!G"`!!(JF!!"m(!!!J"`!!)3F!!#)(!!! | ||
3775 | M"`!!*!F!!#8(!!!Q"`!!*`F!!#J(!!!T"`!!+JF!!#X(!!!X"`!!,3F!!#i(!!! | ||
3776 | ["`!!-!F!!$%(!!!b"`!!-`F!!$3(!!!e"`!!0JF!!$F(!!!i"`!!13F!!$S(!!! | ||
3777 | l"`!!2!F!!$d(!!!q"`!!2`F!!%!(!!"""`!!3JF!!%-(!!"%"`!!43F!!%B(!!" | ||
3778 | ("`!!5!F!!%N(!!"+"`!!5`F!!%`(!!"0"`!!6JF!!%m(!!"3"`!!83F!!&)(!!" | ||
3779 | 6"`!!9!F!!&8(!!"@"`!!9`F!!&J(!!"C"`!!@JF!!&X(!!"F"`!!A3F!!&i(!!" | ||
3780 | I"`!!B!F!!'%(!!"L"`!"G!F!!'-(!!"N"`!!C3F!!'B(!!"R"`!!D!F!!'N(!!" | ||
3781 | U"`!!D`F!!'`(!!"Y"`!!EJF!!'m(!!"`"`!!F3F!!()(!!"c"`!!G!F!!(8(!!" | ||
3782 | f"`!!G`F!!(J(!!"j"`!!HJF!!(X(!!"m"`!!I3F!!(i(!!"r"`!!J!F!!)%(!!# | ||
3783 | #"`!!J`F!!)3(!!#&"`!!KJF!!)F(!!#)"`!!L3F!!)S(!!#,"`!!M!F!!)d(!!# | ||
3784 | 1"`!!M`F!!*!!"`!!N3F!!*)(!!#6"`!!P!F!!*8(!!#@"`!!P`F!!*J(!!#C"`! | ||
3785 | !QJF!!*X(!!#F"`!!R3F!!*i(!!#I"`!!S!F!!+%(!!#L"`!!S`F!!+3(!!#P"`! | ||
3786 | !TJF!!+F(!!#S"`!!U3F!!+S(!!#V"`!!V!F!!+d(!!#Z"`!!V`F!!,!(!!#a"`! | ||
3787 | !XJF!!,-(!!#d"`!!Y3F!!,B(!!#h"`!!Z!F!!,N(!!#k"`!!Z`F!!,`(!!#p"`! | ||
3788 | ![JF!!,m(!!$!"`!!`3F!!-)(!!$$"`!!a!F!!-8(!!$'"`!!a`F!!-J(!!$*"`! | ||
3789 | !bJF!!-X(!!$-"`!!c3F!!-i(!!$2"`!!d!F!!0%(!!$5"`!!d`F!!03(!!$9"`! | ||
3790 | !eJF!!0F(!!$B"`!!f3F!!0S(!!$E"`!!h!F!!0d(!!$H"`!!h`F!!1!(!!$K"`! | ||
3791 | !iJF!!1-(!!$N"`!!j3F!!1B(!!$R"`!!k!F!!1N(!!$U"`!!k`F!!1`(!!$Y"`! | ||
3792 | !lJF!!1m(!!$`"`!!m3F!!2)(!!$c"`!!p!F!!28(!!$f"`!!p`F!!2J(!!$j"`! | ||
3793 | !qJF!!2X(!!$m"`!!r3F!!2i(!!$r"`!"!!F!!3%(!!%#"`!"!`F!!33(!!%&"`! | ||
3794 | ""JF!!3F(!!%)"`!"#3F!!3S(!!&e"`!"#`F!!3`(!!%0"`!"$JF!!3m(!!%3"`! | ||
3795 | "%3F!!4)(!!%6"`!"&!F!!48(!!%@"`!"&`F!!4J(!!%C"`!"'JF!!4X(!!%F"`! | ||
3796 | "(3F!!4i(!!%I"`!")!F!!5%(!!%L"`!")`F!!53(!!%P"`!"*JF!!5F(!!%S"`! | ||
3797 | "+3F!!5S(!!%V"`!",!F!!5d(!!%Z"`!",`F!!6!(!!%a"`!"-JF!!6-(!!%d"`! | ||
3798 | "03F!!6B(!!%h"`!"1!F!!6N(!!%k"`!"1`F!!6`(!!%p"`!"2JF!!6m(!!&!"`! | ||
3799 | "33F!!8)(!!&$"`!"4!F!!88(!!&'"`!"4`F!!8J(!!&*"`!"5JF!!8X(!!&-"`! | ||
3800 | "63F!!8i(!!&2"`!"8!F!!9%(!!&5"`!"8`F!!93(!!&9"`!"9JF!!9F(!!&B"`! | ||
3801 | "@3F!!9S(!!&E"`!"A!F!!9d(!!&H"`!"A`F!!@!(!!&K"`!"BJF!!@-(!!&N"`! | ||
3802 | "C3F!!@B(!!&R"`!"D!F!!@N(!!&U"`!"D`F!!@`(!!&Y"`!"EJF!!@m(!!&`"`! | ||
3803 | "F3F!!A)(!!&c!!!"U3!"!#J!!!!!!jH9J!!!!!!!!(rr!!!"!!!!HF!!!J!!!!! | ||
3804 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3805 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3806 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3807 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3808 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3809 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3810 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3811 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3812 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3813 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3814 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3815 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3816 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3817 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3818 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3819 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3820 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3821 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3822 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3823 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3824 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3825 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!,#2Z!!!!!!!!!"!!,#4r!!!J!!!!! | ||
3826 | !!!!!!!!#`MD!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3827 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3828 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3829 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3830 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!J!!!3! | ||
3831 | !!!!&!!"rr`!!!!"rr`!!!!"rr`!!!!"rr`!!!!`!!3!#!!B!!!!&3!!!#!!"!!% | ||
3832 | k!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3833 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3834 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3835 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3836 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3837 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3838 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3839 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3840 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3841 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3842 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3!!!2rrrrm | ||
3843 | !!!!$!!%!!6Sk!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3844 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3845 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3846 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3847 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3848 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3849 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3850 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3851 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3852 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3853 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3854 | "!!!!rrrrr`!!!!3!!3!"1MTTEQ0XG@4P1J!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3855 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3856 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3857 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3858 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3859 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3860 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3861 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3862 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3863 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3864 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3865 | !!!!!!!!!!!!!!!$rrrrr3!!!!J!"!!%k!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3866 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3867 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3868 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3869 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3870 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3871 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3872 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3873 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3874 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3875 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3876 | !!!!!!!!!!!!!!!!!!!!!!!!!!2rrrrp!!!!$!!%!!6Sk1NG98dNkD@jME(9NC6S | ||
3877 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3878 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3879 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3880 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3881 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3882 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3883 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3884 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3885 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3886 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3887 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!rrrrrd!!!!3!!3!"1MSk4e9656T | ||
3888 | XD@)k!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3889 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3890 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3891 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3892 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3893 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3894 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3895 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3896 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3897 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3898 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$rrrrr3!!!"3!#!!% | ||
3899 | k6@&M6e-J8h9`F'pbG$S!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3900 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3901 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3902 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3903 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3904 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3905 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3906 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3907 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3908 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3909 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3!!!2rrrrp | ||
3910 | !!!!'!!)!!6T08d`k!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3911 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3912 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3913 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3914 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3915 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3916 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3917 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3918 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3919 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3920 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3921 | "!!!!rrrrrd!!!!F!#J!!6@&M6e-J0MK,)%aTEQYPFJ!!!!!!!!!!!!!!!!!!!!! | ||
3922 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3923 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3924 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3925 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3926 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3927 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3928 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3929 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3930 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3931 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3932 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3933 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3934 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3935 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3936 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3937 | !!!!!!!!!!!!!!!!!!!!!6'PL3h*jF(4[)$Bi5`!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3938 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3939 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3940 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3941 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3942 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!%k!!!!!!!!!!!!!!! | ||
3943 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3944 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3945 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3946 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3947 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3948 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3949 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3950 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3951 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3952 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3953 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#!!&0B@028b!f1%XJ6'P | ||
3954 | ZDf9b!!!!!!!!!!!!!!!!!!!!!!!J39"36!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3955 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!!!3A" | ||
3956 | `E!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3957 | !!!!!!!!!!!!!!!!!!!!!!!"J!!!!68e-3J!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3958 | !!!!!!!!!!!!!6'PL)%PYF'pbG#!f1%X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69" | ||
3959 | -4J!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!6'PL)%PYF'pbG#!f1%X | ||
3960 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!69G$4!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3961 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!!!6d* | ||
3962 | +)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69"A)%PYF'pbG#!f1%X | ||
3963 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!8%a[BJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3964 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!!!8P0 | ||
3965 | 53`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3966 | !!!!!!!!!!!!!!!!!!!!!!!"J!!!!9%9B9#jLD!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3967 | !!!!!!!!!!!!!3Q&XE'p[EL")C@a`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9 | ||
3968 | B9#jM!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp$+bXJ0MK,!!! | ||
3969 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#jM+bX!!!!!!!!!!!!!!!!!!!!!!!! | ||
3970 | !!!!!!!!!!!!!69FJ3bp$+bXJ0MK,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9 | ||
3971 | B9#jMB`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp$+bXJ0MK,!!! | ||
3972 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#jMF!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3973 | !!!!!!!!!!!!!69FJ3bp$+bXJ0MK,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9 | ||
3974 | B9#jMF(!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp$+bXJ0MK,!!! | ||
3975 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#jPH(!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3976 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9 | ||
3977 | B9#jRB`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!4f&YC80[C'8J3fpZGQ9 | ||
3978 | bG'9b!!!!!!!!!!!!!!!!!!"!!!!!9%9B9#jS!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3979 | !!!!!!!!!!!!!69FJ3bp$+bXJ0MK,!!!!!!!!!!!!!!!!!!!!!!!!!!!3!!!!9%9 | ||
3980 | B9#jX!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!4QaPH#"3FQ9`FQpMCA0 | ||
3981 | cEh)!!!!!!!!!!!!!!!!!!!#!!!!!9%9B9#j`!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3982 | !!!!!!!!!!!!!69FJ8'&cBf&X)$Bi5`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9 | ||
3983 | B9#j`BA-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ8'&cBf&X)$Bi5`! | ||
3984 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#j`BfJ!!!!!!!!!!!!!!!!!!!!!!!! | ||
3985 | !!!!!!!!!!!!!69FJ3bp$+bXJ0MK,!!!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!9%9 | ||
3986 | B9#j`BfJV+`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!69FJ3bp$+bXJ0MK,!!! | ||
3987 | !!!!!!!!!!!!!!!!!!!!!!!#!!!!!9%9B9#j`F(8!!!!!!!!!!!!!!!!!!!!!!!! | ||
3988 | !!!!!!!!!!!!!69FJ8'&cBf&X)$Bi5`!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!9%9 | ||
3989 | B9#jb!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8Q9k!!!!!!!!!!!!!!! | ||
3990 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9B9#jcC@F!!!!!!!!!!!!!!!!!!!!!!!! | ||
3991 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!9%9 | ||
3992 | B9#jj!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!3QPcEfiJ8(*PF(*[Bf9 | ||
3993 | cFfpb!!!!!!!!!!!!!!!!!!#!!!!!C'pMG3!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3994 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J!!!!FR0 | ||
3995 | bB`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3996 | !!!!!!!!!!!!!!!!!!!!!!!"J!!!!FfKXBJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
3997 | !!!!!!!!!!!!!8%9')%PYF'pbG#!f1%X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Fh4 | ||
3998 | eBJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8%9')%PYF'pbG#!f1%X | ||
3999 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#jNEf-!!!!!!!!!!!!!!!!!!!!!!!! | ||
4000 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"3!!!!!!! | ||
4001 | !!#jbFh*M!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4002 | !!!!!!!!!!!!!!!!!!!!!!!"J!!!!!!8"!3!"!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4003 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4004 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4005 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4006 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4007 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"J! | ||
4008 | !!!!"!!!!!!8!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4009 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4010 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4011 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4012 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4013 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4014 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4015 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4016 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4017 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4018 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4019 | !!!!!!!!!!!!"!3!!E@&TEJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4020 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4021 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4022 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4023 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4024 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)!3!"!!!!!3%"!!!"!3%!!!! | ||
4025 | !!!%"!!!"!3!"!!!""!!!!!!!!!!!!!!)!3!"!3!"!3!!!!%!!!N!!aY-D@*$FRP | ||
4026 | `G'mZ0MKV)%CK+$4TAcKN+5j-D@)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4027 | !!!!!!!!!!!!r2cmr2cmr2`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4028 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$mr2cm!!!! | ||
4029 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4030 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4031 | !!!!!!!!!!!!!!!!0!!%!!!!!!"9I69G&8NY6AdG98dPIF(*PCQPi,QJ!!!!!!!! | ||
4032 | !!!!!!!!"!!!!!!!!!!!"!!!!!!!!!!!!!!8"!3%!!!%"!!%!!!!!"!!!!!!!!!! | ||
4033 | !!!!!!!!!!!!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4034 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4035 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4036 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4037 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4038 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4039 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"IAh0 | ||
4040 | dBA*d!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4041 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4042 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!3!!#8ePFQGP)%peG!! | ||
4043 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4044 | !!!!!!$mr2cp"8&"-!!%"!!!%)#!J)!1ARe!$GYpi!`@Z%!!&!J%!!3%!!3%"!!! | ||
4045 | "!!!!!!!!!!%"!3%!!3%!!3!""!!!!!!!!!!!!!!(!3%!!3!!!3!!!!!!!!!!!!! | ||
4046 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4047 | !!!!!!!"IAh0dBA*d!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4048 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4049 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!!!!!! | ||
4050 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4051 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4052 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4053 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4054 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4055 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8!!!G2F'9Z8e0-!!!!!!! | ||
4056 | !!!!!!!!!!!!!!!!!!!!!!!!!2cmr2d&38%`!!!3!!!!%!!!!!%!!!&M!!!!!!!! | ||
4057 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4058 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%r2cm | ||
4059 | r!!!!!!!!!!)!!!!#!!)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4060 | !!!!!!!!#!&!!!3!"!!%!!3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4061 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4062 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4063 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4064 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4065 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8*d024%8R)#G%394"*b! | ||
4066 | R8%P$9#F!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4067 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4068 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4069 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4070 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4071 | !#!!!!3!!!#d#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!!)!!!! | ||
4072 | Z!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!!$!!!!,`)"!!!!!!! | ||
4073 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!"!!!!$!#!3!!!!!!!3!"!3!!!!! | ||
4074 | !!!!!!!!!!!%!!!!!!!!!!!J!!!8!!!!a!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
4075 | "!!!!!!!!!!!)!!!'!!!!-J)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
4076 | !#!!!"`!!!$-#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!!J!!!! | ||
4077 | d!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!!*!!!!03)"!!!!!!! | ||
4078 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!#J!!!$B#!3!!!!!!!3!"!3!!!!! | ||
4079 | !!!!!!!!!!!%!!!!!!!!!!!J!!!X!!!!h!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
4080 | "!!!!!!!!!!!)!!!-!!!!1!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
4081 | !#!!!$3!!!$N#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!!i!!!! | ||
4082 | k!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!!2!!!!1`)"!!!!!!! | ||
4083 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!%!!!!$`#!3!!!!!!!3!"!3!!!!! | ||
4084 | !!!!!!!!!!!%!!!!!!!!!!!J!!"%!!!!p!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
4085 | "!!!!!!!!!!!)!!!5!!!!2J)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
4086 | !#!!!%`!!!$m#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!"3!!!" | ||
4087 | !!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!!9!!!!33)"!!!!!!! | ||
4088 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!&J!!!%)#!3!!!!!!!3!"!3!!!!! | ||
4089 | !!!!!!!!!!!%!!!!!!!!!!!J!!"F!!!"$!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
4090 | "!!!!!!!!!!!)!!!B!!!!4!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
4091 | !#!!!'3!!!%8#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!"S!!!" | ||
4092 | '!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!!E!!!!4`)"!!!!!!! | ||
4093 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!(!!!!%J#!3!!!!!!!3!"!3!!!!! | ||
4094 | !!!!!!!!!!!%!!!!!!!!!!!J!!"d!!!"*!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
4095 | "!!!!!!!!!!!)!!!H!!!!5J)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
4096 | !#!!!(`!!!%X#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!#!!!!" | ||
4097 | -!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!!K!!!!63)"!!!!!!! | ||
4098 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!)J!!!%i#!3!!!!!!!3!"!3!!!!! | ||
4099 | !!!!!!!!!!!%!!!!!!!!!!!J!!#-!!!"2!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
4100 | "!!!!!!!!!!!)!!!N!!!!8!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
4101 | !#!!!*3!!!&%#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!#B!!!" | ||
4102 | 5!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!!R!!!!8`)"!!!!!!! | ||
4103 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!+!!!!&3#!3!!!!!!!3!"!3!!!!! | ||
4104 | !!!!!!!!!!!%!!!!!!!!!!!J!!#N!!!"9!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
4105 | "!!!!!!!!!!!)!!!U!!!!9J)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
4106 | !#!!!+`!!!&F#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!#`!!!" | ||
4107 | B!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!!Y!!!!@3)"!!!!!!! | ||
4108 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!,J!!!&S#!3!!!!!!!3!"!3!!!!! | ||
4109 | !!!!!!!!!!!%!!!!!!!!!!!J!!#m!!!"E!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
4110 | "!!!!!!!!!!!)!!!`!!!!A!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
4111 | !#!!!-3!!!&d#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!$)!!!" | ||
4112 | H!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!!c!!!!A`)"!!!!!!! | ||
4113 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!0!!!!'!#!3!!!!!!!3!"!3!!!!! | ||
4114 | !!!!!!!!!!!%!!!!!!!!!!!J!!$8!!!"K!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
4115 | "!!!!!!!!!!!)!!!f!!!!BJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
4116 | !#!!!0`!!!'-#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!$J!!!" | ||
4117 | N!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!!j!!!!C3)"!!!!!!! | ||
4118 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!1J!!!'B#!3!!!!!!!3!"!3!!!!! | ||
4119 | !!!!!!!!!!!%!!!!!!!!!!!J!!$X!!!"R!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
4120 | "!!!!!!!!!!!)!!!m!!!!D!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
4121 | !#!!!23!!!'N#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!$i!!!" | ||
4122 | U!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!!r!!!!D`)"!!!!!!! | ||
4123 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!3!!!!'`#!3!!!!!!!3!"!3!!!!! | ||
4124 | !!!!!!!!!!!%!!!!!!!!!!!J!!%%!!!"Y!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
4125 | "!!!!!!!!!!!)!!"#!!!!EJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
4126 | !#!!!3`!!!'m#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!%3!!!" | ||
4127 | `!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!"&!!!!F3)"!!!!!!! | ||
4128 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!4J!!!()#!3!!!!!!!3!"!3!!!!! | ||
4129 | !!!!!!!!!!!%!!!!!!!!!!!J!!%F!!!"c!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
4130 | "!!!!!!!!!!!)!!")!!!!G!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
4131 | !#!!!53!!!(8#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!%S!!!" | ||
4132 | f!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!",!!!!G`)"!!!!!!! | ||
4133 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!6!!!!(J#!3!!!!!!!3!"!3!!!!! | ||
4134 | !!!!!!!!!!!%!!!!!!!!!!!J!!%d!!!"j!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
4135 | "!!!!!!!!!!!)!!"1!!!!HJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
4136 | !#!!!6`!!!(X#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!&!!!!" | ||
4137 | m!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!"4!!!!I3)"!!!!!!! | ||
4138 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!8J!!!(i#!3!!!!!!!3!"!3!!!!! | ||
4139 | !!!!!!!!!!!%!!!!!!!!!!!J!!&-!!!"r!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
4140 | "!!!!!!!!!!!)!!"8!!!!J!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
4141 | !#!!!93!!!)%#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!&B!!!# | ||
4142 | #!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!"A!!!!J`)"!!!!!!! | ||
4143 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!@!!!!)3#!3!!!!!!!3!"!3!!!!! | ||
4144 | !!!!!!!!!!!%!!!!!!!!!!!J!!&N!!!#&!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
4145 | "!!!!!!!!!!!)!!"D!!!!KJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
4146 | !#!!!@`!!!)F#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!&`!!!# | ||
4147 | )!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!"G!!!!L3)"!!!!!!! | ||
4148 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!AJ!!!)S#!3!!!!!!!3!"!3!!!!! | ||
4149 | !!!!!!!!!!!%!!!!!!!!!!!J!!&m!!!#,!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!! | ||
4150 | "!!!!!!!!!!!)!!"J!!!!M!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!! | ||
4151 | !#!!!B3!!!)d#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!')!!!# | ||
4152 | 1!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!"M!!!!M`)"!!!!!!! | ||
4153 | "!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!C!!!!*!!!J%!!!!!!!%!!3%!!!! | ||
4154 | !!!!!!!!!!!!"!!!!!!!!!!!)!!"P!!!!N3)"!!!!!!!"!!%"!!!!!!!!!!!!!!! | ||
4155 | !!3!!!!!!!!!!#!!!CJ!!!*)#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!! | ||
4156 | !!!J!!'F!!!#6!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!"S!!! | ||
4157 | !P!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!D3!!!*8#!3!!!!! | ||
4158 | !!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!'S!!!#@!J%!!!!!!!%!!3%!!!! | ||
4159 | !!!!!!!!!!!!"!!!!!!!!!!!)!!"V!!!!P`)"!!!!!!!"!!%"!!!!!!!!!!!!!!! | ||
4160 | !!3!!!!!!!!!!#!!!E!!!!*J#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!! | ||
4161 | !!!J!!'d!!!#C!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!"Z!!! | ||
4162 | !QJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!E`!!!*X#!3!!!!! | ||
4163 | !!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!(!!!!#F!J%!!!!!!!%!!3%!!!! | ||
4164 | !!!!!!!!!!!!"!!!!!!!!!!!)!!"a!!!!R3)"!!!!!!!"!!%"!!!!!!!!!!!!!!! | ||
4165 | !!3!!!!!!!!!!#!!!FJ!!!*i#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!! | ||
4166 | !!!J!!(-!!!#I!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!"d!!! | ||
4167 | !S!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!G3!!!+%#!3!!!!! | ||
4168 | !!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!(B!!!#L!J%!!!!!!!%!!3%!!!! | ||
4169 | !!!!!!!!!!!!"!!!!!!!!!!!)!!"h!!!!S`)"!!!!!!!"!!%"!!!!!!!!!!!!!!! | ||
4170 | !!3!!!!!!!!!!#!!!H!!!!+3#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!! | ||
4171 | !!!J!!(N!!!#P!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!"k!!! | ||
4172 | !TJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!H`!!!+F#!3!!!!! | ||
4173 | !!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!(`!!!#S!J%!!!!!!!%!!3%!!!! | ||
4174 | !!!!!!!!!!!!"!!!!!!!!!!!)!!"p!!!!U3)"!!!!!!!"!!%"!!!!!!!!!!!!!!! | ||
4175 | !!3!!!!!!!!!!#!!!IJ!!!+S#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!! | ||
4176 | !!!J!!(m!!!#V!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!#!!!! | ||
4177 | !V!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!J3!!!+d#!3!!!!! | ||
4178 | !!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!))!!!#Z!J%!!!!!!!%!!3%!!!! | ||
4179 | !!!!!!!!!!!!"!!!!!!!!!!!)!!#$!!!!V`)"!!!!!!!"!!%"!!!!!!!!!!!!!!! | ||
4180 | !!3!!!!!!!!!!#!!!K!!!!,!#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!! | ||
4181 | !!!J!!)8!!!#a!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!#'!!! | ||
4182 | !XJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!K`!!!,-#!3!!!!! | ||
4183 | !!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!)J!!!#d!J%!!!!!!!%!!3%!!!! | ||
4184 | !!!!!!!!!!!!"!!!!!!!!!!!)!!#*!!!!Y3)"!!!!!!!"!!%"!!!!!!!!!!!!!!! | ||
4185 | !!3!!!!!!!!!!#!!!LJ!!!,B#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!! | ||
4186 | !!!J!!)X!!!#h!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!#-!!! | ||
4187 | !Z!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!M3!!!,N#!3!!!!! | ||
4188 | !!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!)i!!!#k!J%!!!!!!!%!!3%!!!! | ||
4189 | !!!!!!!!!!!!"!!!!!!!!!!!)!!#2!!!!Z`)"!!!!!!!"!!%"!!!!!!!!!!!!!!! | ||
4190 | !!3!!!!!!!!!!#!!!N!!!!!#m!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4191 | !!!!)!!#4!!!![3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!NJ! | ||
4192 | !!,i#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!*-!!!#r!J%!!!! | ||
4193 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!#8!!!!`!)"!!!!!!!"!!%"!!! | ||
4194 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!!P3!!!-%#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4195 | !!!%!!!!!!!!!!!J!!*B!!!$#!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4196 | !!!!)!!#A!!!!``)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!Q!! | ||
4197 | !!-3#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!*N!!!$&!J%!!!! | ||
4198 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!#D!!!!aJ)"!!!!!!!"!!%"!!! | ||
4199 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!!Q`!!!-F#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4200 | !!!%!!!!!!!!!!!J!!*`!!!$)!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4201 | !!!!)!!#G!!!!b3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!RJ! | ||
4202 | !!-S#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!*m!!!$,!J%!!!! | ||
4203 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!#J!!!!c!)"!!!!!!!"!!%"!!! | ||
4204 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!!S3!!!-d#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4205 | !!!%!!!!!!!!!!!J!!+)!!!$1!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4206 | !!!!)!!#M!!!!c`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!T!! | ||
4207 | !!0!#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!+8!!!$4!J%!!!! | ||
4208 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!#Q!!!!dJ)"!!!!!!!"!!%"!!! | ||
4209 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!!T`!!!0-#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4210 | !!!%!!!!!!!!!!!J!!+J!!!$8!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4211 | !!!!)!!#T!!!!e3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!UJ! | ||
4212 | !!0B#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!+X!!!$A!J%!!!! | ||
4213 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!#X!!!!f!)"!!!!!!!"!!%"!!! | ||
4214 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!!V3!!!0N#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4215 | !!!%!!!!!!!!!!!J!!+i!!!$D!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4216 | !!!!)!!#[!!!!f`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!X!! | ||
4217 | !!0`#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!,%!!!$G!J%!!!! | ||
4218 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!#b!!!!hJ)"!!!!!!!"!!%"!!! | ||
4219 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!!X`!!!0m#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4220 | !!!%!!!!!!!!!!!J!!,3!!!$J!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4221 | !!!!)!!#e!!!!i3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!YJ! | ||
4222 | !!1)#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!,F!!!$M!J%!!!! | ||
4223 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!#i!!!!j!)"!!!!!!!"!!%"!!! | ||
4224 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!!Z3!!!18#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4225 | !!!%!!!!!!!!!!!J!!,S!!!$Q!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4226 | !!!!)!!#l!!!!j`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!![!! | ||
4227 | !!1J#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!,d!!!$T!J%!!!! | ||
4228 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!#q!!!!kJ)"!!!!!!!"!!%"!!! | ||
4229 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!![`!!!1X#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4230 | !!!%!!!!!!!!!!!J!!-!!!!$X!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4231 | !!!!)!!$"!!!!l3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!`J! | ||
4232 | !!1i#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!--!!!$[!J%!!!! | ||
4233 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!$%!!!!m!)"!!!!!!!"!!%"!!! | ||
4234 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!!a3!!!2%#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4235 | !!!%!!!!!!!!!!!J!!-B!!!$b!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4236 | !!!!)!!$(!!!!m`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!b!! | ||
4237 | !!23#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!-N!!!$e!J%!!!! | ||
4238 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!$+!!!!pJ)"!!!!!!!"!!%"!!! | ||
4239 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!!b`!!!2F#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4240 | !!!%!!!!!!!!!!!J!!-`!!!$i!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4241 | !!!!)!!$0!!!!q3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!cJ! | ||
4242 | !!2S#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!-m!!!$l!J%!!!! | ||
4243 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!$3!!!!r!)"!!!!!!!"!!%"!!! | ||
4244 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!!d3!!!2d#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4245 | !!!%!!!!!!!!!!!J!!0)!!!$q!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4246 | !!!!)!!$6!!!!r`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!e!! | ||
4247 | !!3!#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!08!!!%"!J%!!!! | ||
4248 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!$@!!!"!J)"!!!!!!!"!!%"!!! | ||
4249 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!!e`!!!3-#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4250 | !!!%!!!!!!!!!!!J!!0J!!!%%!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4251 | !!!!)!!$C!!!""3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!fJ! | ||
4252 | !!3B#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!0X!!!%(!J%!!!! | ||
4253 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!$F!!!"#!)"!!!!!!!"!!%"!!! | ||
4254 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!!h3!!!3N#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4255 | !!!%!!!!!!!!!!!J!!0i!!!%+!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4256 | !!!!)!!$I!!!"#`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!i!! | ||
4257 | !!3`#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!1%!!!%0!J%!!!! | ||
4258 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!$L!!!"$J)"!!!!!!!"!!%"!!! | ||
4259 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!!i`!!!3m#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4260 | !!!%!!!!!!!!!!!J!!13!!!%3!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4261 | !!!!)!!$P!!!"%3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!jJ! | ||
4262 | !!4)#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!1F!!!%6!J%!!!! | ||
4263 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!$S!!!"&!)"!!!!!!!"!!%"!!! | ||
4264 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!!k3!!!48#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4265 | !!!%!!!!!!!!!!!J!!1S!!!%@!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4266 | !!!!)!!$V!!!"&`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!l!! | ||
4267 | !!4J#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!1d!!!%C!J%!!!! | ||
4268 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!$Z!!!"'J)"!!!!!!!"!!%"!!! | ||
4269 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!!l`!!!4X#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4270 | !!!%!!!!!!!!!!!J!!2!!!!%F!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4271 | !!!!)!!$a!!!"(3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!mJ! | ||
4272 | !!4i#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!2-!!!%I!J%!!!! | ||
4273 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!$d!!!")!)"!!!!!!!"!!%"!!! | ||
4274 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!!p3!!!5%#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4275 | !!!%!!!!!!!!!!!J!!2B!!!%L!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4276 | !!!!)!!$h!!!")`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!q!! | ||
4277 | !!53#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!2N!!!%P!J%!!!! | ||
4278 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!$k!!!"*J)"!!!!!!!"!!%"!!! | ||
4279 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!!q`!!!5F#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4280 | !!!%!!!!!!!!!!!J!!2`!!!%S!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4281 | !!!!)!!$p!!!"+3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!!rJ! | ||
4282 | !!5S#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!2m!!!%V!J%!!!! | ||
4283 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!%!!!!",!)"!!!!!!!"!!%"!!! | ||
4284 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!"!3!!!5d#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4285 | !!!%!!!!!!!!!!!J!!3)!!!%Z!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4286 | !!!!)!!%$!!!",`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!""!! | ||
4287 | !!6!#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!38!!!%a!J%!!!! | ||
4288 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!%'!!!"-J)"!!!!!!!"!!%"!!! | ||
4289 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!""`!!!6-#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4290 | !!!%!!!!!!!!!!!J!!3J!!!%d!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4291 | !!!!)!!%*!!!"03)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!"#J! | ||
4292 | !!6B#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!3X!!!%h!J%!!!! | ||
4293 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!%-!!!"1!)"!!!!!!!"!!%"!!! | ||
4294 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!"$3!!!6N#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4295 | !!!%!!!!!!!!!!!J!!3i!!!%k!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4296 | !!!!)!!%2!!!"1`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!"%!! | ||
4297 | !!6`#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!4%!!!%p!J%!!!! | ||
4298 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!%5!!!"2J)"!!!!!!!"!!%"!!! | ||
4299 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!"%`!!!6m#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4300 | !!!%!!!!!!!!!!!J!!43!!!&!!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4301 | !!!!)!!%9!!!"33)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!"&J! | ||
4302 | !!8)#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!4F!!!&$!J%!!!! | ||
4303 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!%B!!!"4!)"!!!!!!!"!!%"!!! | ||
4304 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!"'3!!!88#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4305 | !!!%!!!!!!!!!!!J!!4S!!!&'!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4306 | !!!!)!!%E!!!"4`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!"(!! | ||
4307 | !!8J#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!4d!!!&*!J%!!!! | ||
4308 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!%H!!!"5J)"!!!!!!!"!!%"!!! | ||
4309 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!"(`!!!8X#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4310 | !!!%!!!!!!!!!!!J!!5!!!!&-!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4311 | !!!!)!!%K!!!"63)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!")J! | ||
4312 | !!8i#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!5-!!!&2!J%!!!! | ||
4313 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!%N!!!"8!)"!!!!!!!"!!%"!!! | ||
4314 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!"*3!!!9%#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4315 | !!!%!!!!!!!!!!!J!!5B!!!&5!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4316 | !!!!)!!%R!!!"8`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!"+!! | ||
4317 | !!93#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!5N!!!&9!J%!!!! | ||
4318 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!%U!!!"9J)"!!!!!!!"!!%"!!! | ||
4319 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!"+`!!!9F#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4320 | !!!%!!!!!!!!!!!J!!5`!!!&B!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4321 | !!!!)!!%Y!!!"@3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!",J! | ||
4322 | !!9S#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!5m!!!&E!J%!!!! | ||
4323 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!%`!!!"A!)"!!!!!!!"!!%"!!! | ||
4324 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!"-3!!!9d#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4325 | !!!%!!!!!!!!!!!J!!6)!!!&H!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4326 | !!!!)!!%c!!!"A`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!"0!! | ||
4327 | !!@!#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!68!!!&K!J%!!!! | ||
4328 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!%f!!!"BJ)"!!!!!!!"!!%"!!! | ||
4329 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!"0`!!!@-#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4330 | !!!%!!!!!!!!!!!J!!6J!!!&N!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4331 | !!!!)!!%j!!!"C3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!"1J! | ||
4332 | !!@B#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!6X!!!&R!J%!!!! | ||
4333 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!%m!!!"D!)"!!!!!!!"!!%"!!! | ||
4334 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!"23!!!@N#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4335 | !!!%!!!!!!!!!!!J!!6i!!!&U!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4336 | !!!!)!!%r!!!"D`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!"3!! | ||
4337 | !!@`#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!8%!!!&Y!J%!!!! | ||
4338 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!&#!!!"EJ)"!!!!!!!"!!%"!!! | ||
4339 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!"3`!!!@m#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4340 | !!!%!!!!!!!!!!!J!!83!!!&`!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4341 | !!!!)!!&&!!!"F3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!"4J! | ||
4342 | !!A)#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!8F!!!&c!J%!!!! | ||
4343 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!&)!!!"G!)"!!!!!!!"!!%"!!! | ||
4344 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!"53!!!A8#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4345 | !!!%!!!!!!!!!!!J!!8S!!!&f!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4346 | !!!!)!!&,!!!"G`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!"6!! | ||
4347 | !!AJ#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!8d!!!&j!J%!!!! | ||
4348 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!&1!!!"HJ)"!!!!!!!"!!%"!!! | ||
4349 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!"6`!!!AX#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4350 | !!!%!!!!!!!!!!!J!!9!!!!&m!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4351 | !!!!)!!&4!!!"I3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!"8J! | ||
4352 | !!Ai#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!9-!!!'!!J%!!!! | ||
4353 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!&8!!!"J3)"!!!!!!!"!!%"!!! | ||
4354 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!"93!!!B)#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4355 | !!!%!!!!!!!!!!!J!!9B!!!'$!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4356 | !!!!)!!&A!!!"K!)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!"@!! | ||
4357 | !!B8#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!9N!!!''!J%!!!! | ||
4358 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!&D!!!"K`)"!!!!!!!"!!%"!!! | ||
4359 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!"@`!!!BJ#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4360 | !!!%!!!!!!!!!!!J!!9`!!!'*!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4361 | !!!!)!!&G!!!"LJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!"AJ! | ||
4362 | !!BX#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!9m!!!'-!J%!!!! | ||
4363 | !!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!&J!!!"M3)"!!!!!!!"!!%"!!! | ||
4364 | !!!!!!!!!!!!!!3!!!!!!!!!!#!!"B3!!!Bi#!3!!!!!!!3!"!3!!!!!!!!!!!!! | ||
4365 | !!!%!!!!!!!!!!!J!!@)!!!'2!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!! | ||
4366 | !!!!)!!&M!!!"N!!#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!@3 | ||
4367 | !!!'4!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!&P!!!"NJ)"!!! | ||
4368 | !!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!"CJ!!!C-#!3!!!!!!!3!"!3! | ||
4369 | !!!!!!!!!!!!!!!%!!!!!!!!!!!J!!@F!!!'8!J%!!!!!!!%!!3%!!!!!!!!!!!! | ||
4370 | !!!!"!!!!!!!!!!!)!!&S!!!"P3)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!! | ||
4371 | !!!!!#!!"D3!!!CB#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!@S | ||
4372 | !!!'A!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!&V!!!"Q!)"!!! | ||
4373 | !!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!"E!!!!CN#!3!!!!!!!3!"!3! | ||
4374 | !!!!!!!!!!!!!!!%!!!!!!!!!!!J!!@d!!!'D!J%!!!!!!!%!!3%!!!!!!!!!!!! | ||
4375 | !!!!"!!!!!!!!!!!)!!&Z!!!"Q`)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!! | ||
4376 | !!!!!#!!"E`!!!C`#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!J!!A! | ||
4377 | !!!'G!J%!!!!!!!%!!3%!!!!!!!!!!!!!!!!"!!!!!!!!!!!)!!&a!!!"RJ)"!!! | ||
4378 | !!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!!!!!!!#!!"FJ!!!Cm#!3!!!!!!!3!"!3! | ||
4379 | !!!!!!!!!!!!!!!%!!!!!!!!!!!J!!A-!!!'N!J%!!!!!!!%!!3%!!!!!!!!!!!! | ||
4380 | !!!!"!!!!!!!!!!!)!!&d!!!"TJ)"!!!!!!!"!!%"!!!!!!!!!!!!!!!!!3!!!!! | ||
4381 | !!!!!#!!"G3!!!DF#!3!!!!!!!3!"!3!!!!!!!!!!!!!!!!%!!!!!!!!!!!!!!!! | ||
4382 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4383 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4384 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4385 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4386 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4387 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4388 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4389 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4390 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4391 | !!!!!!!!!!!!!!!%!!!!#!!!!!`!!!!3!!!!&!!!!"J!!!!F!!!!)!!!!#3!!!!S | ||
4392 | !!!!,!!!!$!!!!!d!!!!1!!!!$`!!!"!!!!!4!!!!%J!!!"-!!!!8!!!!&3!!!"B | ||
4393 | !!!!A!!!!'!!!!"N!!!!D!!!!'`!!!"`!!!!G!!!!(J!!!"m!!!!J!!!!)3!!!#) | ||
4394 | !!!!M!!!!*!!!!#8!!!!Q!!!!*`!!!#J!!!!T!!!!+J!!!#X!!!!X!!!!,3!!!#i | ||
4395 | !!!![!!!!-!!!!$%!!!!b!!!!-`!!!$3!!!!e!!!!0J!!!$F!!!!i!!!!13!!!$S | ||
4396 | !!!!l!!!!2!!!!$d!!!!q!!!!2`!!!%!!!!""!!!!3J!!!%-!!!"%!!!!43!!!%B | ||
4397 | !!!"(!!!!5!!!!%N!!!"+!!!!5`!!!%`!!!"0!!!!6J!!!%m!!!"3!!!!83!!!&) | ||
4398 | !!!"6!!!!9!!!!&8!!!"@!!!!9`!!!&J!!!"C!!!!@J!!!&X!!!"F!!!!A3!!!&i | ||
4399 | !!!"I!!!!B!!!!'%!!!"L!!!!B`!!!'3!!!"P!!!!CJ!!!'F!!!"S!!!!D3!!!'S | ||
4400 | !!!"V!!!!E!!!!'d!!!"Z!!!!E`!!!(!!!!"a!!!!FJ!!!(-!!!"d!!!!G3!!!(B | ||
4401 | !!!"h!!!!H!!!!(N!!!"k!!!!H`!!!(`!!!"p!!!!IJ!!!(m!!!#!!!!!J3!!!)) | ||
4402 | !!!#$!!!!K!!!!)8!!!#'!!!!K`!!!)J!!!#*!!!!LJ!!!)X!!!#-!!!!M3!!!)i | ||
4403 | !!!#2!!!!N!!!!!#4!!!!NJ!!!*-!!!#8!!!!P3!!!*B!!!#A!!!!Q!!!!*N!!!# | ||
4404 | D!!!!Q`!!!*`!!!#G!!!!RJ!!!*m!!!#J!!!!S3!!!+)!!!#M!!!!T!!!!+8!!!# | ||
4405 | Q!!!!T`!!!+J!!!#T!!!!UJ!!!+X!!!#X!!!!V3!!!+i!!!#[!!!!X!!!!,%!!!# | ||
4406 | b!!!!X`!!!,3!!!#e!!!!YJ!!!,F!!!#i!!!!Z3!!!,S!!!#l!!!![!!!!,d!!!# | ||
4407 | q!!!![`!!!-!!!!$"!!!!`J!!!--!!!$%!!!!a3!!!-B!!!$(!!!!b!!!!-N!!!$ | ||
4408 | +!!!!b`!!!-`!!!$0!!!!cJ!!!-m!!!$3!!!!d3!!!0)!!!$6!!!!e!!!!08!!!$ | ||
4409 | @!!!!e`!!!0J!!!$C!!!!fJ!!!0X!!!$F!!!!h3!!!0i!!!$I!!!!i!!!!1%!!!$ | ||
4410 | L!!!!i`!!!13!!!$P!!!!jJ!!!1F!!!$S!!!!k3!!!1S!!!$V!!!!l!!!!1d!!!$ | ||
4411 | Z!!!!l`!!!2!!!!$a!!!!mJ!!!2-!!!$d!!!!p3!!!2B!!!$h!!!!q!!!!2N!!!$ | ||
4412 | k!!!!q`!!!2`!!!$p!!!!rJ!!!2m!!!%!!!!"!3!!!3)!!!%$!!!""!!!!38!!!% | ||
4413 | '!!!""`!!!3J!!!%*!!!"#J!!!3X!!!%-!!!"$3!!!3i!!!%2!!!"%!!!!4%!!!% | ||
4414 | 5!!!"%`!!!43!!!%9!!!"&J!!!4F!!!%B!!!"'3!!!4S!!!%E!!!"(!!!!4d!!!% | ||
4415 | H!!!"(`!!!5!!!!%K!!!")J!!!5-!!!%N!!!"*3!!!5B!!!%R!!!"+!!!!5N!!!% | ||
4416 | U!!!"+`!!!5`!!!%Y!!!",J!!!5m!!!%`!!!"-3!!!6)!!!%c!!!"0!!!!68!!!% | ||
4417 | f!!!"0`!!!6J!!!%j!!!"1J!!!6X!!!%m!!!"23!!!6i!!!%r!!!"3!!!!8%!!!& | ||
4418 | #!!!"3`!!!83!!!&&!!!"4J!!!8F!!!&)!!!"53!!!8S!!!&,!!!"6!!!!8d!!!& | ||
4419 | 1!!!"6`!!!9!!!!&4!!!"8J!!!9-!!!&8!!!"93!!!9B!!!&A!!!"@!!!!9N!!!& | ||
4420 | D!!!"@`!!!9`!!!&G!!!"AJ!!!9m!!!&J!!!"B3!!!@)!!!&M!!!"C!!!!@8!!!& | ||
4421 | Q!!!"C`!!!@J!!!&T!!!"DJ!!!@X!!!&X!!!"E3!!!@i!!!&[!!!"F!!!!A%!!!& | ||
4422 | b!!!"F`!!!A3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4423 | !!!!!!!!!!A8!!!'!#!!!!!J!!A8!!!(E!!%!(!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4424 | !!!!!!!J!!!%)!!!##!!!!`J!!!3)!!!&#!!!"JJ!!!F)!!!)#!!!#3J!!!S)!!! | ||
4425 | ,#!!!$!J!!!d)!!!1#!!!$`J!!"!)!!!4#!!!%JJ!!"-)!!!8#!!!&3J!!"B)!!! | ||
4426 | A#!!!'!J!!"N)!!!D#!!!'`J!!"`)!!!G#!!!(JJ!!"m)!!!J#!!!)3J!!#))!!! | ||
4427 | M#!!!*!J!!#8)!!!Q#!!!*`J!!#J)!!!T#!!!+JJ!!#X)!!!X#!!!,3J!!#i)!!! | ||
4428 | [#!!!-!J!!$%)!!!b#!!!-`J!!$3)!!!e#!!!0JJ!!$F)!!!i#!!!13J!!$S)!!! | ||
4429 | l#!!!2!J!!$d)!!!q#!!!2`J!!%!)!!""#!!!3JJ!!%-)!!"%#!!!43J!!%B)!!" | ||
4430 | (#!!!5!J!!%N)!!"+#!!!5`J!!%`)!!"0#!!!6JJ!!%m)!!"3#!!!83J!!&))!!" | ||
4431 | 6#!!!9!J!!&8)!!"@#!!!9`J!!&J)!!"C#!!!@JJ!!&X)!!"F#!!!A3J!!&i)!!" | ||
4432 | I#!!!B!J!!'%)!!"L#!!"G!J!!'-)!!"N#!!!C3J!!'B)!!"R#!!!D!J!!'N)!!" | ||
4433 | U#!!!D`J!!'`)!!"Y#!!!EJJ!!'m)!!"`#!!!F3J!!())!!"c#!!!G!J!!(8)!!" | ||
4434 | f#!!!G`J!!(J)!!"j#!!!HJJ!!(X)!!"m#!!!I3J!!(i)!!"r#!!!J!J!!)%)!!# | ||
4435 | ##!!!J`J!!)3)!!#&#!!!KJJ!!)F)!!#)#!!!L3J!!)S)!!#,#!!!M!J!!)d)!!# | ||
4436 | 1#!!!M`J!!*!!#!!!N3J!!*))!!#6#!!!P!J!!*8)!!#@#!!!P`J!!*J)!!#C#!! | ||
4437 | !QJJ!!*X)!!#F#!!!R3J!!*i)!!#I#!!!S!J!!+%)!!#L#!!!S`J!!+3)!!#P#!! | ||
4438 | !TJJ!!+F)!!#S#!!!U3J!!+S)!!#V#!!!V!J!!+d)!!#Z#!!!V`J!!,!)!!#a#!! | ||
4439 | !XJJ!!,-)!!#d#!!!Y3J!!,B)!!#h#!!!Z!J!!,N)!!#k#!!!Z`J!!,`)!!#p#!! | ||
4440 | ![JJ!!,m)!!$!#!!!`3J!!-))!!$$#!!!a!J!!-8)!!$'#!!!a`J!!-J)!!$*#!! | ||
4441 | !bJJ!!-X)!!$-#!!!c3J!!-i)!!$2#!!!d!J!!0%)!!$5#!!!d`J!!03)!!$9#!! | ||
4442 | !eJJ!!0F)!!$B#!!!f3J!!0S)!!$E#!!!h!J!!0d)!!$H#!!!h`J!!1!)!!$K#!! | ||
4443 | !iJJ!!1-)!!$N#!!!j3J!!1B)!!$R#!!!k!J!!1N)!!$U#!!!k`J!!1`)!!$Y#!! | ||
4444 | !lJJ!!1m)!!$`#!!!m3J!!2))!!$c#!!!p!J!!28)!!$f#!!!p`J!!2J)!!$j#!! | ||
4445 | !qJJ!!2X)!!$m#!!!r3J!!2i)!!$r#!!"!!J!!3%)!!%##!!"!`J!!33)!!%&#!! | ||
4446 | ""JJ!!3F)!!%)#!!"#3J!!3S)!!&e#!!"#`J!!3`)!!%0#!!"$JJ!!3m)!!%3#!! | ||
4447 | "%3J!!4))!!%6#!!"&!J!!48)!!%@#!!"&`J!!4J)!!%C#!!"'JJ!!4X)!!%F#!! | ||
4448 | "(3J!!4i)!!%I#!!")!J!!5%)!!%L#!!")`J!!53)!!%P#!!"*JJ!!5F)!!%S#!! | ||
4449 | "+3J!!5S)!!%V#!!",!J!!5d)!!%Z#!!",`J!!6!)!!%a#!!"-JJ!!6-)!!%d#!! | ||
4450 | "03J!!6B)!!%h#!!"1!J!!6N)!!%k#!!"1`J!!6`)!!%p#!!"2JJ!!6m)!!&!#!! | ||
4451 | "33J!!8))!!&$#!!"4!J!!88)!!&'#!!"4`J!!8J)!!&*#!!"5JJ!!8X)!!&-#!! | ||
4452 | "63J!!8i)!!&2#!!"8!J!!9%)!!&5#!!"8`J!!93)!!&9#!!"9JJ!!9F)!!&B#!! | ||
4453 | "@3J!!9S)!!&E#!!"A!J!!9d)!!&H#!!"A`J!!@!)!!&K#!!"BJJ!!@-)!!&N#!! | ||
4454 | "C3J!!@B)!!&R#!!"D!J!!@N)!!&U#!!"D`J!!@`)!!&Y#!!"EJJ!!@m)!!&`#!! | ||
4455 | "F3J!!A))!!&c!!!!#!!!!H%"!!!"!!!!!!!!!!!!"!!"!!!"kE6H0L[rrmA@!!! | ||
4456 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4457 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4458 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4459 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4460 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4461 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4462 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4463 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4464 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4465 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4466 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"iJ)!!!%!!!!!!!!!!!!%!!%!!!(eY0i | ||
4467 | f,!!!IZ)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4468 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4469 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4470 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4471 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4472 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4473 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4474 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4475 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4476 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4477 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(M!`!!!3!!!!!!!!!!!!3 | ||
4478 | !!3!!!IDdhMBX!!!f%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4479 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4480 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4481 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4482 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4483 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4484 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4485 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4486 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4487 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4488 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!H3%!!!"!!! | ||
4489 | !!!!!!!!!"!!"!!!"r,6H0L`!!&C*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4490 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4491 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4492 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4493 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4494 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4495 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4496 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4497 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4498 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4499 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4500 | "j38!!!%!!!!!!!!!!!!%!!%!!!(pY0if,2rrp2N!!!!!!!!!!!!!!!!!!!!!!!! | ||
4501 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4502 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4503 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4504 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4505 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4506 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4507 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4508 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4509 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4510 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4511 | !!!!!!!!!!!(Q"J!!!3!!!!!!!!!!!!3!!3!!!G'dhMBX!!!Si3!!!!!!!!!!!!! | ||
4512 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4513 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4514 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4515 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4516 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4517 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4518 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4519 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4520 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4521 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4522 | !!!!!!!!!!!!!!!!!!!!!!HF(!!!"!!!!!!!!!!!!"!!"!!!"dV6H0L`!!!ca!!! | ||
4523 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4524 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4525 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4526 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4527 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4528 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4529 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4530 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4531 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4532 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4533 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"k!J!!!%!!!!!!!!!!!!%!!%!!!(IY0i | ||
4534 | f,2rr[fi!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4535 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4536 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4537 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4538 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4539 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4540 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4541 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4542 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4543 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4544 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)!!!!!H%!!!!"i`!!!!( | ||
4545 | L!!!!!H8!!!!"jJ!!!!(N!!!!!HF!!!!"k!!"!!!!!&*26e3!!!!!!!!!!!!!!!! | ||
4546 | '4e*98!!!!!!!!!!!$P*[H5Gc)%GPG%K89&"6!!!!"8C*6%8"!!'L4NP-43%!!D0 | ||
4547 | '58a&!3!"U%C*6%8"!!'K4NP-43%!!D"(8P93!!!!!!!!!!!66h"PEP066#""F(" | ||
4548 | XD@0KG'P[EJ!!!#0'58a&!J!!(%C*6%8#!!!U4NP-43)!!!e'58a&!J!!)%C*6%8 | ||
4549 | #!!!54NP-43)!!"0'58a&!J!!&NC*6%8#!!!B4NP-43)!!"G'58a&!J!!$NC*6%8 | ||
4550 | #!!!H4NP-43)!!"&'58a&!J!!%%C*6%8#!!!K4NP-43)!!"4'58a&!J!!&8C*6%8 | ||
4551 | #!!!X4NP-43)!!"T'58a&!J!!'8C*6%8#!!!S4NP-43)!!#G'58a&!J!!*%C*6%8 | ||
4552 | #!!!Y4NP-43)!!!Y'58a&!J!!*NC*6%8#!!!T4NP-43)!!!a'58a&!J!!+dC*6%8 | ||
4553 | #!!!L4NP-43)!!!p'58a&!J!!'dC*6%8#!!!G4NP-43)!!"p'58a&!J!!*8C*6%8 | ||
4554 | #!!!M4e*98!!!!!!!!!!!%8p`C@j68d`J6'PLFQ&bD@9c!!!!"%G599!!!!!!!!! | ||
4555 | !!!038%-!!!!#4NP-43)!!$0'58a&!J!!0%G599!!!!!!!!!!!!-f1'X!!!!#4NP | ||
4556 | -438!!#"'58a&"3!!(dG599!!!!!!!!!!!!CMFRP`G'm!!!!S4NP-43%!!Aa'58a | ||
4557 | &!3!"INC*6%8"!!'N4NP-43%!!Cp'58a&!3!"I8C*6%8"!!&l4e*98!!!!!!!!!! | ||
4558 | !"'&cEM%!!!"A4NP-43%!!$j'58a&!3!!-8C*6%8"!!"&4NP-43%!!$P'58a&!3! | ||
4559 | !3dC*6%8"!!!m4NP-43%!!$p'58a&!3!!3%C*6%8"!!"%4NP-43%!!%&'58a&!3! | ||
4560 | !0dC*6%8"!!!e4NP-43%!!$Y'58a&!3!!-NC*6%8"!!!i4NP-43%!!%K'58a&!3! | ||
4561 | !4NC*6%8"!!"#4NP-43%!!$C'58a&!3!!4dC*6%8"!!')4NP-43%!!("'58a&!3! | ||
4562 | !I%C*6%8"!!"i4NP-43%!!(T'58a&!3!!H8C*6%8"!!"a4NP-43%!!(C'58a&!3! | ||
4563 | !FNC*6%8"!!"p4NP-43%!!B&'58a&!3!!FdC*6%8"!!"e4NP-43%!!(Y'58a&!3! | ||
4564 | !A8C*6%8"!!"04NP-43%!!&P'58a&!3!!6NC*6%8"!!"D4NP-43%!!%p'58a&!3! | ||
4565 | !@dC*6%8"!!"34NP-43%!!&a'58a&!3!!5dC*6%8"!!"A4NP-43%!!%a'58a&!3! | ||
4566 | !@%C*6%8"!!"Z4NP-43%!!'p'58a&!3!"LNC*6%8"!!"X4NP-43%!!'e'58a&!3! | ||
4567 | "L8C*6%8"!!',4NP-43%!!'9'58a&!3!!D8C*6%8"!!"S4NP-43%!!'G'58a&!3! | ||
4568 | !BdC*6%8"!!"N4NP-43%!!'&'58a&!3!!DNC*6%8"!!"L4NP-43%!!'C'58a&!3! | ||
4569 | !8dC*6%8"!!"84NP-43%!!&9'58a&!3!!9NC*6%8"!!"*4NP-43%!!%T'58a&!3! | ||
4570 | !ANC*6%8"!!"54NP-43%!!$T'58a&!3!!GdC*6%8"!!!c4NP-43%!!(4'58a&!3! | ||
4571 | !,dC*6%8"!!!Z4NP-43%!!#e'58a&!3!!28C*6%8"!!!d4NP-43%!!Ba'58a&!3! | ||
4572 | !88C*6%8"!!!`4NP-43%!!&p'58a&!3!!B%C*6%8"!!"V4e*98!!!!!!!!!!!!Q* | ||
4573 | Q!!!!"8C*6%8"!!##4NP-43%!!(p'58a&!3!!J%C*6%8"!!"q4NP-43%!!)&(8P9 | ||
4574 | 3!!!!!!!!!!!$BQP[!!!!$NC*6%8"!!#%4NP-43%!!Be'58a&!3!!JdC*6%8"!!' | ||
4575 | 14NP-43%!!C&'58a&!3!"MdC*6%8"!!'3!%C*6%8"!!#&4NP-43%!!C*'58a&!3! | ||
4576 | "J%C*6%8"!!'(4NP-43%!!C9'58a&!3!"NdC*6%8"!!'84e*98!!!!!!!!!!!!Q* | ||
4577 | Z!!!!&%C*6%8"!!#'4NP-43%!!)P'58a&!3!!LdC*6%8"!!#14NP-43%!!DC'58a | ||
4578 | &!3!!N8C*6%8"!!#64NP-43%!!*4'58a&!3!!PNC*6%8"!!#B4NP-43%!!)K'58a | ||
4579 | &!3!!M8C*6%8"!!#54NP-43%!!)T'58a&!3!!PdC*6%8"!!#(4NP-43%!!*9'58a | ||
4580 | &!3!!MdC*6%8"!!#3!%C*6%8"!!#-4e*98!!!!!!!!!!!"Q*eCQCPFJ!!!!*'58a | ||
4581 | &!3!!Q8C*6%8"!!#D4e*98!!!!!!!!!!!"'0KFh3!!!!&4NP-43%!!*p'58a&!3! | ||
4582 | !R%C*6%8"!!#G4NP-43%!!*Y'58a&!3!!RNG599!!!!!!!!!!!!4MEfe`!!!!!dC | ||
4583 | *6%8"!!#J4NP-43%!!+&'58a&!3!!SNG599!!!!!!!!!!!!4MEfjQ!!!!!NC*6%8 | ||
4584 | "!!#M4NP-43%!!+4(8P93!!!!!!!!!!!$C'9c!!!!'NC*6%8"!!#P4NP-43%!!+C | ||
4585 | '58a&!3!!U%C*6%8"!!#T4NP-43%!!+Y'58a&!3!!V%C*6%8"!!#Z4NP-43%!!CC | ||
4586 | '58a&!3!!VdC*6%8"!!#b4NP-43%!!,0'58a&!3!!Y%C*6%8"!!#e4NP-43%!!,C | ||
4587 | '58a&!3!!Z%C*6%8"!!#j4NP-43%!!,T'58a&!3!!UNC*6%8"!!#`4NP-43%!!,G | ||
4588 | '58a&!3!![8C*6%8"!!#l4NP-43%!!+G'58a&!3!!X8C*6%8"!!#m4NP-43%!!+e | ||
4589 | (8P93!!!!!!!!!!!#C'J!!!!&4NP-43%!!-"'58a&!3!!`8C*6%8"!!$#4NP-43% | ||
4590 | !!,j'58a&!3!![dG599!!!!!!!!!!!!0NFf%!!!!)4NP-43%!!-9'58a&!3!!aNC | ||
4591 | *6%8"!!$(4NP-43%!!-0'58a&!3!!b8C*6%8"!!$)4NP-43%!!-4'58a&!3!"JNG | ||
4592 | 599!!!!!!!!!!!!0PFR)!!!!$4NP-43%!!-T'58a&!3!!bdC*6%8"!!$-4e*98!! | ||
4593 | !!!!!!!!!!f9fF!!!!$p'58a&!3!!ddC*6%8"!!$54NP-43%!!04'58a&!3!!eNC | ||
4594 | *6%8"!!$V4NP-43%!!0e'58a&!3!!j%C*6%8"!!$c4NP-43%!!1a'58a&!3!!hNC | ||
4595 | *6%8"!!$P4NP-43%!!24'58a&!3!!k%C*6%8"!!$D4NP-43%!!2G'58a&!3!"!NC | ||
4596 | *6%8"!!$K4NP-43%!!2"'58a&!3!!q%C*6%8"!!$Y4NP-43%!!0p'58a&!3!!jNC | ||
4597 | *6%8"!!$e4NP-43%!!1P'58a&!3!!fdC*6%8"!!$L4NP-43%!!2&'58a&!3!!kNC | ||
4598 | *6%8"!!$F4NP-43%!!10'58a&!3!!mNC*6%8"!!$Z4NP-43%!!1"'58a&!3!!jdC | ||
4599 | *6%8"!!$f4NP-43%!!2j'58a&!3!!qdC*6%8"!!$m4NP-43%!!3"'58a&!3!"!8C | ||
4600 | *6%8"!!$j4NP-43%!!2T'58a&!3!!r8C*6%8"!!$r4NP-43%!!3C'58a&!3!""dC | ||
4601 | *6%8"!!%)4NP-43%!!3P'58a&!3!""8C*6%8"!!%%4NP-43%!!30'58a&!3!!cdC | ||
4602 | *6%8"!!$04NP-43%!!-j'58a&!3!!e8C*6%8"!!$[4NP-43%!!0&'58a&!3!!edC | ||
4603 | *6%8"!!$34NP-43%!!0P'58a&!3!!f%C*6%8"!!'A4NP-43%!!CK(8P93!!!!!!! | ||
4604 | !!!!%D'eKB`!!!!&'58a&!3!"#NG599!!!!!!!!!!!!4TC'9K!!!!"8C*6%8"!!% | ||
4605 | ,4NP-43%!!3a'58a&!3!"$NC*6%8"!!%04NP-43%!!3p(8P93!!!!!!!!!!!&E'K | ||
4606 | KFfJ!!!!#4NP-43%!!4"'58a&!3!"%8G599!!!!!!!!!!!!0YC$)!!!!#4NP-43% | ||
4607 | !!4*'58a&!3!"%dG599!!!!!!!!!!!!0YC$8!!!!#4NP-43%!!44'58a&!3!"&8G | ||
4608 | 599!!!!!!!!!!!!4YC'-b!!!!!NC*6%8"!!%@4NP-43%!!4G(8P93!!!!!!!!!!! | ||
4609 | (Ef*UC@0dF`!!!!4'58a&!3!"'dC*6%8"!!%B4NP-43%!!4T'58a&!3!"'8G599! | ||
4610 | !!!!!!!!!!!0`C@d!!!!'4NP-43%!!5&'58a&!3!")%C*6%8"!!%H4NP-43%!!4p | ||
4611 | '58a&!3!"(%C*6%8"!!%G4e*98!!!!!!!!!!!"R"VBh-a-J!!!""'58a&!3!")NC | ||
4612 | *6%8"!!%M4NP-43%!!54'58a&!3!"*8C*6%8"!!%Q4NP-43%!!5G'58a&!3!"+%C | ||
4613 | *6%8"!!%T4NP-43%!!5T'58a&!3!"+dC*6%8"!!%X4NP-43%!!5e'58a&!3!",NC | ||
4614 | *6%8"!!%[4NP-43%!!CP'58a&!3!"-%G599!!!!!!!!!!!!9`Df0c0`!!!!C'58a | ||
4615 | &!3!"-NC*6%8"!!%c4NP-43%!!6&'58a&!3!"R%C*6%8"!!'D4NP-43%!!CY(8P9 | ||
4616 | 3!!!!!!!!!!!%FQ&ZC!!!!!4'58a&!3!"0%C*6%8"!!%e4NP-43%!!6C'58a&!3! | ||
4617 | "TdG599!!!!!!!!!!!!0bBc)!!!!&4NP-43%!!6T'58a&!3!"1dC*6%8"!!%j4NP | ||
4618 | -43%!!6G'58a&!3!"1%G599!!!!!!!!!!!!0bBc3!!!!#4NP-43%!!6e'58a&!3! | ||
4619 | "2%G599!!!!!!!!!!!!0bBc8!!!!&4NP-43%!!8*'58a&!3!"3%C*6%8"!!&"4NP | ||
4620 | -43%!!6j'58a&!3!"2dG599!!!!!!!!!!!!CbDA"PE@3!!!!#4NP-43%!!80'58a | ||
4621 | &!3!"4%G599!!!!!!!!!!!!0bFf%!!!!-4NP-43%!!89'58a&!3!"4dC*6%8"!!& | ||
4622 | )4NP-43%!!8e'58a&!3!"6%C*6%8"!!&'4NP-43%!!8Y'58a&!3!"6NC*6%8"!!& | ||
4623 | *4NP-43%!!8T'58a&!3!"R8C*6%8"!!'H4e*98!!!!!!!!!!!!h0SB3!!!!4'58a | ||
4624 | &!3!"88C*6%8"!!&24NP-43%!!9*'58a&!3!"8%G599!!!!!!!!!!!!9cG'&MD`! | ||
4625 | !!!&'58a&!3!"8dG599!!!!!!!!!!!!CdH(4IC')!!!!"4NP-43%!!94(8P93!!! | ||
4626 | !!!!!!!!%H$8`13!!!"9'58a&!3!"A%C*6%8"!!&E4NP-43%!!@&'58a&!3!"@NC | ||
4627 | *6%8"!!&J4NP-43%!!@*'58a&!3!"JdC*6%8"!!&Q4NP-43%!!@0'58a&!3!"@%C | ||
4628 | *6%8"!!&G4NP-43%!!9G'58a&!3!"C8C*6%8"!!&H4NP-43%!!9P'58a&!3!"AdC | ||
4629 | *6%8"!!&R4NP-43%!!@4'58a&!3!"K%C*6%8"!!&94NP-43%!!9C(8P93!!!!!!! | ||
4630 | !!!!'H$8`1ABc!!!!&8C*6%8"!!&V4NP-43%!!@a'58a&!3!"E8C*6%8"!!&a4NP | ||
4631 | -43%!!A0'58a&!3!"G8C*6%8"!!&h4NP-43%!!AT'58a&!3!"D%C*6%8"!!&b4NP | ||
4632 | -43%!!@T'58a&!3!"H%C*6%8"!!&T4NP-43%!!AC'58a&!3!"G%C*6%8"!!&`4NP | ||
4633 | -43%!!AP'58a&!3!"ENC*6%8"!!&[4NP-43%!!B9'58a&!3!"KNG599!!!!!!!!! | ||
4634 | !!!0cFf`!!!!M4NP-43%!!"0'58a&!3!!&8C*6%8"!!!34NP-43%!!"*'58a&!3! | ||
4635 | !%8C*6%8"!!!84NP-43%!!"T'58a&!3!!(%C*6%8"!!!A4NP-43%!!"P'58a&!3! | ||
4636 | !'%C*6%8"!!!E4NP-43%!!"C'58a&!3!!$8C*6%8"!!!24NP-43%!!!Y'58a&!3! | ||
4637 | !$%C*6%8"!!!14NP-43%!!#Y'58a&!3!!,%C*6%8"!!!S4NP-43%!!#T'58a&!3! | ||
4638 | !+8C*6%8"!!!M4NP-43%!!#*'58a&!3!!(dC*6%8"!!!P4NP-43%!!#"'58a&!3! | ||
4639 | !*NC*6%8"!!!N4NP-43%!!"j'58a&!3!!*dC*6%8"!!!G4NP-43%!!!T'58a&!3! | ||
4640 | !)8G599!!!!!!!!!!!!j(990*)%aTBR*KFQPPF`!!!!0'58a&!J!!,dG599!!!!! | ||
4641 | !!!!!!!038%-!!!!$4NP-43)!!$"'58a&!J!!-8C*6%8#!!!b4e*98!!!!!!!!!! | ||
4642 | !!cBiD`!!!!0'58a&"3!!&%C*6%8&!!!94NP-438!!"C(8P93!!!!!!!!!!!138j | ||
4643 | 655"-D@*bBA*TCA-!!!!#4e*98!!!!!!!!!!!!e"33`!!!!*'58a&!3!!!8C*6%8 | ||
4644 | "!!&r4e*98!!!!!!!!!!!!cBiD`!!!!*'58a&!`!"S%C*6%8$!!'K4e*98!!!!!! | ||
4645 | !!!!!$8eKBb"-D@*bBA*TCA-!!!!#4e*98!!!!!!!!!!!!e"33`!!!!P'58a&!3! | ||
4646 | !"%C*6%8"!!!#4NP-43%!!!0'58a&!3!!#8C*6%8"!!!)4NP-43%!!!G'58a&!3! | ||
4647 | !"NC*6%8"!!!&4NP-43%!!D9(8P93!!!!!!!!!!!$0MKV!!!!"NC*6%8$!!'D4NP | ||
4648 | -43-!!D*'58a&!`!"R%C*6%8$!!'G4NP-43-!!Cp'58a&!`!"Q`!!!"J!!!)!!!) | ||
4649 | !!!!!!J%!"3!!!!!#!J!-!!!!!!)$!!S!!!!!!J3!!J!!!!!#"3!&!!!!!!)'!!) | ||
4650 | !!!!!!JF!"J!!!!!##!!0!!!!!!)*!!8!!!!!!JS!"3!!!!!##`!"!!!!!!)-!!% | ||
4651 | !!!!!!Jd!"`!!!!!#$J!)!!!!!!)2!!8!!!!!!K!!!J!!!!!#%3!#!!!!!!)5!!J | ||
4652 | !!!!!!K-!!3!!!!!#&!!"!!!!!!)9!!J!!!!!!KB!#3!!!!!#&`!%!!!!!!!!!!! | ||
4653 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4654 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4655 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4656 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4657 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4658 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4659 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4660 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!#"J%#!!!c"`%#!!!d!!!!!J3""3!!)!J""3! | ||
4661 | !(`!!!HJ!!!)!!!!6k3!!&!!!!!(S!&j1G!!-6PB!!#m+,`-NEJ!35Ui!!!$*!!! | ||
4662 | !i!!!&0i!!"J!!!!!b3!-,bi!##"U!-JJD!"i6T!!-"mf!!!!!K%!!!)5!!!#%`! | ||
4663 | !!K3!!!)9!!!"p3!!!HJ!!!(H!!!"d3!!!IX!!!(3!!!"p!!!!I`!!!)"!!!"U3! | ||
4664 | !!DS!!!'V!!!!,!!!!#d!!!!Z!!!!,`!!!$!!!!!a!!!!-J!!!$-!!!!d!!!!03! | ||
4665 | !!$B!!!!h!!!!1!!!!$N!!!!k!!!!1`!!!BF!!!!m!!!!23!!!$i!!!!r!!!!3!! | ||
4666 | !!%%!!!',!!!!3J!!!%-!!!"%!!!!43!!!%B!!!"(!!!"kJ!!!Am!!!"p!!!!IJ! | ||
4667 | !!(m!!!'5!!!"N3!!!)!!!!#"!!!!c!!!!B`!!!$0!!!!JJ!!!)-!!!$1!!!!c`! | ||
4668 | !!!N!!!(a!!!!K3!!!)B!!!#(!!!"T3!!!)J!!!#*!!!!LJ!!!)X!!!#-!!!!M3! | ||
4669 | !!)i!!!#2!!!!N!!!!!#4!!!!NJ!!!*-!!!#8!!!!P3!!!*B!!!#A!!!"N`!!!Bi | ||
4670 | !!!'2!!!"M3!!!C!!!!!!K!!!!*J!!!#C!!!#"!!!!93!!!&9!!!"P!!!!BB!!!) | ||
4671 | (!!!##!!!!D`!!!#N!!!!T3!!!+B!!!#R!!!!U!!!!KB!!!'Y!!!!R`!!!+)!!!# | ||
4672 | M!!!"R`!!!AS!!!'Z!!!"V`!!!AX!!!)!!!!"RJ!!!0!!!!#D!!!!Q`!!!*`!!!# | ||
4673 | G!!!!S!!!!*i!!!#K!!!!5!!!!%N!!!"+!!!!5`!!!%`!!!"0!!!!6J!!!%m!!!) | ||
4674 | &!!!#"J!!!+N!!!'`!!!"X3!!!,d!!!#q!!!![`!!!-!!!!$"!!!!d3!!!E)!!!' | ||
4675 | c!!!!`J!!!--!!!$%!!!!a3!!!-B!!!'"!!!!a`!!!-J!!!#U!!!!U`!!!+`!!!' | ||
4676 | d!!!!dJ!!!+d!!!'9!!!!b3!!!D!!!!'e!!!!bJ!!!-X!!!"3!!!!d`!!!03!!!$ | ||
4677 | 9!!!!eJ!!!0F!!!$B!!!"I!!!!0N!!!$D!!!!f`!!!0`!!!$G!!!!hJ!!!0m!!!$ | ||
4678 | J!!!!i3!!!1)!!!$M!!!!j!!!!18!!!$Q!!!!j`!!!1J!!!$T!!!!kJ!!!1X!!!$ | ||
4679 | X!!!!l3!!!1i!!!$[!!!!m!!!!2%!!!$b!!!!m`!!!23!!!$e!!!!pJ!!!2F!!!# | ||
4680 | Z!!!!V`!!!J-!!!(D!!!"l3!!!&%!!!"5!!!!8`!!!H`!!!'f!!!"Y`!!!EJ!!!( | ||
4681 | L!!!"i!!!!D%!!!(E!!!"c3!!!F`!!!(F!!!"cJ!!!Gd!!!(2!!!"#3!!!&3!!!" | ||
4682 | 9!!!!9J!!!&F!!!"B!!!!@3!!!&S!!!"E!!!!!3!!!3S!!!%,!!!"$!!!!3d!!!% | ||
4683 | 1!!!"$`!!!4!!!!(f!!!"k3!!!HF!!!(Q!!!"i`!!!H8!!!(I!!!"rJ!!!Id!!!( | ||
4684 | 5!!!"SJ!!!!)!!!(C!!!"%3!!!4)!!!%6!!!"&!!!!48!!!%@!!!"-`!!!Ad!!!' | ||
4685 | M!!!"p`!!!GJ!!!!!!!!"d`!!!!-!!!(A!!!"IJ!!!IJ!!!(V!!!"q3!!!Hi!!!$ | ||
4686 | i!!!!q3!!!2S!!!$l!!!!r!!!!2d!!!$q!!!!r`!!!3!!!!%"!!!"Z3!!!&`!!!" | ||
4687 | G!!!"&`!!!4J!!!%C!!!!X!!!!,%!!!#b!!!"j!!!!H%!!!'k!!!"e!!!!!3!!!! | ||
4688 | &!!!"e3!!!GB!!!!'!!!!"`!!!4S!!!%K!!!")J!!!5-!!!%N!!!"*3!!!5B!!!% | ||
4689 | R!!!"+!!!!5N!!!%U!!!"+`!!!5`!!!'B!!!",3!!!5i!!!'@!!!"P`!!!&i!!!" | ||
4690 | I!!!!B!!!!'%!!!"L!!!!B`!!!'3!!!"P!!!!CJ!!!'F!!!"S!!!!D3!!!'S!!!# | ||
4691 | c!!!"qJ!!!I-!!!%E!!!"(!!!!4d!!!%H!!!"(`!!!5!!!!%[!!!"Q3!!!6!!!!% | ||
4692 | a!!!"QJ!!!CX!!!'l!!!"[!!!!6)!!!'p!!!"T!!!!JN!!!)+!!!##`!!!J`!!!) | ||
4693 | 0!!!#$J!!!I!!!!)2!!!"!J!!!3-!!!%%!!!""3!!!3B!!!%(!!!"#!!!!,3!!!% | ||
4694 | d!!!"T`!!!DB!!!#e!!!"03!!!6B!!!%h!!!"1!!!!6N!!!%k!!!"1`!!!6`!!!% | ||
4695 | p!!!"2J!!!6m!!!&!!!!"33!!!,B!!!#h!!!"[J!!!Hm!!!)3!!!"3J!!!8-!!!# | ||
4696 | i!!!"[`!!!C`!!!&%!!!"43!!!8B!!!&(!!!"5!!!!Cd!!!&*!!!"5J!!!8X!!!& | ||
4697 | -!!!"63!!!!S!!!!,!!!!$!!!!!d!!!!1!!!!$`!!!"!!!!!4!!!!%J!!!"-!!!! | ||
4698 | 8!!!!&3!!!"B!!!!A!!!!'!!!!"N!!!!D!!!!'`!!!F!!!!#j!!!"6J!!!8m!!!& | ||
4699 | 3!!!"83!!!F%!!!(r!!!"`J!!!F-!!!!F!!!!(3!!!"i!!!!I!!!!)!!!!#%!!!! | ||
4700 | L!!!!)`!!!#3!!!!P!!!!*J!!!9)!!!#k!!!!Z`!!!F3!!!(&!!!"aJ!!!FF!!!( | ||
4701 | ,!!!!*`!!!#J!!!!T!!!!+J!!!#X!!!)#!!!!#!!!!9-!!!'+!!!!D`!!!'`!!!" | ||
4702 | Y!!!"L!!!!'i!!!'*!!!"C`!!!@J!!!&T!!!"DJ!!!@X!!!&X!!!"E3!!!@i!!!& | ||
4703 | [!!!"F!!!!A%!!!&b!!!"K3!!!A-!!!&d!!!"G3!!!AB!!!'%!!!"G`!!!AJ!!!& | ||
4704 | j!!!"b!!!!FN!!!'S!!!"bJ!!!9B!!!&A!!!"JJ!!!9J!!!&C!!!"@J!!!9X!!!& | ||
4705 | F!!!"A3!!!9i!!!&I!!!"B!!!!@%!!!&L!!!"J`!!!@-!!!&N!!!"C3!!!,`!!!( | ||
4706 | b!!!!E`!!!@B!!!"`!!!!F3!!!()!!!"c!!!!G!!!!(8!!!"f!!!!G`!!!(J!!!" | ||
4707 | j!!!!HJ!!!(X!!!"m!!!"J!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4708 | !!!!!!!!"!!!!-P*26e3!!!!!!!!!!!!!!!!'4e*98!!!!!!!!!!"$P*[H5Gc)%G | ||
4709 | PG%K89&"6!!!!"8C*6%8"!!'L4NP-43%!!D0'58a&!3!"U%C*6%8"!!'K4NP-43% | ||
4710 | !!D"(8P93!!!!!!!!!!)66h"PEP066#""F("XD@0KG'P[EJ!!!#0'58a&!J!!(%C | ||
4711 | *6%8#!!!U4NP-43)!!!e'58a&!J!!)%C*6%8#!!!54NP-43)!!"0'58a&!J!!&NC | ||
4712 | *6%8#!!!B4NP-43)!!"G'58a&!J!!$NC*6%8#!!!H4NP-43)!!"&'58a&!J!!%%C | ||
4713 | *6%8#!!!K4NP-43)!!"4'58a&!J!!&8C*6%8#!!!X4NP-43)!!"T'58a&!J!!'8C | ||
4714 | *6%8#!!!S4NP-43)!!#G'58a&!J!!*%C*6%8#!!!Y4NP-43)!!!Y'58a&!J!!*NC | ||
4715 | *6%8#!!!T4NP-43)!!!a'58a&!J!!+dC*6%8#!!!L4NP-43)!!!p'58a&!J!!'dC | ||
4716 | *6%8#!!!G4NP-43)!!"p'58a&!J!!*8C*6%8#!!!M4e*98!!!!!!!!!!$%8p`C@j | ||
4717 | 68d`J6'PLFQ&bD@9c!!!!"%G599!!!!!!!!!!"!038%-!!!!#4NP-43)!!$0'58a | ||
4718 | &!J!!0%G599!!!!!!!!!!"3-f1'X!!!!#4NP-438!!#"'58a&"3!!(dG599!!!!! | ||
4719 | !!!!!"JCMFRP`G'm!!!!S4NP-43%!!Aa'58a&!3!"INC*6%8"!!'N4NP-43%!!Cp | ||
4720 | '58a&!3!"I8C*6%8"!!&l4e*98!!!!!!!!!!("'&cEM%!!!"A4NP-43%!!$j'58a | ||
4721 | &!3!!-8C*6%8"!!"&4NP-43%!!$P'58a&!3!!3dC*6%8"!!!m4NP-43%!!$p'58a | ||
4722 | &!3!!3%C*6%8"!!"%4NP-43%!!%&'58a&!3!!0dC*6%8"!!!e4NP-43%!!$Y'58a | ||
4723 | &!3!!-NC*6%8"!!!i4NP-43%!!%K'58a&!3!!4NC*6%8"!!"#4NP-43%!!$C'58a | ||
4724 | &!3!!4dC*6%8"!!')4NP-43%!!("'58a&!3!!I%C*6%8"!!"i4NP-43%!!(T'58a | ||
4725 | &!3!!H8C*6%8"!!"a4NP-43%!!(C'58a&!3!!FNC*6%8"!!"p4NP-43%!!B&'58a | ||
4726 | &!3!!FdC*6%8"!!"e4NP-43%!!(Y'58a&!3!!A8C*6%8"!!"04NP-43%!!&P'58a | ||
4727 | &!3!!6NC*6%8"!!"D4NP-43%!!%p'58a&!3!!@dC*6%8"!!"34NP-43%!!&a'58a | ||
4728 | &!3!!5dC*6%8"!!"A4NP-43%!!%a'58a&!3!!@%C*6%8"!!"Z4NP-43%!!'p'58a | ||
4729 | &!3!"LNC*6%8"!!"X4NP-43%!!'e'58a&!3!"L8C*6%8"!!',4NP-43%!!'9'58a | ||
4730 | &!3!!D8C*6%8"!!"S4NP-43%!!'G'58a&!3!!BdC*6%8"!!"N4NP-43%!!'&'58a | ||
4731 | &!3!!DNC*6%8"!!"L4NP-43%!!'C'58a&!3!!8dC*6%8"!!"84NP-43%!!&9'58a | ||
4732 | &!3!!9NC*6%8"!!"*4NP-43%!!%T'58a&!3!!ANC*6%8"!!"54NP-43%!!$T'58a | ||
4733 | &!3!!GdC*6%8"!!!c4NP-43%!!(4'58a&!3!!,dC*6%8"!!!Z4NP-43%!!#e'58a | ||
4734 | &!3!!28C*6%8"!!!d4NP-43%!!Ba'58a&!3!!88C*6%8"!!!`4NP-43%!!&p'58a | ||
4735 | &!3!!B%C*6%8"!!"V4e*98!!!!!!!!!!)!Q*Q!!!!"8C*6%8"!!##4NP-43%!!(p | ||
4736 | '58a&!3!!J%C*6%8"!!"q4NP-43%!!)&(8P93!!!!!!!!!!N$BQP[!!!!$NC*6%8 | ||
4737 | "!!#%4NP-43%!!Be'58a&!3!!JdC*6%8"!!'14NP-43%!!C&'58a&!3!"MdC*6%8 | ||
4738 | "!!'3!%C*6%8"!!#&4NP-43%!!C*'58a&!3!"J%C*6%8"!!'(4NP-43%!!C9'58a | ||
4739 | &!3!"NdC*6%8"!!'84e*98!!!!!!!!!!+!Q*Z!!!!&%C*6%8"!!#'4NP-43%!!)P | ||
4740 | '58a&!3!!LdC*6%8"!!#14NP-43%!!DC'58a&!3!!N8C*6%8"!!#64NP-43%!!*4 | ||
4741 | '58a&!3!!PNC*6%8"!!#B4NP-43%!!)K'58a&!3!!M8C*6%8"!!#54NP-43%!!)T | ||
4742 | '58a&!3!!PdC*6%8"!!#(4NP-43%!!*9'58a&!3!!MdC*6%8"!!#3!%C*6%8"!!# | ||
4743 | -4e*98!!!!!!!!!!,"Q*eCQCPFJ!!!!*'58a&!3!!Q8C*6%8"!!#D4e*98!!!!!! | ||
4744 | !!!!-"'0KFh3!!!!&4NP-43%!!*p'58a&!3!!R%C*6%8"!!#G4NP-43%!!*Y'58a | ||
4745 | &!3!!RNG599!!!!!!!!!!$34MEfe`!!!!!dC*6%8"!!#J4NP-43%!!+&'58a&!3! | ||
4746 | !SNG599!!!!!!!!!!$J4MEfjQ!!!!!NC*6%8"!!#M4NP-43%!!+4(8P93!!!!!!! | ||
4747 | !!!m$C'9c!!!!'NC*6%8"!!#P4NP-43%!!+C'58a&!3!!U%C*6%8"!!#T4NP-43% | ||
4748 | !!+Y'58a&!3!!V%C*6%8"!!#Z4NP-43%!!CC'58a&!3!!VdC*6%8"!!#b4NP-43% | ||
4749 | !!,0'58a&!3!!Y%C*6%8"!!#e4NP-43%!!,C'58a&!3!!Z%C*6%8"!!#j4NP-43% | ||
4750 | !!,T'58a&!3!!UNC*6%8"!!#`4NP-43%!!,G'58a&!3!![8C*6%8"!!#l4NP-43% | ||
4751 | !!+G'58a&!3!!X8C*6%8"!!#m4NP-43%!!+e(8P93!!!!!!!!!"!#C'J!!!!&4NP | ||
4752 | -43%!!-"'58a&!3!!`8C*6%8"!!$#4NP-43%!!,j'58a&!3!![dG599!!!!!!!!! | ||
4753 | !%30NFf%!!!!)4NP-43%!!-9'58a&!3!!aNC*6%8"!!$(4NP-43%!!-0'58a&!3! | ||
4754 | !b8C*6%8"!!$)4NP-43%!!-4'58a&!3!"JNG599!!!!!!!!!!%J0PFR)!!!!$4NP | ||
4755 | -43%!!-T'58a&!3!!bdC*6%8"!!$-4e*98!!!!!!!!!!6!f9fF!!!!$p'58a&!3! | ||
4756 | !ddC*6%8"!!$54NP-43%!!04'58a&!3!!eNC*6%8"!!$V4NP-43%!!0e'58a&!3! | ||
4757 | !j%C*6%8"!!$c4NP-43%!!1a'58a&!3!!hNC*6%8"!!$P4NP-43%!!24'58a&!3! | ||
4758 | !k%C*6%8"!!$D4NP-43%!!2G'58a&!3!"!NC*6%8"!!$K4NP-43%!!2"'58a&!3! | ||
4759 | !q%C*6%8"!!$Y4NP-43%!!0p'58a&!3!!jNC*6%8"!!$e4NP-43%!!1P'58a&!3! | ||
4760 | !fdC*6%8"!!$L4NP-43%!!2&'58a&!3!!kNC*6%8"!!$F4NP-43%!!10'58a&!3! | ||
4761 | !mNC*6%8"!!$Z4NP-43%!!1"'58a&!3!!jdC*6%8"!!$f4NP-43%!!2j'58a&!3! | ||
4762 | !qdC*6%8"!!$m4NP-43%!!3"'58a&!3!"!8C*6%8"!!$j4NP-43%!!2T'58a&!3! | ||
4763 | !r8C*6%8"!!$r4NP-43%!!3C'58a&!3!""dC*6%8"!!%)4NP-43%!!3P'58a&!3! | ||
4764 | ""8C*6%8"!!%%4NP-43%!!30'58a&!3!!cdC*6%8"!!$04NP-43%!!-j'58a&!3! | ||
4765 | !e8C*6%8"!!$[4NP-43%!!0&'58a&!3!!edC*6%8"!!$34NP-43%!!0P'58a&!3! | ||
4766 | !f%C*6%8"!!'A4NP-43%!!CK(8P93!!!!!!!!!"3%D'eKB`!!!!&'58a&!3!"#NG | ||
4767 | 599!!!!!!!!!!&34TC'9K!!!!"8C*6%8"!!%,4NP-43%!!3a'58a&!3!"$NC*6%8 | ||
4768 | "!!%04NP-43%!!3p(8P93!!!!!!!!!"B&E'KKFfJ!!!!#4NP-43%!!4"'58a&!3! | ||
4769 | "%8G599!!!!!!!!!!&`0YC$)!!!!#4NP-43%!!4*'58a&!3!"%dG599!!!!!!!!! | ||
4770 | !'!0YC$8!!!!#4NP-43%!!44'58a&!3!"&8G599!!!!!!!!!!'34YC'-b!!!!!NC | ||
4771 | *6%8"!!%@4NP-43%!!4G(8P93!!!!!!!!!"S(Ef*UC@0dF`!!!!4'58a&!3!"'dC | ||
4772 | *6%8"!!%B4NP-43%!!4T'58a&!3!"'8G599!!!!!!!!!!'`0`C@d!!!!'4NP-43% | ||
4773 | !!5&'58a&!3!")%C*6%8"!!%H4NP-43%!!4p'58a&!3!"(%C*6%8"!!%G4e*98!! | ||
4774 | !!!!!!!!F"R"VBh-a-J!!!""'58a&!3!")NC*6%8"!!%M4NP-43%!!54'58a&!3! | ||
4775 | "*8C*6%8"!!%Q4NP-43%!!5G'58a&!3!"+%C*6%8"!!%T4NP-43%!!5T'58a&!3! | ||
4776 | "+dC*6%8"!!%X4NP-43%!!5e'58a&!3!",NC*6%8"!!%[4NP-43%!!CP'58a&!3! | ||
4777 | "-%G599!!!!!!!!!!(39`Df0c0`!!!!C'58a&!3!"-NC*6%8"!!%c4NP-43%!!6& | ||
4778 | '58a&!3!"R%C*6%8"!!'D4NP-43%!!CY(8P93!!!!!!!!!"i%FQ&ZC!!!!!4'58a | ||
4779 | &!3!"0%C*6%8"!!%e4NP-43%!!6C'58a&!3!"TdG599!!!!!!!!!!(`0bBc)!!!! | ||
4780 | &4NP-43%!!6T'58a&!3!"1dC*6%8"!!%j4NP-43%!!6G'58a&!3!"1%G599!!!!! | ||
4781 | !!!!!)!0bBc3!!!!#4NP-43%!!6e'58a&!3!"2%G599!!!!!!!!!!)30bBc8!!!! | ||
4782 | &4NP-43%!!8*'58a&!3!"3%C*6%8"!!&"4NP-43%!!6j'58a&!3!"2dG599!!!!! | ||
4783 | !!!!!)JCbDA"PE@3!!!!#4NP-43%!!80'58a&!3!"4%G599!!!!!!!!!!)`0bFf% | ||
4784 | !!!!-4NP-43%!!89'58a&!3!"4dC*6%8"!!&)4NP-43%!!8e'58a&!3!"6%C*6%8 | ||
4785 | "!!&'4NP-43%!!8Y'58a&!3!"6NC*6%8"!!&*4NP-43%!!8T'58a&!3!"R8C*6%8 | ||
4786 | "!!'H4e*98!!!!!!!!!!N!h0SB3!!!!4'58a&!3!"88C*6%8"!!&24NP-43%!!9* | ||
4787 | '58a&!3!"8%G599!!!!!!!!!!*39cG'&MD`!!!!&'58a&!3!"8dG599!!!!!!!!! | ||
4788 | !*JCdH(4IC')!!!!"4NP-43%!!94(8P93!!!!!!!!!#F%H$8`13!!!"9'58a&!3! | ||
4789 | "A%C*6%8"!!&E4NP-43%!!@&'58a&!3!"@NC*6%8"!!&J4NP-43%!!@*'58a&!3! | ||
4790 | "JdC*6%8"!!&Q4NP-43%!!@0'58a&!3!"@%C*6%8"!!&G4NP-43%!!9G'58a&!3! | ||
4791 | "C8C*6%8"!!&H4NP-43%!!9P'58a&!3!"AdC*6%8"!!&R4NP-43%!!@4'58a&!3! | ||
4792 | "K%C*6%8"!!&94NP-43%!!9C(8P93!!!!!!!!!#J'H$8`1ABc!!!!&8C*6%8"!!& | ||
4793 | V4NP-43%!!@a'58a&!3!"E8C*6%8"!!&a4NP-43%!!A0'58a&!3!"G8C*6%8"!!& | ||
4794 | h4NP-43%!!AT'58a&!3!"D%C*6%8"!!&b4NP-43%!!@T'58a&!3!"H%C*6%8"!!& | ||
4795 | T4NP-43%!!AC'58a&!3!"G%C*6%8"!!&`4NP-43%!!AP'58a&!3!"ENC*6%8"!!& | ||
4796 | [4NP-43%!!B9'58a&!3!"KNG599!!!!!!!!!!+30cFf`!!!!M4NP-43%!!"0'58a | ||
4797 | &!3!!&8C*6%8"!!!34NP-43%!!"*'58a&!3!!%8C*6%8"!!!84NP-43%!!"T'58a | ||
4798 | &!3!!(%C*6%8"!!!A4NP-43%!!"P'58a&!3!!'%C*6%8"!!!E4NP-43%!!"C'58a | ||
4799 | &!3!!$8C*6%8"!!!24NP-43%!!!Y'58a&!3!!$%C*6%8"!!!14NP-43%!!#Y'58a | ||
4800 | &!3!!,%C*6%8"!!!S4NP-43%!!#T'58a&!3!!+8C*6%8"!!!M4NP-43%!!#*'58a | ||
4801 | &!3!!(dC*6%8"!!!P4NP-43%!!#"'58a&!3!!*NC*6%8"!!!N4NP-43%!!"j'58a | ||
4802 | &!3!!*dC*6%8"!!!G4NP-43%!!!T'58a&!3!!)8G599!!!!!!!!!!+Jj(990*)%a | ||
4803 | TBR*KFQPPF`!!!!0'58a&!J!!,dG599!!!!!!!!!!+`038%-!!!!$4NP-43)!!$" | ||
4804 | '58a&!J!!-8C*6%8#!!!b4e*98!!!!!!!!!!X!cBiD`!!!!0'58a&"3!!&%C*6%8 | ||
4805 | &!!!94NP-438!!"C(8P93!!!!!!!!!#d138j655"-D@*bBA*TCA-!!!!#4e*98!! | ||
4806 | !!!!!!!!Z!e"33`!!!!*'58a&!3!!!8C*6%8"!!&r4e*98!!!!!!!!!![!cBiD`! | ||
4807 | !!!*'58a&!`!"S%C*6%8$!!'K4e*98!!!!!!!!!!`$8eKBb"-D@*bBA*TCA-!!!! | ||
4808 | #4e*98!!!!!!!!!!a!e"33`!!!!P'58a&!3!!"%C*6%8"!!!#4NP-43%!!!0'58a | ||
4809 | &!3!!#8C*6%8"!!!)4NP-43%!!!G'58a&!3!!"NC*6%8"!!!&4NP-43%!!D9(8P9 | ||
4810 | 3!!!!!!!!!$)$0MKV!!!!"NC*6%8$!!'D4NP-43-!!D*'58a&!`!"R%C*6%8$!!' | ||
4811 | G4NP-43-!!Cp'58a&!`!"Q`!!!4#V3!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
4812 | !!!!!!!!!!!!"+!!!'!"YFh4b!!!!!!!!!!!!!!!!!!!C+!!!#S"YFh4X!!!!!!! | ||
4813 | !!!!!!!!!!!!MU!!!!i"YFh4Z!!!!!!!!!!!!!!!!!!!R+!!!'!"YFh4b!!!$k!! | ||
4814 | !!!!!!!!!!!!r+!!!'B"YFh4X!!!$k!!!!!!!!!!!!!0TDJ!!#)"YFh4Z!!!$k!! | ||
4815 | !!!!!!!!!!!"E+!!!"4"`FQ9Q!!P'eJ!!!!%!!!!!!!"J1!!!!!K`FQ9Q!!L`,3! | ||
4816 | !!!)!!!!!!!"J3!!!!"T`FQ9Q!!PX2!!!!!-!!!!!!!"J@J!!$+"`FQ9Q!!MrS3! | ||
4817 | !!!3!!!!!!!"XqJ!!"K4`FQ9Q!!L+i3!!!!8!!!!!!!"c$J!!#*C`FQ9Q!!P5m!! | ||
4818 | !!!B!!!!!!!"lT!!!!3G`FQ9Q!!Le63!!!!F!!!!!!!"mU`!!!b"`FQ9Q!!N!,`! | ||
4819 | !!!J!!!!!!!"rb`!!!"4`FQ9Q!!NR4!!!!!N!!!!!!!"rh`!!!!T`FQ9Q!!M`UJ! | ||
4820 | !!!S!!!!!!!"rk3!!!!a`FQ9Q!!L"hJ!!!!X!!!!!!!"rp3!!!!j`FQ9Q!!M0!!! | ||
4821 | !!!`!!!!!!!#!!`!!!3C`FQ9Q!!Kpf3!!!!d!!!!!!!#"#3!!!$j`FQ9Q!!N#K!! | ||
4822 | !!!i!!!!!!!#"4`!!!!j`FQ9Q!!PRC3!!!!m!!!!!!!#"93!!!GT`FQ9Q!!MG@`! | ||
4823 | !!"!!!!!!!!#$,`!!!'*`FQ9Q!!M*!3!!!"%!!!!!!!#$N3!!!"4`FQ9Q!!MP"`! | ||
4824 | !!")!!!!!!!#$T3!!!!T`FQ9Q!!LpV!!!!"-!!!!!!!#$V`!!!!a`FQ9Q!!PJK`! | ||
4825 | !!"3!!!!!!!#$Z`!!!-T`FQ9Q!!L(e!!!!"8!!!!!!!#%K3!!!4K`FQ9Q!!LAh3! | ||
4826 | !!"B!!!!!!!#&R3!!!+K`FQ9Q!!LpP!!!!"F!!!!!!!#'43!!!#j`FQ9Q!!PBJJ! | ||
4827 | !!"J!!!!!!!#'F`!!!Ja`FQ9Q!!N()3!!!"N!!!!!!!#)I`!!4J"YG("X!!!!!3! | ||
4828 | !!!!!!!!!!!$1I`!!"`"YG("c!!!!!3!!!!!!!!!!!!$9I`!!!""YG("T!!!!!3! | ||
4829 | !!!!!!!!!!!$9M`!!"U"YG'a[!!!!!3!!!!!!!!!!!!$F,`!!!#"YG(0X!!!!!3! | ||
4830 | !!!!!!!!!!!$F6`!!"4"`FQ9Q!!NN23!!!"S!!!!!!!$KA`!!!!K`FQ9Q!!M6`J! | ||
4831 | !!"X!!!!!!!$KC`!!!"T`FQ9Q!!KkI3!!!"`!!!!!!!$KJ3!!%0"`FQ9Q!!LKD`! | ||
4832 | !!"d!!!!!!!$b83!!"K4`FQ9Q!!PS2J!!!"i!!!!!!!$iC3!!#*C`FQ9Q!!M14`! | ||
4833 | !!"m!!!!!!!%!q`!!!3G`FQ9Q!!P,IJ!!!#!!!!!!!!%#!J!!!b"`FQ9Q!!Mle3! | ||
4834 | !!#%!!!!!!!%&)J!!!"4`FQ9Q!!NP93!!!#)!!!!!!!%&0J!!!!T`FQ9Q!!LIJJ! | ||
4835 | !!#-!!!!!!!%&3!!!!!a`FQ9Q!!L8Z!!!!#3!!!!!!!%&6!!!!!j`FQ9Q!!P54!! | ||
4836 | !!#8!!!!!!!%&@J!!!3C`FQ9Q!!P'2`!!!#B!!!!!!!%'B!!!!$j`FQ9Q!!N63!! | ||
4837 | !!#F!!!!!!!%'RJ!!!!j`FQ9Q!!MZ(3!!!#J!!!!!!!%'V!!!!GT`FQ9Q!!Lmf!! | ||
4838 | !!#N!!!!!!!%)KJ!!!'*`FQ9Q!!LrK!!!!#S!!!!!!!%)k!!!!"4`FQ9Q!!NchJ! | ||
4839 | !!#X!!!!!!!%)r!!!!!T`FQ9Q!!M,S!!!!#`!!!!!!!%*"J!!!!a`FQ9Q!!N%'3! | ||
4840 | !!#d!!!!!!!%*%J!!!-T`FQ9Q!!NJ2!!!!#i!!!!!!!%*h!!!!4K`FQ9Q!!PIl3! | ||
4841 | !!#m!!!!!!!%+p!!!!+K`FQ9Q!!Lq%J!!!$!!!!!!!!%,R!!!!#j`FQ9Q!!LM0`! | ||
4842 | !!$%!!!!!!!%,bJ!!!Ja`FQ9Q!!NG#`!!!$)!!!!!!!%0eJ!!#J"YG("X!!!!!J! | ||
4843 | !!!!!!!!!!!%AeJ!!!3"YG("c!!!!!J!!!!!!!!!!!!%BeJ!!!""YG("T!!!!!J! | ||
4844 | !!!!!!!!!!!%BjJ!!!0"YG'a[!!!!!J!!!!!!!!!!!!%CYJ!!!#"YG(0X!!!!!J! | ||
4845 | !!!!!!!!!!!%CeJ!!"4"`FQ9Q!!PDj!!!!$-!!!!!!!%HjJ!!!!K`FQ9Q!!NN$!! | ||
4846 | !!$3!!!!!!!%HlJ!!!"T`FQ9Q!!MT*`!!!$8!!!!!!!%I#!!!$+"`FQ9Q!!P`ZJ! | ||
4847 | !!$B!!!!!!!%VU!!!"K4`FQ9Q!!N$-3!!!$F!!!!!!!%a[!!!#5C`FQ9Q!!L9f`! | ||
4848 | !!$J!!!!!!!%kiJ!!!3G`FQ9Q!!LI%`!!!$N!!!!!!!%lk3!!!b"`FQ9Q!!Lj$!! | ||
4849 | !!$S!!!!!!!%r#3!!!"4`FQ9Q!!MhR`!!!$X!!!!!!!%r(3!!!!T`FQ9Q!!M-hJ! | ||
4850 | !!$`!!!!!!!%r*`!!!!a`FQ9Q!!N&m!!!!$d!!!!!!!%r-`!!!!j`FQ9Q!!P[``! | ||
4851 | !!$i!!!!!!!%r33!!!3C`FQ9Q!!MmQ!!!!$m!!!!!!!&!4`!!!$j`FQ9Q!!MK!J! | ||
4852 | !!%!!!!!!!!&!K3!!!!j`FQ9Q!!LfY`!!!%%!!!!!!!&!N`!!!GT`FQ9Q!!MPM!! | ||
4853 | !!%)!!!!!!!&#E3!!!'*`FQ9Q!!PS+!!!!%-!!!!!!!&#c`!!!"4`FQ9Q!!MH03! | ||
4854 | !!%3!!!!!!!&#i`!!!!T`FQ9Q!!PH+3!!!%8!!!!!!!&#l3!!!!a`FQ9Q!!L*a3! | ||
4855 | !!%B!!!!!!!&#q3!!!-T`FQ9Q!!L*,!!!!%F!!!!!!!&$``!!!4K`FQ9Q!!MZ"!! | ||
4856 | !!%J!!!!!!!&%f`!!!+K`FQ9Q!!L@Q`!!!%N!!!!!!!&&J`!!!#j`FQ9Q!!M8&3! | ||
4857 | !!%S!!!!!!!&&X3!!!Ja`FQ9Q!!Lj"J!!!%X!!!!!!!&([3!!4J"YG("X!!!!!`! | ||
4858 | !!!!!!!!!!!'0[3!!"`"YG("c!!!!!`!!!!!!!!!!!!'8[3!!!""YG("T!!!!!`! | ||
4859 | !!!!!!!!!!!'8c3!!!#"YG(0X!!!!!`!!!!!!!!!!!!'8l3!!"T4YG'a[!!!!!`! | ||
4860 | !!!!!!!!!!!'EJ3!!"4"`FQ9Q!!N*[!!!!%`!!!!!!!'JN3!!!!K`FQ9Q!!Kq93! | ||
4861 | !!%d!!!!!!!'JQ3!!!"T`FQ9Q!!M+H`!!!%i!!!!!!!'JX`!!%0"`FQ9Q!!N6p!! | ||
4862 | !!%m!!!!!!!'aJ`!!"K4`FQ9Q!!M$+3!!!&!!!!!!!!'hP`!!#5C`FQ9Q!!L!9`! | ||
4863 | !!&%!!!!!!!(![3!!!3G`FQ9Q!!N`BJ!!!&)!!!!!!!("a!!!!b"`FQ9Q!!M3)3! | ||
4864 | !!&-!!!!!!!(%j!!!!"4`FQ9Q!!L4H3!!!&3!!!!!!!(%q!!!!!T`FQ9Q!!NR0J! | ||
4865 | !!&8!!!!!!!(&!J!!!!a`FQ9Q!!L'$3!!!&B!!!!!!!(&$J!!!!j`FQ9Q!!MR53! | ||
4866 | !!&F!!!!!!!(&(!!!!3C`FQ9Q!!PEH!!!!&J!!!!!!!(')J!!!$j`FQ9Q!!MfA3! | ||
4867 | !!&N!!!!!!!('B!!!!!j`FQ9Q!!N&53!!!&S!!!!!!!('EJ!!!GT`FQ9Q!!LB-`! | ||
4868 | !!&X!!!!!!!()5!!!!'*`FQ9Q!!L6[3!!!&`!!!!!!!()UJ!!!"4`FQ9Q!!LeT`! | ||
4869 | !!&d!!!!!!!()[J!!!!T`FQ9Q!!N,D`!!!&i!!!!!!!()b!!!!!a`FQ9Q!!LcY`! | ||
4870 | !!&m!!!!!!!()e!!!!-T`FQ9Q!!LFj`!!!'!!!!!!!!(*RJ!!!4K`FQ9Q!!N!V3! | ||
4871 | !!'%!!!!!!!(+YJ!!!+K`FQ9Q!!N(2!!!!')!!!!!!!(,AJ!!!#j`FQ9Q!!LQY!! | ||
4872 | !!'-!!!!!!!(,M!!!!Ja`FQ9Q!!M053!!!'3!!!!!!!(0Q!!!#J"YG("X!!!!"!! | ||
4873 | !!!!!!!!!!!(AQ!!!!3"YG("c!!!!"!!!!!!!!!!!!!(BQ!!!!""YG("T!!!!"!! | ||
4874 | !!!!!!!!!!!(BU!!!!#"YG(0X!!!!"!!!!!!!!!!!!!(Bb!!!!)aYG'a[!!!!"!! | ||
4875 | !!!!!!!!!!!(C9!!!"4"`FQ9Q!!MM#`!!!'8!!!!!!!(HC!!!!!K`FQ9Q!!M"$!! | ||
4876 | !!'B!!!!!!!(HE!!!!"T`FQ9Q!!MYHJ!!!'F!!!!!!!(HKJ!!%0"`FQ9Q!!MKm`! | ||
4877 | !!'J!!!!!!!([9J!!"K4`FQ9Q!!Nre3!!!'N!!!!!!!(eDJ!!#5C`FQ9Q!!LZ3J! | ||
4878 | !!'S!!!!!!!(qN!!!!!%(F(*PCJ!)KRi!!!"V!!!!!!!"rjF!!!-JF(*PCJ!)PD8 | ||
4879 | !!!"X!!!!!!!#!VF!!!!8F(*PCJ!*0m)!!!"Y!!!!!!!#!XX!!!!+F(*PCJ!*AZd | ||
4880 | !!!"Z!!!!!!!#!Y8!!!!-F(*PCJ!)Vii!!!"[!!!!!!!#!Z%!!!!1F(*PCJ!*,[d | ||
4881 | !!!"`!!!!!!!#!Zm!!!%'F(*PCJ!*'EB!!!"a!!!!!!!#!r8!!!!qF(*PCJ!*0P8 | ||
4882 | !!!"b!!!!!!!#"$-!!!!1F(*PCJ!*-D%!!!"c!!!!!!!#"%%!!!(DF(*PCJ!*0"i | ||
4883 | !!!"d!!!!!!!#"KX!!!"LF(*PCJ!)GH!!!!"e!!!!!!!#"Rd!!!!8F(*PCJ!)Q)S | ||
4884 | !!!"f!!!!!!!#"T%!!!!+F(*PCJ!*!Pd!!!"h!!!!!!!#"TX!!!!-F(*PCJ!)PR- | ||
4885 | !!!"i!!!!!!!#"UF!!!$+F(*PCJ!)TC!!!!!!H3!!!!!!!JGa!!!"'("bC@B!#-A | ||
4886 | 9!!!!HJ!!!!!!!JL*!!!!U("bC@B!#86U!!!!H`!!!!!!!JNa!!!!,R"bC@B!#@@ | ||
4887 | 8!!!!I!!!!!!!!JPI!!!#$("bC@B!#(ep!!!!I3!!!!!!!JYV!!!&!'edF'`!!!! | ||
4888 | &!!!!!!!!!!!!!K"V!!!!J'edF(-!!!!&!!!!!!!!!!!!!K$V!!!!%'edF'N!!!! | ||
4889 | &!!!!!!!!!!!!!K$l!!!!)'edFf`!!!!&!!!!!!!!!!!!!K%E!!!!J'edE'm!!!! | ||
4890 | &!!!!!!!!!!!!!K'E!!!&%("bC@B!#8UQ!!!!IJ!!!!!!!KDV!!!!#("bC@B!#22 | ||
4891 | (!!!!I`!!!!!!!KDc!!!!'R"bC@B!#3#p!!!!J!!!!!!!!KE0!!!3d("bC@B!#2` | ||
4892 | [!!!!J3!!!!!!!LHG!!!'&("bC@B!#1[4!!!!JJ!!!!!!!Lfa!!!)PR"bC@B!#(, | ||
4893 | 9!!!!J`!!!!!!!MC(!!!""h"bC@B!#@rk!!!!K!!!!!!!!MG1!!!$)("bC@B!#1G | ||
4894 | '!!!!K3!!!!!!!MTZ!!!!&("bC@B!#128!!!!KJ!!!!!!!MU#!!!!#R"bC@B!#,1 | ||
4895 | q!!!!K`!!!!!!!MU-!!!!$("bC@B!#)c'!!!!L!!!!!!!!MUB!!!!$R"bC@B!#4S | ||
4896 | ,!!!!L3!!!!!!!MUQ!!!""R"bC@B!#-iX!!!!LJ!!!!!!!MZX!!!!2R"bC@B!#(C | ||
4897 | #!!!!L`!!!!!!!M[U!!!!$R"bC@B!#@+F!!!!M!!!!!!!!M[i!!!"fR"bC@B!#8( | ||
4898 | h!!!!M3!!!!!!!Mh5!!!!BR"bC@B!#2!L!!!!MJ!!!!!!!Mid!!!!&("bC@B!#(d | ||
4899 | @!!!!M`!!!!!!!Mj)!!!!#R"bC@B!#2iC!!!!N!!!!!!!!!)q8J!!!!a`FQ9Q!!M | ||
4900 | YZ!!!!*%!!!!!!!)qAJ!!!-T`FQ9Q!!Pb83!!!*)!!!!!!!)r+!!!!4K`FQ9Q!!L | ||
4901 | a"3!!!*-!!!!!!!*!3!!!!+K`FQ9Q!!NZf`!!!*3!!!!!!!*!k!!!!#j`FQ9Q!!K | ||
4902 | j[`!!!*8!!!!!!!*"&J!!!Ja`FQ9Q!!Mi,3!!!*B!!!!!!!*$)J!!#J"YG("X!!! | ||
4903 | !"J!!!!!!!!!!!!*0)J!!!3"YG("c!!!!"J!!!!!!!!!!!!*1)J!!!""YG("T!!! | ||
4904 | !"J!!!!!!!!!!!!*1-J!!!)aYG'a[!!!!"J!!!!!!!!!!!!*1[J!!!#"YG(0X!!! | ||
4905 | !"J!!!!!!!!!!!!*1hJ!!"4"`FQ9Q!!Kf)J!!!*F!!!!!!!*6lJ!!!!K`FQ9Q!!N | ||
4906 | bh`!!!*J!!!!!!!*6pJ!!!"T`FQ9Q!!MZB3!!!*N!!!!!!!*8%!!!%0"`FQ9Q!!M | ||
4907 | [m`!!!*S!!!!!!!*Ni!!!"K4`FQ9Q!!NVZ`!!!*X!!!!!!!*Up!!!#*C`FQ9Q!!M | ||
4908 | b!J!!!*`!!!!!!!*cLJ!!!3G`FQ9Q!!P083!!!*d!!!!!!!*dN3!!!b"`FQ9Q!!M | ||
4909 | a13!!!*i!!!!!!!*hX3!!!"4`FQ9Q!!P9h3!!!*m!!!!!!!*ha3!!!!T`FQ9Q!!M | ||
4910 | +,3!!!+!!!!!!!!*hc`!!!!a`FQ9Q!!L6T`!!!+%!!!!!!!*hf`!!!!j`FQ9Q!!M | ||
4911 | jB3!!!+)!!!!!!!*hk3!!!3C`FQ9Q!!L0Z`!!!+-!!!!!!!*il`!!!$j`FQ9Q!!M | ||
4912 | P3J!!!+3!!!!!!!*j,3!!!!j`FQ9Q!!N6hJ!!!+8!!!!!!!*j1`!!!GT`FQ9Q!!N | ||
4913 | kJ`!!!+B!!!!!!!*l&3!!!'*`FQ9Q!!N&H!!!!+F!!!!!!!*lG`!!!"4`FQ9Q!!L | ||
4914 | ,iJ!!!+J!!!!!!!*lL`!!!!T`FQ9Q!!MDI3!!!+N!!!!!!!*lP3!!!!a`FQ9Q!!K | ||
4915 | l33!!!+S!!!!!!!*lS3!!!-T`FQ9Q!!MlG3!!!+X!!!!!!!*mD`!!!4K`FQ9Q!!L | ||
4916 | e&!!!!+`!!!!!!!*pJ`!!!+K`FQ9Q!!MK1`!!!+d!!!!!!!*q+`!!!#j`FQ9Q!!L | ||
4917 | Y#!!!!+i!!!!!!!*q@3!!!Ja`FQ9Q!!L42`!!!+m!!!!!!!+!C3!!2!"YG("X!!! | ||
4918 | !"`!!!!!!!!!!!!+mC3!!"J"YG("c!!!!"`!!!!!!!!!!!!,#C3!!!""YG("T!!! | ||
4919 | !"`!!!!!!!!!!!!,#G3!!"G4YG'a[!!!!"`!!!!!!!!!!!!,)53!!!#"YG(0X!!! | ||
4920 | !"`!!!!!!!!!!!!,)D3!!"4"`FQ9Q!!NXL3!!!,!!!!!!!!,0H3!!!!K`FQ9Q!!P | ||
4921 | %U3!!!,%!!!!!!!,0J3!!!"T`FQ9Q!!LT(!!!!,)!!!!!!!,0Q`!!%0"`FQ9Q!!N | ||
4922 | (M3!!!,-!!!!!!!,HD`!!"K4`FQ9Q!!PH[`!!!,3!!!!!!!,NI`!!#5C`FQ9Q!!M | ||
4923 | Hh!!!!,8!!!!!!!,YT3!!!3G`FQ9Q!!M`h!!!!,B!!!!!!!,ZV!!!!b"`FQ9Q!!L | ||
4924 | N03!!!,F!!!!!!!,ac!!!!"4`FQ9Q!!Mb6J!!!,J!!!!!!!,ai!!!!!T`FQ9Q!!N | ||
4925 | a@!!!!,N!!!!!!!,akJ!!!!a`FQ9Q!!LH1J!!!,S!!!!!!!,apJ!!!!j`FQ9Q!!N | ||
4926 | "f3!!!,X!!!!!!!,b"!!!!3C`FQ9Q!!P`p!!!!,`!!!!!!!,c#J!!!$j`FQ9Q!!P | ||
4927 | Qf!!!!,d!!!!!!!,c5!!!!!j`FQ9Q!!PYDJ!!!,i!!!!!!!,c9J!!!GT`FQ9Q!!N | ||
4928 | #-!!!!,m!!!!!!!,e-!!!!'*`FQ9Q!!ME@!!!!-!!!!!!!!,eNJ!!!"4`FQ9Q!!L | ||
4929 | j4`!!!-%!!!!!!!,eTJ!!!!T`FQ9Q!!Mf$3!!!-)!!!!!!!,eX!!!!!a`FQ9Q!!M | ||
4930 | eDJ!!!--!!!!!!!,e[!!!!-T`FQ9Q!!MfF3!!!-3!!!!!!!,fKJ!!!4K`FQ9Q!!N | ||
4931 | `R`!!!-8!!!!!!!,hRJ!!!+K`FQ9Q!!LqH3!!!-B!!!!!!!,i4J!!!#j`FQ9Q!!L | ||
4932 | 3!*S!!!$(!!!!!!!#q(3!!!)-F(*PCJ!)d'B!!!$)!!!!!!!#qS!!!$`!EA4`E!! | ||
4933 | !!!J!!!!!!!!!!!!$0S!!!!B!EA4`F`!!!!J!!!!!!!!!!!!$2)!!!!!3EA4`D3! | ||
4934 | !!!J!!!!!!!!!!!!$2*!!!!!!)'edFf`!!!!)!!!!!!!!!!!!!cb`!!!&e'edE'm | ||
4935 | !!!!)!!!!!!!!!!!!!d+%!!!3a'edCf`!!!2S!!!!!!!!!!!!!e0)!!!!,'e[G'N | ||
4936 | !!!!!!!!!!!!!!!!!!h(U!!!6J&"-Fh3!#,"V!!!!b3!!!!!!!&LS!!!#,'e`FfN | ||
4937 | !!!2S!!!!!!!!!!!!!fMk!!!!%'ecG(!!!!!#!!!!!!!!!!!!!fN+!!!!%'ecG(! | ||
4938 | !!!!&!!!!!!!!!!!!!&V8!!!!+'ecG'N!!!2S!!!!!!!!!!!!!fP#!!!!+'ecG'N | ||
4939 | !!!!!!!!!!!!!!!!!!&Vm!!!!$'eKE'`!!!!!!!!!!!!!!!!!!fE1!!!!a'eKF'` | ||
4940 | !!!!!!!!!!!!!!!$B03!!: | ||
diff --git a/src/lib/libssl/src/MacOS/Randomizer.cpp b/src/lib/libssl/src/MacOS/Randomizer.cpp deleted file mode 100644 index cceb6bde44..0000000000 --- a/src/lib/libssl/src/MacOS/Randomizer.cpp +++ /dev/null | |||
@@ -1,476 +0,0 @@ | |||
1 | /* | ||
2 | ------- Strong random data generation on a Macintosh (pre - OS X) ------ | ||
3 | |||
4 | -- GENERAL: We aim to generate unpredictable bits without explicit | ||
5 | user interaction. A general review of the problem may be found | ||
6 | in RFC 1750, "Randomness Recommendations for Security", and some | ||
7 | more discussion, of general and Mac-specific issues has appeared | ||
8 | in "Using and Creating Cryptographic- Quality Random Numbers" by | ||
9 | Jon Callas (www.merrymeet.com/jon/usingrandom.html). | ||
10 | |||
11 | The data and entropy estimates provided below are based on my | ||
12 | limited experimentation and estimates, rather than by any | ||
13 | rigorous study, and the entropy estimates tend to be optimistic. | ||
14 | They should not be considered absolute. | ||
15 | |||
16 | Some of the information being collected may be correlated in | ||
17 | subtle ways. That includes mouse positions, timings, and disk | ||
18 | size measurements. Some obvious correlations will be eliminated | ||
19 | by the programmer, but other, weaker ones may remain. The | ||
20 | reliability of the code depends on such correlations being | ||
21 | poorly understood, both by us and by potential interceptors. | ||
22 | |||
23 | This package has been planned to be used with OpenSSL, v. 0.9.5. | ||
24 | It requires the OpenSSL function RAND_add. | ||
25 | |||
26 | -- OTHER WORK: Some source code and other details have been | ||
27 | published elsewhere, but I haven't found any to be satisfactory | ||
28 | for the Mac per se: | ||
29 | |||
30 | * The Linux random number generator (by Theodore Ts'o, in | ||
31 | drivers/char/random.c), is a carefully designed open-source | ||
32 | crypto random number package. It collects data from a variety | ||
33 | of sources, including mouse, keyboard and other interrupts. | ||
34 | One nice feature is that it explicitly estimates the entropy | ||
35 | of the data it collects. Some of its features (e.g. interrupt | ||
36 | timing) cannot be reliably exported to the Mac without using | ||
37 | undocumented APIs. | ||
38 | |||
39 | * Truerand by Don P. Mitchell and Matt Blaze uses variations | ||
40 | between different timing mechanisms on the same system. This | ||
41 | has not been tested on the Mac, but requires preemptive | ||
42 | multitasking, and is hardware-dependent, and can't be relied | ||
43 | on to work well if only one oscillator is present. | ||
44 | |||
45 | * Cryptlib's RNG for the Mac (RNDMAC.C by Peter Gutmann), | ||
46 | gathers a lot of information about the machine and system | ||
47 | environment. Unfortunately, much of it is constant from one | ||
48 | startup to the next. In other words, the random seed could be | ||
49 | the same from one day to the next. Some of the APIs are | ||
50 | hardware-dependent, and not all are compatible with Carbon (OS | ||
51 | X). Incidentally, the EGD library is based on the UNIX entropy | ||
52 | gathering methods in cryptlib, and isn't suitable for MacOS | ||
53 | either. | ||
54 | |||
55 | * Mozilla (and perhaps earlier versions of Netscape) uses the | ||
56 | time of day (in seconds) and an uninitialized local variable | ||
57 | to seed the random number generator. The time of day is known | ||
58 | to an outside interceptor (to within the accuracy of the | ||
59 | system clock). The uninitialized variable could easily be | ||
60 | identical between subsequent launches of an application, if it | ||
61 | is reached through the same path. | ||
62 | |||
63 | * OpenSSL provides the function RAND_screen(), by G. van | ||
64 | Oosten, which hashes the contents of the screen to generate a | ||
65 | seed. This is not useful for an extension or for an | ||
66 | application which launches at startup time, since the screen | ||
67 | is likely to look identical from one launch to the next. This | ||
68 | method is also rather slow. | ||
69 | |||
70 | * Using variations in disk drive seek times has been proposed | ||
71 | (Davis, Ihaka and Fenstermacher, world.std.com/~dtd/; | ||
72 | Jakobsson, Shriver, Hillyer and Juels, | ||
73 | www.bell-labs.com/user/shriver/random.html). These variations | ||
74 | appear to be due to air turbulence inside the disk drive | ||
75 | mechanism, and are very strongly unpredictable. Unfortunately | ||
76 | this technique is slow, and some implementations of it may be | ||
77 | patented (see Shriver's page above.) It of course cannot be | ||
78 | used with a RAM disk. | ||
79 | |||
80 | -- TIMING: On the 601 PowerPC the time base register is guaranteed | ||
81 | to change at least once every 10 addi instructions, i.e. 10 | ||
82 | cycles. On a 60 MHz machine (slowest PowerPC) this translates to | ||
83 | a resolution of 1/6 usec. Newer machines seem to be using a 10 | ||
84 | cycle resolution as well. | ||
85 | |||
86 | For 68K Macs, the Microseconds() call may be used. See Develop | ||
87 | issue 29 on the Apple developer site | ||
88 | (developer.apple.com/dev/techsupport/develop/issue29/minow.html) | ||
89 | for information on its accuracy and resolution. The code below | ||
90 | has been tested only on PowerPC based machines. | ||
91 | |||
92 | The time from machine startup to the launch of an application in | ||
93 | the startup folder has a variance of about 1.6 msec on a new G4 | ||
94 | machine with a defragmented and optimized disk, most extensions | ||
95 | off and no icons on the desktop. This can be reasonably taken as | ||
96 | a lower bound on the variance. Most of this variation is likely | ||
97 | due to disk seek time variability. The distribution of startup | ||
98 | times is probably not entirely even or uncorrelated. This needs | ||
99 | to be investigated, but I am guessing that it not a majpor | ||
100 | problem. Entropy = log2 (1600/0.166) ~= 13 bits on a 60 MHz | ||
101 | machine, ~16 bits for a 450 MHz machine. | ||
102 | |||
103 | User-launched application startup times will have a variance of | ||
104 | a second or more relative to machine startup time. Entropy >~22 | ||
105 | bits. | ||
106 | |||
107 | Machine startup time is available with a 1-second resolution. It | ||
108 | is predictable to no better a minute or two, in the case of | ||
109 | people who show up punctually to work at the same time and | ||
110 | immediately start their computer. Using the scheduled startup | ||
111 | feature (when available) will cause the machine to start up at | ||
112 | the same time every day, making the value predictable. Entropy | ||
113 | >~7 bits, or 0 bits with scheduled startup. | ||
114 | |||
115 | The time of day is of course known to an outsider and thus has 0 | ||
116 | entropy if the system clock is regularly calibrated. | ||
117 | |||
118 | -- KEY TIMING: A very fast typist (120 wpm) will have a typical | ||
119 | inter-key timing interval of 100 msec. We can assume a variance | ||
120 | of no less than 2 msec -- maybe. Do good typists have a constant | ||
121 | rhythm, like drummers? Since what we measure is not the | ||
122 | key-generated interrupt but the time at which the key event was | ||
123 | taken off the event queue, our resolution is roughly the time | ||
124 | between process switches, at best 1 tick (17 msec). I therefore | ||
125 | consider this technique questionable and not very useful for | ||
126 | obtaining high entropy data on the Mac. | ||
127 | |||
128 | -- MOUSE POSITION AND TIMING: The high bits of the mouse position | ||
129 | are far from arbitrary, since the mouse tends to stay in a few | ||
130 | limited areas of the screen. I am guessing that the position of | ||
131 | the mouse is arbitrary within a 6 pixel square. Since the mouse | ||
132 | stays still for long periods of time, it should be sampled only | ||
133 | after it was moved, to avoid correlated data. This gives an | ||
134 | entropy of log2(6*6) ~= 5 bits per measurement. | ||
135 | |||
136 | The time during which the mouse stays still can vary from zero | ||
137 | to, say, 5 seconds (occasionally longer). If the still time is | ||
138 | measured by sampling the mouse during null events, and null | ||
139 | events are received once per tick, its resolution is 1/60th of a | ||
140 | second, giving an entropy of log2 (60*5) ~= 8 bits per | ||
141 | measurement. Since the distribution of still times is uneven, | ||
142 | this estimate is on the high side. | ||
143 | |||
144 | For simplicity and compatibility across system versions, the | ||
145 | mouse is to be sampled explicitly (e.g. in the event loop), | ||
146 | rather than in a time manager task. | ||
147 | |||
148 | -- STARTUP DISK TOTAL FILE SIZE: Varies typically by at least 20k | ||
149 | from one startup to the next, with 'minimal' computer use. Won't | ||
150 | vary at all if machine is started again immediately after | ||
151 | startup (unless virtual memory is on), but any application which | ||
152 | uses the web and caches information to disk is likely to cause | ||
153 | this much variation or more. The variation is probably not | ||
154 | random, but I don't know in what way. File sizes tend to be | ||
155 | divisible by 4 bytes since file format fields are often | ||
156 | long-aligned. Entropy > log2 (20000/4) ~= 12 bits. | ||
157 | |||
158 | -- STARTUP DISK FIRST AVAILABLE ALLOCATION BLOCK: As the volume | ||
159 | gets fragmented this could be anywhere in principle. In a | ||
160 | perfectly unfragmented volume this will be strongly correlated | ||
161 | with the total file size on the disk. With more fragmentation | ||
162 | comes less certainty. I took the variation in this value to be | ||
163 | 1/8 of the total file size on the volume. | ||
164 | |||
165 | -- SYSTEM REQUIREMENTS: The code here requires System 7.0 and above | ||
166 | (for Gestalt and Microseconds calls). All the calls used are | ||
167 | Carbon-compatible. | ||
168 | */ | ||
169 | |||
170 | /*------------------------------ Includes ----------------------------*/ | ||
171 | |||
172 | #include "Randomizer.h" | ||
173 | |||
174 | // Mac OS API | ||
175 | #include <Files.h> | ||
176 | #include <Folders.h> | ||
177 | #include <Events.h> | ||
178 | #include <Processes.h> | ||
179 | #include <Gestalt.h> | ||
180 | #include <Resources.h> | ||
181 | #include <LowMem.h> | ||
182 | |||
183 | // Standard C library | ||
184 | #include <stdlib.h> | ||
185 | #include <math.h> | ||
186 | |||
187 | /*---------------------- Function declarations -----------------------*/ | ||
188 | |||
189 | // declared in OpenSSL/crypto/rand/rand.h | ||
190 | extern "C" void RAND_add (const void *buf, int num, double entropy); | ||
191 | |||
192 | unsigned long GetPPCTimer (bool is601); // Make it global if needed | ||
193 | // elsewhere | ||
194 | |||
195 | /*---------------------------- Constants -----------------------------*/ | ||
196 | |||
197 | #define kMouseResolution 6 // Mouse position has to differ | ||
198 | // from the last one by this | ||
199 | // much to be entered | ||
200 | #define kMousePositionEntropy 5.16 // log2 (kMouseResolution**2) | ||
201 | #define kTypicalMouseIdleTicks 300.0 // I am guessing that a typical | ||
202 | // amount of time between mouse | ||
203 | // moves is 5 seconds | ||
204 | #define kVolumeBytesEntropy 12.0 // about log2 (20000/4), | ||
205 | // assuming a variation of 20K | ||
206 | // in total file size and | ||
207 | // long-aligned file formats. | ||
208 | #define kApplicationUpTimeEntropy 6.0 // Variance > 1 second, uptime | ||
209 | // in ticks | ||
210 | #define kSysStartupEntropy 7.0 // Entropy for machine startup | ||
211 | // time | ||
212 | |||
213 | |||
214 | /*------------------------ Function definitions ----------------------*/ | ||
215 | |||
216 | CRandomizer::CRandomizer (void) | ||
217 | { | ||
218 | long result; | ||
219 | |||
220 | mSupportsLargeVolumes = | ||
221 | (Gestalt(gestaltFSAttr, &result) == noErr) && | ||
222 | ((result & (1L << gestaltFSSupports2TBVols)) != 0); | ||
223 | |||
224 | if (Gestalt (gestaltNativeCPUtype, &result) != noErr) | ||
225 | { | ||
226 | mIsPowerPC = false; | ||
227 | mIs601 = false; | ||
228 | } | ||
229 | else | ||
230 | { | ||
231 | mIs601 = (result == gestaltCPU601); | ||
232 | mIsPowerPC = (result >= gestaltCPU601); | ||
233 | } | ||
234 | mLastMouse.h = mLastMouse.v = -10; // First mouse will | ||
235 | // always be recorded | ||
236 | mLastPeriodicTicks = TickCount(); | ||
237 | GetTimeBaseResolution (); | ||
238 | |||
239 | // Add initial entropy | ||
240 | AddTimeSinceMachineStartup (); | ||
241 | AddAbsoluteSystemStartupTime (); | ||
242 | AddStartupVolumeInfo (); | ||
243 | AddFiller (); | ||
244 | } | ||
245 | |||
246 | void CRandomizer::PeriodicAction (void) | ||
247 | { | ||
248 | AddCurrentMouse (); | ||
249 | AddNow (0.0); // Should have a better entropy estimate here | ||
250 | mLastPeriodicTicks = TickCount(); | ||
251 | } | ||
252 | |||
253 | /*------------------------- Private Methods --------------------------*/ | ||
254 | |||
255 | void CRandomizer::AddCurrentMouse (void) | ||
256 | { | ||
257 | Point mouseLoc; | ||
258 | unsigned long lastCheck; // Ticks since mouse was last | ||
259 | // sampled | ||
260 | |||
261 | #if TARGET_API_MAC_CARBON | ||
262 | GetGlobalMouse (&mouseLoc); | ||
263 | #else | ||
264 | mouseLoc = LMGetMouseLocation(); | ||
265 | #endif | ||
266 | |||
267 | if (labs (mLastMouse.h - mouseLoc.h) > kMouseResolution/2 && | ||
268 | labs (mLastMouse.v - mouseLoc.v) > kMouseResolution/2) | ||
269 | AddBytes (&mouseLoc, sizeof (mouseLoc), | ||
270 | kMousePositionEntropy); | ||
271 | |||
272 | if (mLastMouse.h == mouseLoc.h && mLastMouse.v == mouseLoc.v) | ||
273 | mMouseStill ++; | ||
274 | else | ||
275 | { | ||
276 | double entropy; | ||
277 | |||
278 | // Mouse has moved. Add the number of measurements for | ||
279 | // which it's been still. If the resolution is too | ||
280 | // coarse, assume the entropy is 0. | ||
281 | |||
282 | lastCheck = TickCount() - mLastPeriodicTicks; | ||
283 | if (lastCheck <= 0) | ||
284 | lastCheck = 1; | ||
285 | entropy = log2l | ||
286 | (kTypicalMouseIdleTicks/(double)lastCheck); | ||
287 | if (entropy < 0.0) | ||
288 | entropy = 0.0; | ||
289 | AddBytes (&mMouseStill, sizeof (mMouseStill), entropy); | ||
290 | mMouseStill = 0; | ||
291 | } | ||
292 | mLastMouse = mouseLoc; | ||
293 | } | ||
294 | |||
295 | void CRandomizer::AddAbsoluteSystemStartupTime (void) | ||
296 | { | ||
297 | unsigned long now; // Time in seconds since | ||
298 | // 1/1/1904 | ||
299 | GetDateTime (&now); | ||
300 | now -= TickCount() / 60; // Time in ticks since machine | ||
301 | // startup | ||
302 | AddBytes (&now, sizeof (now), kSysStartupEntropy); | ||
303 | } | ||
304 | |||
305 | void CRandomizer::AddTimeSinceMachineStartup (void) | ||
306 | { | ||
307 | AddNow (1.5); // Uncertainty in app startup | ||
308 | // time is > 1.5 msec (for | ||
309 | // automated app startup). | ||
310 | } | ||
311 | |||
312 | void CRandomizer::AddAppRunningTime (void) | ||
313 | { | ||
314 | ProcessSerialNumber PSN; | ||
315 | ProcessInfoRec ProcessInfo; | ||
316 | |||
317 | ProcessInfo.processInfoLength = sizeof (ProcessInfoRec); | ||
318 | ProcessInfo.processName = nil; | ||
319 | ProcessInfo.processAppSpec = nil; | ||
320 | |||
321 | GetCurrentProcess (&PSN); | ||
322 | GetProcessInformation (&PSN, &ProcessInfo); | ||
323 | |||
324 | // Now add the amount of time in ticks that the current process | ||
325 | // has been active | ||
326 | |||
327 | AddBytes (&ProcessInfo, sizeof (ProcessInfoRec), | ||
328 | kApplicationUpTimeEntropy); | ||
329 | } | ||
330 | |||
331 | void CRandomizer::AddStartupVolumeInfo (void) | ||
332 | { | ||
333 | short vRefNum; | ||
334 | long dirID; | ||
335 | XVolumeParam pb; | ||
336 | OSErr err; | ||
337 | |||
338 | if (!mSupportsLargeVolumes) | ||
339 | return; | ||
340 | |||
341 | FindFolder (kOnSystemDisk, kSystemFolderType, kDontCreateFolder, | ||
342 | &vRefNum, &dirID); | ||
343 | pb.ioVRefNum = vRefNum; | ||
344 | pb.ioCompletion = 0; | ||
345 | pb.ioNamePtr = 0; | ||
346 | pb.ioVolIndex = 0; | ||
347 | err = PBXGetVolInfoSync (&pb); | ||
348 | if (err != noErr) | ||
349 | return; | ||
350 | |||
351 | // Base the entropy on the amount of space used on the disk and | ||
352 | // on the next available allocation block. A lot else might be | ||
353 | // unpredictable, so might as well toss the whole block in. See | ||
354 | // comments for entropy estimate justifications. | ||
355 | |||
356 | AddBytes (&pb, sizeof (pb), | ||
357 | kVolumeBytesEntropy + | ||
358 | log2l (((pb.ioVTotalBytes.hi - pb.ioVFreeBytes.hi) | ||
359 | * 4294967296.0D + | ||
360 | (pb.ioVTotalBytes.lo - pb.ioVFreeBytes.lo)) | ||
361 | / pb.ioVAlBlkSiz - 3.0)); | ||
362 | } | ||
363 | |||
364 | /* | ||
365 | On a typical startup CRandomizer will come up with about 60 | ||
366 | bits of good, unpredictable data. Assuming no more input will | ||
367 | be available, we'll need some more lower-quality data to give | ||
368 | OpenSSL the 128 bits of entropy it desires. AddFiller adds some | ||
369 | relatively predictable data into the soup. | ||
370 | */ | ||
371 | |||
372 | void CRandomizer::AddFiller (void) | ||
373 | { | ||
374 | struct | ||
375 | { | ||
376 | ProcessSerialNumber psn; // Front process serial | ||
377 | // number | ||
378 | RGBColor hiliteRGBValue; // User-selected | ||
379 | // highlight color | ||
380 | long processCount; // Number of active | ||
381 | // processes | ||
382 | long cpuSpeed; // Processor speed | ||
383 | long totalMemory; // Total logical memory | ||
384 | // (incl. virtual one) | ||
385 | long systemVersion; // OS version | ||
386 | short resFile; // Current resource file | ||
387 | } data; | ||
388 | |||
389 | GetNextProcess ((ProcessSerialNumber*) kNoProcess); | ||
390 | while (GetNextProcess (&data.psn) == noErr) | ||
391 | data.processCount++; | ||
392 | GetFrontProcess (&data.psn); | ||
393 | LMGetHiliteRGB (&data.hiliteRGBValue); | ||
394 | Gestalt (gestaltProcClkSpeed, &data.cpuSpeed); | ||
395 | Gestalt (gestaltLogicalRAMSize, &data.totalMemory); | ||
396 | Gestalt (gestaltSystemVersion, &data.systemVersion); | ||
397 | data.resFile = CurResFile (); | ||
398 | |||
399 | // Here we pretend to feed the PRNG completely random data. This | ||
400 | // is of course false, as much of the above data is predictable | ||
401 | // by an outsider. At this point we don't have any more | ||
402 | // randomness to add, but with OpenSSL we must have a 128 bit | ||
403 | // seed before we can start. We just add what we can, without a | ||
404 | // real entropy estimate, and hope for the best. | ||
405 | |||
406 | AddBytes (&data, sizeof(data), 8.0 * sizeof(data)); | ||
407 | AddCurrentMouse (); | ||
408 | AddNow (1.0); | ||
409 | } | ||
410 | |||
411 | //------------------- LOW LEVEL --------------------- | ||
412 | |||
413 | void CRandomizer::AddBytes (void *data, long size, double entropy) | ||
414 | { | ||
415 | RAND_add (data, size, entropy * 0.125); // Convert entropy bits | ||
416 | // to bytes | ||
417 | } | ||
418 | |||
419 | void CRandomizer::AddNow (double millisecondUncertainty) | ||
420 | { | ||
421 | long time = SysTimer(); | ||
422 | AddBytes (&time, sizeof (time), log2l (millisecondUncertainty * | ||
423 | mTimebaseTicksPerMillisec)); | ||
424 | } | ||
425 | |||
426 | //----------------- TIMING SUPPORT ------------------ | ||
427 | |||
428 | void CRandomizer::GetTimeBaseResolution (void) | ||
429 | { | ||
430 | #ifdef __powerc | ||
431 | long speed; | ||
432 | |||
433 | // gestaltProcClkSpeed available on System 7.5.2 and above | ||
434 | if (Gestalt (gestaltProcClkSpeed, &speed) != noErr) | ||
435 | // Only PowerPCs running pre-7.5.2 are 60-80 MHz | ||
436 | // machines. | ||
437 | mTimebaseTicksPerMillisec = 6000.0D; | ||
438 | // Assume 10 cycles per clock update, as in 601 spec. Seems true | ||
439 | // for later chips as well. | ||
440 | mTimebaseTicksPerMillisec = speed / 1.0e4D; | ||
441 | #else | ||
442 | // 68K VIA-based machines (see Develop Magazine no. 29) | ||
443 | mTimebaseTicksPerMillisec = 783.360D; | ||
444 | #endif | ||
445 | } | ||
446 | |||
447 | unsigned long CRandomizer::SysTimer (void) // returns the lower 32 | ||
448 | // bit of the chip timer | ||
449 | { | ||
450 | #ifdef __powerc | ||
451 | return GetPPCTimer (mIs601); | ||
452 | #else | ||
453 | UnsignedWide usec; | ||
454 | Microseconds (&usec); | ||
455 | return usec.lo; | ||
456 | #endif | ||
457 | } | ||
458 | |||
459 | #ifdef __powerc | ||
460 | // The timebase is available through mfspr on 601, mftb on later chips. | ||
461 | // Motorola recommends that an 601 implementation map mftb to mfspr | ||
462 | // through an exception, but I haven't tested to see if MacOS actually | ||
463 | // does this. We only sample the lower 32 bits of the timer (i.e. a | ||
464 | // few minutes of resolution) | ||
465 | |||
466 | asm unsigned long GetPPCTimer (register bool is601) | ||
467 | { | ||
468 | cmplwi is601, 0 // Check if 601 | ||
469 | bne _601 // if non-zero goto _601 | ||
470 | mftb r3 // Available on 603 and later. | ||
471 | blr // return with result in r3 | ||
472 | _601: | ||
473 | mfspr r3, spr5 // Available on 601 only. | ||
474 | // blr inserted automatically | ||
475 | } | ||
476 | #endif | ||
diff --git a/src/lib/libssl/src/MacOS/Randomizer.h b/src/lib/libssl/src/MacOS/Randomizer.h deleted file mode 100644 index 565537b15d..0000000000 --- a/src/lib/libssl/src/MacOS/Randomizer.h +++ /dev/null | |||
@@ -1,43 +0,0 @@ | |||
1 | |||
2 | // Gathers unpredictable system data to be used for generating | ||
3 | // random bits | ||
4 | |||
5 | #include <MacTypes.h> | ||
6 | |||
7 | class CRandomizer | ||
8 | { | ||
9 | public: | ||
10 | CRandomizer (void); | ||
11 | void PeriodicAction (void); | ||
12 | |||
13 | private: | ||
14 | |||
15 | // Private calls | ||
16 | |||
17 | void AddTimeSinceMachineStartup (void); | ||
18 | void AddAbsoluteSystemStartupTime (void); | ||
19 | void AddAppRunningTime (void); | ||
20 | void AddStartupVolumeInfo (void); | ||
21 | void AddFiller (void); | ||
22 | |||
23 | void AddCurrentMouse (void); | ||
24 | void AddNow (double millisecondUncertainty); | ||
25 | void AddBytes (void *data, long size, double entropy); | ||
26 | |||
27 | void GetTimeBaseResolution (void); | ||
28 | unsigned long SysTimer (void); | ||
29 | |||
30 | // System Info | ||
31 | bool mSupportsLargeVolumes; | ||
32 | bool mIsPowerPC; | ||
33 | bool mIs601; | ||
34 | |||
35 | // Time info | ||
36 | double mTimebaseTicksPerMillisec; | ||
37 | unsigned long mLastPeriodicTicks; | ||
38 | |||
39 | // Mouse info | ||
40 | long mSamplePeriod; | ||
41 | Point mLastMouse; | ||
42 | long mMouseStill; | ||
43 | }; | ||
diff --git a/src/lib/libssl/src/MacOS/TODO b/src/lib/libssl/src/MacOS/TODO deleted file mode 100644 index 903eb133de..0000000000 --- a/src/lib/libssl/src/MacOS/TODO +++ /dev/null | |||
@@ -1,18 +0,0 @@ | |||
1 | ------------------------------------------------------------------- | ||
2 | Verify server certificate | ||
3 | ------------------------------------------------------------------- | ||
4 | Currently omitted from the project: | ||
5 | |||
6 | crypto/tmdiff.c | ||
7 | crypto/bio/bss_conn.c | ||
8 | crypto/bio/b_sock.c | ||
9 | crypto/bio/bss_acpt.c | ||
10 | crypto/bio/bss_log.h | ||
11 | |||
12 | ------------------------------------------------------------------- | ||
13 | Build libraries to link with... | ||
14 | ------------------------------------------------------------------- | ||
15 | Port openssl application. | ||
16 | ------------------------------------------------------------------- | ||
17 | BN optimizations (currently PPC version is compiled with BN_LLONG) | ||
18 | ------------------------------------------------------------------- | ||
diff --git a/src/lib/libssl/src/MacOS/_MWERKS_GUSI_prefix.h b/src/lib/libssl/src/MacOS/_MWERKS_GUSI_prefix.h deleted file mode 100644 index fe6b5387d6..0000000000 --- a/src/lib/libssl/src/MacOS/_MWERKS_GUSI_prefix.h +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | #include <MacHeaders.h> | ||
2 | #define B_ENDIAN | ||
3 | #ifdef __POWERPC__ | ||
4 | #pragma longlong on | ||
5 | #endif | ||
6 | #if 1 | ||
7 | #define MAC_OS_GUSI_SOURCE | ||
8 | #endif | ||
9 | #define MONOLITH | ||
diff --git a/src/lib/libssl/src/MacOS/_MWERKS_prefix.h b/src/lib/libssl/src/MacOS/_MWERKS_prefix.h deleted file mode 100644 index 2189da753b..0000000000 --- a/src/lib/libssl/src/MacOS/_MWERKS_prefix.h +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | #include <MacHeaders.h> | ||
2 | #define B_ENDIAN | ||
3 | #ifdef __POWERPC__ | ||
4 | #pragma longlong on | ||
5 | #endif | ||
6 | #if 0 | ||
7 | #define MAC_OS_GUSI_SOURCE | ||
8 | #endif | ||
9 | #define MONOLITH | ||
diff --git a/src/lib/libssl/src/MacOS/buildinf.h b/src/lib/libssl/src/MacOS/buildinf.h deleted file mode 100644 index 90875b6e2f..0000000000 --- a/src/lib/libssl/src/MacOS/buildinf.h +++ /dev/null | |||
@@ -1,5 +0,0 @@ | |||
1 | #ifndef MK1MF_BUILD | ||
2 | # define CFLAGS "-DB_ENDIAN" | ||
3 | # define PLATFORM "macos" | ||
4 | # define DATE "Sun Feb 27 19:44:16 MET 2000" | ||
5 | #endif | ||
diff --git a/src/lib/libssl/src/MacOS/mklinks.as.hqx b/src/lib/libssl/src/MacOS/mklinks.as.hqx deleted file mode 100644 index fe3e7d53da..0000000000 --- a/src/lib/libssl/src/MacOS/mklinks.as.hqx +++ /dev/null | |||
@@ -1,820 +0,0 @@ | |||
1 | (This file must be converted with BinHex 4.0) | ||
2 | |||
3 | :#QeVE'PZDh-ZBA-!39"36'&`E(3J!!!!!!!!!*LiI6m!!!!!!3!!!*G#!!#@3J! | ||
4 | !!AChFQPd!!!!K3)"!3m(Fh9`F'pbG!!!!)B#!3%$"(0eFQ8!!!#(!J-%"!3("3C | ||
5 | cGfPdBfJ!!!#)!J%"#39cH@jMD!!!!)N#"J%$!`-&"3-'FhPcG'9Y!!!!LJ)&"3) | ||
6 | %!J8("!-#!`4dB@*X!!!!L`))!3-$!`-$!`-$"(4PE'`!!!#-!J)"#38$G'KP!!! | ||
7 | !M3))(J)@!Ki#!J))!K)#!`)B!Kd%G'KPE3!!!)i#!J%&#`4dD'9j!!!!M`)#!J) | ||
8 | #$3TdD(*[G@GSEh9d!!!!N!!#!3%&"(4TCQB!!!#4!J%"!`4dD@eP!!!!NJ)"!JS | ||
9 | #!h4T!!!!'N!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!H!!!!!!!#!!!!!! | ||
10 | !!!!!!!!!!!!!rrrrr`!!!$3!!!!N!!!!!#"[!!5JAb"[!!5K++!M6R9$9'mJFR9 | ||
11 | Z)(4SDA-JFf0bDA"d)'&`F'aTBf&dD@pZ,#"jEh8JEA9cG#"QDA*cG#"TER0dB@a | ||
12 | X)%&`F'aP8f0bDA"d,J!!!)C8D'Pc)(0MFQP`G#"MFQ9KG'9c)#iZ,fPZBfaeC'8 | ||
13 | [Eh"PER0cE#"KEQ3JCQPXE(-JDA3JGfPdD#"ZC@0PFh0KFRNJB@aTBA0PFbi0$8P | ||
14 | d)'eTCfKd)(4KDf8JB5"hD'PXC5"dEb"MEfe`E'9dC5"cEb"`E'9KFf8JBQ8JF'& | ||
15 | dD@9ZG$SY+3!!!#S!!J!!!!!!$3!+!"!!!!!-!!!!!!!!!!!!63!0!!S!%!%!!!` | ||
16 | !!!!!!!!!!!!B!!!!+!!!!!!!!!!)!!!!)!#N2c`!!DR`!!!!l!!!!!&19[ri,`0 | ||
17 | f!#m$-$bKVDG'*KmY52ri,`-`2+LITdBQ(b!ZrrLa`'FJ,`-J2'0`ER4"l[rm)NL | ||
18 | KV5+)*Kp+3'B)5Ulrr'F#GJ%3!bBZrr41ANje6PB!!#m-@Bm[2%j29%Nr2!#!U"m | ||
19 | SAb!-CJK`!cm!UFKJ+#m-UC)J9#!)d+J!'#&!!"JJ9#!)d+J!(#&!!"a9Mbm8)&q | ||
20 | JAMk!9%mSE[rm6Pj1G8j@!!![$%kkre4+!'FU@Bm[2'&`E(3[2(0MF(4`)DJU+&m | ||
21 | J$'F5@Bm[$#mm!!!!!A!!U#UTp&K26VVrG#KZrra1ANje!!!!('&`E(3!!!!"4P* | ||
22 | &4J!!!!!!J%P$6L-!!!!!!*B!!!!"!!!!!!G"8&"-!!!!!!!"!!!"!!!!!S!!!!4 | ||
23 | !!!"i)!!!K"!!!3))!!)#"!!%"!)!#!J"!"!8!)!J)J"!3%%!)2#!J"#*!%!)KJ! | ||
24 | J")3!)!*!!"!")!!3!K!!%!3)!"!)"!!J%!)!3#!"!)"!!S%!J!5#!3!)4!)!#%J | ||
25 | %!!KB#!!%C"!!!m)J!!!"3!!!!)!!!!%!!!!$J!!!"m!!!(rJ!!$rm!!"rrJ!!rr | ||
26 | m!!IrrJ!2rrm!(rrrJ$rrrm"rrrrJrrrrm2rrrrMrrrrmrrrrrRrrrrmrrrrq(rr | ||
27 | rr!rrrrJ(rrr`!rrri!(rrm!$rrq!"rrr!!rrrJ!2rr`!$rri!!IRm!!$`q!!!!( | ||
28 | !!!!!J!!!!!)!!!!!!!!!!!m!!!!!!!!!!!!!!!!!!!$`m!!!!!!!!!!!!!!!!!! | ||
29 | 2!!m!!!!!!!!!!!!!!!rrm!!!m!!!!!!!!!!!!!$`c0m!!!m!!!!!!!!!!!!2!!c | ||
30 | -m!!!m!!!!!!!!!!!m!$-cI!!!!m!!!!!!!!!$`!-c0m!!!!!m!!!!!!!!2!!c-h | ||
31 | `!!!!!!m!!!!!!!m!$-cIh`!!!!!!m!!!!!$`!-c0rGh`!!!!!!m!!!!2!!c-hph | ||
32 | -h`!!!!!!m!!!rrr-cIhF`-h`!!!!!!m!!2lFr0rGc!`-h`!!!!!!m!$pc-rph-$ | ||
33 | !`-h`!!!!!!m!r-`2cF`-$!!-r3!!!!!!m!m!`-c!`-!!$0m!!!!!$-m!m!`-$!` | ||
34 | !!-cI!!!!!-c`!!m!`-$!!!`-h`!!!!c2!!!!m!`-!!$!c0m!!!$-m!!!!!m!`!! | ||
35 | -$-hm!!!-c`!!!!!!m!!!`-cIc!!!c2!!!!!!!!m!$!c0r-`!$-m!!!!!!!$pm-$ | ||
36 | -hmc!!-c`!!!!!!!2hI`-cIc-!!c2!!!!!!!!rGc2c0r-`!$-m!!!!!!!!2h-cmh | ||
37 | mc!!-c`!!!!!!!!$mc!rIr-!!c2!!!!!!!!!!$m$2m!r-$-m!!!!!!!!!!!$rr`! | ||
38 | !r-c`!!!!!!!!!!!!!!!!!!r2!!!!!!!!!!!!!!!!!!!!m!!!!!!!!!!!!!"!!B! | ||
39 | 13"%J)4"##18%Q)+3!%&!)5!L%%3BL#83*L!G3!#!!B!2`"rJ2r"rq2rmrrlrrhr | ||
40 | r2riIr"ri2r!ri"h!!)!!!!#!!!!!$r!!!!!!!2r`$`!!!!!2$!m!m!!!!2$!c`! | ||
41 | 2!!!2$!c`!!$`!2r`cpm!!!m!rGrpc2!!!2$p$p`-c`!!$`m!`-$0m!$2!2!-$-h | ||
42 | `$2!!$`$-hm$2!!!2m-hm$2!!!2h2hm$2!!!!r-rm$2!!!!!2r`r2!!!!!!!!!2! | ||
43 | !!!!!!!#D8f0bDA"d)%&`F'aTBf&dD@pZ$3e8D'Pc)(0MFQP`G#"MFQ9KG'9c)#i | ||
44 | Z,fPZBfaeC'8[Eh"PER0cE#"KEQ3JCQPXE(-JDA3JGfPdD#"ZC@0PFh0KFRNJB@a | ||
45 | TBA0PFbi0$8Pd)'eTCfKd)(4KDf8JB5"hD'PXC5"dEb"MEfe`E'9dC5"cEb"`E'9 | ||
46 | KFf8JBQ8JF'&dD@9ZG$SY+3!!!")!!J!!!!!!!!!!!!%!"J!'%iN!!!!+@1!!!b! | ||
47 | !!!-J!!!!!"3!+`!(!Cm#@!!V!!F"f!*B!!!!!3!!M`C'BA0N98&6)$%Z-6!a,M% | ||
48 | `$J!!!!32rrm!!3!#!!-"rrm!!!d!!3!"D`!!!!!!!!!%!J!%!!)!"3!'$3!&!!* | ||
49 | X!!)!!!U`!!IrrJd!"`!#6`!!!!!+X!!)!!N0!!J!!@X!!!!%#Um!#J)!#J!#!!X | ||
50 | !$!d!#`!#E!!#!!3!"2rprr`"rrd!!!(rr!!!!J!-!!)!$3!1$3!0!!*X!!%!"!! | ||
51 | %rrX!$`(rq`!!$!!2!&N!8b"(CA3JF'&dD#"dEb"dD'Pc)%&`F'aP8f0bDA"d)'& | ||
52 | `F'aPG$XJGA0P)'Pd)(4[)'C[FQdJG'KP)("KG'JJG'mJG'KP)'PZBfaeC'8JCQp | ||
53 | XC'9b!!)!!!)!$J!#!"!!%3d!%!!#E!!"!!3!"2rk!")"rrS!!!`!%J!Q!#!JB@j | ||
54 | N)(4SC5"[G'KPFL"bC@aPGQ&ZG#"QEfaNCA*c,J!#!!!#!"%!!J!6!"30!"-!!R- | ||
55 | !!!!%!"%!&3!@$3!9!!*M!!!!"!!1!"F!'!d!&`!#E!!&!!3!$!!CrrN0!"N!!Qi | ||
56 | !!!!%!!`!'J!E$3!D!!)d!!!!"3!-rrJ!(!Vrq!!%#Q0[BQS0!"`!!Q`!"3!'!!X | ||
57 | !(Irh$3!G!!0*!!)!"J!,rrB!([re#[rf!"JZC@&bFfCQC(*KE'Pc!!!!!!!!)!" | ||
58 | KCQ4b$3!H!!"Q!!!!"J!(![re!!!"rrF!!!d!'`!"E3!!!!3!"3!I$`!I!6J)ER9 | ||
59 | XE!!!!!!!!Gq!rrm!!!!A"NCTEQ4PFJ!!(`*[Me!!ASfm!Qq,i!"HA[!!I&M!!!! | ||
60 | !!!!!'mi!!JN#!Qq-1!!!Kb%#Ei`J!!!!!%C14&*038e"3e-!!"%!B@aTF`!!!!! | ||
61 | !fJ!#!!!-6@&MD@jdEh0S)%K%!!!!!!!!!!!!!!!!!!!!XSA5h%*%!!!!!!!A"NC | ||
62 | TEQ4PFJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
63 | !!!!!!!!!!!!!!!!!!!!!3rLc#@a!4Nj%8Ne"3e2rrrrr!!!!!!!!!!!!!!!!!!! | ||
64 | !!!!!!!e6HA0dC@dJ4QpXC'9b!!!"!!3!!!!A!!)!)8eKBfPZG'pcD#")4$T6HA0 | ||
65 | dC@dJ4QpXC'9b1NCTEQ4PFJ$rr`!!!Irj!!!0!"J!!@d!!!!-!!hrp!Vrp!!%#Q0 | ||
66 | dH(30!"B!!@m!!!!!!!$rm`[rm`!5-!!(G'KPF'&dD!!(G'KP8'&dD!)!&!!#!#! | ||
67 | !)3d!)!!#E!!#!")!%[rbrr%"rr)!!!(rm3!!!J!K!!)!)J!M$3!L!!*b!!!!%J! | ||
68 | A!#3!*3d!*!!#EJ!$!")!&3!Q!#F0!#B!!6%!!!!6!"Arm!Vrm!!%#R4iC'`0!#F | ||
69 | !!6%!!!!5!"2rl`Vrl`!%#Q&cBh)0!#8!!@m!!!!!!!$rlJ[rlJ!F-!!-G'KPEfa | ||
70 | NC'9XD@ec!!adD'92E'4%C@aTEA-#!#-!!J!S!#N0!#J!!R)!!!!B!"d!+J!V$3! | ||
71 | U!!&Y!!!!'!!C!#`-!#`!"`!"1J!#!!!0!#X!!Qi!!`!!!!!!,3!Z$3!Y!!%a!!! | ||
72 | !'J!Frqd+rqd!"!TdH'4X$3!Z!!%a!!!!'3!Drq`+rq`!"!TKFf0b!J!T!!)!,`! | ||
73 | `$3![!!*X!!)!(J!Hrq[rkJ(rk`!!!IrU!!!#!$!!!J!a!$)0!$%!!R)!!!!H!#X | ||
74 | !-`!d$3!c!!*X!!8!(J!T!$Ark3d!03!#EJ!!!"i!+3!f!$F0!$B!!cF"!!!I!#R | ||
75 | rk!!i!$N+rqJ!"!TMDA4Y$3!i!!&Y!!!!)`!PrqF$rqF!!3d!13!"E3!!!#B!+2r | ||
76 | Q!rrQrrd0!$F!!@m!!!!H!"rrj3[rj3!5-!!(G'KPF'&dD!!(G'KP8'&dD!(rk3! | ||
77 | !$3!d!!&[!!!!!!!!rq3,rq3!)$!!$R4SCA"bEfTPBh4`BA4S!!jdD'93FQpUC@0 | ||
78 | d8'&dD!)!-J!#!$S!1`d!1J!#FJ!!!#`!1`!m!$d0!$`!!Q-!!!!X!$N!2J!r$3! | ||
79 | q!!*X!!8!,!!h!%$ri`d!3!!#EJ!!!#`!0`""!%)0!%%!!cF"!!!Y!$IriJ"$!%3 | ||
80 | +rq)!"!TMDA4Y$3"$!!&Y!!!!-3!crq%$rq%!!3d!4!!"E3!!!$3!0[rJ!rrJrri | ||
81 | 0!%)!!@m!!!!X!#hrh`[rh`!5-!!(G'KPF'&dD!!(G'KP8'&dD!(ri`!!$3!r!!& | ||
82 | Y!!!!0`!irpi+rpi!"!T849K8$3!p!!&[!!!!!!!!rpd,rpd!&M!!#A4SC@ePF'& | ||
83 | dD!!*G'KP6@93BA4S!J!l!!)!43"'$3"&!!*X!!)!2!!mrpcrf`(rh!!!!IrE!!! | ||
84 | #!%B!!J"(!%J0!%F!!R)!!!!m!%8!53"+$3"*!!*M!!!!2!""!%X!6!d!5`!#BJ! | ||
85 | !!$`!2`"0!%i0!%d!!@m!!!!m!$hrfJ[rfJ!J-!!1G'KPF(*[DQ9MG("KG'J!$R4 | ||
86 | SC9"bEfTPBh43BA4S$3"1!!&Y!!!!23!q!%m-!%m!$3!(D@jME(9NC3!#!!!0!%` | ||
87 | !!@d!!!!r!%$rf3Vrf3!%#P4&@&30!%S!!@m!!!!!!!$rf![rf!!Q-!!4D@jME(9 | ||
88 | NC@C[E'4PFR"KG'J!%@PZBfaeC'9'EfaNCA*3BA4S!J")!!)!8!"4$3"3!!*b!!! | ||
89 | !4J"9!&)!8`d!8J!#B`!!!%B!83"8!&80!&3!!Q)!!!"'!%m!9J"A$3"@!!*L!!! | ||
90 | !4J",!&J!@3d!@!!"E`!!!%B!4rrA#rrA!#!`!!jdD'9`FQpUC@0dF'&dD!!1G'K | ||
91 | P8(*[DQ9MG&"KG'J0!&N!!@d!!!"(!%S!@J`!@J!0!!GTEQ0XG@4P!!)!!!d!9`! | ||
92 | "E3!!!%X!6J"E$!"E!!d!"fp`C@jcFf`!!J!!$3"9!!&Y!!!!6`"3rpB+rpB!"!T | ||
93 | 849K8$3"6!!&[!!!!!!!!rp8,rp8!0$!!''p`C@jcFfaTEQ0XG@4PCQpXC'9bF'& | ||
94 | dD!!BEh"PEP066%PZBfaeC'9'EfaNCA*3BA4S!J"4!!)!A!"G$3"F!!*b!!!!9J" | ||
95 | K!&i!A`d!AJ!#B`!!!&B!A3"J!'%0!'!!!Q)!!!"@!&X!BJ"M$3"L!!&[!!!!9J" | ||
96 | Arp3,rp3!)$!!$R4SCA"bEfTPBh4`BA4S!!jdD'93FQpUC@0d8'&dD!d!B`!"E3! | ||
97 | !!&F!@J"N$!"N!!`!"Q0bHA"dE`!#!!!0!'%!!@d!!!"E!&crd`Vrd`!%#P4&@&3 | ||
98 | 0!&m!!@m!!!!!!!$rdJ[rdJ!N-!!3Bh*jF(4[CQpXC'9bF'&dD!!3Bh*jF(4[4Qp | ||
99 | XC'9b8'&dD!)!A3!#!'8!CJd!C3!#FJ!!!')!E3"R!'J0!'F!!Q-!!!"L!'N!D3" | ||
100 | U$3"T!!*L!!!!BJ"R!'X!E!d!D`!"E`!!!')!Brr4#rr4!#!`!!jdD'9`FQpUC@0 | ||
101 | dF'&dD!!1G'KP8(*[DQ9MG&"KG'J0!'`!!@d!!!"M!'B!E3`!E3!*!!0cFf`!!J! | ||
102 | !$3"U!!&Y!!!!C`"Srp!+rp!!"!T849K8$3"S!!&[!!!!!!!!rmm,rmm!(M!!$A0 | ||
103 | cE'C[E'4PFR"KG'J!$A0cE%C[E'4PFP"KG'J#!'B!!J"Z!'m0!'i!!R)!!!"Z!(8 | ||
104 | !F!"a$3"`!!*M!!!!EJ"a!()!F`d!FJ!"E`!!!'i!Err1#rr1!#!`!!jdD'9`FQp | ||
105 | UC@0dF'&dD!!1G'KP8(*[DQ9MG&"KG'J0!(-!!@d!!!"[!($rc3Vrc3!%#P4&@&3 | ||
106 | 0!(%!!@m!!!!!!!$rc![rc!!Q-!!4Eh"PER0cE'C[E'4PFR"KG'J!%@p`C@jcFfa | ||
107 | 'EfaNCA*3BA4S!J"[!!)!G!"e$3"d!!*X!!)!GJ"frm[rbJ(rb`!!!Ir+!!!#!(8 | ||
108 | !!J"f!(F0!(B!!R)!!!"f!(X!H!"j$3"i!!&[!!!!GJ"hrmN,rmN!($!!$(4SC@p | ||
109 | XC'4PE'PYF`!-G'KP6faN4'9XD@ec$3"j!!*Z!!-!!!!!!(S!H`d!HJ!"-3!!!(J | ||
110 | !H[r)#[r)!!3+G(KNE!d!H`!"-3!!!(F!H2r(#[r(!!3+BA0MFJ)!G`!#!(`!I3d | ||
111 | !I!!#E!!#!(`!I2r'rm8"rmB!!!(ra3!!!J"p!!)!IJ"r$3"q!!*X!!%!I!"mrm3 | ||
112 | !J!(ra!!!$!#!!%!!1L"NC@aPG'8JEfaN)'PZBfaeC'8kEh"PER0cE#"QEfaNCA) | ||
113 | JB@jN)(*PBh*PBA4P)'Pd)'0XC@&ZE(N!!J!!!J"r!!)!J3##$3#"!!*X!!)!I!" | ||
114 | mrm2r`J(r``!!!Ir#!!!#!))!!J#$!)30!)-!!e%!!!"m!+8!K3#'!)F0!)8!!@X | ||
115 | !!!"r!*`!L!)!L!!#!)N!LJd!L3!$53!#!(m!N[r"!)[r`!Vr`3!B,QeTFf0cE'0 | ||
116 | d+LSU+J!!!!!!!*!!!#SU+LS0!)X!!Qi!!!"r!)i!M!#0$3#-!!)d!!!!K`#1rlm | ||
117 | !MJVr[`!%#Q0QEf`0!)i!!@d!!!#+!)d!M``!M`!0!!G[F'9ZFh0X!!)!!!d!M3! | ||
118 | #0!!!!(m!Krqq!*!!#[qq!!3+BfC[E!d!N!!!!@m!!!#$!)Er[3[r[3!Q-!!4D@j | ||
119 | ME(9NC@C[E'4PFR"KG'J!%@PZBfaeC'9'EfaNCA*3BA4S![r!!!!#!)S!!J#4rl` | ||
120 | 0!*%!!dN!!J#6!*crZ`#5rlS+rlX!'#jMEh*PC'9XEbSU+LS!!!!!!!#3!!!U+LS | ||
121 | U$3#5!!%a!!!!N`#BrlN+rlN!"!TcC@aP![qk!!!#rl`!!!d!KJ!$8J!!!!!!!2q | ||
122 | irlIrYJVrZ!!B,Q&cBh*PFR)J+LSU+J!!!!!!!*!!!#SU+LS"rlF!!!,rYJ!!$3# | ||
123 | (!!*X!!%!T!#Nrl8!N`(rY3!!$!#6!"-!$5"TCfj[FQ8JCA*bEh)!!J!!!J#%!!) | ||
124 | !P!#9$3#8!!*X!!)!TJ#Qrl6rX`(rY!!!!Iqc!!!#!*8!!J#@!*F0!*B!!dN!!J# | ||
125 | Q!,lrX[qa!*J+rl)!'#jMEh*PBh*PE#SU+LS!!!!!!!#3!!"ZG@aX!Iqa!!!'!*J | ||
126 | !!rq`!*N!QJVrX!!%#QY[Bf`0!*N!!@d!!!#U!+hrV`VrV`!%#Q0QEf`'!*S!!rq | ||
127 | Z!*[rV3VrVJ!%#QPZFfJ0!*X!!M3!!!#`!,MrV!#F#[qX!!3+BfC[E!d!R!!"E`! | ||
128 | !!,3!YrqV#rqV!#B`!"&TEQ0XG@4PCQpXC'9bF'&dD!!4D@jME(9NC8C[E'4PFP" | ||
129 | KG'J'rkd!!!)!P`!#!*d!RJd!R3!#FJ!!!,m!aJ#I!+!0!*m!!Q`"!!#r!-)!SIq | ||
130 | U$3#K!!%a!!!![`$#rkN+rkN!"!TbFfad!IqU!!!0!+!!!@m!!!!!!!$rU![rU!! | ||
131 | Z-!!9G'KPEQ9hCQpXC'9bFQ9QCA*PEQ0P!"9dD'91CAG'EfaNCA*5C@CPFQ9ZBf8 | ||
132 | #!*i!!J#L!+-0!+)!!dN!!J$(!-lrT`#NrkB+rkF!'#jYDA0MFfaMG#SU+LS!!!! | ||
133 | !!!#3!!!U+LSU$3#N!!&[!!!!a`$+rk8,rk8!,M!!&A4SC@jPGfC[E'4PFR*PCQ9 | ||
134 | bC@jMC3!9G'KP6Q9h4QpXC'9b8Q9QCA*PEQ0P![qQ!!!#!+-!!J#P!+B0!+8!!R) | ||
135 | !!!$2!0`!T`#S$3#R!!&Y!!!!c`$5!+N-!+N!$3!(Eh"PER0cE!!#!!!0!+J!!Qi | ||
136 | !!!!!!!!!UJ#V$3#U!!%a!!!!e`$Erk3+rk3!"!T`EQ&Y$3#V!!%a!!!!dJ$Ark- | ||
137 | +rk-!"!TcC@aP!J#Q!!)!V!#Y$3#X!!*X!!)!h3$Grk,rS3(rSJ!!!IqK!!!#!+d | ||
138 | !!J#Z!+m0!+i!!Q`!!3$G!0hrS!#`!IqJ!!!-!,!!(`!C)&0dBA*d)'eKDfPZCb" | ||
139 | dD'8JB@aTBA0PF`!#!!!#!+m!!J#a!,)0!,%!!dN!!J$G!3ArRrqH!,-+rjm!'#j | ||
140 | MEh*PBh*PE#SU+LS!!!!!!!#3!!"ZG@aX!IqH!!!'!,-!!rqG!,3!Y3VrR3!%#QY | ||
141 | [Bf`0!,3!!@d!!!$K!16rR!VrR!!%#Q&XD@%'!,8!!rqE!,B!Y`VrQ`!%#QPZFfJ | ||
142 | 0!,B!!M3!!!$R!1rrQJ#i#[qD!!3+BfC[E!d!Z!!"E`!!!1X!l[qC#rqC!$3`!"K | ||
143 | [F'9ZFh0XD@jME(9NC@C[E'4PFR"KG'J!''p`C@j68da*EQ0XG@4P4QpXC'9b8'& | ||
144 | dD!B!Y`!$rjJ!ZIqA#[qB!!3+G'mJ)!d!Z3!#EJ!!!2)!r`#k!,X0!,S!!M3!!!$ | ||
145 | i!2rrPJ#m#[q@!!3+CQPXC3d![!!"E3!!!2X!rJ#p$!#p!"-!$@p`C@jcFfaMEfj | ||
146 | Q,QJ!!J!!$3#l!!)d!!!!mJ$irj8![JVrP3!%#Q0QEf`0!,i!!@m!!!$f!2IrP![ | ||
147 | rP!!@-!!*G'KPE@9`BA4S!!PdD'90C9"KG'J'rjF!!!)!XJ!#!,m!`!d![`!#E!! | ||
148 | #!3B""[q6rj)"rj-!!!(rNJ!!!J$!!!)!`3$#$3$"!!*b!!!""J%4!--!a!d!``! | ||
149 | #BJ!!!3B"$3$&!-B0!-8!!@m!!!%'!3RrN3[rN3!N-!!3Bh*jF(4[CQpXC'9bF'& | ||
150 | dD!!3Bh*jF(4[4QpXC'9b8'&dD!d!aJ!"E3!!!3N"$!$($!$(!!X!"6TKFfia!!) | ||
151 | !!!d!a!!"E`!!!!!!!2q3!![rN!!!&$!!#(4PEA"`BA4S!!KdC@e`8'&dD!)!`J! | ||
152 | #!-J!b3d!b!!$53!#!4)"22q2rii!bJVrM`!B,Q0[FQ9MFQ9X+LSU+J!!!!!!!*! | ||
153 | !!'jeE'`"rii!!!B!bJ!$rid!b`$-#[q0!!3+DfpME!d!b`!"E3!!!4B"'Iq-#[q | ||
154 | -!!3+B@aTB3B!c!!$riX!c3$1#[q,!!3+D@jcD!d!c3!#0!!!!4`"*2q+!-m+riS | ||
155 | !"!TMCQpX$3$2!!&[!!!")!%MriN,riN!0$!!''p`C@jcFfaTEQ0XG@4PCQpXC'9 | ||
156 | bF'&dD!!BEh"PEP066%PZBfaeC'9'EfaNCA*3BA4S"J$1!!2rL!$3riF+riJ!"!T | ||
157 | dEb!J$3$3!!*Z!!!"*`%f!0%!dJd!d3!#0!!!!5m"0[q'!0-+riB!"!TQD@aP$3$ | ||
158 | 6!!&Y!!!"-J%e!03-!03!$!!'BA0Z-5jS!!)!!!d!dJ!#0!!!!5F",rq&!08+ri8 | ||
159 | !"!TMCQpX$3$9!!&[!!!"+`%Zri3,ri3!&$!!#(4PEA"`BA4S!!KdC@e`8'&dD!E | ||
160 | rK`!!!J$*!!)!eJ$A$3$@!!0*!!)"23&Rri2rJJ$B#[q$!"JZBfpbC@0bC@`U+LS | ||
161 | U!!!!!!!!N!!!ER9XE!(rJJ!!"J$B!!2rJ3$C!0S+ri%!"!TVEf0X$3$C!!&Y!!! | ||
162 | "33&%ri!+ri!!"!TKE'PK"J$D!!2rI`$E!0`+rhm!"!TTER0S$3$E!!)d!!!"4`& | ||
163 | 2rhi!h3VrIJ!%#Q0QEf`0!0d!!@m!!!&,!8lrI3[rI3!d-!!BEh"PER0cE'PZBfa | ||
164 | eC'9QEfaNCA*`BA4S!"K[F'9Z8e0-5@jME(9NC8C[E'4PFP"KG'J'!0`!!rpm!0l | ||
165 | rH`VrI!!%#R4[)#!0!0i!!Qi!!!&5!@%!h`$J$3$I!!)d!!!"@J&KrhS!i3VrHJ! | ||
166 | %#QCTE'80!1%!!@d!!!&G!@!!iJ`!iJ!3!!TKFfiaAfeKBbjS!!)!!!d!i!!#0!! | ||
167 | !!9)"@[pj!1-+rhN!"!TMCQpX$3$M!!&[!!!"9J&CrhJ,rhJ!&$!!#(4PEA"`BA4 | ||
168 | S!!KdC@e`8'&dD!ErH`!!!J$A!!)!j!$P$3$N!!*X!!)"D!&SrhIrGJ(rG`!!!Ip | ||
169 | f!!!#!18!!J$Q!1F0!1B!!R)!!!&S!A-!k!$T$3$S!!*L!!!"D!&[!1S!k`d!kJ! | ||
170 | "E`!!!@J"Drpe#rpe!#3`!""MFRP`G'pQEfaNCA*`BA4S!""MFRP`G'p'EfaNCA* | ||
171 | 3BA4S$3$V!!&Y!!!"D`&Z!1`-!1`!#J!%1Q*TE`!#!!!0!1N!!@m!!!!!!!$rG![ | ||
172 | rG!!8-!!)G'9YF("KG'J!#(4PEA"3BA4S!J$R!!)!l3$Z$3$Y!!0*!!)"G!'Hrh2 | ||
173 | rFJ$[#[pc!"JZBfpbC@0bC@`U+LSU!!!!!!!!N!!!ER9XE!(rFJ!!"J$[!!2rF3$ | ||
174 | `!2%+rh%!"!TVEf0X$3$`!!&Y!!!"H!&lrh!+rh!!"!TKE'PK"J$a!!2rE`$b!2- | ||
175 | +rfm!"!TTER0S$3$b!!)d!!!"IJ''rfi!p!VrEJ!%#Q0QEf`0!23!!@m!!!'#!BA | ||
176 | rE3[rE3!d-!!BEh"PER0cE'PZBfaeC'9QEfaNCA*`BA4S!"K[F'9Z8e0-5@jME(9 | ||
177 | NC8C[E'4PFP"KG'J'!2-!!rpX!2ArD`VrE!!%#R4[)#!0!28!!Qi!!!'*!CJ!pJ$ | ||
178 | h$3$f!!)d!!!"N3'BrfS!q!VrDJ!%#QCTE'80!2J!!@d!!!'8!CF!q3`!q3!,!!9 | ||
179 | LD@mZD!!#!!!0!2F!!M3!!!'*!C(rD3$k#[pT!!3+BfC[E!d!qJ!"E`!!!Bd"N!$ | ||
180 | rD![rD!!8-!!)G'9YF("KG'J!#(4PEA"3BA4S"[pV!!!#!1i!!J$l!2`0!2X!!Q` | ||
181 | !!J'I!CrrCrpQ!IpR!!!"rfB!!!)!r!!#!2d!rJd!r3!#FJ!!!Cm"UJ$r!3!0!2m | ||
182 | !!Q)!!!'I!DB"!3%#$3%"!!&[!!!"R`'Lrf8,rf8!*$!!%'0bHA"dEfC[E'4PFR" | ||
183 | KG'J!%'0bHA"dEdC[E'4PFP"KG'J0!3)!!@d!!!'L!D8"!``"!`!*!!-kBQB!!J! | ||
184 | !$3%!!!&[!!!!!!!!rf3,rf3!&$!!#(4PEA"`BA4S!!KdC@e`8'&dD!)!rJ!#!33 | ||
185 | ""3d""!!$53!#!DX"eIpMrf)""JVrB`!B,Q0[FQ9MFQ9X+LSU+J!!!!!!!*!!!'j | ||
186 | eE'`"rf)!!!B""J!$rf%""`%)#[pK!!3+DfpME!d""`!"E3!!!Dm"X[pJ#[pJ!!3 | ||
187 | +B@aTB3B"#!!$rem"#3%+#[pI!!3+D@jcD!d"#3!#0!!!!E8"[IpH!3X+rei!"!T | ||
188 | MCQpX$3%,!!&[!!!"Z3'mred,red!0$!!''p`C@jcFfaTEQ0XG@4PCQpXC'9bF'& | ||
189 | dD!!BEh"PEP066%PZBfaeC'9'EfaNCA*3BA4S"J%+!!2rA!%-reX+re`!"!TdEb! | ||
190 | J$3%-!!*Z!!!"`!(2!3d"$Jd"$3!#0!!!!FJ"crpD!3m+reS!"!TQD@aP$3%2!!& | ||
191 | Y!!!"b`(1!4!-!4!!%!!+BQa[GfCTFfJZD!!#!!!0!3i!!M3!!!(!!FMr@3%4#[p | ||
192 | C!!3+BfC[E!d"%3!"E`!!!F3"arpB#rpB!"3`!!KdC@e`F'&dD!!)G'9YF&"KG'J | ||
193 | 'reX!!!)""3!#!4)"%`d"%J!#E!!#!GB"e[pAreB"reF!!!(r9J!!!J%6!!)"&!% | ||
194 | 9$3%8!!*b!!!"eJ(K!4B"&`d"&J!#BJ!!!GB"h3%B!4N0!4J!!@m!!!(@!GRr93[ | ||
195 | r93!N-!!3Bh*jF(4[CQpXC'9bF'&dD!!3Bh*jF(4[4QpXC'9b8'&dD!d"'3!"E3! | ||
196 | !!GN"h!%D$!%D!!N!!cTLEJ!#!!!0!4F!!@m!!!!!!!$r9![r9!!8-!!)G'9YF(" | ||
197 | KG'J!#(4PEA"3BA4S!J%9!!)"'`%F$3%E!!0*!!)"iJ)-re2r8J%G#[p6!"JZBfp | ||
198 | bC@0bC@`U+LSU!!!!!!!!N!!!ER9XE!(r8J!!"J%G!!2r83%H!4m+re%!"!TVEf0 | ||
199 | X$3%H!!&Y!!!"jJ(Tre!+re!!"!TKE'PK"J%I!!2r6`%J!5%+rdm!"!TTER0S$3% | ||
200 | J!!)d!!!"l!(drdi")JVr6J!%#Q0QEf`0!5)!!@m!!!(`!I2r63[r63!d-!!BEh" | ||
201 | PER0cE'PZBfaeC'9QEfaNCA*`BA4S!"K[F'9Z8e0-5@jME(9NC8C[E'4PFP"KG'J | ||
202 | '!5%!!rp-!52r5`Vr6!!%#R4[)#!0!5-!!Qi!!!(h!JB"*!%P$3%N!!)d!!!"r`) | ||
203 | 'rdS"*JVr5J!%#QCTE'80!5B!!@d!!!)#!J8"*``"*`!+!!4LELjS!!)!!!d"*3! | ||
204 | #0!!!!IF"rrp*!5J+rdN!"!TMCQpX$3%S!!&[!!!"q`(qrdJ,rdJ!&$!!#(4PEA" | ||
205 | `BA4S!!KdC@e`8'&dD!Er5`!!!J%F!!)"+3%U$3%T!!*X!!)#$3)0rdIr4J(r4`! | ||
206 | !!Ip'!!!#!5S!!J%V!5`0!5X!!R)!!!)0!KJ",3%Z$3%Y!!*L!!!#$3)8!5m"-!d | ||
207 | ",`!"E`!!!Jd#%2p&#rp&!#3`!""MFRP`G'pQEfaNCA*`BA4S!""MFRP`G'p'Efa | ||
208 | NCA*3BA4S$3%`!!&Y!!!#%!)6!6%-!6%!$3!(1Q*eCQCPFJ!#!!!0!5i!!@m!!!! | ||
209 | !!!$r4![r4!!8-!!)G'9YF("KG'J!#(4PEA"3BA4S!J%X!!)"-J%c$3%b!!0*!!) | ||
210 | #'3*$rd2r3J%d#[p$!"JZBfpbC@0bC@`U+LSU!!!!!!!!N!!!ER9XE!(r3J!!"J% | ||
211 | d!!2r33%e!6B+rd%!"!TVEf0X$3%e!!&Y!!!#(3)Jrd!+rd!!"!TKE'PK"J%f!!2 | ||
212 | r2`%h!6J+rcm!"!TTER0S$3%h!!)d!!!#)`)Vrci"13Vr2J!%#Q0QEf`0!6N!!@m | ||
213 | !!!)R!LVr23[r23!d-!!BEh"PER0cE'PZBfaeC'9QEfaNCA*`BA4S!"K[F'9Z8e0 | ||
214 | -5@jME(9NC8C[E'4PFP"KG'J'!6J!!rmm!6Vr1`Vr2!!%#R4[)#!0!6S!!Qi!!!) | ||
215 | Z!Md"1`%m$3%l!!)d!!!#0J)prcS"23Vr1J!%#QCTE'80!6d!!@d!!!)j!M`"2J` | ||
216 | "2J!1!!KLG@CQCA)ZD!!#!!!0!6`!!M3!!!)Z!MEr13%r#[mj!!3+BfC[E!d"2`! | ||
217 | "E`!!!M)#0Imi#rmi!"3`!!KdC@e`F'&dD!!)G'9YF&"KG'J'rcX!!!)"-`!#!8! | ||
218 | "33d"3!!#E!!#!N3#42mhrcB"rcF!!!(r0J!!!J&"!!)"3J&$$3&#!!*b!!!#4!* | ||
219 | 2!83"43d"4!!#BJ!!!N3#5`&'!8F0!8B!!@m!!!*%!NIr03[r03!N-!!3Bh*jF(4 | ||
220 | [CQpXC'9bF'&dD!!3Bh*jF(4[4QpXC'9b8'&dD!d"4`!"E3!!!NF#5J&)$!&)!!X | ||
221 | !"6TMBA0d!!)!!!d"43!"E`!!!!!!!2md#rmd!"3`!!KdC@e`F'&dD!!)G'9YF&" | ||
222 | KG'J#!8-!!J&*!8S0!8N!!dN!!J*3!RVr-rmb!8X+rc-!'#jMEh*PBh*PE#SU+LS | ||
223 | !!!!!!!#3!!"ZG@aX!Imb!!!'!8X!!rma!8`"63Vr-3!%#QY[Bf`0!8`!!@d!!!* | ||
224 | 8!PIr-!Vr-!!%#Q&XD@%'!8d!!rm[!8i"6`Vr,`!%#QPZFfJ0!8i!!M3!!!*D!Q, | ||
225 | r,J&3#[mZ!!3+BfC[E!d"8!!"E`!!!Pi#BImY#rmY!$3`!"K[F'9ZFh0XD@jME(9 | ||
226 | NC@C[E'4PFR"KG'J!''p`C@j68da*EQ0XG@4P4QpXC'9b8'&dD!B"6`!$rb`"8Im | ||
227 | V#[mX!!3+G'mJ)!d"83!#EJ!!!Q8#G!&5!9-0!9)!!M3!!!*Y!R6r+J&8#[mU!!3 | ||
228 | +CQPXC3d"9!!"E3!!!R!#F`&9$!&9!!`!"Q0KFh3ZD!!#!!!0!9-!!M3!!!*P!Qh | ||
229 | r+3&@#[mT!!3+BfC[E!d"9J!"E`!!!QN#E2mS#rmS!"3`!!KdC@e`F'&dD!!)G'9 | ||
230 | YF&"KG'J'rbX!!!)"5J!#!9F"@!d"9`!#E!!#!RX#HrmRrbB"rbF!!!(r*J!!!J& | ||
231 | B!!)"@3&D$3&C!!*b!!!#H`+'!9X"A!d"@`!#BJ!!!RX#JJ&G!9i0!9d!!@m!!!* | ||
232 | l!Rlr*3[r*3!N-!!3Bh*jF(4[CQpXC'9bF'&dD!!3Bh*jF(4[4QpXC'9b8'&dD!d | ||
233 | "AJ!"E3!!!Ri#J3&I$!&I!!X!"6TMEfe`!!)!!!d"A!!"E`!!!!!!!2mN#rmN!"3 | ||
234 | `!!KdC@e`F'&dD!!)G'9YF&"KG'J#!9S!!J&J!@%0!@!!!dN!!J+(!V(r)rmL!@) | ||
235 | +rb-!'#jMEh*PBh*PE#SU+LS!!!!!!!#3!!"ZG@aX!ImL!!!'!@)!!rmK!@-"C!V | ||
236 | r)3!%#QY[Bf`0!@-!!@d!!!+,!Slr)!Vr)!!%#Q&XD@%'!@3!!rmI!@8"CJVr(`! | ||
237 | %#QPZFfJ0!@8!!M3!!!+4!TRr(J&R#[mH!!3+BfC[E!d"C`!"E`!!!T8#Q2mG#rm | ||
238 | G!$3`!"K[F'9ZFh0XD@jME(9NC@C[E'4PFR"KG'J!''p`C@j68da*EQ0XG@4P4Qp | ||
239 | XC'9b8'&dD!B"CJ!$ra`"D2mE#[mF!!3+G'mJ)!d"D!!#EJ!!!T`#U`&T!@S0!@N | ||
240 | !!M3!!!+N!U[r'J&V#[mD!!3+CQPXC3d"D`!"E3!!!UF#UJ&X$!&X!!`!"Q0[EA! | ||
241 | ZD!!#!!!0!@S!!M3!!!+F!U6r'3&Y#[mC!!3+BfC[E!d"E3!"E`!!!U!#SrmB#rm | ||
242 | B!"3`!!KdC@e`F'&dD!!)G'9YF&"KG'J'raX!!!)"B3!#!@i"E`d"EJ!#E!!#!V) | ||
243 | #X[mAraB"raF!!!(r&J!!!J&[!!)"F!&a$3&`!!*b!!!#XJ+p!A)"F`d"FJ!#BJ! | ||
244 | !!V)#Z3&d!A80!A3!!@m!!!+b!VAr&3[r&3!N-!!3Bh*jF(4[CQpXC'9bF'&dD!! | ||
245 | 3Bh*jF(4[4QpXC'9b8'&dD!d"G3!"E3!!!V8#Z!&f$!&f!!X!"6TMEfjQ!!)!!!d | ||
246 | "F`!"E`!!!!!!!2m8#rm8!"3`!!KdC@e`F'&dD!!)G'9YF&"KG'J#!A%!!J&h!AJ | ||
247 | 0!AF!!dN!!J+q!ZMr%rm5!AN+ra-!'#jMEh*PBh*PE#SU+LS!!!!!!!#3!!"ZG@a | ||
248 | X!Im5!!!'!AN!!rm4!AS"H`Vr%3!%#QY[Bf`0!AS!!@d!!!,#!XAr%!Vr%!!%#Q& | ||
249 | XD@%'!AX!!rm2!A`"I3Vr$`!%#QPZFfJ0!A`!!M3!!!,)!Y$r$J&q#[m1!!3+BfC | ||
250 | [E!d"IJ!"E`!!!X`#crm0#rm0!$3`!"K[F'9ZFh0XD@jME(9NC@C[E'4PFR"KG'J | ||
251 | !''p`C@j68da*EQ0XG@4P4QpXC'9b8'&dD!B"I3!$r``"Irm,#[m-!!3+G'mJ)!d | ||
252 | "I`!#EJ!!!Y-#iJ'!!B%0!B!!!M3!!!,E!Z,r#J'##[m+!!3+CQPXC3d"JJ!"E3! | ||
253 | !!Yi#i3'$$!'$!!`!"Q0[EQBZD!!#!!!0!B%!!M3!!!,6!Y[r#3'%#[m*!!3+BfC | ||
254 | [E!d"K!!"E`!!!YF#f[m)#rm)!"3`!!KdC@e`F'&dD!!)G'9YF&"KG'J'r`X!!!) | ||
255 | "H!!#!B8"KJd"K3!#E!!#!ZN#kIm(r`B"r`F!!!(r"J!!!J''!!)"K`')$3'(!!* | ||
256 | b!!!#k3,d!BN"LJd"L3!#BJ!!!ZN#m!',!B`0!BX!!@m!!!,T!Zcr"3[r"3!N-!! | ||
257 | 3Bh*jF(4[CQpXC'9bF'&dD!!3Bh*jF(4[4QpXC'9b8'&dD!d"M!!"E3!!!Z`#l`' | ||
258 | 0$!'0!!S!"$TNCA-!!J!!$3'+!!&[!!!!!!!!r`3,r`3!&$!!#(4PEA"`BA4S!!K | ||
259 | dC@e`8'&dD!)"L!!#!Bi"M`d"MJ!$53!#![8$(rm$r`)"N!!+r`-!'#jMEh*PBh* | ||
260 | PE#SU+LS!!!!!!!#3!!"ZG@aX!Im#!!!'!C!!!!2r!3'4!C)+r`%!"!TVEf0X$3' | ||
261 | 4!!&Y!!!#q3,mr`!+r`!!"!TKE'PK"J'5!!2qr`'6!C3+r[m!"!TTER0S$3'6!!) | ||
262 | d!!!#r`-(r[i"P3VqrJ!%#Q0QEf`0!C8!!@m!!!-$!`Eqr3[qr3!d-!!BEh"PER0 | ||
263 | cE'PZBfaeC'9QEfaNCA*`BA4S!"K[F'9Z8e0-5@jME(9NC8C[E'4PFP"KG'J'!C3 | ||
264 | !!rlm!CEqq`Vqr!!%#R4[)#!0!CB!!Qi!!!-+!aN"P`'B$3'A!!)d!!!$%J-Cr[S | ||
265 | "Q3VqqJ!%#QCTE'80!CN!!@d!!!-9!aJ"QJ`"QJ!,!!9NCA-ZD!!#!!!0!CJ!!M3 | ||
266 | !!!-+!a,qq3'E#[lj!!3+BfC[E!d"Q`!"E`!!!`i$%Ili#rli!"3`!!KdC@e`F'& | ||
267 | dD!!)G'9YF&"KG'J'r[X!!!)"M`!#!C`"R3d"R!!#E!!#!b!$)2lhr[B"r[F!!!( | ||
268 | qpJ!!!J'G!!)"RJ'I$3'H!!*b!!!$)!-V!D!"S3d"S!!#BJ!!!b!$*`'L!D-0!D) | ||
269 | !!@m!!!-J!b2qp3[qp3!N-!!3Bh*jF(4[CQpXC'9bF'&dD!!3Bh*jF(4[4QpXC'9 | ||
270 | b8'&dD!d"S`!"E3!!!b-$*J'N$!'N!!N!!cTND!!#!!!0!D%!!@m!!!!!!!$qp![ | ||
271 | qp!!8-!!)G'9YF("KG'J!#(4PEA"3BA4S!J'I!!)"T3'Q$3'P!!0*!!)$,!0@r[2 | ||
272 | qmJ'R#[lc!"JZBfpbC@0bC@`U+LSU!!!!!!!!N!!!ER9XE!(qmJ!!"J'R!!2qm3' | ||
273 | S!DN+r[%!"!TVEf0X$3'S!!&Y!!!$-!-cr[!+r[!!"!TKE'PK"J'T!!2ql`'U!DX | ||
274 | +rZm!"!TTER0S$3'U!!)d!!!$0J-qrZi"V!VqlJ!%#Q0QEf`0!D`!!@m!!!-k!ch | ||
275 | ql3[ql3!d-!!BEh"PER0cE'PZBfaeC'9QEfaNCA*`BA4S!"K[F'9Z8e0-5@jME(9 | ||
276 | NC8C[E'4PFP"KG'J'!DX!!rlX!Dhqk`Vql!!%#R4[)#!0!Dd!!Qi!!!0"!e!"VJ' | ||
277 | [$3'Z!!)d!!!$5303rZS"X!VqkJ!%#QCTE'80!E!!!@d!!!0-!dm"X3`"X3!+!!4 | ||
278 | ND#jS!!)!!!d"V`!#0!!!!d%$5IlT!E)+rZN!"!TMCQpX$3'b!!&[!!!$430)rZJ | ||
279 | ,rZJ!&$!!#(4PEA"`BA4S!!KdC@e`8'&dD!Eqk`!!!J'Q!!)"X`'d$3'c!!*X!!) | ||
280 | $9`0ArZIqjJ(qj`!!!IlQ!!!#!E3!!J'e!EB0!E8!!R)!!!0A!f)"Y`'i$3'h!!* | ||
281 | L!!!$9`0H!EN"ZJd"Z3!"E`!!!eF$@[lP#rlP!#3`!""MFRP`G'pQEfaNCA*`BA4 | ||
282 | S!""MFRP`G'p'EfaNCA*3BA4S$3'k!!&Y!!!$@J0G!EX-!EX!#J!%1Q4cB3!#!!! | ||
283 | 0!EJ!!@m!!!!!!!$qj![qj!!8-!!)G'9YF("KG'J!#(4PEA"3BA4S!J'f!!)"[!' | ||
284 | p$3'm!!0*!!)$B`10rZ2qiJ'q#[lM!"JZBfpbC@0bC@`U+LSU!!!!!!!!N!!!ER9 | ||
285 | XE!(qiJ!!"J'q!!2qi3'r!F!+rZ%!"!TVEf0X$3'r!!&Y!!!$C`0UrZ!+rZ!!"!T | ||
286 | KE'PK"J(!!!2qh`("!F)+rYm!"!TTER0S$3("!!)d!!!$E30erYi"``VqhJ!%#Q0 | ||
287 | QEf`0!F-!!@m!!!0a!h6qh3[qh3!d-!!BEh"PER0cE'PZBfaeC'9QEfaNCA*`BA4 | ||
288 | S!"K[F'9Z8e0-5@jME(9NC8C[E'4PFP"KG'J'!F)!!rlF!F6qf`Vqh!!%#R4[)#! | ||
289 | 0!F3!!Qi!!!0i!iF"a3('$3(&!!)d!!!$J!1(rYS"a`VqfJ!%#QCTE'80!FF!!@d | ||
290 | !!!1$!iB"b!`"b!!,!!9NFf%ZD!!#!!!0!FB!!M3!!!0i!i$qf3(*#[lC!!3+BfC | ||
291 | [E!d"b3!"E`!!!h`$IrlB#rlB!"3`!!KdC@e`F'&dD!!)G'9YF&"KG'J'rYX!!!) | ||
292 | "[3!#!FS"b`d"bJ!#E!!#!ii$M[lArYB"rYF!!!(qeJ!!!J(,!!)"c!(0$3(-!!* | ||
293 | b!!!$MJ1C!Fi"c`d"cJ!#BJ!!!ii$P3(3!G%0!G!!!@m!!!11!j(qe3[qe3!N-!! | ||
294 | 3Bh*jF(4[CQpXC'9bF'&dD!!3Bh*jF(4[4QpXC'9b8'&dD!d"d3!"E3!!!j%$P!( | ||
295 | 5$!(5!!S!"$TPFR)!!J!!$3(2!!&[!!!!!!!!rY3,rY3!&$!!#(4PEA"`BA4S!!K | ||
296 | dC@e`8'&dD!)"c3!#!G-"e!d"d`!$53!#!jS$a2l6rY)"e3Vqd`!B,Q0[FQ9MFQ9 | ||
297 | X+LSU+J!!!!!!!*!!!'jeE'`"rY)!!!B"e3!$rY%"eJ(A#[l4!!3+DfpME!d"eJ! | ||
298 | "E3!!!ji$SIl3#[l3!!3+B@aTB3B"e`!$rXm"f!(C#[l2!!3+D@jcD!d"f!!#0!! | ||
299 | !!k3$V2l1!GS+rXi!"!TMCQpX$3(D!!&[!!!$U!1VrXd,rXd!0$!!''p`C@jcFfa | ||
300 | TEQ0XG@4PCQpXC'9bF'&dD!!BEh"PEP066%PZBfaeC'9'EfaNCA*3BA4S"J(C!!2 | ||
301 | qc!(ErXX+rX`!"!TdEb!J$3(E!!*Z!!!$V`1q!G`"h3d"h!!#0!!!!lF$[[l+!Gi | ||
302 | +rXS!"!TQD@aP$3(H!!&Y!!!$ZJ1p!Gm-!Gm!#`!&CA*b,QJ!!J!!$3(G!!)d!!! | ||
303 | $V`1hrXN"i!Vqb3!%#Q0QEf`0!H!!!@m!!!1c!lEqb![qb!!8-!!)G'9YF("KG'J | ||
304 | !#(4PEA"3BA4S"[l,!!!#!G3!!J(K!H)0!H%!!Q`!!J2&!mAqarl'!Il(!!!"rXB | ||
305 | !!!)"iJ!#!H-"j!d"i`!#FJ!!!m8$d!(P!HB0!H8!!Q)!!!2&!m`"j`(S$3(R!!& | ||
306 | [!!!$a32)rX8,rX8!*$!!%'0bHA"dEfC[E'4PFR"KG'J!%'0bHA"dEdC[E'4PFP" | ||
307 | KG'J0!HJ!!@d!!!2)!mX"k3`"k3!+!!3kCAC`!!)!!!d"jJ!"E`!!!!!!!2l%#rl | ||
308 | %!"3`!!KdC@e`F'&dD!!)G'9YF&"KG'J#!H3!!J(U!HX0!HS!!dN!!J24!r[q`rl | ||
309 | #!H`+rX-!'#jMEh*PBh*PE#SU+LS!!!!!!!#3!!"ZG@aX!Il#!!!'!H`!!rl"!Hd | ||
310 | "lJVq`3!%#QY[Bf`0!Hd!!@d!!!29!pMq`!Vq`!!%#Q&XD@%'!Hi!!rkr!Hm"m!V | ||
311 | q[`!%#QPZFfJ0!Hm!!M3!!!2E!q2q[J(a#[kq!!3+BfC[E!d"m3!"E`!!!pm$i[k | ||
312 | p#rkp!$3`!"K[F'9ZFh0XD@jME(9NC@C[E'4PFR"KG'J!''p`C@j68da*EQ0XG@4 | ||
313 | P4QpXC'9b8'&dD!B"m!!$rV`"m[kl#[km!!3+G'mJ)!d"mJ!#EJ!!!qB$p3(c!I3 | ||
314 | 0!I-!!M3!!!2Z!rAqZJ(e#[kk!!3+CQPXC3d"p3!"E3!!!r%$p!(f$!(f!!X!"@9 | ||
315 | fF#jS!!)!!!d"p!!#0!!!!qB$l[kj!IF+rVN!"!TMCQpX$3(h!!&[!!!$kJ2YrVJ | ||
316 | ,rVJ!&$!!#(4PEA"`BA4S!!KdC@e`8'&dD!EqZ`!!!J(V!!)"q!(j$3(i!!*X!!) | ||
317 | $r!2mrVIqYJ(qY`!!!Ikf!!!#!IN!!J(k!IX0!IS!!R)!!!2m"!F"r!(p$3(m!!* | ||
318 | L!!!$r!3$!Ii"r`d"rJ!"E`!!!r`$rrke#rke!#3`!""MFRP`G'pQEfaNCA*`BA4 | ||
319 | S!""MFRP`G'p'EfaNCA*3BA4S$3(r!!&Y!!!$r`3#!J!-!J!!#`!&1QKYB@-!!J! | ||
320 | !$3(p!!&[!!!!!!!!rV3,rV3!&$!!#(4PEA"`BA4S!!KdC@e`8'&dD!)"q`!#!J% | ||
321 | #!Jd#!3!$53!#"!J%-[kcrV)#!`VqX`!B,Q0[FQ9MFQ9X+LSU+J!!!!!!!*!!!'j | ||
322 | eE'`"rV)!!!B#!`!$rV%#"!)&#[ka!!3+DfpME!d#"!!"E3!!"!`%$rk`#[k`!!3 | ||
323 | +B@aTB3B#"3!$rUm#"J)(#[k[!!3+D@jcD!d#"J!#0!!!"")%'[kZ!JJ+rUi!"!T | ||
324 | MCQpX$3))!!&[!!!%&J3CrUd,rUd!0$!!''p`C@jcFfaTEQ0XG@4PCQpXC'9bF'& | ||
325 | dD!!BEh"PEP066%PZBfaeC'9'EfaNCA*3BA4S"J)(!!2qV!)*rUX+rU`!"!TdEb! | ||
326 | J$3)*!!*Z!!!%(33X!JS##`d##J!#0!!!"#8%,2kU!J`+rUS!"!TQD@aP$3)-!!& | ||
327 | Y!!!%+!3V!Jd-!Jd!$!!'D'eKBbjS!!)!!!d##`!#0!!!""d%*IkT!Ji+rUN!"!T | ||
328 | MCQpX$3)1!!&[!!!%)33NrUJ,rUJ!&$!!#(4PEA"`BA4S!!KdC@e`8'&dD!EqU`! | ||
329 | !!J)#!!)#$`)3$3)2!!*X!!)%-`3crUIqTJ(qT`!!!IkQ!!!#!K!!!J)4!K)0!K% | ||
330 | !!R)!!!3c"$i#%`)8$3)6!!*L!!!%-`3k!K8#&Jd#&3!"E`!!"$-%0[kP#rkP!#3 | ||
331 | `!""MFRP`G'pQEfaNCA*`BA4S!""MFRP`G'p'EfaNCA*3BA4S$3)@!!&Y!!!%0J3 | ||
332 | j!KF-!KF!#`!&1QPNC@%!!J!!$3)8!!&[!!!!!!!!rU3,rU3!&$!!#(4PEA"`BA4 | ||
333 | S!!KdC@e`8'&dD!)#%J!#!KJ#'3d#'!!$53!#"$m%DIkMrU)#'JVqS`!B,Q0[FQ9 | ||
334 | MFQ9X+LSU+J!!!!!!!*!!!'jeE'`"rU)!!!B#'J!$rU%#'`)F#[kK!!3+DfpME!d | ||
335 | #'`!"E3!!"%-%4[kJ#[kJ!!3+B@aTB3B#(!!$rTm#(3)H#[kI!!3+D@jcD!d#(3! | ||
336 | #0!!!"%N%8IkH!Km+rTi!"!TMCQpX$3)I!!&[!!!%6343rTd,rTd!0$!!''p`C@j | ||
337 | cFfaTEQ0XG@4PCQpXC'9bF'&dD!!BEh"PEP066%PZBfaeC'9'EfaNCA*3BA4S"J) | ||
338 | H!!2qR!)JrTX+rT`!"!TdEb!J$3)J!!*Z!!!%9!4M!L%#)Jd#)3!#0!!!"&`%Brk | ||
339 | D!L-+rTS!"!TQD@aP$3)M!!&Y!!!%A`4L!L3-!L3!$!!'D@4PB5jS!!)!!!d#)J! | ||
340 | #0!!!"&3%A2kC!L8+rTN!"!TMCQpX$3)P!!&[!!!%@!4ErTJ,rTJ!&$!!#(4PEA" | ||
341 | `BA4S!!KdC@e`8'&dD!EqQ`!!!J)C!!)#*J)R$3)Q!!*X!!)%DJ4UrTIqPJ(qP`! | ||
342 | !!Ik@!!!#!LF!!J)S!LN0!LJ!!R)!!!4U"(8#+J)V$3)U!!*L!!!%DJ4a!L`#,3d | ||
343 | #,!!"E`!!"'S%EIk9#rk9!#3`!""MFRP`G'pQEfaNCA*`BA4S!""MFRP`G'p'Efa | ||
344 | NCA*3BA4S$3)Y!!&Y!!!%E34`!Li-!Li!$!!'1QaSBA0S!!)!!!d#+`!"E`!!!!! | ||
345 | !!2k8#rk8!"3`!!KdC@e`F'&dD!!)G'9YF&"KG'J#!LN!!J)[!M!0!Lm!!dN!!J4 | ||
346 | f"+$qNrk5!M%+rT-!'#jMEh*PBh*PE#SU+LS!!!!!!!#3!!"ZG@aX!Ik5!!!'!M% | ||
347 | !!rk4!M)#-`VqN3!%#QY[Bf`0!M)!!@d!!!4k"(hqN!!+rT!!!!3+B@aTB3B#-`! | ||
348 | $rSm#0!)e#[k2!!3+D@jcD!d#0!!#0!!!")!%L2k1!MB+rSi!"!TMCQpX$3)f!!& | ||
349 | [!!!%K!5(rSd,rSd!0$!!''p`C@jcFfaTEQ0XG@4PCQpXC'9bF'&dD!!BEh"PEP0 | ||
350 | 66%PZBfaeC'9'EfaNCA*3BA4S"J)e!!2qM!)hrSX+rS`!"!TdEb!J$3)h!!*Z!!! | ||
351 | %L`5D!MJ#13d#1!!#0!!!"*-%Q[k+!MS+rSS!"!TQD@aP$3)k!!&Y!!!%PJ5C!MX | ||
352 | -!MX!$3!(E'KKFfJZD!!#!!!0!MN!!M3!!!5,"*2qL3)m#[k*!!3+BfC[E!d#2!! | ||
353 | "E`!!")m%N[k)#rk)!"3`!!KdC@e`F'&dD!!)G'9YF&"KG'J'rSX!!!)#-!!#!Md | ||
354 | #2Jd#23!#E!!#"+%%SIk(rSB"rSF!!!(qKJ!!!J)q!!)#2`*!$3)r!!*b!!!%S35 | ||
355 | X!N%#3Jd#33!#BJ!!"+%%U!*$!N30!N-!!@m!!!5K"+6qK3[qK3!N-!!3Bh*jF(4 | ||
356 | [CQpXC'9bF'&dD!!3Bh*jF(4[4QpXC'9b8'&dD!d#4!!"E3!!"+3%T`*&$!*&!!S | ||
357 | !"$TYC$)!!J!!$3*#!!&[!!!!!!!!rS3,rS3!&$!!#(4PEA"`BA4S!!KdC@e`8'& | ||
358 | dD!)#3!!#!NB#4`d#4J!$53!#"+d%erk$rS)#5!VqJ`!B,Q0[FQ9MFQ9X+LSU+J! | ||
359 | !!!!!!*!!!'jeE'`"rS)!!!B#5!!$rS%#53*+#[k"!!3+DfpME!d#53!"E3!!",% | ||
360 | %Y2k!#[k!!!3+B@aTB3B#5J!$rRm#5`*-#[jr!!3+D@jcD!d#5`!#0!!!",F%[rj | ||
361 | q!Nd+rRi!"!TMCQpX$3*0!!&[!!!%Z`5qrRd,rRd!0$!!''p`C@jcFfaTEQ0XG@4 | ||
362 | PCQpXC'9bF'&dD!!BEh"PEP066%PZBfaeC'9'EfaNCA*3BA4S"J*-!!2qI!*1rRX | ||
363 | +rR`!"!TdEb!J$3*1!!*Z!!!%`J64!Nm#8!d#6`!#0!!!"-S%dIjk!P%+rRS!"!T | ||
364 | QD@aP$3*4!!&Y!!!%c363!P)-!P)!#`!&E@3b,QJ!!J!!$3*3!!)d!!!%`J6+rRN | ||
365 | #8`VqH3!%#Q0QEf`0!P-!!@m!!!6'"-RqH![qH!!8-!!)G'9YF("KG'J!#(4PEA" | ||
366 | 3BA4S"[jl!!!#!NF!!J*8!P80!P3!!Q`!!J6B"0MqGrjf!Ijh!!!"rRB!!!)#93! | ||
367 | #!PB#9`d#9J!#FJ!!"0J%i`*B!PN0!PJ!!Q)!!!6B"0m#@J*E$3*D!!&[!!!%f!6 | ||
368 | ErR8,rR8!*$!!%'0bHA"dEfC[E'4PFR"KG'J!%'0bHA"dEdC[E'4PFP"KG'J0!PX | ||
369 | !!@d!!!6E"0i#A!`#A!!+!!3kE@3e!!)!!!d#@3!"E`!!!!!!!2jd#rjd!"3`!!K | ||
370 | dC@e`F'&dD!!)G'9YF&"KG'J#!PF!!J*G!Pi0!Pd!!dN!!J6N"3lqFrjb!Pm+rR- | ||
371 | !'#jMEh*PBh*PE#SU+LS!!!!!!!#3!!"ZG@aX!Ijb!!!'!Pm!!rja!Q!#B3VqF3! | ||
372 | %#QY[Bf`0!Q!!!@d!!!6S"1[qF!VqF!!%#Q&XD@%'!Q%!!rj[!Q)#B`VqE`!%#QP | ||
373 | ZFfJ0!Q)!!M3!!!6Z"2EqEJ*N#[jZ!!3+BfC[E!d#C!!"E`!!"2)%pIjY#rjY!$3 | ||
374 | `!"K[F'9ZFh0XD@jME(9NC@C[E'4PFR"KG'J!''p`C@j68da*EQ0XG@4P4QpXC'9 | ||
375 | b8'&dD!B#B`!$rQ`#CIjV#[jX!!3+G'mJ)!d#C3!#EJ!!"2N&#!*Q!QF0!QB!!M3 | ||
376 | !!!8""3MqDJ*S#[jU!!3+CQPXC3d#D!!"E3!!"33&"`*T$!*T!!X!"@eN05jS!!) | ||
377 | !!!d#C`!#0!!!"2N&!IjT!QS+rQN!"!TMCQpX$3*U!!&[!!!%r38!rQJ,rQJ!&$! | ||
378 | !#(4PEA"`BA4S!!KdC@e`8'&dD!EqD`!!!J*H!!)#D`*X$3*V!!*X!!)&$`82rQI | ||
379 | qCJ(qC`!!!IjQ!!!#!Q`!!J*Y!Qi0!Qd!!R)!!!82"4S#E`*`$3*[!!*L!!!&$`8 | ||
380 | @!R%#FJd#F3!"E`!!"3m&%[jP#rjP!#3`!""MFRP`G'pQEfaNCA*`BA4S!""MFRP | ||
381 | `G'p'EfaNCA*3BA4S$3*b!!&Y!!!&%J89!R--!R-!#`!&1QeNBc)!!J!!$3*`!!& | ||
382 | [!!!!!!!!rQ3,rQ3!&$!!#(4PEA"`BA4S!!KdC@e`8'&dD!)#EJ!#!R3#G3d#G!! | ||
383 | $53!#"4X&4IjMrQ)#GJVqB`!B,Q0[FQ9MFQ9X+LSU+J!!!!!!!*!!!'jeE'`"rQ) | ||
384 | !!!B#GJ!$rQ%#G`*i#[jK!!3+DfpME!d#G`!"E3!!"4m&)[jJ#[jJ!!3+B@aTB3B | ||
385 | #H!!$rPm#H3*k#[jI!!3+D@jcD!d#H3!#0!!!"58&,IjH!RX+rPi!"!TMCQpX$3* | ||
386 | l!!&[!!!&+38XrPd,rPd!0$!!''p`C@jcFfaTEQ0XG@4PCQpXC'9bF'&dD!!BEh" | ||
387 | PEP066%PZBfaeC'9'EfaNCA*3BA4S"J*k!!2qA!*mrPX+rP`!"!TdEb!J$3*m!!* | ||
388 | Z!!!&-!8r!Rd#IJd#I3!#0!!!"6J&2rjD!Rm+rPS!"!TQD@aP$3*r!!&Y!!!&1`8 | ||
389 | q!S!-!S!!$!!'E@4M-LjS!!)!!!d#IJ!#0!!!"6!&12jC!S%+rPN!"!TMCQpX$3+ | ||
390 | "!!&[!!!&0!8hrPJ,rPJ!&$!!#(4PEA"`BA4S!!KdC@e`8'&dD!Eq@`!!!J*e!!) | ||
391 | #JJ+$$3+#!!*X!!)&4J9'rPIq9J(q9`!!!Ij@!!!#!S-!!J+%!S80!S3!!R)!!!9 | ||
392 | '"9%#KJ+($3+'!!*L!!!&4J90!SJ#L3d#L!!"E`!!"8B&5Ij9#rj9!#3`!""MFRP | ||
393 | `G'pQEfaNCA*`BA4S!""MFRP`G'p'EfaNCA*3BA4S$3+*!!&Y!!!&539-!SS-!SS | ||
394 | !$J!)1QpLDQ9MG(-!!J!!$3+(!!&[!!!!!!!!rP3,rP3!&$!!#(4PEA"`BA4S!!K | ||
395 | dC@e`8'&dD!)#K3!#!SX#M!d#L`!$53!#"9)&I2j6rP)#M3Vq8`!B,Q0[FQ9MFQ9 | ||
396 | X+LSU+J!!!!!!!*!!!'jeE'`"rP)!!!B#M3!$rP%#MJ+2#[j4!!3+DfpME!d#MJ! | ||
397 | "E3!!"9B&@Ij3#[j3!!3+B@aTB3B#M`!$rNm#N!!#N3Vq6`!%#QPZFfJ0!T!!!!) | ||
398 | d!!!&A!9NrNi#NJVq6J!%#Q0QEf`0!T)!!@m!!!9J"@2q63[q63!d-!!BEh"PER0 | ||
399 | cE'PZBfaeC'9QEfaNCA*`BA4S!"K[F'9Z8e0-5@jME(9NC8C[E'4PFP"KG'J'!T% | ||
400 | !!rj-!T2q5`Vq6!!%#R4[)#!0!T-!!Qi!!!9R"AB#P!+9$3+8!!)d!!!&E`9frNS | ||
401 | #PJVq5J!%#QCTE'80!TB!!@d!!!9b"A8#P``#P`!2!!P[BQTPBh4c,QJ!!J!!$3+ | ||
402 | 9!!)d!!!&C`9[rNN#Q!Vq53!%#Q0QEf`0!TJ!!@m!!!9V"@lq5![q5!!8-!!)G'9 | ||
403 | YF("KG'J!#(4PEA"3BA4S"[j,!!!#!S`!!J+C!TS0!TN!!Q`!!J9p"Ahq4rj'!Ij | ||
404 | (!!!"rNB!!!)#QJ!#!TX#R!d#Q`!#FJ!!"Ad&L!+G!Ti0!Td!!Q)!!!9p"B3#R`+ | ||
405 | J$3+I!!&[!!!&I3@!rN8,rN8!*$!!%'0bHA"dEfC[E'4PFR"KG'J!%'0bHA"dEdC | ||
406 | [E'4PFP"KG'J0!U!!!@d!!!@!"B-#S3`#S3!+!!3kF'9Y!!)!!!d#RJ!"E`!!!!! | ||
407 | !!2j%#rj%!"3`!!KdC@e`F'&dD!!)G'9YF&"KG'J#!T`!!J+L!U-0!U)!!dN!!J@ | ||
408 | *"E2q3rj#!U3+rN-!'#jMEh*PBh*PE#SU+LS!!!!!!!#3!!"ZG@aX!Ij#!!!'!U3 | ||
409 | !!rj"!U8#TJVq33!%#QY[Bf`0!U8!!@d!!!@0"C!!rN!+rN!!"!TKE'PK"J+Q!!2 | ||
410 | q2`+R!UJ+rMm!"!TTER0S$3+R!!)d!!!&N`@ErMi#U3Vq2J!%#Q0QEf`0!UN!!@m | ||
411 | !!!@A"CVq23[q23!d-!!BEh"PER0cE'PZBfaeC'9QEfaNCA*`BA4S!"K[F'9Z8e0 | ||
412 | -5@jME(9NC8C[E'4PFP"KG'J'!UJ!!rim!UVq1`Vq2!!%#R4[)#!0!US!!Qi!!!@ | ||
413 | H"Dd#U`+X$3+V!!)d!!!&TJ@YrMS#V3Vq1J!%#QCTE'80!Ud!!@d!!!@T"D`#VJ` | ||
414 | #VJ!,!!9`C@dZD!!#!!!0!U`!!M3!!!@H"DEq13+[#[ij!!3+BfC[E!d#V`!"E`! | ||
415 | !"D)&TIii#rii!"3`!!KdC@e`F'&dD!!)G'9YF&"KG'J'rMX!!!)#S`!#!V!#X3d | ||
416 | #X!!$53!#"E3&h[ihrMB#XJVq0`!B,Q0[FQ9MFQ9X+LSU+J!!!!!!!*!!!'jeE'` | ||
417 | "rMB!!!B#XJ!$rM8#X`+d#[ie!!3+DfpME!d#X`!"E3!!"EJ&Zrid#[id!!3+B@a | ||
418 | TB3B#Y!!$rM-#Y3+f#[ic!!3+D@jcD!d#Y3!#0!!!"Ei&a[ib!VF+rM)!"!TMCQp | ||
419 | X$3+h!!&[!!!&`JA&rM%,rM%!0$!!''p`C@jcFfaTEQ0XG@4PCQpXC'9bF'&dD!! | ||
420 | BEh"PEP066%PZBfaeC'9'EfaNCA*3BA4S"J+f!!2q-!+irLm+rM!!"!TdEb!J$3+ | ||
421 | i!!*Z!!!&b3AB!VN#ZJd#Z3!#0!!!"G%&f2iZ!VX+rLi!"!TQD@aP$3+l!!&Y!!! | ||
422 | &e!AA!V`-!V`!$!!'F'9Y-LjS!!)!!!d#ZJ!#0!!!"FN&dIiY!Vd+rLd!"!TMCQp | ||
423 | X$3+p!!&[!!!&c3A3rL`,rL`!&$!!#(4PEA"`BA4S!!KdC@e`8'&dD!Eq,`!!!J+ | ||
424 | a!!)#[J+r$3+q!!*X!!)&h`AIrL[q+J(q+`!!!IiU!!!#!Vm!!J,!!X%0!X!!!R) | ||
425 | !!!AI"HS#`J,$$3,#!!*L!!!&h`AQ!X3#a3d#a!!"E`!!"Gm&i[iT#riT!#3`!"" | ||
426 | MFRP`G'pQEfaNCA*`BA4S!""MFRP`G'p'EfaNCA*3BA4S$3,&!!&Y!!!&iJAP!XB | ||
427 | -!XB!$3!(1R"VBh-a-J!#!!!0!X-!!@m!!!!!!!$q+![q+!!8-!!)G'9YF("KG'J | ||
428 | !#(4PEA"3BA4S!J,"!!)#a`,)$3,(!!0*!!)&k`B9rLIq*J,*#[iR!"JZBfpbC@0 | ||
429 | bC@`U+LSU!!!!!!!!N!!!ER9XE!(q*J!!"J,*!!2q*3,+!XX+rL8!"!TVEf0X$3, | ||
430 | +!!&Y!!!&l`AbrL3+rL3!"!TKE'PK"J,,!!2q)`,-!Xd+rL-!"!TTER0S$3,-!!) | ||
431 | d!!!&p3AprL)#cJVq)J!%#Q0QEf`0!Xi!!@m!!!Aj"Icq)3[q)3!d-!!BEh"PER0 | ||
432 | cE'PZBfaeC'9QEfaNCA*`BA4S!"K[F'9Z8e0-5@jME(9NC8C[E'4PFP"KG'J'!Xd | ||
433 | !!riJ!Xrq(`Vq)!!%#R4[)#!0!Xm!!Qi!!!B!"Jm#d!,4$3,3!!)d!!!'#!B2rKi | ||
434 | #dJVq(J!%#QCTE'80!Y)!!@d!!!B,"Ji#d``#d`!1!!K`Df0c-6)ZD!!#!!!0!Y% | ||
435 | !!M3!!!B!"JMq(3,8#[iG!!3+BfC[E!d#e!!"E`!!"J3'"riF#riF!"3`!!KdC@e | ||
436 | `F'&dD!!)G'9YF&"KG'J'rKm!!!)#b!!#!Y8#eJd#e3!#E!!#"KB'&[iErKS"rKX | ||
437 | !!!(q'J!!!J,@!!)#e`,B$3,A!!*b!!!'&JBK!YN#fJd#f3!#BJ!!"KB'(3,E!Y` | ||
438 | 0!YX!!@m!!!B@"KRq'3[q'3!N-!!3Bh*jF(4[CQpXC'9bF'&dD!!3Bh*jF(4[4Qp | ||
439 | XC'9b8'&dD!d#h!!"E3!!"KN'(!,G$!,G!!`!"MT`Df0c0`!#!!!0!YS!!@m!!!! | ||
440 | !!!$q'![q'!!8-!!)G'9YF("KG'J!#(4PEA"3BA4S!J,B!!)#hJ,I$3,H!!0*!!) | ||
441 | ')JC-rKIq&J,J#[iA!"JZBfpbC@0bC@`U+LSU!!!!!!!!N!!!ER9XE!(q&J!!"J, | ||
442 | J!!2q&3,K!Z)+rK8!"!TVEf0X$3,K!!&Y!!!'*JBTrK3+rK3!"!TKE'PK"J,L!!2 | ||
443 | q%`,M!Z3+rK-!"!TTER0S$3,M!!)d!!!',!BdrK)#j3Vq%J!%#Q0QEf`0!Z8!!@m | ||
444 | !!!B`"M2q%3[q%3!d-!!BEh"PER0cE'PZBfaeC'9QEfaNCA*`BA4S!"K[F'9Z8e0 | ||
445 | -5@jME(9NC8C[E'4PFP"KG'J'!Z3!!ri3!ZEq$`Vq%!!%#R4[)#!0!ZB!!Qi!!!B | ||
446 | h"NB#j`,S$3,R!!)d!!!'2`C'rJi#k3Vq$J!%#QCTE'80!ZN!!@d!!!C#"N8#kJ` | ||
447 | #kJ!0!!G`Df0c0bjS!!)!!!d#k!!#0!!!"MF'2ri0!ZX+rJd!"!TMCQpX$3,V!!& | ||
448 | [!!!'1`BqrJ`,rJ`!&$!!#(4PEA"`BA4S!!KdC@e`8'&dD!Eq$`!!!J,I!!)#l!, | ||
449 | Y$3,X!!*X!!)'63C0rJ[q#J(q#`!!!Ii+!!!#!Zd!!J,Z!Zm0!Zi!!R)!!!C0"PJ | ||
450 | #m!,a$3,`!!*L!!!'63C8![)#m`d#mJ!"E`!!"Nd'82i*#ri*!#3`!""MFRP`G'p | ||
451 | QEfaNCA*`BA4S!""MFRP`G'p'EfaNCA*3BA4S$3,c!!&Y!!!'8!C6![3-![3!#`! | ||
452 | &1R*KEQ3!!J!!$3,a!!&[!!!!!!!!rJJ,rJJ!&$!!#(4PEA"`BA4S!!KdC@e`8'& | ||
453 | dD!)#l`!#![8#pJd#p3!$53!#"PN'Jri(rJB#p`Vq"`!B,Q0[FQ9MFQ9X+LSU+J! | ||
454 | !!!!!!*!!!'jeE'`"rJB!!!B#p`!$rJ8#q!,j#[i&!!3+DfpME!d#q!!"E3!!"Pd | ||
455 | 'B2i%#[i%!!3+B@aTB3B#q3!$rJ-#qJ,l#[i$!!3+D@jcD!d#qJ!#0!!!"Q-'Dri | ||
456 | #![`+rJ)!"!TMCQpX$3,m!!&[!!!'C`CUrJ%,rJ%!0$!!''p`C@jcFfaTEQ0XG@4 | ||
457 | PCQpXC'9bF'&dD!!BEh"PEP066%PZBfaeC'9'EfaNCA*3BA4S"J,l!!2q!!,prIm | ||
458 | +rJ!!"!TdEb!J$3,p!!*Z!!!'EJCp![i#r`d#rJ!#0!!!"RB'IIhq!`!+rIi!"!T | ||
459 | QD@aP$3-!!!&Y!!!'H3Cm!`%-!`%!$!!'FQ&ZC#jS!!)!!!d#r`!#0!!!"Qi'G[h | ||
460 | p!`)+rId!"!TMCQpX$3-#!!&[!!!'FJCerI`,rI`!&$!!#(4PEA"`BA4S!!KdC@e | ||
461 | `8'&dD!Epr`!!!J,f!!)$!`-%$3-$!!*X!!)'K!D%rI[pqJ(pq`!!!Ihk!!!#!`3 | ||
462 | !!J-&!`B0!`8!!R)!!!D%"Sm$"`-)$3-(!!*L!!!'K!D,!`N$#Jd$#3!"E`!!"S3 | ||
463 | 'Krhj#rhj!#3`!""MFRP`G'pQEfaNCA*`BA4S!""MFRP`G'p'EfaNCA*3BA4S$3- | ||
464 | +!!&Y!!!'K`D+!`X-!`X!#J!%1R*M-J!#!!!0!`J!!@m!!!!!!!$pq![pq!!8-!! | ||
465 | )G'9YF("KG'J!#(4PEA"3BA4S!J-'!!)$$!-0$3--!!0*!!)'N!!'Z[hhrIB$$JV | ||
466 | pp`!B,Q0[FQ9MFQ9X+LSU+J!!!!!!!*!!!'jeE'`"rIB!!!B$$J!$rI8$$`-3#[h | ||
467 | e!!3+DfpME!d$$`!"E3!!"T3'Prhd#[hd!!3+B@aTB3B$%!!$rI-$%3-5#[hc!!3 | ||
468 | +D@jcD!d$%3!#0!!!"TS'S[hb!a-+rI)!"!TMCQpX$3-6!!&[!!!'RJDKrI%,rI% | ||
469 | !0$!!''p`C@jcFfaTEQ0XG@4PCQpXC'9bF'&dD!!BEh"PEP066%PZBfaeC'9'Efa | ||
470 | NCA*3BA4S"J-5!!2pm!-8rHm+rI!!"!TdEb!J$3-8!!*Z!!!'T3Dd!a8$&Jd$&3! | ||
471 | #0!!!"Ud'Y2hZ!aF+rHi!"!TQD@aP$3-A!!&Y!!!'X!Dc!aJ-!aJ!#`!&FQ-b,QJ | ||
472 | !!J!!$3-@!!)d!!!'T3DYrHd$'3Vpl3!%#Q0QEf`0!aN!!@m!!!DT"Ucpl![pl!! | ||
473 | 8-!!)G'9YF("KG'J!#(4PEA"3BA4S"[h[!!!#!`d!!J-D!aX0!aS!!Q`!!JDl"V[ | ||
474 | pkrhU!IhV!!!"rHS!!!)$'`!#!a`$(3d$(!!#FJ!!"VX'aJ-H!am0!ai!!Q)!!!D | ||
475 | l"X)$)!-K$3-J!!&[!!!'Z`DqrHN,rHN!*$!!%'0bHA"dEfC[E'4PFR"KG'J!%'0 | ||
476 | bHA"dEdC[E'4PFP"KG'J0!b%!!@d!!!Dq"X%$)J`$)J!+!!3kFQ-d!!)!!!d$(`! | ||
477 | "E`!!!!!!!2hS#rhS!"3`!!KdC@e`F'&dD!!)G'9YF&"KG'J#!ad!!J-M!b30!b- | ||
478 | !!dN!!JE("[(pjrhQ!b8+rHF!'#jMEh*PBh*PE#SU+LS!!!!!!!#3!!"ZG@aX!Ih | ||
479 | Q!!!'!b8!!rhP!bB$*`Vpj3!%#QY[Bf`0!bB!!@d!!!E,"Xlpj!Vpj!!%#Q&XD@% | ||
480 | '!bF!!rhM!bJ$+3Vpi`!%#QPZFfJ0!bJ!!M3!!!E4"YRpiJ-U#[hL!!3+BfC[E!d | ||
481 | $+J!"E`!!"Y8'f2hK#rhK!$3`!"K[F'9ZFh0XD@jME(9NC@C[E'4PFR"KG'J!''p | ||
482 | `C@j68da*EQ0XG@4P4QpXC'9b8'&dD!B$+3!$rH!$+rhI#[hJ!!3+G'mJ)!d$+`! | ||
483 | #EJ!!"Y`'k`-X!bd0!b`!!M3!!!EN"Z[phJ-Z#[hH!!3+CQPXC3d$,J!"E3!!"ZF | ||
484 | 'kJ-[$!-[!!X!"A*M0#jS!!)!!!d$,3!#0!!!"Y`'j2hG!c!+rGd!"!TMCQpX$3- | ||
485 | `!!&[!!!'i!EMrG`,rG`!&$!!#(4PEA"`BA4S!!KdC@e`8'&dD!Eph`!!!J-N!!) | ||
486 | $-3-b$3-a!!*X!!)'mJEbrG[pfJ(pf`!!!IhD!!!#!c)!!J-c!c30!c-!!R)!!!E | ||
487 | b"[d$03-f$3-e!!*L!!!'mJEj!cF$1!d$0`!"E`!!"[)'pIhC#rhC!#3`!""MFRP | ||
488 | `G'pQEfaNCA*`BA4S!""MFRP`G'p'EfaNCA*3BA4S$3-i!!&Y!!!'p3Ei!cN-!cN | ||
489 | !#J!%1R*M03!#!!!0!cB!!@m!!!!!!!$pf![pf!!8-!!)G'9YF("KG'J!#(4PEA" | ||
490 | 3BA4S!J-d!!)$1J-l$3-k!!0*!!)'rJFSrGIpeJ-m#[hA!"JZBfpbC@0bC@`U+LS | ||
491 | U!!!!!!!!N!!!ER9XE!(peJ!!"J-m!!2pe3-p!ci+rG8!"!TVEf0X$3-p!!&Y!!! | ||
492 | (!JF&rG3+rG3!"!TKE'PK"J-q!!2pd`-r!d!+rG-!"!TTER0S$3-r!!)d!!!(#!F | ||
493 | 3rG)$33VpdJ!%#Q0QEf`0!d%!!@m!!!F-"`rpd3[pd3!d-!!BEh"PER0cE'PZBfa | ||
494 | eC'9QEfaNCA*`BA4S!"K[F'9Z8e0-5@jME(9NC8C[E'4PFP"KG'J'!d!!!rh3!d, | ||
495 | pc`Vpd!!%#R4[)#!0!d)!!Qi!!!F6"b)$3`0%$30$!!)d!!!('`FLrFi$43VpcJ! | ||
496 | %#QCTE'80!d8!!@d!!!FH"b%$4J`$4J!,!!9bBc8ZD!!#!!!0!d3!!M3!!!F6"a[ | ||
497 | pc30(#[h0!!3+BfC[E!d$4`!"E`!!"aF('[h-#rh-!"3`!!KdC@e`F'&dD!!)G'9 | ||
498 | YF&"KG'J'rFm!!!)$1`!#!dJ$53d$5!!#E!!#"bN(+Ih,rFS"rFX!!!(pbJ!!!J0 | ||
499 | *!!)$5J0,$30+!!*b!!!(+3Fd!d`$63d$6!!#BJ!!"bN(-!01!dm0!di!!@m!!!F | ||
500 | T"bcpb3[pb3!N-!!3Bh*jF(4[CQpXC'9bF'&dD!!3Bh*jF(4[4QpXC'9b8'&dD!d | ||
501 | $6`!"E3!!"b`(,`03$!03!!d!"cTbDA"PE@3!!J!!$300!!&[!!!!!!!!rFJ,rFJ | ||
502 | !&$!!#(4PEA"`BA4S!!KdC@e`8'&dD!)$5`!#!e%$8Jd$83!$53!#"c8(Arh(rFB | ||
503 | $8`Vpa`!B,Q0[FQ9MFQ9X+LSU+J!!!!!!!*!!!'jeE'`"rFB!!!B$8`!$rF8$9!0 | ||
504 | 9#[h&!!3+DfpME!d$9!!"E3!!"cN(22h%#[h%!!3+B@aTB3B$93!$rF-$9J0A#[h | ||
505 | $!!3+D@jcD!d$9J!#0!!!"cm(4rh#!eJ+rF)!"!TMCQpX$30B!!&[!!!(3`G'rF% | ||
506 | ,rF%!0$!!''p`C@jcFfaTEQ0XG@4PCQpXC'9bF'&dD!!BEh"PEP066%PZBfaeC'9 | ||
507 | 'EfaNCA*3BA4S"J0A!!2p`!0CrEm+rF!!"!TdEb!J$30C!!*Z!!!(5JGC!eS$@`d | ||
508 | $@J!#0!!!"e)(@Ifq!e`+rEi!"!TQD@aP$30F!!&Y!!!(93GB!ed-!ed!$J!)FQP | ||
509 | `C@eN,QJ!!J!!$30E!!)d!!!(5JG5rEd$AJVp[3!%#Q0QEf`0!ei!!@m!!!G1"e( | ||
510 | p[![p[!!8-!!)G'9YF("KG'J!#(4PEA"3BA4S"[fr!!!#!e)!!J0I!f!0!em!!Q` | ||
511 | !!JGJ"f$pZrfk!Ifl!!!"rES!!!)$B!!#!f%$BJd$B3!#FJ!!"f!(D`0M!f30!f- | ||
512 | !!Q)!!!GJ"fF$C30Q$30P!!&[!!!(B!GMrEN,rEN!*$!!%'0bHA"dEfC[E'4PFR" | ||
513 | KG'J!%'0bHA"dEdC[E'4PFP"KG'J0!fB!!@d!!!GM"fB$C``$C`!+!!3kFR0K!!) | ||
514 | !!!d$C!!"E`!!!!!!!2fi#rfi!"3`!!KdC@e`F'&dD!!)G'9YF&"KG'J#!f)!!J0 | ||
515 | S!fN0!fJ!!dN!!JGX"jEpYrff!fS+rEF!'#jMEh*PBh*PE#SU+LS!!!!!!!#3!!" | ||
516 | ZG@aX!Iff!!!'!fS!!rfe!fX$E!VpY3!%#QY[Bf`0!fX!!@d!!!G`"h2pY!VpY!! | ||
517 | %#Q&XD@%'!f`!!rfc!fd$EJVpX`!%#QPZFfJ0!fd!!M3!!!Gf"hlpXJ0[#[fb!!3 | ||
518 | +BfC[E!d$E`!"E`!!"hS(IIfa#rfa!$3`!"K[F'9ZFh0XD@jME(9NC@C[E'4PFR" | ||
519 | KG'J!''p`C@j68da*EQ0XG@4P4QpXC'9b8'&dD!B$EJ!$rE!$F2f[#[f`!!3+G'm | ||
520 | J)!d$F!!#EJ!!"i%(N!!$F30b$30a!!)d!!!(L3H3!2fZ!h-+rDi!"!TQD@aP$30 | ||
521 | c!!&Y!!!(M!H2!h3-!h3!#`!&FR0K,QJ!!J!!$30b!!)d!!!(J3H*rDd$G3VpV3! | ||
522 | %#Q0QEf`0!h8!!@m!!!H&"iMpV![pV!!8-!!)G'9YF("KG'J!#(4PEA"3BA4S"[f | ||
523 | [!!!#!fN!!J0f!hF0!hB!!Q`!!JHA"jIpUrfU!IfV!!!"rDS!!!)$G`!#!hJ$H3d | ||
524 | $H!!#FJ!!"jF(SJ0k!hX0!hS!!Q)!!!HA"ji$I!0p$30m!!&[!!!(P`HDrDN,rDN | ||
525 | !*$!!%'0bHA"dEfC[E'4PFR"KG'J!%'0bHA"dEdC[E'4PFP"KG'J0!hd!!@d!!!H | ||
526 | D"jd$IJ`$IJ!-!!BkFh4KBfX!!J!!$30l!!&[!!!!!!!!rDJ,rDJ!&$!!#(4PEA" | ||
527 | `BA4S!!KdC@e`8'&dD!)$H3!#!hm$J!d$I`!$53!#"k-(cIfRrDB$J3VpT`!B,Q0 | ||
528 | [FQ9MFQ9X+LSU+J!!!!!!!*!!!'jeE'`"rDB!!!B$J3!$rD8$JJ1$#[fP!!3+Dfp | ||
529 | ME!d$JJ!"E3!!"kF(U[fN#[fN!!3+B@aTB3B$J`!$rD-$K!1&#[fM!!3+D@jcD!d | ||
530 | $K!!#0!!!"kd(YIfL!iB+rD)!"!TMCQpX$31'!!&[!!!(X3HdrD%,rD%!0$!!''p | ||
531 | `C@jcFfaTEQ0XG@4PCQpXC'9bF'&dD!!BEh"PEP066%PZBfaeC'9'EfaNCA*3BA4 | ||
532 | S"J1&!!2pS!1(rCm+rD!!"!TdEb!J$31(!!*Z!!!(Z!I(!iJ$L3d$L!!#0!!!"m! | ||
533 | (arfH!iS+rCi!"!TQD@aP$31+!!&Y!!!(``I'!iX-!iX!$3!(Fh4KBfXZD!!#!!! | ||
534 | 0!iN!!M3!!!Hi"m$pR31-#[fG!!3+BfC[E!d$M!!"E`!!"l`([rfF#rfF!"3`!!K | ||
535 | dC@e`F'&dD!!)G'9YF&"KG'J'rCm!!!)$J!!#!id$MJd$M3!$53!#"mi(q2fErCS | ||
536 | $M`VpQ`!B,Q0[FQ9MFQ9X+LSU+J!!!!!!!*!!!'jeE'`"rCS!!!B$M`!$rCN$N!! | ||
537 | $N3VpQ3!%#QY[Bf`0!j!!!!&Y!!!(dJI9rCJ+rCJ!"!TKE'PK"J14!!2pP`15!j- | ||
538 | +rCF!"!TTER0S$315!!)d!!!(f!IJrCB$P!VpPJ!%#Q0QEf`0!j3!!@m!!!IF"pr | ||
539 | pP3[pP3!d-!!BEh"PER0cE'PZBfaeC'9QEfaNCA*`BA4S!"K[F'9Z8e0-5@jME(9 | ||
540 | NC8C[E'4PFP"KG'J'!j-!!rf8!jApN`VpP!!%#R4[)#!0!j8!!Qi!!!IM"r)$PJ1 | ||
541 | A$31@!!)d!!!(k`IbrC)$Q!VpNJ!%#QCTE'80!jJ!!@d!!!IZ"r%$Q3`$Q3!4!!Y | ||
542 | cB@CPFh4KBfXZD!!#!!!0!jF!!M3!!!IM"q[pN31D#[f4!!3+BfC[E!d$QJ!"E`! | ||
543 | !"qF(k[f3!![pN!!!&$!!#(4PEA"`BA4S!!KdC@e`8'&dD!EpN`!!!J11!!)$Q`1 | ||
544 | F$31E!!*X!!)(q3IjrBrpMJ(pM`!!!If1!!!#!j`!!J1G!ji0!jd!!R)!!!Ij#!3 | ||
545 | $R`1J$31I!!*L!!!(q3J!!k%$SJd$S3!"E`!!"rN(r2f0#rf0!#3`!""MFRP`G'p | ||
546 | QEfaNCA*`BA4S!""MFRP`G'p'EfaNCA*3BA4S$31L!!&Y!!!(r!Ir!k--!k-!#J! | ||
547 | %1R0SB3!#!!!0!k!!!@m!!!!!!!$pM![pM!!8-!!)G'9YF("KG'J!#(4PEA"3BA4 | ||
548 | S!J1H!!)$T!1P$31N!!0*!!))"3J[rB[pLJ1Q#[f,!"JZBfpbC@0bC@`U+LSU!!! | ||
549 | !!!!!N!!!ER9XE!(pLJ!!"J1Q!!2pL31R!kJ+rBN!"!TVEf0X$31R!!&Y!!!)#3J | ||
550 | -rBJ+rBJ!"!TKE'PK"J1S!!2pK`1T!kS+rBF!"!TTER0S$31T!!)d!!!)$`JArBB | ||
551 | $U`VpKJ!%#Q0QEf`0!kX!!@m!!!J6#"EpK3[pK3!d-!!BEh"PER0cE'PZBfaeC'9 | ||
552 | QEfaNCA*`BA4S!"K[F'9Z8e0-5@jME(9NC8C[E'4PFP"KG'J'!kS!!rf%!kcpJ`V | ||
553 | pK!!%#R4[)#!0!k`!!Qi!!!JD##N$V31Z$31Y!!)d!!!))JJTrB)$V`VpJJ!%#QC | ||
554 | TE'80!km!!@d!!!JP##J$X!`$X!!,!!9cD'%ZD!!#!!!0!ki!!M3!!!JD##,pJ31 | ||
555 | a#[f"!!3+BfC[E!d$X3!"E`!!#"i))If!#rf!!"3`!!KdC@e`F'&dD!!)G'9YF&" | ||
556 | KG'J'rB-!!!)$T3!#!l)$X`d$XJ!#E!!##$!)-2errAi"rAm!!!(pIJ!!!J1c!!) | ||
557 | $Y!1e$31d!!*b!!!)-!Jl!lB$Y`d$YJ!#BJ!!#$!)0`1i!lN0!lJ!!@m!!!J`#$2 | ||
558 | pI3[pI3!N-!!3Bh*jF(4[CQpXC'9bF'&dD!!3Bh*jF(4[4QpXC'9b8'&dD!d$Z3! | ||
559 | "E3!!#$-)0J1k$!1k!!d!"cTdH(4IC')!!J!!$31h!!&[!!!!!!!!rA`,rA`!&$! | ||
560 | !#(4PEA"`BA4S!!KdC@e`8'&dD!)$Y3!#!lX$[!d$Z`!$53!##$`)C[elrAS$[3V | ||
561 | pH`!B,Q0[FQ9MFQ9X+LSU+J!!!!!!!*!!!'jeE'`"rAS!!!B$[3!$rAN$[J1r#[e | ||
562 | j!!3+DfpME!d$[J!"E3!!#%!)3rei#[ei!!3+B@aTB3B$[`!$rAF$`!2"#[eh!!3 | ||
563 | +D@jcD!d$`!!#0!!!#%B)6[ef!m)+rAB!"!TMCQpX$32#!!&[!!!)5JK0rA8,rA8 | ||
564 | !0$!!''p`C@jcFfaTEQ0XG@4PCQpXC'9bF'&dD!!BEh"PEP066%PZBfaeC'9'Efa | ||
565 | NCA*3BA4S"J2"!!2pG!2$rA-+rA3!"!TdEb!J$32$!!*Z!!!)83KJ!m3$a3d$a!! | ||
566 | #0!!!#&N)B2eb!mB+rA)!"!TQD@aP$32'!!&Y!!!)A!KI!mF-!mF!$J!)G(KdAf4 | ||
567 | L,QJ!!J!!$32&!!)d!!!)83KCrA%$b!VpF3!%#Q0QEf`0!mJ!!@m!!!K9#&MpF![ | ||
568 | pF!!8-!!)G'9YF("KG'J!#(4PEA"3BA4S"[ec!!!#!l`!!J2*!mS0!mN!!Q`!!JK | ||
569 | R#'IpEreZ!Ie[!!!"r@i!!!)$bJ!#!mX$c!d$b`!#FJ!!#'F)FJ20!mi0!md!!Q) | ||
570 | !!!KR#'i$c`23$322!!&[!!!)C`KUr@d,r@d!*$!!%'0bHA"dEfC[E'4PFR"KG'J | ||
571 | !%'0bHA"dEdC[E'4PFP"KG'J0!p!!!@d!!!KU#'d$d3`$d3!,!!8kH$8`13!#!!! | ||
572 | 0!mi!!@m!!!!!!!$pE![pE!!8-!!)G'9YF("KG'J!#(4PEA"3BA4S!J2-!!)$dJ2 | ||
573 | 6$325!!0*!!))F`LGr@[pDJ28#[eV!"JZBfpbC@0bC@`U+LSU!!!!!!!!N!!!ER9 | ||
574 | XE!(pDJ!!"J28!!2pD329!pB+r@N!"!TVEf0X$329!!&Y!!!)G`Kkr@J+r@J!"!T | ||
575 | KE'PK"J2@!!2pC`2A!pJ+r@F!"!TTER0S$32A!!)d!!!)I3L&r@B$f3VpCJ!%#Q0 | ||
576 | QEf`0!pN!!@m!!!L"#)6pC3[pC3!d-!!BEh"PER0cE'PZBfaeC'9QEfaNCA*`BA4 | ||
577 | S!"K[F'9Z8e0-5@jME(9NC8C[E'4PFP"KG'J'!pJ!!reN!pVpB`VpC!!%#R4[)#! | ||
578 | 0!pS!!Qi!!!L)#*F$f`2F$32E!!)d!!!)N!!)PreL!pd+r@)!"!TQD@aP$32G!!& | ||
579 | Y!!!)N`L@!pi-!pi!$!!'H$8`15jS!!)!!!d$h!!#0!!!#)J)N!$pB32I#[eK!!3 | ||
580 | +BfC[E!d$h`!"E`!!#)`)MreJ#reJ!"3`!!KdC@e`F'&dD!!)G'9YF&"KG'J'r@- | ||
581 | !!!)$d`!#!q!$i3d$i!!$53!##*i)b2eIr9i$iJVpA`!B,Q0[FQ9MFQ9X+LSU+J! | ||
582 | !!!!!!*!!!'jeE'`"r9i!!!B$iJ!$r9d$i`2N#[eG!!3+DfpME!d$i`!"E3!!#+) | ||
583 | )TIeF#[eF!!3+B@aTB3B$j!!$r9X$j32Q#[eE!!3+D@jcD!d$j3!#0!!!#+J)X2e | ||
584 | D!qF+r9S!"!TMCQpX$32R!!&[!!!)V!L[r9N,r9N!0$!!''p`C@jcFfaTEQ0XG@4 | ||
585 | PCQpXC'9bF'&dD!!BEh"PEP066%PZBfaeC'9'EfaNCA*3BA4S"J2Q!!2p@!2Sr9F | ||
586 | +r9J!"!TdEb!J$32S!!*Z!!!)X`M#!qN$kJd$k3!#0!!!#,X)`[e@!qX+r9B!"!T | ||
587 | QD@aP$32V!!&Y!!!)[JM"!q`-!q`!%!!+H$8`19pfCRNZD!!#!!!0!qS!!M3!!!L | ||
588 | c#,[p932Y#[e9!!3+BfC[E!d$l3!"E`!!#,F)Z[e8#re8!"3`!!KdC@e`F'&dD!! | ||
589 | )G'9YF&"KG'J'r9F!!!)$i3!#!qi$l`d$lJ!#E!!##-N)bIe6r9)"r9-!!!(p8J! | ||
590 | !!J2[!!)$m!2a$32`!!*b!!!)b3M8!r)$m`d$mJ!#BJ!!#-N)d!2d!r80!r3!!@m | ||
591 | !!!M*#-cp83[p83!N-!!3Bh*jF(4[CQpXC'9bF'&dD!!3Bh*jF(4[4QpXC'9b8'& | ||
592 | dD!d$p3!"E3!!#-`)c`2f$!2f!!d!"cTi06!jGM-!!J!!$32c!!&[!!!!!!!!r9! | ||
593 | ,r9!!&$!!#(4PEA"`BA4S!!KdC@e`8'&dD!)$m3!#!rF$q!d$p`!$53!##08)rre | ||
594 | 2r8i$q3Vp6`!B,Q0[FQ9MFQ9X+LSU+J!!!!!!!*!!!'jeE'`"r8i!!!B$q3!$r8d | ||
595 | $qJ2l#[e0!!3+DfpME!d$qJ!"E3!!#0N)h2e-#[e-!!3+B@aTB3B$q`!$r8X$r!2 | ||
596 | p#[e,!!3+D@jcD!d$r!!#0!!!#0m)jre+!ri+r8S!"!TMCQpX$32q!!&[!!!)i`M | ||
597 | Qr8N,r8N!0$!!''p`C@jcFfaTEQ0XG@4PCQpXC'9bF'&dD!!BEh"PEP066%PZBfa | ||
598 | eC'9'EfaNCA*3BA4S"J2p!!2p5!2rr8F+r8J!"!TdEb!J$32r!!*Z!!!)kJMj"!! | ||
599 | %!3d%!!!#0!!!#2))qIe'"!)+r8B!"!TQD@aP$33#!!&Y!!!)p3Mi"!--"!-!$J! | ||
600 | )H$8`1ABc,QJ!!J!!$33"!!)d!!!)kJMbr88%"!Vp43!%#Q0QEf`0"!3!!@m!!!M | ||
601 | Z#2(p4![p4!!8-!!)G'9YF("KG'J!#(4PEA"3BA4S"[e(!!!#!rJ!!J3&"!B0"!8 | ||
602 | !!Q`!!JN!#3$p3re#!Ie$!!!"r8)!!!)%"J!#"!F%#!d%"`!$53!##3!*+[e"r8! | ||
603 | %#3Vp33!B,Q0[FQ9MFQ9X+LSU+J!!!!!!!*!!!'jeE'`"r8!!!!B%#3!$r6m%#J3 | ||
604 | ,#[dr!!3+DfpME!d%#J!"E3!!#33*"rdq#[dq!!3+B@aTB3B%#`!$r6d%$!30#[d | ||
605 | p!!3+D@jcD!d%$!!#0!!!#3S*%[dm"!i+r6`!"!TMCQpX$331!!&[!!!*$JN4r6X | ||
606 | ,r6X!0$!!''p`C@jcFfaTEQ0XG@4PCQpXC'9bF'&dD!!BEh"PEP066%PZBfaeC'9 | ||
607 | 'EfaNCA*3BA4S"J30!!2p1J32r6N+r6S!"!TdEb!J$332!!*Z!!!*&3NN""!%%3d | ||
608 | %%!!#0!!!#4d**2di"")+r6J!"!TQD@aP$335!!&Y!!!*)!NM""--""-!#`!&Fh0 | ||
609 | X,QJ!!J!!$334!!)d!!!*&3NGr6F%&!Vp0`!%#Q0QEf`0""3!!@m!!!NC#4cp0J[ | ||
610 | p0J!H-!!0Fh0XCQpXC'9bF'&dD!!0Fh0X4QpXC'9b8'&dD!Ep13!!!J3)!!)%&33 | ||
611 | @$339!!0*!!)*+`P9r6Ap0!3A#[de!"JZBfpbC@0bC@`U+LSU!!!!!!!!N!!!ER9 | ||
612 | XE!(p0!!!"J3A!!2p-`3B""N+r6-!"!TVEf0X$33B!!&Y!!!*,`Nbr6)+r6)!"!T | ||
613 | KE'PK"J3C!!2p-33D""X+r6%!"!TTER0S$33D!!)d!!!*03Npr6!%(!Vp-!!%#Q0 | ||
614 | QEf`0""`!!@m!!!Nj#6cp,`[p,`!d-!!BEh"PER0cE'PZBfaeC'9QEfaNCA*`BA4 | ||
615 | S!"K[F'9Z8e0-5@jME(9NC8C[E'4PFP"KG'J'""X!!rdZ""hp,3Vp,J!%#R4[)#! | ||
616 | 0""d!!Qi!!!P!#8m%(J3I$33H!!)d!!!*5!P2r5`%)!Vp,!!%#QCTE'80"#!!!@d | ||
617 | !!!P,#8i%)3`%)3!-!!CcFf`b,QJ!!J!!$33I!!)d!!!*3!P)r5X%)JVp+`!%#Q0 | ||
618 | QEf`0"#)!!@m!!!P%#8Ip+J[p+J!H-!!0Fh0XCQpXC'9bF'&dD!!0Fh0X4QpXC'9 | ||
619 | b8'&dD!Ep,3!!!J3@!!)%)`3N$33M!!0*!!)*9JQ!r5Rp+!3P#[dT!"JZBfpbC@0 | ||
620 | bC@`U+LSU!!!!!!!!N!!!ER9XE!(p+!!!"J3P!!2p*`3Q"#F+r5F!"!TVEf0X$33 | ||
621 | Q!!&Y!!!*@JPGr5B+r5B!"!TKE'PK"J3R!!2p*33S"#N+r58!"!TTER0S$33S!!) | ||
622 | d!!!*B!PSr53%+JVp*!!%#Q0QEf`0"#S!!@m!!!PN#@Ip)`[p)`!d-!!BEh"PER0 | ||
623 | cE'PZBfaeC'9QEfaNCA*`BA4S!"K[F'9Z8e0-5@jME(9NC8C[E'4PFP"KG'J'"#N | ||
624 | !!rdL"#[p)3Vp)J!%#R4[)#!0"#X!!Qi!!!PV#AS%,!3Y$33X!!)d!!!*F`Pkr5! | ||
625 | %,JVp)!!%#QCTE'80"#i!!@d!!!Pf#AN%,``%,`!0!!GcFf`b-bjS!!)!!!d%,3! | ||
626 | #0!!!#@X*FrdI"$!+r4m!"!TMCQpX$33`!!&[!!!*E`Pbr4i,r4i!(M!!$A0cE'C | ||
627 | [E'4PFR"KG'J!$A0cE%C[E'4PFP"KG'J'r5%!!!)%*!!#"$%%-Jd%-3!$53!##B% | ||
628 | *UrdGr4`%-`Vp(3!B,Q0[FQ9MFQ9X+LSU+J!!!!!!!*!!!'jeE'`"r4`!!!B%-`! | ||
629 | $r4X%0!3e#[dE!!3+DfpME!d%0!!"E3!!#B8*L2dD#[dD!!3+B@aTB3B%03!$r4N | ||
630 | %0J3h#[dC!!3+D@jcD!d%0J!#0!!!#BX*NrdB"$J+r4J!"!TMCQpX$33i!!&[!!! | ||
631 | *M`Q5r4F,r4F!0$!!''p`C@jcFfaTEQ0XG@4PCQpXC'9bF'&dD!!BEh"PEP066%P | ||
632 | ZBfaeC'9'EfaNCA*3BA4S"J3h!!2p&J3jr48+r4B!"!TdEb!J$33j!!*Z!!!*PJQ | ||
633 | P"$S%1`d%1J!#0!!!#Ci*TId8"$`+r43!"!TQD@aP$33m!!&Y!!!*S3QN"$d-"$d | ||
634 | !$!!'Fh0X-bjS!!)!!!d%1`!#0!!!#CB*R[d6"$i+r4-!"!TMCQpX$33q!!&[!!! | ||
635 | *QJQGr4),r4)!(M!!$A0cE'C[E'4PFR"KG'J!$A0cE%C[E'4PFP"KG'J'r48!!!) | ||
636 | %-J!#"$m%3!d%2`!$53!##D`*e[d4r4!%33Vp%3!B,Q0[FQ9MFQ9X+LSU+J!!!!! | ||
637 | !!*!!!'jeE'`"r4!!!!B%33!$r3m%3J4$#[d2!!3+DfpME!d%3J!"E3!!#E!*Xrd | ||
638 | 1#[d1!!3+B@aTB3B%3`!$r3d%4!4&#[d0!!3+D@jcD!d%4!!#0!!!#EB*[[d-"%B | ||
639 | +r3`!"!TMCQpX$34'!!&[!!!*ZJQpr3X,r3X!0$!!''p`C@jcFfaTEQ0XG@4PCQp | ||
640 | XC'9bF'&dD!!BEh"PEP066%PZBfaeC'9'EfaNCA*3BA4S"J4&!!2p#J4(r3N+r3S | ||
641 | !"!TdEb!J$34(!!*Z!!!*`3R3"%J%53d%5!!#0!!!#FN*d2d)"%S+r3J!"!TQD@a | ||
642 | P$34+!!&Y!!!*c!R2"%X-"%X!$!!'G'ac-5jS!!)!!!d%53!#0!!!#F%*bId("%` | ||
643 | +r3F!"!TMCQpX$34-!!&[!!!*a3R)r3B,r3B!(M!!$A0cE'C[E'4PFR"KG'J!$A0 | ||
644 | cE%C[E'4PFP"KG'J'r3N!!!)%3!!#"%d%6Jd%63!#E!!##GF*erd&r33"r38!!!( | ||
645 | p"!!!!J41!!)%6`43$342!!0*!!)*e`S"r32p!J44#[d$!"JZBfpbC@0bC@`U+LS | ||
646 | U!!!!!!!!N!!!ER9XE!(p!J!!"J44!!2p!345"&-+r3%!"!TVEf0X$345!!&Y!!! | ||
647 | *f`RHr3!+r3!!"!TKE'PK"J46!!2mr`48"&8+r2m!"!TTER0S$348!!)d!!!*i3R | ||
648 | Tr2i%9JVmrJ!%#Q0QEf`0"&B!!@m!!!RP#HMmr3[mr3!d-!!BEh"PER0cE'PZBfa | ||
649 | eC'9QEfaNCA*`BA4S!"K[F'9Z8e0-5@jME(9NC8C[E'4PFP"KG'J'"&8!!rcm"&I | ||
650 | mq`Vmr!!%#R4[)#!0"&F!!Qi!!!RX#IX%@!4C$34B!!)d!!!*p!Rlr2S%@JVmqJ! | ||
651 | %#QCTE'80"&S!!@d!!!Rh#IS%@``%@`!1!!KMFRP`G'mZD!!#!!!0"&N!!M3!!!R | ||
652 | X#I6mq34F#[cj!!3+BfC[E!d%A!!"E`!!#I!*mrci#rci!#3`!""MFRP`G'pQEfa | ||
653 | NCA*`BA4S!""MFRP`G'p'EfaNCA*3BA4S"[cl!!!#"&!!!J4G"&i0"&d!!Q`!!JS | ||
654 | ##J,mprcf!Ich!!!"r2B!!!)%AJ!#"&m%B!d%A`!$53!##J)+,2cer23%B3Vmp3! | ||
655 | B,Q0[FQ9MFQ9X+LSU+J!!!!!!!*!!!'jeE'`"r23!!!B%B3!$r2-%BJ4M#[cc!!3 | ||
656 | +DfpME!d%BJ!"E3!!#JB+#Icb#[cb!!3+B@aTB3B%B`!$r2%%C!4P#[ca!!3+D@j | ||
657 | cD!d%C!!#0!!!#J`+&2c`"'B+r2!!"!TMCQpX$34Q!!&[!!!+%!S6r1m,r1m!0$! | ||
658 | !''p`C@jcFfaTEQ0XG@4PCQpXC'9bF'&dD!!BEh"PEP066%PZBfaeC'9'EfaNCA* | ||
659 | 3BA4S"J4P!!2mlJ4Rr1d+r1i!"!TdEb!J$34R!!*Z!!!+&`SQ"'J%D3d%D!!#0!! | ||
660 | !#Km+*[cX"'S+r1`!"!TQD@aP$34U!!&Y!!!+)JSP"'X-"'X!%!!+Eh"PER0cE(B | ||
661 | ZD!!#!!!0"'N!!M3!!!SA#Krmk`4X#[cV!!3+BfC[E!d%E!!"E`!!#KX+([cU#rc | ||
662 | U!#3`!""MFRP`G'pQEfaNCA*`BA4S!""MFRP`G'p'EfaNCA*3BA4S"[cY!!!#"'! | ||
663 | !!J4Y"'i0"'d!!dN!!JSY#PImkIcS"'m+r1N!'#jMEh*PBh*PE#SU+LS!!!!!!!# | ||
664 | 3!!"ZG@aX!IcS!!!'"'m!!rcR"(!%F3Vmj`!%#QY[Bf`0"(!!!@d!!!Sa#M6mjJV | ||
665 | mjJ!%#Q&XD@%'"(%!!rcP"()%F`Vmj3!%#QPZFfJ0"()!!M3!!!Sh#Mrmj!4d#[c | ||
666 | N!!3+BfC[E!d%G!!"E`!!#MX+2[cM#rcM!$3`!"K[F'9ZFh0XD@jME(9NC@C[E'4 | ||
667 | PFR"KG'J!''p`C@j68da*EQ0XG@4P4QpXC'9b8'&dD!B%F`!$r1)%GIcK#[cL!!3 | ||
668 | +G'mJ)!d%G3!#EJ!!#N)+834f"(F0"(B!!M3!!!T+#P(mi!4i#[cJ!!3+CQPXC3d | ||
669 | %H!!"E3!!#Nd+8!4j$!4j!!i!#(4YC'PQCLjS!!)!!!d%G`!#0!!!#N)+5[cI"(S | ||
670 | +r0m!"!TMCQpX$34k!!&[!!!+4JT*r0i,r0i!*$!!%'0bHA"dEfC[E'4PFR"KG'J | ||
671 | !%'0bHA"dEdC[E'4PFP"KG'J'r1%!!!)%EJ!#"(X%I!d%H`!#E!!##PJ+@2cGr0` | ||
672 | "r0d!!!(mh!!!!J4m!!)%I34q$34p!!*X!!)+@!TBr0[mfJ(mf`!!!IcD!!!#"(i | ||
673 | !!J4r")!0"(m!!dN!!JTB#S,mfIcB")%+r0N!'#jMEh*PBh*PE#SU+LS!!!!!!!# | ||
674 | 3!!"ZG@aX!IcB!!!'")%!!rcA"))%J`Vme`!%#QY[Bf`0"))!!@d!!!TF#PrmeJV | ||
675 | meJ!%#Q&XD@%'")-!!rc9")3%K3Vme3!%#QPZFfJ0")3!!M3!!!TL#QVme!5'#[c | ||
676 | 8!!3+BfC[E!d%KJ!"E`!!#QB+DIc6#rc6!$3`!"K[F'9ZFh0XD@jME(9NC@C[E'4 | ||
677 | PFR"KG'J!''p`C@j68da*EQ0XG@4P4QpXC'9b8'&dD!B%K3!$r0)%Krc4#[c5!!3 | ||
678 | +G'mJ)!d%K`!#EJ!!#Qd+I!5)")N0")J!!M3!!!Te#Rcmd!5+#[c3!!3+CQPXC3d | ||
679 | %LJ!"E3!!#RJ+H`5,$!5,!!`!"Q9IEh-ZD!!#!!!0")N!!M3!!!TY#RAmc`5-#[c | ||
680 | 2!!3+BfC[E!d%M!!"E`!!#R%+G2c1#rc1!#B`!"&[F'9ZFh0XCQpXC'9bF'&dD!! | ||
681 | 4Eh"PER0cE%C[E'4PFP"KG'J'r0%!!!)%J!!#")d%MJd%M3!$53!##S-+VIc0r-` | ||
682 | %M`Vmc3!B,Q0[FQ9MFQ9X+LSU+J!!!!!!!*!!!'jeE'`"r-`!!!B%M`!$r-X%N!! | ||
683 | %N3Vmb`!%#QY[Bf`0"*!!!!&Y!!!+K`U+r-S+r-S!"!TKE'PK"J54!!2mb355"*- | ||
684 | +r-N!"!TTER0S$355!!)d!!!+M3U9r-J%P!Vmb!!%#Q0QEf`0"*3!!@m!!!U4#T6 | ||
685 | ma`[ma`!d-!!BEh"PER0cE'PZBfaeC'9QEfaNCA*`BA4S!"K[F'9Z8e0-5@jME(9 | ||
686 | NC8C[E'4PFP"KG'J'"*-!!rc'"*Ama3VmaJ!%#R4[)#!0"*8!!Qi!!!UB#UF%PJ5 | ||
687 | A$35@!!)d!!!+S!URr-3%Q!Vma!!%#QCTE'80"*J!!@d!!!UM#UB%Q3`%Q3!0!!G | ||
688 | PAfpc-LjS!!)!!!d%P`!#0!!!#TJ+S2c$"*S+r--!"!TMCQpX$35D!!&[!!!+R!U | ||
689 | Ir-),r-)!*M!!%@p`C@jcFfaQEfaNCA*`BA4S!"&[F'9ZFh0X4QpXC'9b8'&dD!E | ||
690 | ma3!!!J51!!)%Qrc"$35E!!*X!!)+VJUZr-$m[`(m`!!!!Ibr!!!#r-%!!!d!#3! | ||
691 | "E3!!!!!!!3!I!Irq!!!#!!B!!J5F"*d0"*`!!Q`!!J!!!!$m[[bp!Ibq!!!"r,d | ||
692 | !!!)%R3!#"*i%R`d%RJ!#E!!##V%+b!5Jr,`0"+!!!dN!!JUa#XMmZ`5K"+)+r,X | ||
693 | !'#jcHA0[C'a[Cf&cDh)!!!!!!!!!!&4&@&30"+%!!@d!!!Ua#V3%S``%S`!'!!! | ||
694 | !!J!!"J5L!!2mZJ5N"+8+r,S!"!TLG'jc$35N!!&+!!!+Y`Um"+B#"+B!!J5Rr,N | ||
695 | 0"+F!!@d!!!Uh#VS%U!`%U!!+!!4%EfjP!!)!!!,mZ3!!"J5P!!2mZ!5Tr,F+r,J | ||
696 | !"!TRDACe$35T!!&Y!!!+[`V#r,B$r,B!"3EmY`!!!Ibm!!!#"*m!!J5Ur,80"+S | ||
697 | !!Q`!!J!!!!$mY2bc!Ibd!!!"r,-!!!,mY3!!$J!#!!!2%!!$!",mXJ5V"+`%V35 | ||
698 | Z"+m%X!5a",)%X`5d",8%YJ5hr,(mX2b[r+i"r,)!!"!%U`!3r+hmV2bVr+VmUIb | ||
699 | Sr+ImT[bPr+6mSrbLr+(mS2bIr*i+r+d!'#jKCACdEf&`F'jeE'`!!)!!!!#3!!! | ||
700 | U+LSU#rbX!")`!!GdD'9`BA4S!!GdD'93BA4S#rbV!"``!!adD'9[E'4NC@aTEA- | ||
701 | !$(4SC8pXC%4PE'PYF`[mUJ!J-!!1G'KPF(*[DQ9MG("KG'J!$R4SC9"bEfTPBh4 | ||
702 | 3BA4S#rbT!"B`!!PdD'9YCA"KG'J!#A4SC8eP8'&dD![mU!!Q-!!4D@jME(9NC@C | ||
703 | [E'4PFR"KG'J!%@PZBfaeC'9'EfaNCA*3BA4S#rbR!$3`!"K[F'9ZFh0XD@jME(9 | ||
704 | NC@C[E'4PFR"KG'J!''p`C@j68da*EQ0XG@4P4QpXC'9b8'&dD![mTJ!N-!!3Bh* | ||
705 | jF(4[CQpXC'9bF'&dD!!3Bh*jF(4[4QpXC'9b8'&dD![mT3!H-!!0Fh0XCQpXC'9 | ||
706 | bF'&dD!!0Fh0X4QpXC'9b8'&dD![mT!!Q-!!4Eh"PER0cE'C[E'4PFR"KG'J!%@p | ||
707 | `C@jcFfa'EfaNCA*3BA4S#rbM!#i`!"9dD'9ZCAGQEfaNCA*bC@CPFQ9ZBf8!&A4 | ||
708 | SC8jPGdC[E'4PFP*PCQ9bC@jMC3[mSJ!8-!!)G'9YF("KG'J!#(4PEA"3BA4S!Ib | ||
709 | K!!!"r+!!!!(mR`!!!IbH!!!1"+`!"a$mR35ir*cmQ`5j",VmQJVmR3!B,Q&PGR4 | ||
710 | [BA"`ER9XE!!!J!!!!*!!!#SU+LS0",J!!@X!!!!!#XJ%Z`)%Z`!#!!8%[!)%[!! | ||
711 | #"*lmQ3,mQ3!!!IbF!!!#r*X!!"!%Z3!!%!5k!)B!(rbBr*ImP[b9r*6mNrb5!#c | ||
712 | mNIb3!2b2r)lmMIb-!%rmL`"D!&[mLJ"Nr)N!EIb)r)ImKJ#2r)AmK2b$r),mJIb | ||
713 | !r(rmI[apr(cmH`#Tr(VmHIair(F![Iaf!-ImG3$8!1)!l!$j!3-"%!%D!5F"-3% | ||
714 | q!8J"93&I!@`"GJ'$!Bd"QJ'N!E%"Z`()!G)"h`(T!IB#!!)0!KF#*!)Z!MX#43* | ||
715 | 5!P`#D3*c!S!#LJ+A!U%#VJ+m!XB#d`,G!ZS#p!-"!`X$'!-L!bm$130'!e!$A30 | ||
716 | R!h3$IJ1,!jN$S`1`!lS$a`24!pi$l!2f"!-%%`3K"#m%234,"&X%D`4j")X%Q35 | ||
717 | Mr(3%U2acr(,mF3VmQ!!%#Q0[BQS+r*F!'#jPBA*cCQCNFQ&XDA-!!!!!!!!J!'& | ||
718 | QC()+r*B!"!TMG(Kd#rb9!")`!!GdD'9`BA4S!!GdD'93BA4S#[b8!!3+BA0MFJV | ||
719 | mN`!%#R4iC'`,r*)!($!!$(4SC@pXC'4PE'PYF`!-G'KP6faN4'9XD@ec#[b4!!3 | ||
720 | +BfPdE32mN!$rr3[mM`!J-!!1G'KPF(*[DQ9MG("KG'J!$R4SC9"bEfTPBh43BA4 | ||
721 | S!rb1rri+r)d!"!T849K8#rb-!"B`!!PdD'9YCA"KG'J!#A4SC8eP8'&dD![mL`! | ||
722 | Q-!!4D@jME(9NC@C[E'4PFR"KG'J!%@PZBfaeC'9'EfaNCA*3BA4S#rb+!$3`!"K | ||
723 | [F'9ZFh0XD@jME(9NC@C[E'4PFR"KG'J!''p`C@j68da*EQ0XG@4P4QpXC'9b8'& | ||
724 | dD![mL3!N-!!3Bh*jF(4[CQpXC'9bF'&dD!!3Bh*jF(4[4QpXC'9b8'&dD![mL!! | ||
725 | H-!!0Fh0XCQpXC'9bF'&dD!!0Fh0X4QpXC'9b8'&dD![mK`!Q-!!4Eh"PER0cE'C | ||
726 | [E'4PFR"KG'J!%@p`C@jcFfa'EfaNCA*3BA4S#[b'!!3+BfC[E!VmK3!B,QeTFf0 | ||
727 | cE'0d+LSU+J!!!!!!!*!!!#SU+LS+r)3!"!TcC@aP#[b$!"JZBfpbC@4PE'mU+LS | ||
728 | U!!!!!!!!N!!!+LSU+J(mJJ!!![b"!!!+r)!!"!TVEf0X#[ar!!3+D@jcD!2mIJ! | ||
729 | %#[ap!"JZBfpbC@0bC@`U+LSU!!!!!!!!N!!!ER9XE!VmI!!%#R*cE(3,r(X!,M! | ||
730 | !&A4SC@jPGfC[E'4PFR*PCQ9bC@jMC3!9G'KP6Q9h4QpXC'9b8Q9QCA*PEQ0P#[a | ||
731 | k!!3+F'jKE3VmH3!%#Q&XD@%+r(J!"!TdEb!J#[ah!!3+CQPXC32mGJ!'#rae!"3 | ||
732 | `!!KdC@e`F'&dD!!)G'9YF&"KG'J+r(3!"!TLG'jc#[ac!!3+CfPfG32mFJ!&#[a | ||
733 | a!"JZFhPcEf4XEfGKFfYb!!!!!!!!!!"849K8%IbD#XRJ%JUYi1%TDJ`!!LrM*N9 | ||
734 | 4e%r&jLa&edrSaHBX4Nr%@qPF@eTVA&VU-NAE6m4Ek9aE@QYF@Z`bl5C&hNr,lbA | ||
735 | Y*N9J!""2bf%!%59K!")Pl5C&B!!66mYK!"3Pl5C&B!!96mYK!"BPl5C&B!!A6m[ | ||
736 | Y*N9J!"K2amAQ,%C2&!!L+Q%!'9m!%#pK!"PK!"S[DJ`!'dmUB3!F,'S-!"eA!!K | ||
737 | B!"i!(fK2+Q%!)'%!'@%!)5TK!"PI!"![B3!L$!!M6em!*%9J!#92A`!PDJ`!'dp | ||
738 | K!#BUB3!F,'%!*ba'6bTK!#"K!#KK!#%UB3!CA`!6,f%!+5TK!"R1,f%!+Q%!+bp | ||
739 | K!#`-!#02A`!9B3!Y*89J!#j2+Q%!)'%!+'%!)5TK!"PI!"-[B3!T+Q%!'9m!,Lp | ||
740 | K!#TK!#m[B3!X$!!M6bTK!#"K!#KK!#%UB3!CA`!6,f%!+5TK!"PI!#i[B3!UB3! | ||
741 | `,f%!,!`!)dpI!"9K!$%P4@!!,NmUB3!JB3!SB3!K+Q%!'9m!%bpK!#NUB3!CA`! | ||
742 | Z,f%!+Q%!-LpK!#`-!#02A`!9B3!c*89J!#j2+Q%!)'%!+'%!)5TK!"PI!"-[B3! | ||
743 | T+Q%!'9m!,LpK!#TK!$3[B3!X$!!M6em!&@%!059&B!!Z6bTK!#"K!#KK!#%UB3! | ||
744 | CA`!6,f%!+5TK!"PI!#i[B3!UB3!f,f%!,!`!)dpI!"9K!$FP4@!!,NmUB3!JB3! | ||
745 | SB3!K+Q%!'9m!%bpK!#NUB3!CA`!Z,f%!+Q%!1#pK!#`-!#02A`!9B3!j*89J!#j | ||
746 | 2+Q%!)'%!+'%!)5TK!"PI!"-[B3!T+Q%!'9m!,LpK!#TK!$S[B3!X$!!M6em!&@% | ||
747 | !1b9&B!!Z6bTK!#"K!#KK!#%UB3!CA`!6,f%!+5TK!"PI!#i[B3!UB3!m,f%!,!` | ||
748 | !)dpI!"9K!$dP4@!!,NmUB3!JB3!SB3!K+Q%!'9m!%bpK!#NUB3!CA`!Z,f%!+Q% | ||
749 | !2LpK!#`-!#02A`!9B3!r*89J!#j2+Q%!)'%!+'%!)5TK!"PI!"-[B3!T+Q%!'9m | ||
750 | !,LpK!#TK!%![B3!X$!!M6em!&@%!359&B!!Z6bTK!#"K!#KK!#%UB3!CA`!6,f% | ||
751 | !+5TK!"PI!#i[B3!UB3"#,f%!,!`!)dpI!"9K!%-P4@!!,NmUB3!JB3!SB3!K+Q% | ||
752 | !'9m!%bpK!#NUB3!CA`!Z,f%!+Q%!4#pK!#`-!#02A`!9B3"&*89J!#j2+Q%!)'% | ||
753 | !+'%!)5TK!"PI!"-[B3!T+Q%!'9m!,LpK!#TK!%B[B3!X$!!M6em!&@%!4b9&B!! | ||
754 | Z6bTK!#"K!#KK!#%UB3!CA`!6,f%!+5TK!"PI!#i[B3!UB3"),f%!,!`!)dpI!"9 | ||
755 | K!%NP4@!!,NmUB3!JB3!SB3!K+Q%!'9m!%bpK!#NUB3!CA`!Z,f%!+Q%!5LpK!#` | ||
756 | -!#02A`!9B3",*89J!#j2+Q%!)'%!+'%!)5TK!"PI!"-[B3!T+Q%!'9m!,LpK!#T | ||
757 | K!%`[B3!X$!!M6em!&@%!659&B!!Z6bTK!#"K!#KK!#%UB3!CA`!6,f%!+5TK!"P | ||
758 | I!#i[B3!UB3"1,f%!,!`!)dpI!"9K!%mP4@!!,NmUB3!JB3!SB3!K+Q%!'9m!%bp | ||
759 | K!#NUB3!CA`!Z,f%!+Q%!8#pK!#`-!#02A`!9B3"4*89J!#j2+Q%!)'%!+'%!)5T | ||
760 | K!"PI!"-[B3!T+Q%!'9m!,LpK!#TK!&)[B3!X$!!M6em!&@%!8b9&B!!Z6bTK!#" | ||
761 | K!#KK!#%UB3!CA`!6,f%!+5TK!"PI!#i[B3!UB3"8,f%!,!`!)dpI!"9K!&8P4@! | ||
762 | !,NmUB3!JB3!SB3!K+Q%!'9m!%bpK!#NUB3!CA`!Z,f%!+Q%!9LpK!#`-!#02A`! | ||
763 | 9B3"A*89J!#j2+Q%!)'%!+'%!)5TK!"PI!"-[B3!T+Q%!'9m!,LpK!#TK!&J[B3! | ||
764 | X$!!M6bTK!#"K!#KK!#%UB3!CA`!6,f%!+5TK!"PI!#i[B3!UB3"C,f%!,!`!)dp | ||
765 | I!"9K!&SP4@!!,NmUB3!JB3!SB3!K+Q%!'9m!%bpK!#NUB3!CA`!Z,f%!+Q%!@bp | ||
766 | K!#`-!#02A`!9B3"F*89J!#j2+Q%!)'%!+'%!)5TK!"PI!"-[B3!T+Q%!'9m!,Lp | ||
767 | K!#TK!&d[B3!X$!!M6em!&@%!AL9&B!!Z6bTK!#"K!#KK!#%UB3!CA`!6,f%!+5T | ||
768 | K!"PI!#i[B3!UB3"I,f%!,!`!)dpI!"9K!'!P4@!!,NmUB3!JB3!SB3!K+Q%!'9m | ||
769 | !%bpK!#NUB3!CA`!Z,f%!+Q%!B5pK!#`-!#02A`!9B3"L*89J!#j2+Q%!)'%!+'% | ||
770 | !)5TK!"PI!"-[B3!T+Q%!'9m!,LpK!#TK!'-[B3!X$!!M6em!&@%!C#9&B!!Z6bT | ||
771 | K!#"K!#KK!#%UB3!CA`!6,f%!+5TK!"PI!#i[B3!UB3"P,f%!,!`!)dpI!"9K!'B | ||
772 | P4@!!,NmUB3!JB3!SB3!K+Q%!'9m!%bpK!#NUB3!CA`!Z,f%!+Q%!CbpK!#`-!#0 | ||
773 | 2A`!9B3"S*89J!#j2+Q%!)'%!+'%!)5TK!"PI!"-[B3!T+Q%!'9m!,LpK!#TK!'N | ||
774 | [B3!X$!!M6em!&@%!DL9&B!!Z6bTK!#"K!#KK!#%UB3!CA`!6,f%!+5TK!"PI!#i | ||
775 | [B3!UB3"V,f%!,!`!)dmUB3!JB3!SB3!K+Q%!'9m!%bpK!#NUB3!CA`!Z,f%!+Q% | ||
776 | !E#pK!#`-!#02A`!9B3"Y*89J!#j2+Q%!)'%!+'%!)5TK!"PI!"-[B3!T+Q%!'9m | ||
777 | !,LpK!#TK!'i[B3!X$!!M6em!&@%!Eb9&B!!Z6bTK!#"K!#KK!#%UB3!CA`!6,f% | ||
778 | !+5TK!"PI!#i[B3!UB3"`,f%!,!`!)dpI!"9K!(%P4@!!,NmUB3!JB3!SB3!K+Q% | ||
779 | !'9m!%bpK!#NUB3!CA`!Z,f%!+Q%!FLpK!#`-!#02+Q%!)'%!+'%!)5TK!"PI!"- | ||
780 | [B3!T+Q%!'9m!,LpK!#TK!(-[B3!X$!!M6em!&@%!G#9&B!!Z6bTK!#"K!#KK!#% | ||
781 | UB3!CA`!6,f%!+5TK!"PI!#i[B3!UB3"e,f%!,!`!)dmUB3!JB3!SB3!K+Q%!'9m | ||
782 | !%bpK!#NUB3!CA`!A,f%!+Q%!GLpK!#`-!#02+Q%!)'%!+'%!)5TK!"PI!"-[B3! | ||
783 | T+Q%!'9m!&bpK!#TK!(F[B3!X$!!M6bTK!#"K!#KK!#%UB3!CA`!6,f%!+5TK!"P | ||
784 | I!"F[B3!UB3"i,f%!,!`!)dmUB3!JB3!SB3!K+Q%!'9m!%bpK!#NUB3!CA`!A,f% | ||
785 | !+Q%!H5pK!#`-!#02+Q%!)'%!+'%!)5TK!"PI!"-[B3!T+Q%!'9m!&bpK!#TK!(S | ||
786 | [B3!X$!!M6bTK!#"K!#KK!#%UB3!CA`!6,f%!+5TK!"PI!"8[B3!UB3"l,f%!,!` | ||
787 | !)dmUB3!JB3!SB3!K+Q%!'9m!%bpK!#NUB3!CA`!9,f%!+Q%!I#pK!#`-!#02+Q% | ||
788 | !)'%!+'%!)5TK!"PI!"-[B3!T+Q%!'9m!&5pK!#TK!(d[B3!X$!!M6bTK!#"K!#K | ||
789 | K!#%UB3!CA`!6,f%!+5TK!"PI!"J[B3!UB3"q,f%!,!`!)dmUB3!JB3!SB3!K+Q% | ||
790 | !'9m!%bpK!#NUB3!CA`!B,f%!+Q%!IbpK!#`-!#028&92B3#!B3#"B3##DhCK!)0 | ||
791 | K!)4K!#)-!)82$!5Y!&%!5deKBfPZG'pcD#")4$T%CA0VG'p`)%C[E'4PFMT*EQ0 | ||
792 | [E@PZCcT[F'9ZFh0X,90139!Y-6Nj16%b-6%k6@&M6e-kE@YXD@jVFbjKF`!#!!! | ||
793 | 1"+i!!J6mF!5p!ra`!!%1",d!!3!%[J`%[J!'!!!!!J!!$J5[!!)%r'm%[`2mE`! | ||
794 | %$J5r!!3!"-!%`36#"---"-!!%J!-6@&MD@jdEh0S)%K%!!)!!!`%`3!8!!j%CA0 | ||
795 | VG'p`)%C[E'4PFJ!#!!!-"-)!$J!)5@jMEfeTEQF!!J!!$!6$!"X!&@p`C@jcFf` | ||
796 | Y8dj"8#da16Nj-6)a-3!#!!!-",!!4J"!6@&MD@jdEh0S)%K%1N4PFfYdEh!J4Qp | ||
797 | XC'9b1NPZBfpYD@jR1Qp`C@jcFf`Y8dj"8#da16Nj-6)a-6T0B@028`!#!!!-",% | ||
798 | !5!"#6@&MD@jdEh0S)%K%1N4PFfYdEh!J4QpXC'9b1NPZBfpYD@jR1Qp`C@jcFf` | ||
799 | Y8dj"8#da16Nj-6)a-6TTEQ0XG@4P!!)!!!`%XJ"3!%T0B@0TER4[FfJJ5%3k4'9 | ||
800 | cDh4[F#"'EfaNCA)k5@jMEfeTEQFkEh"PER0cE#e66N&3,6%j16Na-M%a1QPZBfa | ||
801 | eC'8kEh"PER0cE!!#!!!-",-!4`""6@&MD@jdEh0S)%K%1N4PFfYdEh!J4QpXC'9 | ||
802 | b1NPZBfpYD@jR1Qp`C@jcFf`Y8dj"8#da16Nj-6)a-6TMFRP`G'm!!J!!$!5d!%3 | ||
803 | !2NeKBfPZG'pcD#")4$T%CA0VG'p`)%C[E'4PFMT*EQ0[E@PZCcT[F'9ZFh0X,90 | ||
804 | 139!Y-6Nj16%b-6%kFh0X!!)!!!`%Y3"!!$T0B@0TER4[FfJJ5%3k4'9cDh4[F#" | ||
805 | 'EfaNCA)k5@jMEfeTEQFkEh"PER0cE#e66N&3,6%j16Na-M%a!!)!!!i%YJ!"&!6 | ||
806 | %$J6%!!-B"-AmEJ6'$J6&!!-B"-ImE36)$J6(!!-B"-RmE!6+$J6*!!-B!"rmD`6 | ||
807 | ,#[aV!!3+BfC[E!`%b`!1!!K*EQ0[E@PZC`!#!!!+r'`!"!TMCQpX$!6+!"X!&@p | ||
808 | `C@jcFf`Y8dj"8#da16Nj-6)a-3!#!!!+r'd!"!TMCQpX$!6)!!d!"fPZBfaeC'8 | ||
809 | !!J!!#[aZ!!3+BfC[E!`%aJ!9!!peER4TG'aPC#"QEfaNCA)!!J!!$!5h!%i!5%e | ||
810 | KBfPZG'pcD#")4$T%CA0VG'p`)%C[E'4PFMT*EQ0[E@PZCcT[F'9ZFh0X,90139! | ||
811 | Y-6Nj16%b-6%kBh*jF(4[1RJe-$Pf-`!#!!!"r,%!!!(mX!!!!Ib[!!!"r+i!!'& | ||
812 | cBh)!!3!-qYlHV3!!!3!!!*G#!!#@3J!!!AB!!$-8-0J!!!!F!AB!$h0MFhS!!!# | ||
813 | #6Np853!!!)jcBh"d!!!!QP4&@&3!!3#QFh4jE!!!!,j$6d4&!!%!bN*14%`!!!$ | ||
814 | LBA"XG!!!!1j'8N9'!!!!qNP$6L-!!!%'D@0X0!!!!4*TBh-M!!!"(QPMFc3!!!% | ||
815 | UD'CNFJ!!!6C659T&!!!"3PG3Eh-!!!&1!!$rr`!!!!!!!!!!!)$rre!!!"i!!!! | ||
816 | !!)$rr`!!"cJ#DH#m"'Mrr`!!!*S!!!!!%iRrr`!!"Pi!!!!!"'Mrr`!!!53!!!! | ||
817 | !!!$rrb!!!9)!!!!!!!(rra3!!@i#DG`%!)$rr`!!!Pi#DH"X!!$rr`!!!Ri!!!! | ||
818 | !!)$rr`!!!S-#DH"d!*Err`!!!Si!!!!!!*Err`!!!j)!!!!!!*Err`!!"CB#DH% | ||
819 | i!*Err`!!"GS#DH%dkF$rr`!!"[`!!!!!rrrrr`!!"a)!!!!!!)$rr`!!"b!!!!! | ||
820 | !*4S: | ||
diff --git a/src/lib/libssl/src/MacOS/opensslconf.h b/src/lib/libssl/src/MacOS/opensslconf.h deleted file mode 100644 index ad557cc06a..0000000000 --- a/src/lib/libssl/src/MacOS/opensslconf.h +++ /dev/null | |||
@@ -1,116 +0,0 @@ | |||
1 | /* MacOS/opensslconf.h */ | ||
2 | |||
3 | #if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */ | ||
4 | #if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR) | ||
5 | #define OPENSSLDIR "/usr/local/ssl" | ||
6 | #endif | ||
7 | #endif | ||
8 | |||
9 | #if defined(HEADER_IDEA_H) && !defined(IDEA_INT) | ||
10 | #define IDEA_INT unsigned int | ||
11 | #endif | ||
12 | |||
13 | #if defined(HEADER_MD2_H) && !defined(MD2_INT) | ||
14 | #define MD2_INT unsigned int | ||
15 | #endif | ||
16 | |||
17 | #if defined(HEADER_RC2_H) && !defined(RC2_INT) | ||
18 | /* I need to put in a mod for the alpha - eay */ | ||
19 | #define RC2_INT unsigned int | ||
20 | #endif | ||
21 | |||
22 | #if defined(HEADER_RC4_H) | ||
23 | #if !defined(RC4_INT) | ||
24 | /* using int types make the structure larger but make the code faster | ||
25 | * on most boxes I have tested - up to %20 faster. */ | ||
26 | /* | ||
27 | * I don't know what does "most" mean, but declaring "int" is a must on: | ||
28 | * - Intel P6 because partial register stalls are very expensive; | ||
29 | * - elder Alpha because it lacks byte load/store instructions; | ||
30 | */ | ||
31 | #define RC4_INT unsigned char | ||
32 | #endif | ||
33 | #if !defined(RC4_CHUNK) | ||
34 | /* | ||
35 | * This enables code handling data aligned at natural CPU word | ||
36 | * boundary. See crypto/rc4/rc4_enc.c for further details. | ||
37 | */ | ||
38 | #define RC4_CHUNK unsigned long | ||
39 | #endif | ||
40 | #endif | ||
41 | |||
42 | #if defined(HEADER_DES_H) && !defined(DES_LONG) | ||
43 | /* If this is set to 'unsigned int' on a DEC Alpha, this gives about a | ||
44 | * %20 speed up (longs are 8 bytes, int's are 4). */ | ||
45 | #ifndef DES_LONG | ||
46 | #define DES_LONG unsigned long | ||
47 | #endif | ||
48 | #endif | ||
49 | |||
50 | #if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H) | ||
51 | #define CONFIG_HEADER_BN_H | ||
52 | #if __option(longlong) | ||
53 | # define BN_LLONG | ||
54 | #else | ||
55 | # undef BN_LLONG | ||
56 | #endif | ||
57 | |||
58 | /* Should we define BN_DIV2W here? */ | ||
59 | |||
60 | /* Only one for the following should be defined */ | ||
61 | /* The prime number generation stuff may not work when | ||
62 | * EIGHT_BIT but I don't care since I've only used this mode | ||
63 | * for debuging the bignum libraries */ | ||
64 | #undef SIXTY_FOUR_BIT_LONG | ||
65 | #undef SIXTY_FOUR_BIT | ||
66 | #define THIRTY_TWO_BIT | ||
67 | #undef SIXTEEN_BIT | ||
68 | #undef EIGHT_BIT | ||
69 | #endif | ||
70 | |||
71 | #if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H) | ||
72 | #define CONFIG_HEADER_RC4_LOCL_H | ||
73 | /* if this is defined data[i] is used instead of *data, this is a %20 | ||
74 | * speedup on x86 */ | ||
75 | #undef RC4_INDEX | ||
76 | #endif | ||
77 | |||
78 | #if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H) | ||
79 | #define CONFIG_HEADER_BF_LOCL_H | ||
80 | #define BF_PTR | ||
81 | #endif /* HEADER_BF_LOCL_H */ | ||
82 | |||
83 | #if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H) | ||
84 | #define CONFIG_HEADER_DES_LOCL_H | ||
85 | /* the following is tweaked from a config script, that is why it is a | ||
86 | * protected undef/define */ | ||
87 | #ifndef DES_PTR | ||
88 | #define DES_PTR | ||
89 | #endif | ||
90 | |||
91 | /* This helps C compiler generate the correct code for multiple functional | ||
92 | * units. It reduces register dependancies at the expense of 2 more | ||
93 | * registers */ | ||
94 | #ifndef DES_RISC1 | ||
95 | #define DES_RISC1 | ||
96 | #endif | ||
97 | |||
98 | #ifndef DES_RISC2 | ||
99 | #undef DES_RISC2 | ||
100 | #endif | ||
101 | |||
102 | #if defined(DES_RISC1) && defined(DES_RISC2) | ||
103 | YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!! | ||
104 | #endif | ||
105 | |||
106 | /* Unroll the inner loop, this sometimes helps, sometimes hinders. | ||
107 | * Very mucy CPU dependant */ | ||
108 | #ifndef DES_UNROLL | ||
109 | #define DES_UNROLL | ||
110 | #endif | ||
111 | |||
112 | #endif /* HEADER_DES_LOCL_H */ | ||
113 | |||
114 | #ifndef __POWERPC__ | ||
115 | #define MD32_XARRAY | ||
116 | #endif | ||
diff --git a/src/lib/libssl/src/Makefile b/src/lib/libssl/src/Makefile index d5db11b417..4a40b701d9 100644 --- a/src/lib/libssl/src/Makefile +++ b/src/lib/libssl/src/Makefile | |||
@@ -4,7 +4,7 @@ | |||
4 | ## Makefile for OpenSSL | 4 | ## Makefile for OpenSSL |
5 | ## | 5 | ## |
6 | 6 | ||
7 | VERSION=1.0.1c | 7 | VERSION=1.0.1g |
8 | MAJOR=1 | 8 | MAJOR=1 |
9 | MINOR=0.1 | 9 | MINOR=0.1 |
10 | SHLIB_VERSION_NUMBER=1.0.0 | 10 | SHLIB_VERSION_NUMBER=1.0.0 |
@@ -71,7 +71,7 @@ RANLIB= /usr/bin/ranlib | |||
71 | NM= nm | 71 | NM= nm |
72 | PERL= /usr/bin/perl | 72 | PERL= /usr/bin/perl |
73 | TAR= tar | 73 | TAR= tar |
74 | TARFLAGS= --no-recursion | 74 | TARFLAGS= --no-recursion --record-size=10240 |
75 | MAKEDEPPROG=makedepend | 75 | MAKEDEPPROG=makedepend |
76 | LIBDIR=lib | 76 | LIBDIR=lib |
77 | 77 | ||
@@ -304,7 +304,8 @@ libcrypto$(SHLIB_EXT): libcrypto.a fips_premain_dso$(EXE_EXT) | |||
304 | FIPSLD_CC="$(CC)"; CC=$(FIPSDIR)/bin/fipsld; \ | 304 | FIPSLD_CC="$(CC)"; CC=$(FIPSDIR)/bin/fipsld; \ |
305 | export CC FIPSLD_CC FIPSLD_LIBCRYPTO; \ | 305 | export CC FIPSLD_CC FIPSLD_LIBCRYPTO; \ |
306 | fi; \ | 306 | fi; \ |
307 | $(MAKE) -e SHLIBDIRS=crypto build-shared; \ | 307 | $(MAKE) -e SHLIBDIRS=crypto CC="$${CC:-$(CC)}" build-shared && \ |
308 | (touch -c fips_premain_dso$(EXE_EXT) || :); \ | ||
308 | else \ | 309 | else \ |
309 | echo "There's no support for shared libraries on this platform" >&2; \ | 310 | echo "There's no support for shared libraries on this platform" >&2; \ |
310 | exit 1; \ | 311 | exit 1; \ |
@@ -446,7 +447,7 @@ rehash.time: certs apps | |||
446 | [ -x "apps/openssl.exe" ] && OPENSSL="apps/openssl.exe" || :; \ | 447 | [ -x "apps/openssl.exe" ] && OPENSSL="apps/openssl.exe" || :; \ |
447 | OPENSSL_DEBUG_MEMORY=on; \ | 448 | OPENSSL_DEBUG_MEMORY=on; \ |
448 | export OPENSSL OPENSSL_DEBUG_MEMORY; \ | 449 | export OPENSSL OPENSSL_DEBUG_MEMORY; \ |
449 | $(PERL) tools/c_rehash certs) && \ | 450 | $(PERL) tools/c_rehash certs/demo) && \ |
450 | touch rehash.time; \ | 451 | touch rehash.time; \ |
451 | else :; fi | 452 | else :; fi |
452 | 453 | ||
diff --git a/src/lib/libssl/src/Makefile.org b/src/lib/libssl/src/Makefile.org index 55273ea364..c92806f920 100644 --- a/src/lib/libssl/src/Makefile.org +++ b/src/lib/libssl/src/Makefile.org | |||
@@ -69,7 +69,7 @@ RANLIB= ranlib | |||
69 | NM= nm | 69 | NM= nm |
70 | PERL= perl | 70 | PERL= perl |
71 | TAR= tar | 71 | TAR= tar |
72 | TARFLAGS= --no-recursion | 72 | TARFLAGS= --no-recursion --record-size=10240 |
73 | MAKEDEPPROG=makedepend | 73 | MAKEDEPPROG=makedepend |
74 | LIBDIR=lib | 74 | LIBDIR=lib |
75 | 75 | ||
@@ -302,7 +302,8 @@ libcrypto$(SHLIB_EXT): libcrypto.a fips_premain_dso$(EXE_EXT) | |||
302 | FIPSLD_CC="$(CC)"; CC=$(FIPSDIR)/bin/fipsld; \ | 302 | FIPSLD_CC="$(CC)"; CC=$(FIPSDIR)/bin/fipsld; \ |
303 | export CC FIPSLD_CC FIPSLD_LIBCRYPTO; \ | 303 | export CC FIPSLD_CC FIPSLD_LIBCRYPTO; \ |
304 | fi; \ | 304 | fi; \ |
305 | $(MAKE) -e SHLIBDIRS=crypto build-shared; \ | 305 | $(MAKE) -e SHLIBDIRS=crypto CC="$${CC:-$(CC)}" build-shared && \ |
306 | (touch -c fips_premain_dso$(EXE_EXT) || :); \ | ||
306 | else \ | 307 | else \ |
307 | echo "There's no support for shared libraries on this platform" >&2; \ | 308 | echo "There's no support for shared libraries on this platform" >&2; \ |
308 | exit 1; \ | 309 | exit 1; \ |
@@ -444,7 +445,7 @@ rehash.time: certs apps | |||
444 | [ -x "apps/openssl.exe" ] && OPENSSL="apps/openssl.exe" || :; \ | 445 | [ -x "apps/openssl.exe" ] && OPENSSL="apps/openssl.exe" || :; \ |
445 | OPENSSL_DEBUG_MEMORY=on; \ | 446 | OPENSSL_DEBUG_MEMORY=on; \ |
446 | export OPENSSL OPENSSL_DEBUG_MEMORY; \ | 447 | export OPENSSL OPENSSL_DEBUG_MEMORY; \ |
447 | $(PERL) tools/c_rehash certs) && \ | 448 | $(PERL) tools/c_rehash certs/demo) && \ |
448 | touch rehash.time; \ | 449 | touch rehash.time; \ |
449 | else :; fi | 450 | else :; fi |
450 | 451 | ||
diff --git a/src/lib/libssl/src/NEWS b/src/lib/libssl/src/NEWS index 4f069cbd14..ed486d146d 100644 --- a/src/lib/libssl/src/NEWS +++ b/src/lib/libssl/src/NEWS | |||
@@ -5,24 +5,49 @@ | |||
5 | This file gives a brief overview of the major changes between each OpenSSL | 5 | This file gives a brief overview of the major changes between each OpenSSL |
6 | release. For more details please read the CHANGES file. | 6 | release. For more details please read the CHANGES file. |
7 | 7 | ||
8 | Major changes between OpenSSL 1.0.1b and OpenSSL 1.0.1c: | 8 | Major changes between OpenSSL 1.0.1f and OpenSSL 1.0.1g [7 Apr 2014] |
9 | |||
10 | o Fix for CVE-2014-0160 | ||
11 | o Add TLS padding extension workaround for broken servers. | ||
12 | o Fix for CVE-2014-0076 | ||
13 | |||
14 | Major changes between OpenSSL 1.0.1e and OpenSSL 1.0.1f [6 Jan 2014] | ||
15 | |||
16 | o Don't include gmt_unix_time in TLS server and client random values | ||
17 | o Fix for TLS record tampering bug CVE-2013-4353 | ||
18 | o Fix for TLS version checking bug CVE-2013-6449 | ||
19 | o Fix for DTLS retransmission bug CVE-2013-6450 | ||
20 | |||
21 | Major changes between OpenSSL 1.0.1d and OpenSSL 1.0.1e [11 Feb 2013]: | ||
22 | |||
23 | o Corrected fix for CVE-2013-0169 | ||
24 | |||
25 | Major changes between OpenSSL 1.0.1c and OpenSSL 1.0.1d [4 Feb 2013]: | ||
26 | |||
27 | o Fix renegotiation in TLS 1.1, 1.2 by using the correct TLS version. | ||
28 | o Include the fips configuration module. | ||
29 | o Fix OCSP bad key DoS attack CVE-2013-0166 | ||
30 | o Fix for SSL/TLS/DTLS CBC plaintext recovery attack CVE-2013-0169 | ||
31 | o Fix for TLS AESNI record handling flaw CVE-2012-2686 | ||
32 | |||
33 | Major changes between OpenSSL 1.0.1b and OpenSSL 1.0.1c [10 May 2012]: | ||
9 | 34 | ||
10 | o Fix TLS/DTLS record length checking bug CVE-2012-2333 | 35 | o Fix TLS/DTLS record length checking bug CVE-2012-2333 |
11 | o Don't attempt to use non-FIPS composite ciphers in FIPS mode. | 36 | o Don't attempt to use non-FIPS composite ciphers in FIPS mode. |
12 | 37 | ||
13 | Major changes between OpenSSL 1.0.1a and OpenSSL 1.0.1b: | 38 | Major changes between OpenSSL 1.0.1a and OpenSSL 1.0.1b [26 Apr 2012]: |
14 | 39 | ||
15 | o Fix compilation error on non-x86 platforms. | 40 | o Fix compilation error on non-x86 platforms. |
16 | o Make FIPS capable OpenSSL ciphers work in non-FIPS mode. | 41 | o Make FIPS capable OpenSSL ciphers work in non-FIPS mode. |
17 | o Fix SSL_OP_NO_TLSv1_1 clash with SSL_OP_ALL in OpenSSL 1.0.0 | 42 | o Fix SSL_OP_NO_TLSv1_1 clash with SSL_OP_ALL in OpenSSL 1.0.0 |
18 | 43 | ||
19 | Major changes between OpenSSL 1.0.1 and OpenSSL 1.0.1a: | 44 | Major changes between OpenSSL 1.0.1 and OpenSSL 1.0.1a [19 Apr 2012]: |
20 | 45 | ||
21 | o Fix for ASN1 overflow bug CVE-2012-2110 | 46 | o Fix for ASN1 overflow bug CVE-2012-2110 |
22 | o Workarounds for some servers that hang on long client hellos. | 47 | o Workarounds for some servers that hang on long client hellos. |
23 | o Fix SEGV in AES code. | 48 | o Fix SEGV in AES code. |
24 | 49 | ||
25 | Major changes between OpenSSL 1.0.0h and OpenSSL 1.0.1: | 50 | Major changes between OpenSSL 1.0.0h and OpenSSL 1.0.1 [14 Mar 2012]: |
26 | 51 | ||
27 | o TLS/DTLS heartbeat support. | 52 | o TLS/DTLS heartbeat support. |
28 | o SCTP support. | 53 | o SCTP support. |
@@ -35,17 +60,30 @@ | |||
35 | o Preliminary FIPS capability for unvalidated 2.0 FIPS module. | 60 | o Preliminary FIPS capability for unvalidated 2.0 FIPS module. |
36 | o SRP support. | 61 | o SRP support. |
37 | 62 | ||
38 | Major changes between OpenSSL 1.0.0g and OpenSSL 1.0.0h: | 63 | Major changes between OpenSSL 1.0.0j and OpenSSL 1.0.0k [5 Feb 2013]: |
64 | |||
65 | o Fix for SSL/TLS/DTLS CBC plaintext recovery attack CVE-2013-0169 | ||
66 | o Fix OCSP bad key DoS attack CVE-2013-0166 | ||
67 | |||
68 | Major changes between OpenSSL 1.0.0i and OpenSSL 1.0.0j [10 May 2012]: | ||
69 | |||
70 | o Fix DTLS record length checking bug CVE-2012-2333 | ||
71 | |||
72 | Major changes between OpenSSL 1.0.0h and OpenSSL 1.0.0i [19 Apr 2012]: | ||
73 | |||
74 | o Fix for ASN1 overflow bug CVE-2012-2110 | ||
75 | |||
76 | Major changes between OpenSSL 1.0.0g and OpenSSL 1.0.0h [12 Mar 2012]: | ||
39 | 77 | ||
40 | o Fix for CMS/PKCS#7 MMA CVE-2012-0884 | 78 | o Fix for CMS/PKCS#7 MMA CVE-2012-0884 |
41 | o Corrected fix for CVE-2011-4619 | 79 | o Corrected fix for CVE-2011-4619 |
42 | o Various DTLS fixes. | 80 | o Various DTLS fixes. |
43 | 81 | ||
44 | Major changes between OpenSSL 1.0.0f and OpenSSL 1.0.0g: | 82 | Major changes between OpenSSL 1.0.0f and OpenSSL 1.0.0g [18 Jan 2012]: |
45 | 83 | ||
46 | o Fix for DTLS DoS issue CVE-2012-0050 | 84 | o Fix for DTLS DoS issue CVE-2012-0050 |
47 | 85 | ||
48 | Major changes between OpenSSL 1.0.0e and OpenSSL 1.0.0f: | 86 | Major changes between OpenSSL 1.0.0e and OpenSSL 1.0.0f [4 Jan 2012]: |
49 | 87 | ||
50 | o Fix for DTLS plaintext recovery attack CVE-2011-4108 | 88 | o Fix for DTLS plaintext recovery attack CVE-2011-4108 |
51 | o Clear block padding bytes of SSL 3.0 records CVE-2011-4576 | 89 | o Clear block padding bytes of SSL 3.0 records CVE-2011-4576 |
@@ -53,7 +91,7 @@ | |||
53 | o Check parameters are not NULL in GOST ENGINE CVE-2012-0027 | 91 | o Check parameters are not NULL in GOST ENGINE CVE-2012-0027 |
54 | o Check for malformed RFC3779 data CVE-2011-4577 | 92 | o Check for malformed RFC3779 data CVE-2011-4577 |
55 | 93 | ||
56 | Major changes between OpenSSL 1.0.0d and OpenSSL 1.0.0e: | 94 | Major changes between OpenSSL 1.0.0d and OpenSSL 1.0.0e [6 Sep 2011]: |
57 | 95 | ||
58 | o Fix for CRL vulnerability issue CVE-2011-3207 | 96 | o Fix for CRL vulnerability issue CVE-2011-3207 |
59 | o Fix for ECDH crashes CVE-2011-3210 | 97 | o Fix for ECDH crashes CVE-2011-3210 |
@@ -61,11 +99,11 @@ | |||
61 | o Support ECDH ciphersuites for certificates using SHA2 algorithms. | 99 | o Support ECDH ciphersuites for certificates using SHA2 algorithms. |
62 | o Various DTLS fixes. | 100 | o Various DTLS fixes. |
63 | 101 | ||
64 | Major changes between OpenSSL 1.0.0c and OpenSSL 1.0.0d: | 102 | Major changes between OpenSSL 1.0.0c and OpenSSL 1.0.0d [8 Feb 2011]: |
65 | 103 | ||
66 | o Fix for security issue CVE-2011-0014 | 104 | o Fix for security issue CVE-2011-0014 |
67 | 105 | ||
68 | Major changes between OpenSSL 1.0.0b and OpenSSL 1.0.0c: | 106 | Major changes between OpenSSL 1.0.0b and OpenSSL 1.0.0c [2 Dec 2010]: |
69 | 107 | ||
70 | o Fix for security issue CVE-2010-4180 | 108 | o Fix for security issue CVE-2010-4180 |
71 | o Fix for CVE-2010-4252 | 109 | o Fix for CVE-2010-4252 |
@@ -73,18 +111,18 @@ | |||
73 | o Fix various platform compilation issues. | 111 | o Fix various platform compilation issues. |
74 | o Corrected fix for security issue CVE-2010-3864. | 112 | o Corrected fix for security issue CVE-2010-3864. |
75 | 113 | ||
76 | Major changes between OpenSSL 1.0.0a and OpenSSL 1.0.0b: | 114 | Major changes between OpenSSL 1.0.0a and OpenSSL 1.0.0b [16 Nov 2010]: |
77 | 115 | ||
78 | o Fix for security issue CVE-2010-3864. | 116 | o Fix for security issue CVE-2010-3864. |
79 | o Fix for CVE-2010-2939 | 117 | o Fix for CVE-2010-2939 |
80 | o Fix WIN32 build system for GOST ENGINE. | 118 | o Fix WIN32 build system for GOST ENGINE. |
81 | 119 | ||
82 | Major changes between OpenSSL 1.0.0 and OpenSSL 1.0.0a: | 120 | Major changes between OpenSSL 1.0.0 and OpenSSL 1.0.0a [1 Jun 2010]: |
83 | 121 | ||
84 | o Fix for security issue CVE-2010-1633. | 122 | o Fix for security issue CVE-2010-1633. |
85 | o GOST MAC and CFB fixes. | 123 | o GOST MAC and CFB fixes. |
86 | 124 | ||
87 | Major changes between OpenSSL 0.9.8n and OpenSSL 1.0.0: | 125 | Major changes between OpenSSL 0.9.8n and OpenSSL 1.0.0 [29 Mar 2010]: |
88 | 126 | ||
89 | o RFC3280 path validation: sufficient to process PKITS tests. | 127 | o RFC3280 path validation: sufficient to process PKITS tests. |
90 | o Integrated support for PVK files and keyblobs. | 128 | o Integrated support for PVK files and keyblobs. |
@@ -107,20 +145,55 @@ | |||
107 | o Opaque PRF Input TLS extension support. | 145 | o Opaque PRF Input TLS extension support. |
108 | o Updated time routines to avoid OS limitations. | 146 | o Updated time routines to avoid OS limitations. |
109 | 147 | ||
110 | Major changes between OpenSSL 0.9.8q and OpenSSL 0.9.8r: | 148 | Major changes between OpenSSL 0.9.8x and OpenSSL 0.9.8y [5 Feb 2013]: |
149 | |||
150 | o Fix for SSL/TLS/DTLS CBC plaintext recovery attack CVE-2013-0169 | ||
151 | o Fix OCSP bad key DoS attack CVE-2013-0166 | ||
152 | |||
153 | Major changes between OpenSSL 0.9.8w and OpenSSL 0.9.8x [10 May 2012]: | ||
154 | |||
155 | o Fix DTLS record length checking bug CVE-2012-2333 | ||
156 | |||
157 | Major changes between OpenSSL 0.9.8v and OpenSSL 0.9.8w [23 Apr 2012]: | ||
158 | |||
159 | o Fix for CVE-2012-2131 (corrected fix for 0.9.8 and CVE-2012-2110) | ||
160 | |||
161 | Major changes between OpenSSL 0.9.8u and OpenSSL 0.9.8v [19 Apr 2012]: | ||
162 | |||
163 | o Fix for ASN1 overflow bug CVE-2012-2110 | ||
164 | |||
165 | Major changes between OpenSSL 0.9.8t and OpenSSL 0.9.8u [12 Mar 2012]: | ||
166 | |||
167 | o Fix for CMS/PKCS#7 MMA CVE-2012-0884 | ||
168 | o Corrected fix for CVE-2011-4619 | ||
169 | o Various DTLS fixes. | ||
170 | |||
171 | Major changes between OpenSSL 0.9.8s and OpenSSL 0.9.8t [18 Jan 2012]: | ||
172 | |||
173 | o Fix for DTLS DoS issue CVE-2012-0050 | ||
174 | |||
175 | Major changes between OpenSSL 0.9.8r and OpenSSL 0.9.8s [4 Jan 2012]: | ||
176 | |||
177 | o Fix for DTLS plaintext recovery attack CVE-2011-4108 | ||
178 | o Fix policy check double free error CVE-2011-4109 | ||
179 | o Clear block padding bytes of SSL 3.0 records CVE-2011-4576 | ||
180 | o Only allow one SGC handshake restart for SSL/TLS CVE-2011-4619 | ||
181 | o Check for malformed RFC3779 data CVE-2011-4577 | ||
182 | |||
183 | Major changes between OpenSSL 0.9.8q and OpenSSL 0.9.8r [8 Feb 2011]: | ||
111 | 184 | ||
112 | o Fix for security issue CVE-2011-0014 | 185 | o Fix for security issue CVE-2011-0014 |
113 | 186 | ||
114 | Major changes between OpenSSL 0.9.8p and OpenSSL 0.9.8q: | 187 | Major changes between OpenSSL 0.9.8p and OpenSSL 0.9.8q [2 Dec 2010]: |
115 | 188 | ||
116 | o Fix for security issue CVE-2010-4180 | 189 | o Fix for security issue CVE-2010-4180 |
117 | o Fix for CVE-2010-4252 | 190 | o Fix for CVE-2010-4252 |
118 | 191 | ||
119 | Major changes between OpenSSL 0.9.8o and OpenSSL 0.9.8p: | 192 | Major changes between OpenSSL 0.9.8o and OpenSSL 0.9.8p [16 Nov 2010]: |
120 | 193 | ||
121 | o Fix for security issue CVE-2010-3864. | 194 | o Fix for security issue CVE-2010-3864. |
122 | 195 | ||
123 | Major changes between OpenSSL 0.9.8n and OpenSSL 0.9.8o: | 196 | Major changes between OpenSSL 0.9.8n and OpenSSL 0.9.8o [1 Jun 2010]: |
124 | 197 | ||
125 | o Fix for security issue CVE-2010-0742. | 198 | o Fix for security issue CVE-2010-0742. |
126 | o Various DTLS fixes. | 199 | o Various DTLS fixes. |
@@ -128,12 +201,12 @@ | |||
128 | o Fix for no-rc4 compilation. | 201 | o Fix for no-rc4 compilation. |
129 | o Chil ENGINE unload workaround. | 202 | o Chil ENGINE unload workaround. |
130 | 203 | ||
131 | Major changes between OpenSSL 0.9.8m and OpenSSL 0.9.8n: | 204 | Major changes between OpenSSL 0.9.8m and OpenSSL 0.9.8n [24 Mar 2010]: |
132 | 205 | ||
133 | o CFB cipher definition fixes. | 206 | o CFB cipher definition fixes. |
134 | o Fix security issues CVE-2010-0740 and CVE-2010-0433. | 207 | o Fix security issues CVE-2010-0740 and CVE-2010-0433. |
135 | 208 | ||
136 | Major changes between OpenSSL 0.9.8l and OpenSSL 0.9.8m: | 209 | Major changes between OpenSSL 0.9.8l and OpenSSL 0.9.8m [25 Feb 2010]: |
137 | 210 | ||
138 | o Cipher definition fixes. | 211 | o Cipher definition fixes. |
139 | o Workaround for slow RAND_poll() on some WIN32 versions. | 212 | o Workaround for slow RAND_poll() on some WIN32 versions. |
@@ -145,33 +218,33 @@ | |||
145 | o Ticket and SNI coexistence fixes. | 218 | o Ticket and SNI coexistence fixes. |
146 | o Many fixes to DTLS handling. | 219 | o Many fixes to DTLS handling. |
147 | 220 | ||
148 | Major changes between OpenSSL 0.9.8k and OpenSSL 0.9.8l: | 221 | Major changes between OpenSSL 0.9.8k and OpenSSL 0.9.8l [5 Nov 2009]: |
149 | 222 | ||
150 | o Temporary work around for CVE-2009-3555: disable renegotiation. | 223 | o Temporary work around for CVE-2009-3555: disable renegotiation. |
151 | 224 | ||
152 | Major changes between OpenSSL 0.9.8j and OpenSSL 0.9.8k: | 225 | Major changes between OpenSSL 0.9.8j and OpenSSL 0.9.8k [25 Mar 2009]: |
153 | 226 | ||
154 | o Fix various build issues. | 227 | o Fix various build issues. |
155 | o Fix security issues (CVE-2009-0590, CVE-2009-0591, CVE-2009-0789) | 228 | o Fix security issues (CVE-2009-0590, CVE-2009-0591, CVE-2009-0789) |
156 | 229 | ||
157 | Major changes between OpenSSL 0.9.8i and OpenSSL 0.9.8j: | 230 | Major changes between OpenSSL 0.9.8i and OpenSSL 0.9.8j [7 Jan 2009]: |
158 | 231 | ||
159 | o Fix security issue (CVE-2008-5077) | 232 | o Fix security issue (CVE-2008-5077) |
160 | o Merge FIPS 140-2 branch code. | 233 | o Merge FIPS 140-2 branch code. |
161 | 234 | ||
162 | Major changes between OpenSSL 0.9.8g and OpenSSL 0.9.8h: | 235 | Major changes between OpenSSL 0.9.8g and OpenSSL 0.9.8h [28 May 2008]: |
163 | 236 | ||
164 | o CryptoAPI ENGINE support. | 237 | o CryptoAPI ENGINE support. |
165 | o Various precautionary measures. | 238 | o Various precautionary measures. |
166 | o Fix for bugs affecting certificate request creation. | 239 | o Fix for bugs affecting certificate request creation. |
167 | o Support for local machine keyset attribute in PKCS#12 files. | 240 | o Support for local machine keyset attribute in PKCS#12 files. |
168 | 241 | ||
169 | Major changes between OpenSSL 0.9.8f and OpenSSL 0.9.8g: | 242 | Major changes between OpenSSL 0.9.8f and OpenSSL 0.9.8g [19 Oct 2007]: |
170 | 243 | ||
171 | o Backport of CMS functionality to 0.9.8. | 244 | o Backport of CMS functionality to 0.9.8. |
172 | o Fixes for bugs introduced with 0.9.8f. | 245 | o Fixes for bugs introduced with 0.9.8f. |
173 | 246 | ||
174 | Major changes between OpenSSL 0.9.8e and OpenSSL 0.9.8f: | 247 | Major changes between OpenSSL 0.9.8e and OpenSSL 0.9.8f [11 Oct 2007]: |
175 | 248 | ||
176 | o Add gcc 4.2 support. | 249 | o Add gcc 4.2 support. |
177 | o Add support for AES and SSE2 assembly lanugauge optimization | 250 | o Add support for AES and SSE2 assembly lanugauge optimization |
@@ -182,23 +255,23 @@ | |||
182 | o RFC4507bis support. | 255 | o RFC4507bis support. |
183 | o TLS Extensions support. | 256 | o TLS Extensions support. |
184 | 257 | ||
185 | Major changes between OpenSSL 0.9.8d and OpenSSL 0.9.8e: | 258 | Major changes between OpenSSL 0.9.8d and OpenSSL 0.9.8e [23 Feb 2007]: |
186 | 259 | ||
187 | o Various ciphersuite selection fixes. | 260 | o Various ciphersuite selection fixes. |
188 | o RFC3779 support. | 261 | o RFC3779 support. |
189 | 262 | ||
190 | Major changes between OpenSSL 0.9.8c and OpenSSL 0.9.8d: | 263 | Major changes between OpenSSL 0.9.8c and OpenSSL 0.9.8d [28 Sep 2006]: |
191 | 264 | ||
192 | o Introduce limits to prevent malicious key DoS (CVE-2006-2940) | 265 | o Introduce limits to prevent malicious key DoS (CVE-2006-2940) |
193 | o Fix security issues (CVE-2006-2937, CVE-2006-3737, CVE-2006-4343) | 266 | o Fix security issues (CVE-2006-2937, CVE-2006-3737, CVE-2006-4343) |
194 | o Changes to ciphersuite selection algorithm | 267 | o Changes to ciphersuite selection algorithm |
195 | 268 | ||
196 | Major changes between OpenSSL 0.9.8b and OpenSSL 0.9.8c: | 269 | Major changes between OpenSSL 0.9.8b and OpenSSL 0.9.8c [5 Sep 2006]: |
197 | 270 | ||
198 | o Fix Daniel Bleichenbacher forged signature attack, CVE-2006-4339 | 271 | o Fix Daniel Bleichenbacher forged signature attack, CVE-2006-4339 |
199 | o New cipher Camellia | 272 | o New cipher Camellia |
200 | 273 | ||
201 | Major changes between OpenSSL 0.9.8a and OpenSSL 0.9.8b: | 274 | Major changes between OpenSSL 0.9.8a and OpenSSL 0.9.8b [4 May 2006]: |
202 | 275 | ||
203 | o Cipher string fixes. | 276 | o Cipher string fixes. |
204 | o Fixes for VC++ 2005. | 277 | o Fixes for VC++ 2005. |
@@ -208,12 +281,12 @@ | |||
208 | o Built in dynamic engine compilation support on Win32. | 281 | o Built in dynamic engine compilation support on Win32. |
209 | o Fixes auto dynamic engine loading in Win32. | 282 | o Fixes auto dynamic engine loading in Win32. |
210 | 283 | ||
211 | Major changes between OpenSSL 0.9.8 and OpenSSL 0.9.8a: | 284 | Major changes between OpenSSL 0.9.8 and OpenSSL 0.9.8a [11 Oct 2005]: |
212 | 285 | ||
213 | o Fix potential SSL 2.0 rollback, CVE-2005-2969 | 286 | o Fix potential SSL 2.0 rollback, CVE-2005-2969 |
214 | o Extended Windows CE support | 287 | o Extended Windows CE support |
215 | 288 | ||
216 | Major changes between OpenSSL 0.9.7g and OpenSSL 0.9.8: | 289 | Major changes between OpenSSL 0.9.7g and OpenSSL 0.9.8 [5 Jul 2005]: |
217 | 290 | ||
218 | o Major work on the BIGNUM library for higher efficiency and to | 291 | o Major work on the BIGNUM library for higher efficiency and to |
219 | make operations more streamlined and less contradictory. This | 292 | make operations more streamlined and less contradictory. This |
@@ -287,36 +360,36 @@ | |||
287 | o Added initial support for Win64. | 360 | o Added initial support for Win64. |
288 | o Added alternate pkg-config files. | 361 | o Added alternate pkg-config files. |
289 | 362 | ||
290 | Major changes between OpenSSL 0.9.7l and OpenSSL 0.9.7m: | 363 | Major changes between OpenSSL 0.9.7l and OpenSSL 0.9.7m [23 Feb 2007]: |
291 | 364 | ||
292 | o FIPS 1.1.1 module linking. | 365 | o FIPS 1.1.1 module linking. |
293 | o Various ciphersuite selection fixes. | 366 | o Various ciphersuite selection fixes. |
294 | 367 | ||
295 | Major changes between OpenSSL 0.9.7k and OpenSSL 0.9.7l: | 368 | Major changes between OpenSSL 0.9.7k and OpenSSL 0.9.7l [28 Sep 2006]: |
296 | 369 | ||
297 | o Introduce limits to prevent malicious key DoS (CVE-2006-2940) | 370 | o Introduce limits to prevent malicious key DoS (CVE-2006-2940) |
298 | o Fix security issues (CVE-2006-2937, CVE-2006-3737, CVE-2006-4343) | 371 | o Fix security issues (CVE-2006-2937, CVE-2006-3737, CVE-2006-4343) |
299 | 372 | ||
300 | Major changes between OpenSSL 0.9.7j and OpenSSL 0.9.7k: | 373 | Major changes between OpenSSL 0.9.7j and OpenSSL 0.9.7k [5 Sep 2006]: |
301 | 374 | ||
302 | o Fix Daniel Bleichenbacher forged signature attack, CVE-2006-4339 | 375 | o Fix Daniel Bleichenbacher forged signature attack, CVE-2006-4339 |
303 | 376 | ||
304 | Major changes between OpenSSL 0.9.7i and OpenSSL 0.9.7j: | 377 | Major changes between OpenSSL 0.9.7i and OpenSSL 0.9.7j [4 May 2006]: |
305 | 378 | ||
306 | o Visual C++ 2005 fixes. | 379 | o Visual C++ 2005 fixes. |
307 | o Update Windows build system for FIPS. | 380 | o Update Windows build system for FIPS. |
308 | 381 | ||
309 | Major changes between OpenSSL 0.9.7h and OpenSSL 0.9.7i: | 382 | Major changes between OpenSSL 0.9.7h and OpenSSL 0.9.7i [14 Oct 2005]: |
310 | 383 | ||
311 | o Give EVP_MAX_MD_SIZE it's old value, except for a FIPS build. | 384 | o Give EVP_MAX_MD_SIZE it's old value, except for a FIPS build. |
312 | 385 | ||
313 | Major changes between OpenSSL 0.9.7g and OpenSSL 0.9.7h: | 386 | Major changes between OpenSSL 0.9.7g and OpenSSL 0.9.7h [11 Oct 2005]: |
314 | 387 | ||
315 | o Fix SSL 2.0 Rollback, CVE-2005-2969 | 388 | o Fix SSL 2.0 Rollback, CVE-2005-2969 |
316 | o Allow use of fixed-length exponent on DSA signing | 389 | o Allow use of fixed-length exponent on DSA signing |
317 | o Default fixed-window RSA, DSA, DH private-key operations | 390 | o Default fixed-window RSA, DSA, DH private-key operations |
318 | 391 | ||
319 | Major changes between OpenSSL 0.9.7f and OpenSSL 0.9.7g: | 392 | Major changes between OpenSSL 0.9.7f and OpenSSL 0.9.7g [11 Apr 2005]: |
320 | 393 | ||
321 | o More compilation issues fixed. | 394 | o More compilation issues fixed. |
322 | o Adaptation to more modern Kerberos API. | 395 | o Adaptation to more modern Kerberos API. |
@@ -325,7 +398,7 @@ | |||
325 | o More constification. | 398 | o More constification. |
326 | o Added processing of proxy certificates (RFC 3820). | 399 | o Added processing of proxy certificates (RFC 3820). |
327 | 400 | ||
328 | Major changes between OpenSSL 0.9.7e and OpenSSL 0.9.7f: | 401 | Major changes between OpenSSL 0.9.7e and OpenSSL 0.9.7f [22 Mar 2005]: |
329 | 402 | ||
330 | o Several compilation issues fixed. | 403 | o Several compilation issues fixed. |
331 | o Many memory allocation failure checks added. | 404 | o Many memory allocation failure checks added. |
@@ -333,12 +406,12 @@ | |||
333 | o Mandatory basic checks on certificates. | 406 | o Mandatory basic checks on certificates. |
334 | o Performance improvements. | 407 | o Performance improvements. |
335 | 408 | ||
336 | Major changes between OpenSSL 0.9.7d and OpenSSL 0.9.7e: | 409 | Major changes between OpenSSL 0.9.7d and OpenSSL 0.9.7e [25 Oct 2004]: |
337 | 410 | ||
338 | o Fix race condition in CRL checking code. | 411 | o Fix race condition in CRL checking code. |
339 | o Fixes to PKCS#7 (S/MIME) code. | 412 | o Fixes to PKCS#7 (S/MIME) code. |
340 | 413 | ||
341 | Major changes between OpenSSL 0.9.7c and OpenSSL 0.9.7d: | 414 | Major changes between OpenSSL 0.9.7c and OpenSSL 0.9.7d [17 Mar 2004]: |
342 | 415 | ||
343 | o Security: Fix Kerberos ciphersuite SSL/TLS handshaking bug | 416 | o Security: Fix Kerberos ciphersuite SSL/TLS handshaking bug |
344 | o Security: Fix null-pointer assignment in do_change_cipher_spec() | 417 | o Security: Fix null-pointer assignment in do_change_cipher_spec() |
@@ -346,14 +419,14 @@ | |||
346 | o Multiple X509 verification fixes | 419 | o Multiple X509 verification fixes |
347 | o Speed up HMAC and other operations | 420 | o Speed up HMAC and other operations |
348 | 421 | ||
349 | Major changes between OpenSSL 0.9.7b and OpenSSL 0.9.7c: | 422 | Major changes between OpenSSL 0.9.7b and OpenSSL 0.9.7c [30 Sep 2003]: |
350 | 423 | ||
351 | o Security: fix various ASN1 parsing bugs. | 424 | o Security: fix various ASN1 parsing bugs. |
352 | o New -ignore_err option to OCSP utility. | 425 | o New -ignore_err option to OCSP utility. |
353 | o Various interop and bug fixes in S/MIME code. | 426 | o Various interop and bug fixes in S/MIME code. |
354 | o SSL/TLS protocol fix for unrequested client certificates. | 427 | o SSL/TLS protocol fix for unrequested client certificates. |
355 | 428 | ||
356 | Major changes between OpenSSL 0.9.7a and OpenSSL 0.9.7b: | 429 | Major changes between OpenSSL 0.9.7a and OpenSSL 0.9.7b [10 Apr 2003]: |
357 | 430 | ||
358 | o Security: counter the Klima-Pokorny-Rosa extension of | 431 | o Security: counter the Klima-Pokorny-Rosa extension of |
359 | Bleichbacher's attack | 432 | Bleichbacher's attack |
@@ -364,7 +437,7 @@ | |||
364 | o ASN.1: treat domainComponent correctly. | 437 | o ASN.1: treat domainComponent correctly. |
365 | o Documentation: fixes and additions. | 438 | o Documentation: fixes and additions. |
366 | 439 | ||
367 | Major changes between OpenSSL 0.9.7 and OpenSSL 0.9.7a: | 440 | Major changes between OpenSSL 0.9.7 and OpenSSL 0.9.7a [19 Feb 2003]: |
368 | 441 | ||
369 | o Security: Important security related bugfixes. | 442 | o Security: Important security related bugfixes. |
370 | o Enhanced compatibility with MIT Kerberos. | 443 | o Enhanced compatibility with MIT Kerberos. |
@@ -375,7 +448,7 @@ | |||
375 | o SSL/TLS: now handles manual certificate chain building. | 448 | o SSL/TLS: now handles manual certificate chain building. |
376 | o SSL/TLS: certain session ID malfunctions corrected. | 449 | o SSL/TLS: certain session ID malfunctions corrected. |
377 | 450 | ||
378 | Major changes between OpenSSL 0.9.6 and OpenSSL 0.9.7: | 451 | Major changes between OpenSSL 0.9.6 and OpenSSL 0.9.7 [30 Dec 2002]: |
379 | 452 | ||
380 | o New library section OCSP. | 453 | o New library section OCSP. |
381 | o Complete rewrite of ASN1 code. | 454 | o Complete rewrite of ASN1 code. |
@@ -421,23 +494,23 @@ | |||
421 | o SSL/TLS: add callback to retrieve SSL/TLS messages. | 494 | o SSL/TLS: add callback to retrieve SSL/TLS messages. |
422 | o SSL/TLS: support AES cipher suites (RFC3268). | 495 | o SSL/TLS: support AES cipher suites (RFC3268). |
423 | 496 | ||
424 | Major changes between OpenSSL 0.9.6j and OpenSSL 0.9.6k: | 497 | Major changes between OpenSSL 0.9.6j and OpenSSL 0.9.6k [30 Sep 2003]: |
425 | 498 | ||
426 | o Security: fix various ASN1 parsing bugs. | 499 | o Security: fix various ASN1 parsing bugs. |
427 | o SSL/TLS protocol fix for unrequested client certificates. | 500 | o SSL/TLS protocol fix for unrequested client certificates. |
428 | 501 | ||
429 | Major changes between OpenSSL 0.9.6i and OpenSSL 0.9.6j: | 502 | Major changes between OpenSSL 0.9.6i and OpenSSL 0.9.6j [10 Apr 2003]: |
430 | 503 | ||
431 | o Security: counter the Klima-Pokorny-Rosa extension of | 504 | o Security: counter the Klima-Pokorny-Rosa extension of |
432 | Bleichbacher's attack | 505 | Bleichbacher's attack |
433 | o Security: make RSA blinding default. | 506 | o Security: make RSA blinding default. |
434 | o Build: shared library support fixes. | 507 | o Build: shared library support fixes. |
435 | 508 | ||
436 | Major changes between OpenSSL 0.9.6h and OpenSSL 0.9.6i: | 509 | Major changes between OpenSSL 0.9.6h and OpenSSL 0.9.6i [19 Feb 2003]: |
437 | 510 | ||
438 | o Important security related bugfixes. | 511 | o Important security related bugfixes. |
439 | 512 | ||
440 | Major changes between OpenSSL 0.9.6g and OpenSSL 0.9.6h: | 513 | Major changes between OpenSSL 0.9.6g and OpenSSL 0.9.6h [5 Dec 2002]: |
441 | 514 | ||
442 | o New configuration targets for Tandem OSS and A/UX. | 515 | o New configuration targets for Tandem OSS and A/UX. |
443 | o New OIDs for Microsoft attributes. | 516 | o New OIDs for Microsoft attributes. |
@@ -451,25 +524,25 @@ | |||
451 | o Fixes for smaller building problems. | 524 | o Fixes for smaller building problems. |
452 | o Updates of manuals, FAQ and other instructive documents. | 525 | o Updates of manuals, FAQ and other instructive documents. |
453 | 526 | ||
454 | Major changes between OpenSSL 0.9.6f and OpenSSL 0.9.6g: | 527 | Major changes between OpenSSL 0.9.6f and OpenSSL 0.9.6g [9 Aug 2002]: |
455 | 528 | ||
456 | o Important building fixes on Unix. | 529 | o Important building fixes on Unix. |
457 | 530 | ||
458 | Major changes between OpenSSL 0.9.6e and OpenSSL 0.9.6f: | 531 | Major changes between OpenSSL 0.9.6e and OpenSSL 0.9.6f [8 Aug 2002]: |
459 | 532 | ||
460 | o Various important bugfixes. | 533 | o Various important bugfixes. |
461 | 534 | ||
462 | Major changes between OpenSSL 0.9.6d and OpenSSL 0.9.6e: | 535 | Major changes between OpenSSL 0.9.6d and OpenSSL 0.9.6e [30 Jul 2002]: |
463 | 536 | ||
464 | o Important security related bugfixes. | 537 | o Important security related bugfixes. |
465 | o Various SSL/TLS library bugfixes. | 538 | o Various SSL/TLS library bugfixes. |
466 | 539 | ||
467 | Major changes between OpenSSL 0.9.6c and OpenSSL 0.9.6d: | 540 | Major changes between OpenSSL 0.9.6c and OpenSSL 0.9.6d [9 May 2002]: |
468 | 541 | ||
469 | o Various SSL/TLS library bugfixes. | 542 | o Various SSL/TLS library bugfixes. |
470 | o Fix DH parameter generation for 'non-standard' generators. | 543 | o Fix DH parameter generation for 'non-standard' generators. |
471 | 544 | ||
472 | Major changes between OpenSSL 0.9.6b and OpenSSL 0.9.6c: | 545 | Major changes between OpenSSL 0.9.6b and OpenSSL 0.9.6c [21 Dec 2001]: |
473 | 546 | ||
474 | o Various SSL/TLS library bugfixes. | 547 | o Various SSL/TLS library bugfixes. |
475 | o BIGNUM library fixes. | 548 | o BIGNUM library fixes. |
@@ -482,7 +555,7 @@ | |||
482 | Broadcom and Cryptographic Appliance's keyserver | 555 | Broadcom and Cryptographic Appliance's keyserver |
483 | [in 0.9.6c-engine release]. | 556 | [in 0.9.6c-engine release]. |
484 | 557 | ||
485 | Major changes between OpenSSL 0.9.6a and OpenSSL 0.9.6b: | 558 | Major changes between OpenSSL 0.9.6a and OpenSSL 0.9.6b [9 Jul 2001]: |
486 | 559 | ||
487 | o Security fix: PRNG improvements. | 560 | o Security fix: PRNG improvements. |
488 | o Security fix: RSA OAEP check. | 561 | o Security fix: RSA OAEP check. |
@@ -499,7 +572,7 @@ | |||
499 | o Increase default size for BIO buffering filter. | 572 | o Increase default size for BIO buffering filter. |
500 | o Compatibility fixes in some scripts. | 573 | o Compatibility fixes in some scripts. |
501 | 574 | ||
502 | Major changes between OpenSSL 0.9.6 and OpenSSL 0.9.6a: | 575 | Major changes between OpenSSL 0.9.6 and OpenSSL 0.9.6a [5 Apr 2001]: |
503 | 576 | ||
504 | o Security fix: change behavior of OpenSSL to avoid using | 577 | o Security fix: change behavior of OpenSSL to avoid using |
505 | environment variables when running as root. | 578 | environment variables when running as root. |
@@ -524,7 +597,7 @@ | |||
524 | o New function BN_rand_range(). | 597 | o New function BN_rand_range(). |
525 | o Add "-rand" option to openssl s_client and s_server. | 598 | o Add "-rand" option to openssl s_client and s_server. |
526 | 599 | ||
527 | Major changes between OpenSSL 0.9.5a and OpenSSL 0.9.6: | 600 | Major changes between OpenSSL 0.9.5a and OpenSSL 0.9.6 [10 Oct 2000]: |
528 | 601 | ||
529 | o Some documentation for BIO and SSL libraries. | 602 | o Some documentation for BIO and SSL libraries. |
530 | o Enhanced chain verification using key identifiers. | 603 | o Enhanced chain verification using key identifiers. |
@@ -539,7 +612,7 @@ | |||
539 | [1] The support for external crypto devices is currently a separate | 612 | [1] The support for external crypto devices is currently a separate |
540 | distribution. See the file README.ENGINE. | 613 | distribution. See the file README.ENGINE. |
541 | 614 | ||
542 | Major changes between OpenSSL 0.9.5 and OpenSSL 0.9.5a: | 615 | Major changes between OpenSSL 0.9.5 and OpenSSL 0.9.5a [1 Apr 2000]: |
543 | 616 | ||
544 | o Bug fixes for Win32, SuSE Linux, NeXTSTEP and FreeBSD 2.2.8 | 617 | o Bug fixes for Win32, SuSE Linux, NeXTSTEP and FreeBSD 2.2.8 |
545 | o Shared library support for HPUX and Solaris-gcc | 618 | o Shared library support for HPUX and Solaris-gcc |
@@ -548,7 +621,7 @@ | |||
548 | o New 'rand' application | 621 | o New 'rand' application |
549 | o New way to check for existence of algorithms from scripts | 622 | o New way to check for existence of algorithms from scripts |
550 | 623 | ||
551 | Major changes between OpenSSL 0.9.4 and OpenSSL 0.9.5: | 624 | Major changes between OpenSSL 0.9.4 and OpenSSL 0.9.5 [25 May 2000]: |
552 | 625 | ||
553 | o S/MIME support in new 'smime' command | 626 | o S/MIME support in new 'smime' command |
554 | o Documentation for the OpenSSL command line application | 627 | o Documentation for the OpenSSL command line application |
@@ -584,7 +657,7 @@ | |||
584 | o Enhanced support for Alpha Linux | 657 | o Enhanced support for Alpha Linux |
585 | o Experimental MacOS support | 658 | o Experimental MacOS support |
586 | 659 | ||
587 | Major changes between OpenSSL 0.9.3 and OpenSSL 0.9.4: | 660 | Major changes between OpenSSL 0.9.3 and OpenSSL 0.9.4 [9 Aug 1999]: |
588 | 661 | ||
589 | o Transparent support for PKCS#8 format private keys: these are used | 662 | o Transparent support for PKCS#8 format private keys: these are used |
590 | by several software packages and are more secure than the standard | 663 | by several software packages and are more secure than the standard |
@@ -595,7 +668,7 @@ | |||
595 | o New pipe-like BIO that allows using the SSL library when actual I/O | 668 | o New pipe-like BIO that allows using the SSL library when actual I/O |
596 | must be handled by the application (BIO pair) | 669 | must be handled by the application (BIO pair) |
597 | 670 | ||
598 | Major changes between OpenSSL 0.9.2b and OpenSSL 0.9.3: | 671 | Major changes between OpenSSL 0.9.2b and OpenSSL 0.9.3 [24 May 1999]: |
599 | o Lots of enhancements and cleanups to the Configuration mechanism | 672 | o Lots of enhancements and cleanups to the Configuration mechanism |
600 | o RSA OEAP related fixes | 673 | o RSA OEAP related fixes |
601 | o Added `openssl ca -revoke' option for revoking a certificate | 674 | o Added `openssl ca -revoke' option for revoking a certificate |
@@ -609,7 +682,7 @@ | |||
609 | o Sparc assembler bignum implementation, optimized hash functions | 682 | o Sparc assembler bignum implementation, optimized hash functions |
610 | o Option to disable selected ciphers | 683 | o Option to disable selected ciphers |
611 | 684 | ||
612 | Major changes between OpenSSL 0.9.1c and OpenSSL 0.9.2b: | 685 | Major changes between OpenSSL 0.9.1c and OpenSSL 0.9.2b [22 Mar 1999]: |
613 | o Fixed a security hole related to session resumption | 686 | o Fixed a security hole related to session resumption |
614 | o Fixed RSA encryption routines for the p < q case | 687 | o Fixed RSA encryption routines for the p < q case |
615 | o "ALL" in cipher lists now means "everything except NULL ciphers" | 688 | o "ALL" in cipher lists now means "everything except NULL ciphers" |
@@ -631,7 +704,7 @@ | |||
631 | o Lots of memory leak fixes. | 704 | o Lots of memory leak fixes. |
632 | o Lots of bug fixes. | 705 | o Lots of bug fixes. |
633 | 706 | ||
634 | Major changes between SSLeay 0.9.0b and OpenSSL 0.9.1c: | 707 | Major changes between SSLeay 0.9.0b and OpenSSL 0.9.1c [23 Dec 1998]: |
635 | o Integration of the popular NO_RSA/NO_DSA patches | 708 | o Integration of the popular NO_RSA/NO_DSA patches |
636 | o Initial support for compression inside the SSL record layer | 709 | o Initial support for compression inside the SSL record layer |
637 | o Added BIO proxy and filtering functionality | 710 | o Added BIO proxy and filtering functionality |
diff --git a/src/lib/libssl/src/Netware/build.bat b/src/lib/libssl/src/Netware/build.bat deleted file mode 100644 index 3125c2a487..0000000000 --- a/src/lib/libssl/src/Netware/build.bat +++ /dev/null | |||
@@ -1,235 +0,0 @@ | |||
1 | @echo off | ||
2 | |||
3 | rem ======================================================================== | ||
4 | rem Batch file to automate building OpenSSL for NetWare. | ||
5 | rem | ||
6 | rem usage: | ||
7 | rem build [target] [debug opts] [assembly opts] [configure opts] | ||
8 | rem | ||
9 | rem target - "netware-clib" - CLib NetWare build (WinSock Sockets) | ||
10 | rem - "netware-clib-bsdsock" - CLib NetWare build (BSD Sockets) | ||
11 | rem - "netware-libc" - LibC NetWare build (WinSock Sockets) | ||
12 | rem - "netware-libc-bsdsock" - LibC NetWare build (BSD Sockets) | ||
13 | rem | ||
14 | rem debug opts - "debug" - build debug | ||
15 | rem | ||
16 | rem assembly opts - "nw-mwasm" - use Metrowerks assembler | ||
17 | rem - "nw-nasm" - use NASM assembler | ||
18 | rem - "no-asm" - don't use assembly | ||
19 | rem | ||
20 | rem configure opts- all unrecognized arguments are passed to the | ||
21 | rem perl configure script | ||
22 | rem | ||
23 | rem If no arguments are specified the default is to build non-debug with | ||
24 | rem no assembly. NOTE: there is no default BLD_TARGET. | ||
25 | rem | ||
26 | |||
27 | |||
28 | |||
29 | rem No assembly is the default - Uncomment section below to change | ||
30 | rem the assembler default | ||
31 | set ASM_MODE= | ||
32 | set ASSEMBLER= | ||
33 | set NO_ASM=no-asm | ||
34 | |||
35 | rem Uncomment to default to the Metrowerks assembler | ||
36 | rem set ASM_MODE=nw-mwasm | ||
37 | rem set ASSEMBLER=Metrowerks | ||
38 | rem set NO_ASM= | ||
39 | |||
40 | rem Uncomment to default to the NASM assembler | ||
41 | rem set ASM_MODE=nw-nasm | ||
42 | rem set ASSEMBLER=NASM | ||
43 | rem set NO_ASM= | ||
44 | |||
45 | rem No default Bld target | ||
46 | set BLD_TARGET=no_target | ||
47 | rem set BLD_TARGET=netware-clib | ||
48 | rem set BLD_TARGET=netware-libc | ||
49 | |||
50 | |||
51 | rem Default to build non-debug | ||
52 | set DEBUG= | ||
53 | |||
54 | rem Uncomment to default to debug build | ||
55 | rem set DEBUG=debug | ||
56 | |||
57 | |||
58 | set CONFIG_OPTS= | ||
59 | set ARG_PROCESSED=NO | ||
60 | |||
61 | |||
62 | rem Process command line args | ||
63 | :opts | ||
64 | if "a%1" == "a" goto endopt | ||
65 | if "%1" == "no-asm" set NO_ASM=no-asm | ||
66 | if "%1" == "no-asm" set ARG_PROCESSED=YES | ||
67 | if "%1" == "debug" set DEBUG=debug | ||
68 | if "%1" == "debug" set ARG_PROCESSED=YES | ||
69 | if "%1" == "nw-nasm" set ASM_MODE=nw-nasm | ||
70 | if "%1" == "nw-nasm" set ASSEMBLER=NASM | ||
71 | if "%1" == "nw-nasm" set NO_ASM= | ||
72 | if "%1" == "nw-nasm" set ARG_PROCESSED=YES | ||
73 | if "%1" == "nw-mwasm" set ASM_MODE=nw-mwasm | ||
74 | if "%1" == "nw-mwasm" set ASSEMBLER=Metrowerks | ||
75 | if "%1" == "nw-mwasm" set NO_ASM= | ||
76 | if "%1" == "nw-mwasm" set ARG_PROCESSED=YES | ||
77 | if "%1" == "netware-clib" set BLD_TARGET=netware-clib | ||
78 | if "%1" == "netware-clib" set ARG_PROCESSED=YES | ||
79 | if "%1" == "netware-clib-bsdsock" set BLD_TARGET=netware-clib-bsdsock | ||
80 | if "%1" == "netware-clib-bsdsock" set ARG_PROCESSED=YES | ||
81 | if "%1" == "netware-libc" set BLD_TARGET=netware-libc | ||
82 | if "%1" == "netware-libc" set ARG_PROCESSED=YES | ||
83 | if "%1" == "netware-libc-bsdsock" set BLD_TARGET=netware-libc-bsdsock | ||
84 | if "%1" == "netware-libc-bsdsock" set ARG_PROCESSED=YES | ||
85 | |||
86 | rem If we didn't recognize the argument, consider it an option for config | ||
87 | if "%ARG_PROCESSED%" == "NO" set CONFIG_OPTS=%CONFIG_OPTS% %1 | ||
88 | if "%ARG_PROCESSED%" == "YES" set ARG_PROCESSED=NO | ||
89 | |||
90 | shift | ||
91 | goto opts | ||
92 | :endopt | ||
93 | |||
94 | rem make sure a valid BLD_TARGET was specified | ||
95 | if "%BLD_TARGET%" == "no_target" goto no_target | ||
96 | |||
97 | rem build the nlm make file name which includes target and debug info | ||
98 | set NLM_MAKE= | ||
99 | if "%BLD_TARGET%" == "netware-clib" set NLM_MAKE=netware\nlm_clib | ||
100 | if "%BLD_TARGET%" == "netware-clib-bsdsock" set NLM_MAKE=netware\nlm_clib_bsdsock | ||
101 | if "%BLD_TARGET%" == "netware-libc" set NLM_MAKE=netware\nlm_libc | ||
102 | if "%BLD_TARGET%" == "netware-libc-bsdsock" set NLM_MAKE=netware\nlm_libc_bsdsock | ||
103 | if "%DEBUG%" == "" set NLM_MAKE=%NLM_MAKE%.mak | ||
104 | if "%DEBUG%" == "debug" set NLM_MAKE=%NLM_MAKE%_dbg.mak | ||
105 | |||
106 | if "%NO_ASM%" == "no-asm" set ASM_MODE= | ||
107 | if "%NO_ASM%" == "no-asm" set ASSEMBLER= | ||
108 | if "%NO_ASM%" == "no-asm" set CONFIG_OPTS=%CONFIG_OPTS% no-asm | ||
109 | if "%NO_ASM%" == "no-asm" goto do_config | ||
110 | |||
111 | |||
112 | rem ================================================== | ||
113 | echo Generating x86 for %ASSEMBLER% assembler | ||
114 | |||
115 | echo Bignum | ||
116 | cd crypto\bn\asm | ||
117 | rem perl x86.pl %ASM_MODE% > bn-nw.asm | ||
118 | perl bn-586.pl %ASM_MODE% > bn-nw.asm | ||
119 | perl co-586.pl %ASM_MODE% > co-nw.asm | ||
120 | cd ..\..\.. | ||
121 | |||
122 | echo AES | ||
123 | cd crypto\aes\asm | ||
124 | perl aes-586.pl %ASM_MODE% > a-nw.asm | ||
125 | cd ..\..\.. | ||
126 | |||
127 | echo DES | ||
128 | cd crypto\des\asm | ||
129 | perl des-586.pl %ASM_MODE% > d-nw.asm | ||
130 | cd ..\..\.. | ||
131 | |||
132 | echo "crypt(3)" | ||
133 | |||
134 | cd crypto\des\asm | ||
135 | perl crypt586.pl %ASM_MODE% > y-nw.asm | ||
136 | cd ..\..\.. | ||
137 | |||
138 | echo Blowfish | ||
139 | |||
140 | cd crypto\bf\asm | ||
141 | perl bf-586.pl %ASM_MODE% > b-nw.asm | ||
142 | cd ..\..\.. | ||
143 | |||
144 | echo CAST5 | ||
145 | cd crypto\cast\asm | ||
146 | perl cast-586.pl %ASM_MODE% > c-nw.asm | ||
147 | cd ..\..\.. | ||
148 | |||
149 | echo RC4 | ||
150 | cd crypto\rc4\asm | ||
151 | perl rc4-586.pl %ASM_MODE% > r4-nw.asm | ||
152 | cd ..\..\.. | ||
153 | |||
154 | echo MD5 | ||
155 | cd crypto\md5\asm | ||
156 | perl md5-586.pl %ASM_MODE% > m5-nw.asm | ||
157 | cd ..\..\.. | ||
158 | |||
159 | echo SHA1 | ||
160 | cd crypto\sha\asm | ||
161 | perl sha1-586.pl %ASM_MODE% > s1-nw.asm | ||
162 | perl sha256-586.pl %ASM_MODE% > sha256-nw.asm | ||
163 | perl sha512-586.pl %ASM_MODE% > sha512-nw.asm | ||
164 | cd ..\..\.. | ||
165 | |||
166 | echo RIPEMD160 | ||
167 | cd crypto\ripemd\asm | ||
168 | perl rmd-586.pl %ASM_MODE% > rm-nw.asm | ||
169 | cd ..\..\.. | ||
170 | |||
171 | echo RC5\32 | ||
172 | cd crypto\rc5\asm | ||
173 | perl rc5-586.pl %ASM_MODE% > r5-nw.asm | ||
174 | cd ..\..\.. | ||
175 | |||
176 | echo WHIRLPOOL | ||
177 | cd crypto\whrlpool\asm | ||
178 | perl wp-mmx.pl %ASM_MODE% > wp-nw.asm | ||
179 | cd ..\..\.. | ||
180 | |||
181 | echo CPUID | ||
182 | cd crypto | ||
183 | perl x86cpuid.pl %ASM_MODE% > x86cpuid-nw.asm | ||
184 | cd ..\ | ||
185 | |||
186 | rem =============================================================== | ||
187 | rem | ||
188 | :do_config | ||
189 | |||
190 | echo . | ||
191 | echo configure options: %CONFIG_OPTS% %BLD_TARGET% | ||
192 | echo . | ||
193 | perl configure %CONFIG_OPTS% %BLD_TARGET% | ||
194 | |||
195 | perl util\mkfiles.pl >MINFO | ||
196 | |||
197 | echo . | ||
198 | echo mk1mf.pl options: %DEBUG% %ASM_MODE% %CONFIG_OPTS% %BLD_TARGET% | ||
199 | echo . | ||
200 | perl util\mk1mf.pl %DEBUG% %ASM_MODE% %CONFIG_OPTS% %BLD_TARGET% >%NLM_MAKE% | ||
201 | |||
202 | make -f %NLM_MAKE% vclean | ||
203 | echo . | ||
204 | echo The makefile "%NLM_MAKE%" has been created use your maketool to | ||
205 | echo build (ex: make -f %NLM_MAKE%) | ||
206 | goto end | ||
207 | |||
208 | rem =============================================================== | ||
209 | rem | ||
210 | :no_target | ||
211 | echo . | ||
212 | echo . No build target specified!!! | ||
213 | echo . | ||
214 | echo . usage: build [target] [debug opts] [assembly opts] [configure opts] | ||
215 | echo . | ||
216 | echo . target - "netware-clib" - CLib NetWare build (WinSock Sockets) | ||
217 | echo . - "netware-clib-bsdsock" - CLib NetWare build (BSD Sockets) | ||
218 | echo . - "netware-libc" - LibC NetWare build (WinSock Sockets) | ||
219 | echo . - "netware-libc-bsdsock" - LibC NetWare build (BSD Sockets) | ||
220 | echo . | ||
221 | echo . debug opts - "debug" - build debug | ||
222 | echo . | ||
223 | echo . assembly opts - "nw-mwasm" - use Metrowerks assembler | ||
224 | echo . "nw-nasm" - use NASM assembler | ||
225 | echo . "no-asm" - don't use assembly | ||
226 | echo . | ||
227 | echo . configure opts- all unrecognized arguments are passed to the | ||
228 | echo . perl configure script | ||
229 | echo . | ||
230 | echo . If no debug or assembly opts are specified the default is to build | ||
231 | echo . non-debug without assembly | ||
232 | echo . | ||
233 | |||
234 | |||
235 | :end | ||
diff --git a/src/lib/libssl/src/Netware/cpy_tests.bat b/src/lib/libssl/src/Netware/cpy_tests.bat deleted file mode 100644 index 1583f28067..0000000000 --- a/src/lib/libssl/src/Netware/cpy_tests.bat +++ /dev/null | |||
@@ -1,113 +0,0 @@ | |||
1 | @echo off | ||
2 | |||
3 | rem Batch file to copy OpenSSL stuff to a NetWare server for testing | ||
4 | |||
5 | rem This batch file will create an "opensssl" directory at the root of the | ||
6 | rem specified NetWare drive and copy the required files to run the tests. | ||
7 | rem It should be run from inside the "openssl\netware" subdirectory. | ||
8 | |||
9 | rem Usage: | ||
10 | rem cpy_tests.bat <test subdirectory> <NetWare drive> | ||
11 | rem <test subdirectory> - out_nw.dbg | out_nw | ||
12 | rem <NetWare drive> - any mapped drive letter | ||
13 | rem | ||
14 | rem example ( copy from debug build to m: dirve ): | ||
15 | rem cpy_tests.bat out_nw.dbg m: | ||
16 | rem | ||
17 | rem CAUTION: If a directory named OpenSSL exists on the target drive | ||
18 | rem it will be deleted first. | ||
19 | |||
20 | |||
21 | if "%1" == "" goto usage | ||
22 | if "%2" == "" goto usage | ||
23 | |||
24 | rem Assume running in \openssl directory unless cpy_tests.bat exists then | ||
25 | rem it must be the \openssl\netware directory | ||
26 | set loc=. | ||
27 | if exist cpy_tests.bat set loc=.. | ||
28 | |||
29 | rem make sure the local build subdirectory specified is valid | ||
30 | if not exist %loc%\%1\NUL goto invalid_dir | ||
31 | |||
32 | rem make sure target drive is valid | ||
33 | if not exist %2\NUL goto invalid_drive | ||
34 | |||
35 | rem If an OpenSSL directory exists on the target drive, remove it | ||
36 | if exist %2\openssl\NUL goto remove_openssl | ||
37 | goto do_copy | ||
38 | |||
39 | :remove_openssl | ||
40 | echo . | ||
41 | echo OpenSSL directory exists on %2 - it will be removed! | ||
42 | pause | ||
43 | rmdir %2\openssl /s /q | ||
44 | |||
45 | :do_copy | ||
46 | rem make an "openssl" directory and others at the root of the NetWare drive | ||
47 | mkdir %2\openssl | ||
48 | mkdir %2\openssl\test_out | ||
49 | mkdir %2\openssl\apps | ||
50 | mkdir %2\openssl\certs | ||
51 | mkdir %2\openssl\test | ||
52 | |||
53 | |||
54 | rem copy the test nlms | ||
55 | copy %loc%\%1\*.nlm %2\openssl\ | ||
56 | |||
57 | rem copy the test perl script | ||
58 | copy %loc%\netware\do_tests.pl %2\openssl\ | ||
59 | |||
60 | rem copy the certs directory stuff | ||
61 | xcopy %loc%\certs\*.* %2\openssl\certs\ /s | ||
62 | |||
63 | rem copy the test directory stuff | ||
64 | copy %loc%\test\CAss.cnf %2\openssl\test\ | ||
65 | copy %loc%\test\Uss.cnf %2\openssl\test\ | ||
66 | copy %loc%\test\pkcs7.pem %2\openssl\test\ | ||
67 | copy %loc%\test\pkcs7-1.pem %2\openssl\test\ | ||
68 | copy %loc%\test\testcrl.pem %2\openssl\test\ | ||
69 | copy %loc%\test\testp7.pem %2\openssl\test\ | ||
70 | copy %loc%\test\testreq2.pem %2\openssl\test\ | ||
71 | copy %loc%\test\testrsa.pem %2\openssl\test\ | ||
72 | copy %loc%\test\testsid.pem %2\openssl\test\ | ||
73 | copy %loc%\test\testx509.pem %2\openssl\test\ | ||
74 | copy %loc%\test\v3-cert1.pem %2\openssl\test\ | ||
75 | copy %loc%\test\v3-cert2.pem %2\openssl\test\ | ||
76 | copy %loc%\crypto\evp\evptests.txt %2\openssl\test\ | ||
77 | |||
78 | rem copy the apps directory stuff | ||
79 | copy %loc%\apps\client.pem %2\openssl\apps\ | ||
80 | copy %loc%\apps\server.pem %2\openssl\apps\ | ||
81 | copy %loc%\apps\openssl.cnf %2\openssl\apps\ | ||
82 | |||
83 | echo . | ||
84 | echo Tests copied | ||
85 | echo Run the test script at the console by typing: | ||
86 | echo "Perl \openssl\do_tests.pl" | ||
87 | echo . | ||
88 | echo Make sure the Search path includes the OpenSSL subdirectory | ||
89 | |||
90 | goto end | ||
91 | |||
92 | :invalid_dir | ||
93 | echo. | ||
94 | echo Invalid build directory specified: %1 | ||
95 | echo. | ||
96 | goto usage | ||
97 | |||
98 | :invalid_drive | ||
99 | echo. | ||
100 | echo Invalid drive: %2 | ||
101 | echo. | ||
102 | goto usage | ||
103 | |||
104 | :usage | ||
105 | echo. | ||
106 | echo usage: cpy_tests.bat [test subdirectory] [NetWare drive] | ||
107 | echo [test subdirectory] - out_nw_clib.dbg, out_nw_libc.dbg, etc. | ||
108 | echo [NetWare drive] - any mapped drive letter | ||
109 | echo. | ||
110 | echo example: cpy_test out_nw_clib.dbg M: | ||
111 | echo (copy from clib debug build area to M: drive) | ||
112 | |||
113 | :end | ||
diff --git a/src/lib/libssl/src/Netware/do_tests.pl b/src/lib/libssl/src/Netware/do_tests.pl deleted file mode 100644 index ac482dbe2b..0000000000 --- a/src/lib/libssl/src/Netware/do_tests.pl +++ /dev/null | |||
@@ -1,624 +0,0 @@ | |||
1 | # perl script to run OpenSSL tests | ||
2 | |||
3 | |||
4 | my $base_path = "\\openssl"; | ||
5 | |||
6 | my $output_path = "$base_path\\test_out"; | ||
7 | my $cert_path = "$base_path\\certs"; | ||
8 | my $test_path = "$base_path\\test"; | ||
9 | my $app_path = "$base_path\\apps"; | ||
10 | |||
11 | my $tmp_cert = "$output_path\\cert.tmp"; | ||
12 | my $OpenSSL_config = "$app_path\\openssl.cnf"; | ||
13 | my $log_file = "$output_path\\tests.log"; | ||
14 | |||
15 | my $pause = 0; | ||
16 | |||
17 | |||
18 | # process the command line args to see if they wanted us to pause | ||
19 | # between executing each command | ||
20 | foreach $i (@ARGV) | ||
21 | { | ||
22 | if ($i =~ /^-p$/) | ||
23 | { $pause=1; } | ||
24 | } | ||
25 | |||
26 | |||
27 | |||
28 | main(); | ||
29 | |||
30 | |||
31 | ############################################################################ | ||
32 | sub main() | ||
33 | { | ||
34 | # delete all the output files in the output directory | ||
35 | unlink <$output_path\\*.*>; | ||
36 | |||
37 | # open the main log file | ||
38 | open(OUT, ">$log_file") || die "unable to open $log_file\n"; | ||
39 | |||
40 | print( OUT "========================================================\n"); | ||
41 | my $outFile = "$output_path\\version.out"; | ||
42 | system("openssl2 version (CLIB_OPT)/>$outFile"); | ||
43 | log_output("CHECKING FOR OPENSSL VERSION:", $outFile); | ||
44 | |||
45 | algorithm_tests(); | ||
46 | encryption_tests(); | ||
47 | evp_tests(); | ||
48 | pem_tests(); | ||
49 | verify_tests(); | ||
50 | ca_tests(); | ||
51 | ssl_tests(); | ||
52 | |||
53 | close(OUT); | ||
54 | |||
55 | print("\nCompleted running tests.\n\n"); | ||
56 | print("Check log file for errors: $log_file\n"); | ||
57 | } | ||
58 | |||
59 | ############################################################################ | ||
60 | sub algorithm_tests | ||
61 | { | ||
62 | my $i; | ||
63 | my $outFile; | ||
64 | my @tests = ( rsa_test, destest, ideatest, bftest, bntest, shatest, sha1test, | ||
65 | sha256t, sha512t, dsatest, md2test, md4test, md5test, mdc2test, | ||
66 | rc2test, rc4test, rc5test, randtest, rmdtest, dhtest, ecdhtest, | ||
67 | ecdsatest, ectest, exptest, casttest, hmactest ); | ||
68 | |||
69 | print( "\nRUNNING CRYPTO ALGORITHM TESTS:\n\n"); | ||
70 | |||
71 | print( OUT "\n========================================================\n"); | ||
72 | print( OUT "CRYPTO ALGORITHM TESTS:\n\n"); | ||
73 | |||
74 | foreach $i (@tests) | ||
75 | { | ||
76 | if (-e "$base_path\\$i.nlm") | ||
77 | { | ||
78 | $outFile = "$output_path\\$i.out"; | ||
79 | system("$i (CLIB_OPT)/>$outFile"); | ||
80 | log_desc("Test: $i\.nlm:"); | ||
81 | log_output("", $outFile ); | ||
82 | } | ||
83 | else | ||
84 | { | ||
85 | log_desc("Test: $i\.nlm: file not found"); | ||
86 | } | ||
87 | } | ||
88 | } | ||
89 | |||
90 | ############################################################################ | ||
91 | sub encryption_tests | ||
92 | { | ||
93 | my $i; | ||
94 | my $outFile; | ||
95 | my @enc_tests = ( "enc", "rc4", "des-cfb", "des-ede-cfb", "des-ede3-cfb", | ||
96 | "des-ofb", "des-ede-ofb", "des-ede3-ofb", | ||
97 | "des-ecb", "des-ede", "des-ede3", "des-cbc", | ||
98 | "des-ede-cbc", "des-ede3-cbc", "idea-ecb", "idea-cfb", | ||
99 | "idea-ofb", "idea-cbc", "rc2-ecb", "rc2-cfb", | ||
100 | "rc2-ofb", "rc2-cbc", "bf-ecb", "bf-cfb", | ||
101 | "bf-ofb", "bf-cbc" ); | ||
102 | |||
103 | my $input = "$base_path\\do_tests.pl"; | ||
104 | my $cipher = "$output_path\\cipher.out"; | ||
105 | my $clear = "$output_path\\clear.out"; | ||
106 | |||
107 | print( "\nRUNNING ENCRYPTION & DECRYPTION TESTS:\n\n"); | ||
108 | |||
109 | print( OUT "\n========================================================\n"); | ||
110 | print( OUT "FILE ENCRYPTION & DECRYPTION TESTS:\n\n"); | ||
111 | |||
112 | foreach $i (@enc_tests) | ||
113 | { | ||
114 | log_desc("Testing: $i"); | ||
115 | |||
116 | # do encryption | ||
117 | $outFile = "$output_path\\enc.out"; | ||
118 | system("openssl2 $i -e -bufsize 113 -k test -in $input -out $cipher (CLIB_OPT)/>$outFile" ); | ||
119 | log_output("Encrypting: $input --> $cipher", $outFile); | ||
120 | |||
121 | # do decryption | ||
122 | $outFile = "$output_path\\dec.out"; | ||
123 | system("openssl2 $i -d -bufsize 157 -k test -in $cipher -out $clear (CLIB_OPT)/>$outFile"); | ||
124 | log_output("Decrypting: $cipher --> $clear", $outFile); | ||
125 | |||
126 | # compare files | ||
127 | $x = compare_files( $input, $clear, 1); | ||
128 | if ( $x == 0 ) | ||
129 | { | ||
130 | print( "\rSUCCESS - files match: $input, $clear\n"); | ||
131 | print( OUT "SUCCESS - files match: $input, $clear\n"); | ||
132 | } | ||
133 | else | ||
134 | { | ||
135 | print( "\rERROR: files don't match\n"); | ||
136 | print( OUT "ERROR: files don't match\n"); | ||
137 | } | ||
138 | |||
139 | do_wait(); | ||
140 | |||
141 | # Now do the same encryption but use Base64 | ||
142 | |||
143 | # do encryption B64 | ||
144 | $outFile = "$output_path\\B64enc.out"; | ||
145 | system("openssl2 $i -a -e -bufsize 113 -k test -in $input -out $cipher (CLIB_OPT)/>$outFile"); | ||
146 | log_output("Encrypting(B64): $cipher --> $clear", $outFile); | ||
147 | |||
148 | # do decryption B64 | ||
149 | $outFile = "$output_path\\B64dec.out"; | ||
150 | system("openssl2 $i -a -d -bufsize 157 -k test -in $cipher -out $clear (CLIB_OPT)/>$outFile"); | ||
151 | log_output("Decrypting(B64): $cipher --> $clear", $outFile); | ||
152 | |||
153 | # compare files | ||
154 | $x = compare_files( $input, $clear, 1); | ||
155 | if ( $x == 0 ) | ||
156 | { | ||
157 | print( "\rSUCCESS - files match: $input, $clear\n"); | ||
158 | print( OUT "SUCCESS - files match: $input, $clear\n"); | ||
159 | } | ||
160 | else | ||
161 | { | ||
162 | print( "\rERROR: files don't match\n"); | ||
163 | print( OUT "ERROR: files don't match\n"); | ||
164 | } | ||
165 | |||
166 | do_wait(); | ||
167 | |||
168 | } # end foreach | ||
169 | |||
170 | # delete the temporary files | ||
171 | unlink($cipher); | ||
172 | unlink($clear); | ||
173 | } | ||
174 | |||
175 | |||
176 | ############################################################################ | ||
177 | sub pem_tests | ||
178 | { | ||
179 | my $i; | ||
180 | my $tmp_out; | ||
181 | my $outFile = "$output_path\\pem.out"; | ||
182 | |||
183 | my %pem_tests = ( | ||
184 | "crl" => "testcrl.pem", | ||
185 | "pkcs7" => "testp7.pem", | ||
186 | "req" => "testreq2.pem", | ||
187 | "rsa" => "testrsa.pem", | ||
188 | "x509" => "testx509.pem", | ||
189 | "x509" => "v3-cert1.pem", | ||
190 | "sess_id" => "testsid.pem" ); | ||
191 | |||
192 | |||
193 | print( "\nRUNNING PEM TESTS:\n\n"); | ||
194 | |||
195 | print( OUT "\n========================================================\n"); | ||
196 | print( OUT "PEM TESTS:\n\n"); | ||
197 | |||
198 | foreach $i (keys(%pem_tests)) | ||
199 | { | ||
200 | log_desc( "Testing: $i"); | ||
201 | |||
202 | my $input = "$test_path\\$pem_tests{$i}"; | ||
203 | |||
204 | $tmp_out = "$output_path\\$pem_tests{$i}"; | ||
205 | |||
206 | if ($i ne "req" ) | ||
207 | { | ||
208 | system("openssl2 $i -in $input -out $tmp_out (CLIB_OPT)/>$outFile"); | ||
209 | log_output( "openssl2 $i -in $input -out $tmp_out", $outFile); | ||
210 | } | ||
211 | else | ||
212 | { | ||
213 | system("openssl2 $i -in $input -out $tmp_out -config $OpenSSL_config (CLIB_OPT)/>$outFile"); | ||
214 | log_output( "openssl2 $i -in $input -out $tmp_out -config $OpenSSL_config", $outFile ); | ||
215 | } | ||
216 | |||
217 | $x = compare_files( $input, $tmp_out); | ||
218 | if ( $x == 0 ) | ||
219 | { | ||
220 | print( "\rSUCCESS - files match: $input, $tmp_out\n"); | ||
221 | print( OUT "SUCCESS - files match: $input, $tmp_out\n"); | ||
222 | } | ||
223 | else | ||
224 | { | ||
225 | print( "\rERROR: files don't match\n"); | ||
226 | print( OUT "ERROR: files don't match\n"); | ||
227 | } | ||
228 | do_wait(); | ||
229 | |||
230 | } # end foreach | ||
231 | } | ||
232 | |||
233 | |||
234 | ############################################################################ | ||
235 | sub verify_tests | ||
236 | { | ||
237 | my $i; | ||
238 | my $outFile = "$output_path\\verify.out"; | ||
239 | |||
240 | $cert_path =~ s/\\/\//g; | ||
241 | my @cert_files = <$cert_path/*.pem>; | ||
242 | |||
243 | print( "\nRUNNING VERIFY TESTS:\n\n"); | ||
244 | |||
245 | print( OUT "\n========================================================\n"); | ||
246 | print( OUT "VERIFY TESTS:\n\n"); | ||
247 | |||
248 | make_tmp_cert_file(); | ||
249 | |||
250 | foreach $i (@cert_files) | ||
251 | { | ||
252 | system("openssl2 verify -CAfile $tmp_cert $i (CLIB_OPT)/>$outFile"); | ||
253 | log_desc("Verifying cert: $i"); | ||
254 | log_output("openssl2 verify -CAfile $tmp_cert $i", $outFile); | ||
255 | } | ||
256 | } | ||
257 | |||
258 | |||
259 | ############################################################################ | ||
260 | sub ssl_tests | ||
261 | { | ||
262 | my $outFile = "$output_path\\ssl_tst.out"; | ||
263 | my($CAcert) = "$output_path\\certCA.ss"; | ||
264 | my($Ukey) = "$output_path\\keyU.ss"; | ||
265 | my($Ucert) = "$output_path\\certU.ss"; | ||
266 | my($ssltest)= "ssltest -key $Ukey -cert $Ucert -c_key $Ukey -c_cert $Ucert -CAfile $CAcert"; | ||
267 | |||
268 | print( "\nRUNNING SSL TESTS:\n\n"); | ||
269 | |||
270 | print( OUT "\n========================================================\n"); | ||
271 | print( OUT "SSL TESTS:\n\n"); | ||
272 | |||
273 | system("ssltest -ssl2 (CLIB_OPT)/>$outFile"); | ||
274 | log_desc("Testing sslv2:"); | ||
275 | log_output("ssltest -ssl2", $outFile); | ||
276 | |||
277 | system("$ssltest -ssl2 -server_auth (CLIB_OPT)/>$outFile"); | ||
278 | log_desc("Testing sslv2 with server authentication:"); | ||
279 | log_output("$ssltest -ssl2 -server_auth", $outFile); | ||
280 | |||
281 | system("$ssltest -ssl2 -client_auth (CLIB_OPT)/>$outFile"); | ||
282 | log_desc("Testing sslv2 with client authentication:"); | ||
283 | log_output("$ssltest -ssl2 -client_auth", $outFile); | ||
284 | |||
285 | system("$ssltest -ssl2 -server_auth -client_auth (CLIB_OPT)/>$outFile"); | ||
286 | log_desc("Testing sslv2 with both client and server authentication:"); | ||
287 | log_output("$ssltest -ssl2 -server_auth -client_auth", $outFile); | ||
288 | |||
289 | system("ssltest -ssl3 (CLIB_OPT)/>$outFile"); | ||
290 | log_desc("Testing sslv3:"); | ||
291 | log_output("ssltest -ssl3", $outFile); | ||
292 | |||
293 | system("$ssltest -ssl3 -server_auth (CLIB_OPT)/>$outFile"); | ||
294 | log_desc("Testing sslv3 with server authentication:"); | ||
295 | log_output("$ssltest -ssl3 -server_auth", $outFile); | ||
296 | |||
297 | system("$ssltest -ssl3 -client_auth (CLIB_OPT)/>$outFile"); | ||
298 | log_desc("Testing sslv3 with client authentication:"); | ||
299 | log_output("$ssltest -ssl3 -client_auth", $outFile); | ||
300 | |||
301 | system("$ssltest -ssl3 -server_auth -client_auth (CLIB_OPT)/>$outFile"); | ||
302 | log_desc("Testing sslv3 with both client and server authentication:"); | ||
303 | log_output("$ssltest -ssl3 -server_auth -client_auth", $outFile); | ||
304 | |||
305 | system("ssltest (CLIB_OPT)/>$outFile"); | ||
306 | log_desc("Testing sslv2/sslv3:"); | ||
307 | log_output("ssltest", $outFile); | ||
308 | |||
309 | system("$ssltest -server_auth (CLIB_OPT)/>$outFile"); | ||
310 | log_desc("Testing sslv2/sslv3 with server authentication:"); | ||
311 | log_output("$ssltest -server_auth", $outFile); | ||
312 | |||
313 | system("$ssltest -client_auth (CLIB_OPT)/>$outFile"); | ||
314 | log_desc("Testing sslv2/sslv3 with client authentication:"); | ||
315 | log_output("$ssltest -client_auth ", $outFile); | ||
316 | |||
317 | system("$ssltest -server_auth -client_auth (CLIB_OPT)/>$outFile"); | ||
318 | log_desc("Testing sslv2/sslv3 with both client and server authentication:"); | ||
319 | log_output("$ssltest -server_auth -client_auth", $outFile); | ||
320 | |||
321 | system("ssltest -bio_pair -ssl2 (CLIB_OPT)/>$outFile"); | ||
322 | log_desc("Testing sslv2 via BIO pair:"); | ||
323 | log_output("ssltest -bio_pair -ssl2", $outFile); | ||
324 | |||
325 | system("ssltest -bio_pair -dhe1024dsa -v (CLIB_OPT)/>$outFile"); | ||
326 | log_desc("Testing sslv2/sslv3 with 1024 bit DHE via BIO pair:"); | ||
327 | log_output("ssltest -bio_pair -dhe1024dsa -v", $outFile); | ||
328 | |||
329 | system("$ssltest -bio_pair -ssl2 -server_auth (CLIB_OPT)/>$outFile"); | ||
330 | log_desc("Testing sslv2 with server authentication via BIO pair:"); | ||
331 | log_output("$ssltest -bio_pair -ssl2 -server_auth", $outFile); | ||
332 | |||
333 | system("$ssltest -bio_pair -ssl2 -client_auth (CLIB_OPT)/>$outFile"); | ||
334 | log_desc("Testing sslv2 with client authentication via BIO pair:"); | ||
335 | log_output("$ssltest -bio_pair -ssl2 -client_auth", $outFile); | ||
336 | |||
337 | system("$ssltest -bio_pair -ssl2 -server_auth -client_auth (CLIB_OPT)/>$outFile"); | ||
338 | log_desc("Testing sslv2 with both client and server authentication via BIO pair:"); | ||
339 | log_output("$ssltest -bio_pair -ssl2 -server_auth -client_auth", $outFile); | ||
340 | |||
341 | system("ssltest -bio_pair -ssl3 (CLIB_OPT)/>$outFile"); | ||
342 | log_desc("Testing sslv3 via BIO pair:"); | ||
343 | log_output("ssltest -bio_pair -ssl3", $outFile); | ||
344 | |||
345 | system("$ssltest -bio_pair -ssl3 -server_auth (CLIB_OPT)/>$outFile"); | ||
346 | log_desc("Testing sslv3 with server authentication via BIO pair:"); | ||
347 | log_output("$ssltest -bio_pair -ssl3 -server_auth", $outFile); | ||
348 | |||
349 | system("$ssltest -bio_pair -ssl3 -client_auth (CLIB_OPT)/>$outFile"); | ||
350 | log_desc("Testing sslv3 with client authentication via BIO pair:"); | ||
351 | log_output("$ssltest -bio_pair -ssl3 -client_auth", $outFile); | ||
352 | |||
353 | system("$ssltest -bio_pair -ssl3 -server_auth -client_auth (CLIB_OPT)/>$outFile"); | ||
354 | log_desc("Testing sslv3 with both client and server authentication via BIO pair:"); | ||
355 | log_output("$ssltest -bio_pair -ssl3 -server_auth -client_auth", $outFile); | ||
356 | |||
357 | system("ssltest -bio_pair (CLIB_OPT)/>$outFile"); | ||
358 | log_desc("Testing sslv2/sslv3 via BIO pair:"); | ||
359 | log_output("ssltest -bio_pair", $outFile); | ||
360 | |||
361 | system("$ssltest -bio_pair -server_auth (CLIB_OPT)/>$outFile"); | ||
362 | log_desc("Testing sslv2/sslv3 with server authentication via BIO pair:"); | ||
363 | log_output("$ssltest -bio_pair -server_auth", $outFile); | ||
364 | |||
365 | system("$ssltest -bio_pair -client_auth (CLIB_OPT)/>$outFile"); | ||
366 | log_desc("Testing sslv2/sslv3 with client authentication via BIO pair:"); | ||
367 | log_output("$ssltest -bio_pair -client_auth", $outFile); | ||
368 | |||
369 | system("$ssltest -bio_pair -server_auth -client_auth (CLIB_OPT)/>$outFile"); | ||
370 | log_desc("Testing sslv2/sslv3 with both client and server authentication via BIO pair:"); | ||
371 | log_output("$ssltest -bio_pair -server_auth -client_auth", $outFile); | ||
372 | } | ||
373 | |||
374 | |||
375 | ############################################################################ | ||
376 | sub ca_tests | ||
377 | { | ||
378 | my $outFile = "$output_path\\ca_tst.out"; | ||
379 | |||
380 | my($CAkey) = "$output_path\\keyCA.ss"; | ||
381 | my($CAcert) = "$output_path\\certCA.ss"; | ||
382 | my($CAserial) = "$output_path\\certCA.srl"; | ||
383 | my($CAreq) = "$output_path\\reqCA.ss"; | ||
384 | my($CAreq2) = "$output_path\\req2CA.ss"; | ||
385 | |||
386 | my($CAconf) = "$test_path\\CAss.cnf"; | ||
387 | |||
388 | my($Uconf) = "$test_path\\Uss.cnf"; | ||
389 | |||
390 | my($Ukey) = "$output_path\\keyU.ss"; | ||
391 | my($Ureq) = "$output_path\\reqU.ss"; | ||
392 | my($Ucert) = "$output_path\\certU.ss"; | ||
393 | |||
394 | print( "\nRUNNING CA TESTS:\n\n"); | ||
395 | |||
396 | print( OUT "\n========================================================\n"); | ||
397 | print( OUT "CA TESTS:\n"); | ||
398 | |||
399 | system("openssl2 req -config $CAconf -out $CAreq -keyout $CAkey -new (CLIB_OPT)/>$outFile"); | ||
400 | log_desc("Make a certificate request using req:"); | ||
401 | log_output("openssl2 req -config $CAconf -out $CAreq -keyout $CAkey -new", $outFile); | ||
402 | |||
403 | system("openssl2 x509 -CAcreateserial -in $CAreq -days 30 -req -out $CAcert -signkey $CAkey (CLIB_OPT)/>$outFile"); | ||
404 | log_desc("Convert the certificate request into a self signed certificate using x509:"); | ||
405 | log_output("openssl2 x509 -CAcreateserial -in $CAreq -days 30 -req -out $CAcert -signkey $CAkey", $outFile); | ||
406 | |||
407 | system("openssl2 x509 -in $CAcert -x509toreq -signkey $CAkey -out $CAreq2 (CLIB_OPT)/>$outFile"); | ||
408 | log_desc("Convert a certificate into a certificate request using 'x509':"); | ||
409 | log_output("openssl2 x509 -in $CAcert -x509toreq -signkey $CAkey -out $CAreq2", $outFile); | ||
410 | |||
411 | system("openssl2 req -config $OpenSSL_config -verify -in $CAreq -noout (CLIB_OPT)/>$outFile"); | ||
412 | log_output("openssl2 req -config $OpenSSL_config -verify -in $CAreq -noout", $outFile); | ||
413 | |||
414 | system("openssl2 req -config $OpenSSL_config -verify -in $CAreq2 -noout (CLIB_OPT)/>$outFile"); | ||
415 | log_output( "openssl2 req -config $OpenSSL_config -verify -in $CAreq2 -noout", $outFile); | ||
416 | |||
417 | system("openssl2 verify -CAfile $CAcert $CAcert (CLIB_OPT)/>$outFile"); | ||
418 | log_output("openssl2 verify -CAfile $CAcert $CAcert", $outFile); | ||
419 | |||
420 | system("openssl2 req -config $Uconf -out $Ureq -keyout $Ukey -new (CLIB_OPT)/>$outFile"); | ||
421 | log_desc("Make another certificate request using req:"); | ||
422 | log_output("openssl2 req -config $Uconf -out $Ureq -keyout $Ukey -new", $outFile); | ||
423 | |||
424 | system("openssl2 x509 -CAcreateserial -in $Ureq -days 30 -req -out $Ucert -CA $CAcert -CAkey $CAkey -CAserial $CAserial (CLIB_OPT)/>$outFile"); | ||
425 | log_desc("Sign certificate request with the just created CA via x509:"); | ||
426 | log_output("openssl2 x509 -CAcreateserial -in $Ureq -days 30 -req -out $Ucert -CA $CAcert -CAkey $CAkey -CAserial $CAserial", $outFile); | ||
427 | |||
428 | system("openssl2 verify -CAfile $CAcert $Ucert (CLIB_OPT)/>$outFile"); | ||
429 | log_output("openssl2 verify -CAfile $CAcert $Ucert", $outFile); | ||
430 | |||
431 | system("openssl2 x509 -subject -issuer -startdate -enddate -noout -in $Ucert (CLIB_OPT)/>$outFile"); | ||
432 | log_desc("Certificate details"); | ||
433 | log_output("openssl2 x509 -subject -issuer -startdate -enddate -noout -in $Ucert", $outFile); | ||
434 | |||
435 | print(OUT "--\n"); | ||
436 | print(OUT "The generated CA certificate is $CAcert\n"); | ||
437 | print(OUT "The generated CA private key is $CAkey\n"); | ||
438 | print(OUT "The current CA signing serial number is in $CAserial\n"); | ||
439 | |||
440 | print(OUT "The generated user certificate is $Ucert\n"); | ||
441 | print(OUT "The generated user private key is $Ukey\n"); | ||
442 | print(OUT "--\n"); | ||
443 | } | ||
444 | |||
445 | ############################################################################ | ||
446 | sub evp_tests | ||
447 | { | ||
448 | my $i = 'evp_test'; | ||
449 | |||
450 | print( "\nRUNNING EVP TESTS:\n\n"); | ||
451 | |||
452 | print( OUT "\n========================================================\n"); | ||
453 | print( OUT "EVP TESTS:\n\n"); | ||
454 | |||
455 | if (-e "$base_path\\$i.nlm") | ||
456 | { | ||
457 | my $outFile = "$output_path\\$i.out"; | ||
458 | system("$i $test_path\\evptests.txt (CLIB_OPT)/>$outFile"); | ||
459 | log_desc("Test: $i\.nlm:"); | ||
460 | log_output("", $outFile ); | ||
461 | } | ||
462 | else | ||
463 | { | ||
464 | log_desc("Test: $i\.nlm: file not found"); | ||
465 | } | ||
466 | } | ||
467 | |||
468 | ############################################################################ | ||
469 | sub log_output( $ $ ) | ||
470 | { | ||
471 | my( $desc, $file ) = @_; | ||
472 | my($error) = 0; | ||
473 | my($key); | ||
474 | my($msg); | ||
475 | |||
476 | if ($desc) | ||
477 | { | ||
478 | print("\r$desc\n"); | ||
479 | print(OUT "$desc\n"); | ||
480 | } | ||
481 | |||
482 | # loop waiting for test program to complete | ||
483 | while ( stat($file) == 0) | ||
484 | { print(". "); sleep(1); } | ||
485 | |||
486 | |||
487 | # copy test output to log file | ||
488 | open(IN, "<$file"); | ||
489 | while (<IN>) | ||
490 | { | ||
491 | print(OUT $_); | ||
492 | if ( $_ =~ /ERROR/ ) | ||
493 | { | ||
494 | $error = 1; | ||
495 | } | ||
496 | } | ||
497 | # close and delete the temporary test output file | ||
498 | close(IN); | ||
499 | unlink($file); | ||
500 | |||
501 | if ( $error == 0 ) | ||
502 | { | ||
503 | $msg = "Test Succeeded"; | ||
504 | } | ||
505 | else | ||
506 | { | ||
507 | $msg = "Test Failed"; | ||
508 | } | ||
509 | |||
510 | print(OUT "$msg\n"); | ||
511 | |||
512 | if ($pause) | ||
513 | { | ||
514 | print("$msg - press ENTER to continue..."); | ||
515 | $key = getc; | ||
516 | print("\n"); | ||
517 | } | ||
518 | |||
519 | # Several of the testing scripts run a loop loading the | ||
520 | # same NLM with different options. | ||
521 | # On slow NetWare machines there appears to be some delay in the | ||
522 | # OS actually unloading the test nlms and the OS complains about. | ||
523 | # the NLM already being loaded. This additional pause is to | ||
524 | # to help provide a little more time for unloading before trying to | ||
525 | # load again. | ||
526 | sleep(1); | ||
527 | } | ||
528 | |||
529 | |||
530 | ############################################################################ | ||
531 | sub log_desc( $ ) | ||
532 | { | ||
533 | my( $desc ) = @_; | ||
534 | |||
535 | print("\n"); | ||
536 | print("$desc\n"); | ||
537 | |||
538 | print(OUT "\n"); | ||
539 | print(OUT "$desc\n"); | ||
540 | print(OUT "======================================\n"); | ||
541 | } | ||
542 | |||
543 | ############################################################################ | ||
544 | sub compare_files( $ $ $ ) | ||
545 | { | ||
546 | my( $file1, $file2, $binary ) = @_; | ||
547 | my( $n1, $n2, $b1, $b2 ); | ||
548 | my($ret) = 1; | ||
549 | |||
550 | open(IN0, $file1) || die "\nunable to open $file1\n"; | ||
551 | open(IN1, $file2) || die "\nunable to open $file2\n"; | ||
552 | |||
553 | if ($binary) | ||
554 | { | ||
555 | binmode IN0; | ||
556 | binmode IN1; | ||
557 | } | ||
558 | |||
559 | for (;;) | ||
560 | { | ||
561 | $n1 = read(IN0, $b1, 512); | ||
562 | $n2 = read(IN1, $b2, 512); | ||
563 | |||
564 | if ($n1 != $n2) {last;} | ||
565 | if ($b1 != $b2) {last;} | ||
566 | |||
567 | if ($n1 == 0) | ||
568 | { | ||
569 | $ret = 0; | ||
570 | last; | ||
571 | } | ||
572 | } | ||
573 | close(IN0); | ||
574 | close(IN1); | ||
575 | return($ret); | ||
576 | } | ||
577 | |||
578 | ############################################################################ | ||
579 | sub do_wait() | ||
580 | { | ||
581 | my($key); | ||
582 | |||
583 | if ($pause) | ||
584 | { | ||
585 | print("Press ENTER to continue..."); | ||
586 | $key = getc; | ||
587 | print("\n"); | ||
588 | } | ||
589 | } | ||
590 | |||
591 | |||
592 | ############################################################################ | ||
593 | sub make_tmp_cert_file() | ||
594 | { | ||
595 | my @cert_files = <$cert_path/*.pem>; | ||
596 | |||
597 | # delete the file if it already exists | ||
598 | unlink($tmp_cert); | ||
599 | |||
600 | open( TMP_CERT, ">$tmp_cert") || die "\nunable to open $tmp_cert\n"; | ||
601 | |||
602 | print("building temporary cert file\n"); | ||
603 | |||
604 | # create a temporary cert file that contains all the certs | ||
605 | foreach $i (@cert_files) | ||
606 | { | ||
607 | open( IN_CERT, $i ) || die "\nunable to open $i\n"; | ||
608 | |||
609 | for(;;) | ||
610 | { | ||
611 | $n = sysread(IN_CERT, $data, 1024); | ||
612 | |||
613 | if ($n == 0) | ||
614 | { | ||
615 | close(IN_CERT); | ||
616 | last; | ||
617 | }; | ||
618 | |||
619 | syswrite(TMP_CERT, $data, $n); | ||
620 | } | ||
621 | } | ||
622 | |||
623 | close( TMP_CERT ); | ||
624 | } | ||
diff --git a/src/lib/libssl/src/Netware/globals.txt b/src/lib/libssl/src/Netware/globals.txt deleted file mode 100644 index fe05d390cf..0000000000 --- a/src/lib/libssl/src/Netware/globals.txt +++ /dev/null | |||
@@ -1,254 +0,0 @@ | |||
1 | An initial review of the OpenSSL code was done to determine how many | ||
2 | global variables where present. The idea was to determine the amount of | ||
3 | work required to pull the globals into an instance data structure in | ||
4 | order to build a Library NLM for NetWare. This file contains the results | ||
5 | of the review. Each file is listed along with the globals in the file. | ||
6 | The initial review was done very quickly so this list is probably | ||
7 | not a comprehensive list. | ||
8 | |||
9 | |||
10 | cryptlib.c | ||
11 | =========================================== | ||
12 | |||
13 | static STACK *app_locks=NULL; | ||
14 | |||
15 | static STACK_OF(CRYPTO_dynlock) *dyn_locks=NULL; | ||
16 | |||
17 | static void (MS_FAR *locking_callback)(int mode,int type, | ||
18 | const char *file,int line)=NULL; | ||
19 | static int (MS_FAR *add_lock_callback)(int *pointer,int amount, | ||
20 | int type,const char *file,int line)=NULL; | ||
21 | static unsigned long (MS_FAR *id_callback)(void)=NULL; | ||
22 | static struct CRYPTO_dynlock_value *(MS_FAR *dynlock_create_callback) | ||
23 | (const char *file,int line)=NULL; | ||
24 | static void (MS_FAR *dynlock_lock_callback)(int mode, | ||
25 | struct CRYPTO_dynlock_value *l, const char *file,int line)=NULL; | ||
26 | static void (MS_FAR *dynlock_destroy_callback)(struct CRYPTO_dynlock_value *l, | ||
27 | const char *file,int line)=NULL; | ||
28 | |||
29 | |||
30 | mem.c | ||
31 | =========================================== | ||
32 | static int allow_customize = 1; /* we provide flexible functions for */ | ||
33 | static int allow_customize_debug = 1;/* exchanging memory-related functions at | ||
34 | |||
35 | /* may be changed as long as `allow_customize' is set */ | ||
36 | static void *(*malloc_locked_func)(size_t) = malloc; | ||
37 | static void (*free_locked_func)(void *) = free; | ||
38 | static void *(*malloc_func)(size_t) = malloc; | ||
39 | static void *(*realloc_func)(void *, size_t)= realloc; | ||
40 | static void (*free_func)(void *) = free; | ||
41 | |||
42 | /* use default functions from mem_dbg.c */ | ||
43 | static void (*malloc_debug_func)(void *,int,const char *,int,int) | ||
44 | = CRYPTO_dbg_malloc; | ||
45 | static void (*realloc_debug_func)(void *,void *,int,const char *,int,int) | ||
46 | = CRYPTO_dbg_realloc; | ||
47 | static void (*free_debug_func)(void *,int) = CRYPTO_dbg_free; | ||
48 | static void (*set_debug_options_func)(long) = CRYPTO_dbg_set_options; | ||
49 | static long (*get_debug_options_func)(void) = CRYPTO_dbg_get_options; | ||
50 | |||
51 | |||
52 | mem_dbg.c | ||
53 | =========================================== | ||
54 | static int mh_mode=CRYPTO_MEM_CHECK_OFF; | ||
55 | static unsigned long order = 0; /* number of memory requests */ | ||
56 | static LHASH *mh=NULL; /* hash-table of memory requests (address as key) */ | ||
57 | |||
58 | static LHASH *amih=NULL; /* hash-table with those app_mem_info_st's */ | ||
59 | static long options = /* extra information to be recorded */ | ||
60 | static unsigned long disabling_thread = 0; | ||
61 | |||
62 | |||
63 | err.c | ||
64 | =========================================== | ||
65 | static LHASH *error_hash=NULL; | ||
66 | static LHASH *thread_hash=NULL; | ||
67 | |||
68 | several files have routines with static "init" to track if error strings | ||
69 | have been loaded ( may not want seperate error strings for each process ) | ||
70 | The "init" variable can't be left "global" because the error has is a ptr | ||
71 | that is malloc'ed. The malloc'ed error has is dependant on the "init" | ||
72 | vars. | ||
73 | |||
74 | files: | ||
75 | pem_err.c | ||
76 | cpt_err.c | ||
77 | pk12err.c | ||
78 | asn1_err.c | ||
79 | bio_err.c | ||
80 | bn_err.c | ||
81 | buf_err.c | ||
82 | comp_err.c | ||
83 | conf_err.c | ||
84 | cpt_err.c | ||
85 | dh_err.c | ||
86 | dsa_err.c | ||
87 | dso_err.c | ||
88 | evp_err.c | ||
89 | obj_err.c | ||
90 | pkcs7err.c | ||
91 | rand_err.c | ||
92 | rsa_err.c | ||
93 | rsar_err.c | ||
94 | ssl_err.c | ||
95 | x509_err.c | ||
96 | v3err.c | ||
97 | err.c | ||
98 | |||
99 | These file have similar "init" globals but they are for other stuff not | ||
100 | error strings: | ||
101 | |||
102 | bn_lib.c | ||
103 | ecc_enc.c | ||
104 | s23_clnt.c | ||
105 | s23_meth.c | ||
106 | s23_srvr.c | ||
107 | s2_clnt.c | ||
108 | s2_lib.c | ||
109 | s2_meth.c | ||
110 | s2_srvr.c | ||
111 | s3_clnt.c | ||
112 | s3_lib.c | ||
113 | s3_srvr.c | ||
114 | t1_clnt.c | ||
115 | t1_meth.c | ||
116 | t1_srvr.c | ||
117 | |||
118 | rand_lib.c | ||
119 | =========================================== | ||
120 | static RAND_METHOD *rand_meth= &rand_ssleay_meth; | ||
121 | |||
122 | md_rand.c | ||
123 | =========================================== | ||
124 | static int state_num=0,state_index=0; | ||
125 | static unsigned char state[STATE_SIZE+MD_DIGEST_LENGTH]; | ||
126 | static unsigned char md[MD_DIGEST_LENGTH]; | ||
127 | static long md_count[2]={0,0}; | ||
128 | static double entropy=0; | ||
129 | static int initialized=0; | ||
130 | |||
131 | /* This should be set to 1 only when ssleay_rand_add() is called inside | ||
132 | an already locked state, so it doesn't try to lock and thereby cause | ||
133 | a hang. And it should always be reset back to 0 before unlocking. */ | ||
134 | static int add_do_not_lock=0; | ||
135 | |||
136 | obj_dat.c | ||
137 | ============================================ | ||
138 | static int new_nid=NUM_NID; | ||
139 | static LHASH *added=NULL; | ||
140 | |||
141 | b_sock.c | ||
142 | =========================================== | ||
143 | static unsigned long BIO_ghbn_hits=0L; | ||
144 | static unsigned long BIO_ghbn_miss=0L; | ||
145 | static struct ghbn_cache_st | ||
146 | { | ||
147 | char name[129]; | ||
148 | struct hostent *ent; | ||
149 | unsigned long order; | ||
150 | } ghbn_cache[GHBN_NUM]; | ||
151 | |||
152 | static int wsa_init_done=0; | ||
153 | |||
154 | |||
155 | bio_lib.c | ||
156 | =========================================== | ||
157 | static STACK_OF(CRYPTO_EX_DATA_FUNCS) *bio_meth=NULL; | ||
158 | static int bio_meth_num=0; | ||
159 | |||
160 | |||
161 | bn_lib.c | ||
162 | ======================================== | ||
163 | static int bn_limit_bits=0; | ||
164 | static int bn_limit_num=8; /* (1<<bn_limit_bits) */ | ||
165 | static int bn_limit_bits_low=0; | ||
166 | static int bn_limit_num_low=8; /* (1<<bn_limit_bits_low) */ | ||
167 | static int bn_limit_bits_high=0; | ||
168 | static int bn_limit_num_high=8; /* (1<<bn_limit_bits_high) */ | ||
169 | static int bn_limit_bits_mont=0; | ||
170 | static int bn_limit_num_mont=8; /* (1<<bn_limit_bits_mont) */ | ||
171 | |||
172 | conf_lib.c | ||
173 | ======================================== | ||
174 | static CONF_METHOD *default_CONF_method=NULL; | ||
175 | |||
176 | dh_lib.c | ||
177 | ======================================== | ||
178 | static DH_METHOD *default_DH_method; | ||
179 | static int dh_meth_num = 0; | ||
180 | static STACK_OF(CRYPTO_EX_DATA_FUNCS) *dh_meth = NULL; | ||
181 | |||
182 | dsa_lib.c | ||
183 | ======================================== | ||
184 | static DSA_METHOD *default_DSA_method; | ||
185 | static int dsa_meth_num = 0; | ||
186 | static STACK_OF(CRYPTO_EX_DATA_FUNCS) *dsa_meth = NULL; | ||
187 | |||
188 | dso_lib.c | ||
189 | ======================================== | ||
190 | static DSO_METHOD *default_DSO_meth = NULL; | ||
191 | |||
192 | rsa_lib.c | ||
193 | ======================================== | ||
194 | static RSA_METHOD *default_RSA_meth=NULL; | ||
195 | static int rsa_meth_num=0; | ||
196 | static STACK_OF(CRYPTO_EX_DATA_FUNCS) *rsa_meth=NULL; | ||
197 | |||
198 | x509_trs.c | ||
199 | ======================================= | ||
200 | static int (*default_trust)(int id, X509 *x, int flags) = obj_trust; | ||
201 | static STACK_OF(X509_TRUST) *trtable = NULL; | ||
202 | |||
203 | x509_req.c | ||
204 | ======================================= | ||
205 | static int *ext_nids = ext_nid_list; | ||
206 | |||
207 | o_names.c | ||
208 | ====================================== | ||
209 | static LHASH *names_lh=NULL; | ||
210 | static STACK_OF(NAME_FUNCS) *name_funcs_stack; | ||
211 | static int free_type; | ||
212 | static int names_type_num=OBJ_NAME_TYPE_NUM; | ||
213 | |||
214 | |||
215 | th-lock.c - NEED to add support for locking for NetWare | ||
216 | ============================================== | ||
217 | static long *lock_count; | ||
218 | (other platform specific globals) | ||
219 | |||
220 | x_x509.c | ||
221 | ============================================== | ||
222 | static int x509_meth_num = 0; | ||
223 | static STACK_OF(CRYPTO_EX_DATA_FUNCS) *x509_meth = NULL; | ||
224 | |||
225 | |||
226 | evp_pbe.c | ||
227 | ============================================ | ||
228 | static STACK *pbe_algs; | ||
229 | |||
230 | evp_key.c | ||
231 | ============================================ | ||
232 | static char prompt_string[80]; | ||
233 | |||
234 | ssl_ciph.c | ||
235 | ============================================ | ||
236 | static STACK_OF(SSL_COMP) *ssl_comp_methods=NULL; | ||
237 | |||
238 | ssl_lib.c | ||
239 | ============================================= | ||
240 | static STACK_OF(CRYPTO_EX_DATA_FUNCS) *ssl_meth=NULL; | ||
241 | static STACK_OF(CRYPTO_EX_DATA_FUNCS) *ssl_ctx_meth=NULL; | ||
242 | static int ssl_meth_num=0; | ||
243 | static int ssl_ctx_meth_num=0; | ||
244 | |||
245 | ssl_sess.c | ||
246 | ============================================= | ||
247 | static int ssl_session_num=0; | ||
248 | static STACK_OF(CRYPTO_EX_DATA_FUNCS) *ssl_session_meth=NULL; | ||
249 | |||
250 | x509_vfy.c | ||
251 | ============================================ | ||
252 | static STACK_OF(CRYPTO_EX_DATA_FUNCS) *x509_store_ctx_method=NULL; | ||
253 | static int x509_store_ctx_num=0; | ||
254 | |||
diff --git a/src/lib/libssl/src/Netware/readme.txt b/src/lib/libssl/src/Netware/readme.txt deleted file mode 100644 index a5b5faae33..0000000000 --- a/src/lib/libssl/src/Netware/readme.txt +++ /dev/null | |||
@@ -1,19 +0,0 @@ | |||
1 | |||
2 | Contents of the openssl\netware directory | ||
3 | ========================================== | ||
4 | |||
5 | Regular files: | ||
6 | |||
7 | readme.txt - this file | ||
8 | do_tests.pl - perl script used to run the OpenSSL tests on NetWare | ||
9 | cpy_tests.bat - batch to to copy test stuff to NetWare server | ||
10 | build.bat - batch file to help with builds | ||
11 | set_env.bat - batch file to help setup build environments | ||
12 | globals.txt - results of initial code review to identify OpenSSL global variables | ||
13 | |||
14 | |||
15 | The following files are generated by the various scripts. They are | ||
16 | recreated each time and it is okay to delete them. | ||
17 | |||
18 | *.def - command files used by Metrowerks linker | ||
19 | *.mak - make files generated by mk1mf.pl | ||
diff --git a/src/lib/libssl/src/Netware/set_env.bat b/src/lib/libssl/src/Netware/set_env.bat deleted file mode 100644 index ace024e529..0000000000 --- a/src/lib/libssl/src/Netware/set_env.bat +++ /dev/null | |||
@@ -1,112 +0,0 @@ | |||
1 | @echo off | ||
2 | |||
3 | rem ======================================================================== | ||
4 | rem Batch file to assist in setting up the necessary enviroment for | ||
5 | rem building OpenSSL for NetWare. | ||
6 | rem | ||
7 | rem usage: | ||
8 | rem set_env [target] | ||
9 | rem | ||
10 | rem target - "netware-clib" - Clib build | ||
11 | rem - "netware-libc" - LibC build | ||
12 | rem | ||
13 | rem | ||
14 | |||
15 | if "a%1" == "a" goto usage | ||
16 | |||
17 | set LIBC_BUILD= | ||
18 | set CLIB_BUILD= | ||
19 | set GNUC= | ||
20 | |||
21 | if "%1" == "netware-clib" set CLIB_BUILD=Y | ||
22 | if "%1" == "netware-clib" set LIBC_BUILD= | ||
23 | |||
24 | if "%1" == "netware-libc" set LIBC_BUILD=Y | ||
25 | if "%1" == "netware-libc" set CLIB_BUILD= | ||
26 | |||
27 | if "%2" == "gnuc" set GNUC=Y | ||
28 | if "%2" == "codewarrior" set GNUC= | ||
29 | |||
30 | rem Location of tools (compiler, linker, etc) | ||
31 | if "%NDKBASE%" == "" set NDKBASE=c:\Novell | ||
32 | |||
33 | rem If Perl for Win32 is not already in your path, add it here | ||
34 | set PERL_PATH= | ||
35 | |||
36 | rem Define path to the Metrowerks command line tools | ||
37 | rem or GNU Crosscompiler gcc / nlmconv | ||
38 | rem ( compiler, assembler, linker) | ||
39 | if "%GNUC%" == "Y" set COMPILER_PATH=c:\usr\i586-netware\bin;c:\usr\bin | ||
40 | if "%GNUC%" == "" set COMPILER_PATH=c:\prg\cwcmdl40 | ||
41 | |||
42 | rem If using gnu make define path to utility | ||
43 | rem set GNU_MAKE_PATH=%NDKBASE%\gnu | ||
44 | set GNU_MAKE_PATH=c:\prg\tools | ||
45 | |||
46 | rem If using ms nmake define path to nmake | ||
47 | rem set MS_NMAKE_PATH=%NDKBASE%\msvc\600\bin | ||
48 | |||
49 | rem If using NASM assembler define path | ||
50 | rem set NASM_PATH=%NDKBASE%\nasm | ||
51 | set NASM_PATH=c:\prg\tools | ||
52 | |||
53 | rem Update path to include tool paths | ||
54 | set path=%path%;%COMPILER_PATH% | ||
55 | if not "%GNU_MAKE_PATH%" == "" set path=%path%;%GNU_MAKE_PATH% | ||
56 | if not "%MS_NMAKE_PATH%" == "" set path=%path%;%MS_NMAKE_PATH% | ||
57 | if not "%NASM_PATH%" == "" set path=%path%;%NASM_PATH% | ||
58 | if not "%PERL_PATH%" == "" set path=%path%;%PERL_PATH% | ||
59 | |||
60 | rem Set INCLUDES to location of Novell NDK includes | ||
61 | if "%LIBC_BUILD%" == "Y" set INCLUDE=%NDKBASE%\ndk\libc\include;%NDKBASE%\ndk\libc\include\winsock | ||
62 | if "%CLIB_BUILD%" == "Y" set INCLUDE=%NDKBASE%\ndk\nwsdk\include\nlm;%NDKBASE%\ws295sdk\include | ||
63 | |||
64 | rem Set Imports to location of Novell NDK import files | ||
65 | if "%LIBC_BUILD%" == "Y" set IMPORTS=%NDKBASE%\ndk\libc\imports | ||
66 | if "%CLIB_BUILD%" == "Y" set IMPORTS=%NDKBASE%\ndk\nwsdk\imports | ||
67 | |||
68 | rem Set PRELUDE to the absolute path of the prelude object to link with in | ||
69 | rem the Metrowerks NetWare PDK - NOTE: for Clib builds "clibpre.o" is | ||
70 | rem recommended, for LibC NKS builds libcpre.o must be used | ||
71 | if "%GNUC%" == "Y" goto gnuc | ||
72 | if "%LIBC_BUILD%" == "Y" set PRELUDE=%IMPORTS%\libcpre.o | ||
73 | rem if "%CLIB_BUILD%" == "Y" set PRELUDE=%IMPORTS%\clibpre.o | ||
74 | if "%CLIB_BUILD%" == "Y" set PRELUDE=%IMPORTS%\prelude.o | ||
75 | echo using MetroWerks CodeWarrior | ||
76 | goto info | ||
77 | |||
78 | :gnuc | ||
79 | if "%LIBC_BUILD%" == "Y" set PRELUDE=%IMPORTS%\libcpre.gcc.o | ||
80 | rem if "%CLIB_BUILD%" == "Y" set PRELUDE=%IMPORTS%\clibpre.gcc.o | ||
81 | if "%CLIB_BUILD%" == "Y" set PRELUDE=%IMPORTS%\prelude.gcc.o | ||
82 | echo using GNU GCC Compiler | ||
83 | |||
84 | :info | ||
85 | echo. | ||
86 | |||
87 | if "%LIBC_BUILD%" == "Y" echo Enviroment configured for LibC build | ||
88 | if "%LIBC_BUILD%" == "Y" echo use "netware\build.bat netware-libc ..." | ||
89 | |||
90 | if "%CLIB_BUILD%" == "Y" echo Enviroment configured for CLib build | ||
91 | if "%CLIB_BUILD%" == "Y" echo use "netware\build.bat netware-clib ..." | ||
92 | |||
93 | goto end | ||
94 | |||
95 | :usage | ||
96 | rem =============================================================== | ||
97 | echo. | ||
98 | echo No target build specified! | ||
99 | echo. | ||
100 | echo usage: set_env [target] [compiler] | ||
101 | echo. | ||
102 | echo target - "netware-clib" - Clib build | ||
103 | echo - "netware-libc" - LibC build | ||
104 | echo. | ||
105 | echo compiler - "gnuc" - GNU GCC Compiler | ||
106 | echo - "codewarrior" - MetroWerks CodeWarrior (default) | ||
107 | echo. | ||
108 | |||
109 | :end | ||
110 | echo. | ||
111 | |||
112 | |||
diff --git a/src/lib/libssl/src/PROBLEMS b/src/lib/libssl/src/PROBLEMS index d247470f06..3eaab01f2c 100644 --- a/src/lib/libssl/src/PROBLEMS +++ b/src/lib/libssl/src/PROBLEMS | |||
@@ -197,3 +197,17 @@ reconfigure with additional no-sse2 [or 386] option passed to ./config. | |||
197 | We don't have framework to associate -ldl with no-dso, therefore the only | 197 | We don't have framework to associate -ldl with no-dso, therefore the only |
198 | way is to edit Makefile right after ./config no-dso and remove -ldl from | 198 | way is to edit Makefile right after ./config no-dso and remove -ldl from |
199 | EX_LIBS line. | 199 | EX_LIBS line. |
200 | |||
201 | * hpux-parisc2-cc no-asm build fails with SEGV in ECDSA/DH. | ||
202 | |||
203 | Compiler bug, presumably at particular patch level. Remaining | ||
204 | hpux*-parisc*-cc configurations can be affected too. Drop optimization | ||
205 | level to +O2 when compiling bn_nist.o. | ||
206 | |||
207 | * solaris64-sparcv9-cc link failure | ||
208 | |||
209 | Solaris 8 ar can fail to maintain symbol table in .a, which results in | ||
210 | link failures. Apply 109147-09 or later or modify Makefile generated | ||
211 | by ./Configure solaris64-sparcv9-cc and replace RANLIB assignment with | ||
212 | |||
213 | RANLIB= /usr/ccs/bin/ar rs | ||
diff --git a/src/lib/libssl/src/README b/src/lib/libssl/src/README index de51583a6f..10b74d19d2 100644 --- a/src/lib/libssl/src/README +++ b/src/lib/libssl/src/README | |||
@@ -1,5 +1,5 @@ | |||
1 | 1 | ||
2 | OpenSSL 1.0.1c 10 May 2012 | 2 | OpenSSL 1.0.1g 7 Apr 2014 |
3 | 3 | ||
4 | Copyright (c) 1998-2011 The OpenSSL Project | 4 | Copyright (c) 1998-2011 The OpenSSL Project |
5 | Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson | 5 | Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson |
@@ -190,7 +190,7 @@ | |||
190 | reason as to why that feature isn't implemented. | 190 | reason as to why that feature isn't implemented. |
191 | 191 | ||
192 | Patches should be as up to date as possible, preferably relative to the | 192 | Patches should be as up to date as possible, preferably relative to the |
193 | current CVS or the last snapshot. They should follow the coding style of | 193 | current Git or the last snapshot. They should follow the coding style of |
194 | OpenSSL and compile without warnings. Some of the core team developer targets | 194 | OpenSSL and compile without warnings. Some of the core team developer targets |
195 | can be used for testing purposes, (debug-steve64, debug-geoff etc). OpenSSL | 195 | can be used for testing purposes, (debug-steve64, debug-geoff etc). OpenSSL |
196 | compiles on many varied platforms: try to ensure you only use portable | 196 | compiles on many varied platforms: try to ensure you only use portable |
diff --git a/src/lib/libssl/src/VMS/TODO b/src/lib/libssl/src/VMS/TODO deleted file mode 100644 index 359e069191..0000000000 --- a/src/lib/libssl/src/VMS/TODO +++ /dev/null | |||
@@ -1,18 +0,0 @@ | |||
1 | TODO: | ||
2 | ===== | ||
3 | |||
4 | There are a few things that need to be worked out in the VMS version of | ||
5 | OpenSSL, still: | ||
6 | |||
7 | - Description files. ("Makefile's" :-)) | ||
8 | - Script code to link an already compiled build tree. | ||
9 | - A VMSINSTALlable version (way in the future, unless someone else hacks). | ||
10 | - shareable images (DLL for you Windows folks). | ||
11 | |||
12 | There may be other things that I have missed and that may be desirable. | ||
13 | Please send mail to <openssl-users@openssl.org> or to me directly if you | ||
14 | have any ideas. | ||
15 | |||
16 | -- | ||
17 | Richard Levitte <richard@levitte.org> | ||
18 | 1999-05-24 | ||
diff --git a/src/lib/libssl/src/VMS/VMSify-conf.pl b/src/lib/libssl/src/VMS/VMSify-conf.pl deleted file mode 100644 index d3be6a29e7..0000000000 --- a/src/lib/libssl/src/VMS/VMSify-conf.pl +++ /dev/null | |||
@@ -1,34 +0,0 @@ | |||
1 | #! /usr/bin/perl | ||
2 | |||
3 | use strict; | ||
4 | use warnings; | ||
5 | |||
6 | my @directory_vars = ( "dir", "certs", "crl_dir", "new_certs_dir" ); | ||
7 | my @file_vars = ( "database", "certificate", "serial", "crlnumber", | ||
8 | "crl", "private_key", "RANDFILE" ); | ||
9 | while(<STDIN>) { | ||
10 | chomp; | ||
11 | foreach my $d (@directory_vars) { | ||
12 | if (/^(\s*\#?\s*${d}\s*=\s*)\.\/([^\s\#]*)([\s\#].*)$/) { | ||
13 | $_ = "$1sys\\\$disk:\[.$2$3"; | ||
14 | } elsif (/^(\s*\#?\s*${d}\s*=\s*)(\w[^\s\#]*)([\s\#].*)$/) { | ||
15 | $_ = "$1sys\\\$disk:\[.$2$3"; | ||
16 | } | ||
17 | s/^(\s*\#?\s*${d}\s*=\s*\$\w+)\/([^\s\#]*)([\s\#].*)$/$1.$2\]$3/; | ||
18 | while(/^(\s*\#?\s*${d}\s*=\s*(\$\w+\.|sys\\\$disk:\[\.)[\w\.]+)\/([^\]]*)\](.*)$/) { | ||
19 | $_ = "$1.$3]$4"; | ||
20 | } | ||
21 | } | ||
22 | foreach my $f (@file_vars) { | ||
23 | s/^(\s*\#?\s*${f}\s*=\s*)\.\/(.*)$/$1sys\\\$disk:\[\/$2/; | ||
24 | while(/^(\s*\#?\s*${f}\s*=\s*(\$\w+|sys\\\$disk:\[)[^\/]*)\/(\w+\/[^\s\#]*)([\s\#].*)$/) { | ||
25 | $_ = "$1.$3$4"; | ||
26 | } | ||
27 | if (/^(\s*\#?\s*${f}\s*=\s*(\$\w+|sys\\\$disk:\[)[^\/]*)\/(\w+)([\s\#].*)$/) { | ||
28 | $_ = "$1]$3.$4"; | ||
29 | } elsif (/^(\s*\#?\s*${f}\s*=\s*(\$\w+|sys\\\$disk:\[)[^\/]*)\/([^\s\#]*)([\s\#].*)$/) { | ||
30 | $_ = "$1]$3$4"; | ||
31 | } | ||
32 | } | ||
33 | print $_,"\n"; | ||
34 | } | ||
diff --git a/src/lib/libssl/src/VMS/WISHLIST.TXT b/src/lib/libssl/src/VMS/WISHLIST.TXT deleted file mode 100644 index c151fc8ea7..0000000000 --- a/src/lib/libssl/src/VMS/WISHLIST.TXT +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | * Have the building procedure contain a LINK-only possibility. | ||
2 | Wished by Mark Daniel <mark.daniel@dsto.defence.gov.au> | ||
3 | |||
4 | One way to enable that is also to go over to DESCRIP.MMS files. | ||
diff --git a/src/lib/libssl/src/VMS/install-vms.com b/src/lib/libssl/src/VMS/install-vms.com deleted file mode 100755 index 7da8b2153b..0000000000 --- a/src/lib/libssl/src/VMS/install-vms.com +++ /dev/null | |||
@@ -1,67 +0,0 @@ | |||
1 | $! install-vms.com -- Installs the files in a given directory tree | ||
2 | $! | ||
3 | $! Author: Richard Levitte <richard@levitte.org> | ||
4 | $! Time of creation: 23-MAY-1998 19:22 | ||
5 | $! | ||
6 | $! P1 root of the directory tree | ||
7 | $! | ||
8 | $! | ||
9 | $! Announce/identify. | ||
10 | $! | ||
11 | $ proc = f$environment( "procedure") | ||
12 | $ write sys$output "@@@ "+ - | ||
13 | f$parse( proc, , , "name")+ f$parse( proc, , , "type") | ||
14 | $! | ||
15 | $ on error then goto tidy | ||
16 | $ on control_c then goto tidy | ||
17 | $! | ||
18 | $ if p1 .eqs. "" | ||
19 | $ then | ||
20 | $ write sys$output "First argument missing." | ||
21 | $ write sys$output - | ||
22 | "Should be the directory where you want things installed." | ||
23 | $ exit | ||
24 | $ endif | ||
25 | $ | ||
26 | $ if (f$getsyi( "cpu") .lt. 128) | ||
27 | $ then | ||
28 | $ arch = "VAX" | ||
29 | $ else | ||
30 | $ arch = f$edit( f$getsyi( "arch_name"), "upcase") | ||
31 | $ if (arch .eqs. "") then arch = "UNK" | ||
32 | $ endif | ||
33 | $ | ||
34 | $ root = f$parse( P1, "[]A.;0", , , "SYNTAX_ONLY, NO_CONCEAL")- "A.;0" | ||
35 | $ root_dev = f$parse( root, , , "device", "syntax_only") | ||
36 | $ root_dir = f$parse( root, , , "directory", "syntax_only") - - | ||
37 | "[000000." - "][" - "[" - "]" | ||
38 | $ root = root_dev + "[" + root_dir | ||
39 | $ | ||
40 | $ define /nolog wrk_sslroot 'root'.] /translation_attributes = concealed | ||
41 | $ define /nolog wrk_sslinclude wrk_sslroot:[include] | ||
42 | $ | ||
43 | $ if f$parse( "wrk_sslroot:[000000]") .eqs. "" then - | ||
44 | create /directory /log wrk_sslroot:[000000] | ||
45 | $ if f$parse( "wrk_sslinclude:") .eqs. "" then - | ||
46 | create /directory /log wrk_sslinclude: | ||
47 | $ if f$parse( "wrk_sslroot:[vms]") .eqs. "" then - | ||
48 | create /directory /log wrk_sslroot:[vms] | ||
49 | $! | ||
50 | $ copy /log /protection = world:re openssl_startup.com wrk_sslroot:[vms] | ||
51 | $ copy /log /protection = world:re openssl_undo.com wrk_sslroot:[vms] | ||
52 | $ copy /log /protection = world:re openssl_utils.com wrk_sslroot:[vms] | ||
53 | $! | ||
54 | $ tidy: | ||
55 | $! | ||
56 | $ call deass wrk_sslroot | ||
57 | $ call deass wrk_sslinclude | ||
58 | $! | ||
59 | $ exit | ||
60 | $! | ||
61 | $ deass: subroutine | ||
62 | $ if (f$trnlnm( p1, "LNM$PROCESS") .nes. "") | ||
63 | $ then | ||
64 | $ deassign /process 'p1' | ||
65 | $ endif | ||
66 | $ endsubroutine | ||
67 | $! | ||
diff --git a/src/lib/libssl/src/VMS/install.com b/src/lib/libssl/src/VMS/install.com deleted file mode 100644 index 9c9c0e1e27..0000000000 --- a/src/lib/libssl/src/VMS/install.com +++ /dev/null | |||
@@ -1,79 +0,0 @@ | |||
1 | $! INSTALL.COM -- Installs the files in a given directory tree | ||
2 | $! | ||
3 | $! Author: Richard Levitte <richard@levitte.org> | ||
4 | $! Time of creation: 23-MAY-1998 19:22 | ||
5 | $! | ||
6 | $! P1 root of the directory tree | ||
7 | $! | ||
8 | $ IF P1 .EQS. "" | ||
9 | $ THEN | ||
10 | $ WRITE SYS$OUTPUT "First argument missing." | ||
11 | $ WRITE SYS$OUTPUT "Should be the directory where you want things installed." | ||
12 | $ EXIT | ||
13 | $ ENDIF | ||
14 | $ | ||
15 | $ IF (F$GETSYI("CPU").LT.128) | ||
16 | $ THEN | ||
17 | $ ARCH := VAX | ||
18 | $ ELSE | ||
19 | $ ARCH = F$EDIT( F$GETSYI( "ARCH_NAME"), "UPCASE") | ||
20 | $ IF (ARCH .EQS. "") THEN ARCH = "UNK" | ||
21 | $ ENDIF | ||
22 | $ | ||
23 | $ ROOT = F$PARSE(P1,"[]A.;0",,,"SYNTAX_ONLY,NO_CONCEAL") - "A.;0" | ||
24 | $ ROOT_DEV = F$PARSE(ROOT,,,"DEVICE","SYNTAX_ONLY") | ||
25 | $ ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") - | ||
26 | - "[000000." - "][" - "[" - "]" | ||
27 | $ ROOT = ROOT_DEV + "[" + ROOT_DIR | ||
28 | $ | ||
29 | $ DEFINE/NOLOG WRK_SSLROOT 'ROOT'.] /TRANS=CONC | ||
30 | $ DEFINE/NOLOG WRK_SSLINCLUDE WRK_SSLROOT:[INCLUDE] | ||
31 | $ | ||
32 | $ IF F$PARSE("WRK_SSLROOT:[000000]") .EQS. "" THEN - | ||
33 | CREATE/DIR/LOG WRK_SSLROOT:[000000] | ||
34 | $ IF F$PARSE("WRK_SSLINCLUDE:") .EQS. "" THEN - | ||
35 | CREATE/DIR/LOG WRK_SSLINCLUDE: | ||
36 | $ IF F$PARSE("WRK_SSLROOT:[VMS]") .EQS. "" THEN - | ||
37 | CREATE/DIR/LOG WRK_SSLROOT:[VMS] | ||
38 | $ | ||
39 | $ IF F$SEARCH("WRK_SSLINCLUDE:vms_idhacks.h") .NES. "" THEN - | ||
40 | DELETE WRK_SSLINCLUDE:vms_idhacks.h;* | ||
41 | $ | ||
42 | $ OPEN/WRITE SF WRK_SSLROOT:[VMS]OPENSSL_STARTUP.COM | ||
43 | $ WRITE SYS$OUTPUT "%OPEN-I-CREATED, ",F$SEARCH("WRK_SSLROOT:[VMS]OPENSSL_STARTUP.COM")," created." | ||
44 | $ WRITE SF "$! Startup file for Openssl" | ||
45 | $ WRITE SF "$!" | ||
46 | $ WRITE SF "$! Do not edit this file, as it will be regenerated during next installation." | ||
47 | $ WRITE SF "$! Instead, add or change SSLROOT:[VMS]OPENSSL_SYSTARTUP.COM" | ||
48 | $ WRITE SF "$!" | ||
49 | $ WRITE SF "$! P1 a qualifier to DEFINE. For example ""/SYSTEM"" to get the logical names" | ||
50 | $ WRITE SF "$! defined in the system logical name table." | ||
51 | $ WRITE SF "$!" | ||
52 | $ WRITE SF "$ IF (F$GETSYI(""CPU"").LT.128)" | ||
53 | $ WRITE SF "$ THEN" | ||
54 | $ WRITE SF "$ ARCH := VAX" | ||
55 | $ WRITE SF "$ ELSE" | ||
56 | $ WRITE SF "$ ARCH = F$EDIT( F$GETSYI( ""ARCH_NAME""), ""UPCASE"")" | ||
57 | $ WRITE SF "$ IF (ARCH .EQS. """") THEN ARCH = ""UNK""" | ||
58 | $ WRITE SF "$ ENDIF" | ||
59 | $ WRITE SF "$ DEFINE/NOLOG'P1 SSLROOT ",ROOT,".] /TRANS=CONC" | ||
60 | $ WRITE SF "$ DEFINE/NOLOG'P1 SSLLIB SSLROOT:['ARCH'_LIB]" | ||
61 | $ WRITE SF "$ DEFINE/NOLOG'P1 SSLINCLUDE SSLROOT:[INCLUDE]" | ||
62 | $ WRITE SF "$ DEFINE/NOLOG'P1 SSLEXE SSLROOT:['ARCH'_EXE]" | ||
63 | $ WRITE SF "$ DEFINE/NOLOG'P1 SSLCERTS SSLROOT:[CERTS]" | ||
64 | $ WRITE SF "$ DEFINE/NOLOG'P1 SSLPRIVATE SSLROOT:[PRIVATE]" | ||
65 | $ WRITE SF "$" | ||
66 | $ WRITE SF "$! This is program can include <openssl/{foo}.h>" | ||
67 | $ WRITE SF "$ DEFINE/NOLOG'P1 OPENSSL SSLINCLUDE:" | ||
68 | $ WRITE SF "$" | ||
69 | $ WRITE SF "$ IF F$SEARCH(""SSLROOT:[VMS]OPENSSL_SYSTARTUP.COM"") .NES."""" THEN -" | ||
70 | $ WRITE SF " @SSLROOT:[VMS]OPENSSL_SYSTARTUP.COM" | ||
71 | $ WRITE SF "$" | ||
72 | $ WRITE SF "$ EXIT" | ||
73 | $ CLOSE SF | ||
74 | $ SET FILE/PROT=WORLD:RE WRK_SSLROOT:[VMS]OPENSSL_STARTUP.COM | ||
75 | $ | ||
76 | $ COPY OPENSSL_UTILS.COM WRK_SSLROOT:[VMS]/LOG | ||
77 | $ SET FILE/PROT=WORLD:RE WRK_SSLROOT:[VMS]OPENSSL_UTILS.COM | ||
78 | $ | ||
79 | $ EXIT | ||
diff --git a/src/lib/libssl/src/VMS/mkshared.com b/src/lib/libssl/src/VMS/mkshared.com deleted file mode 100644 index b0d1fdaac3..0000000000 --- a/src/lib/libssl/src/VMS/mkshared.com +++ /dev/null | |||
@@ -1,476 +0,0 @@ | |||
1 | $! MKSHARED.COM -- Create shareable images. | ||
2 | $! | ||
3 | $! P1: "64" for 64-bit pointers. | ||
4 | $! | ||
5 | $! P2: Zlib object library path (optional). | ||
6 | $! | ||
7 | $! Input: [.UTIL]LIBEAY.NUM,[.xxx.EXE.CRYPTO]SSL_LIBCRYPTO[32].OLB | ||
8 | $! [.UTIL]SSLEAY.NUM,[.xxx.EXE.SSL]SSL_LIBSSL[32].OLB | ||
9 | $! [.CRYPTO.xxx]OPENSSLCONF.H | ||
10 | $! Output: [.xxx.EXE.CRYPTO]SSL_LIBCRYPTO_SHR[32].OPT,.MAP,.EXE | ||
11 | $! [.xxx.EXE.SSL]SSL_LIBSSL_SRH[32].OPT,.MAP,.EXE | ||
12 | $! | ||
13 | $! So far, tests have only been made on VMS for Alpha. VAX will come in time. | ||
14 | $! =========================================================================== | ||
15 | $! | ||
16 | $! Announce/identify. | ||
17 | $! | ||
18 | $ proc = f$environment( "procedure") | ||
19 | $ write sys$output "@@@ "+ - | ||
20 | f$parse( proc, , , "name")+ f$parse( proc, , , "type") | ||
21 | $! | ||
22 | $! Save the original default device:[directory]. | ||
23 | $! | ||
24 | $ def_orig = f$environment( "default") | ||
25 | $ on error then goto tidy | ||
26 | $ on control_c then goto tidy | ||
27 | $! | ||
28 | $! SET DEFAULT to the main kit directory. | ||
29 | $! | ||
30 | $ proc = f$environment("procedure") | ||
31 | $ proc = f$parse( "A.;", proc)- "A.;" | ||
32 | $ set default 'proc' | ||
33 | $ set default [-] | ||
34 | $! | ||
35 | $! ----- Prepare info for processing: version number and file info | ||
36 | $ gosub read_version_info | ||
37 | $ if libver .eqs. "" | ||
38 | $ then | ||
39 | $ write sys$error "ERROR: Couldn't find any library version info..." | ||
40 | $ go to tidy: | ||
41 | $ endif | ||
42 | $ | ||
43 | $ if (f$getsyi("cpu") .lt. 128) | ||
44 | $ then | ||
45 | $ arch_vax = 1 | ||
46 | $ arch = "VAX" | ||
47 | $ else | ||
48 | $ arch_vax = 0 | ||
49 | $ arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") | ||
50 | $ if (arch .eqs. "") then arch = "UNK" | ||
51 | $ endif | ||
52 | $! | ||
53 | $ archd = arch | ||
54 | $ lib32 = "32" | ||
55 | $ shr = "SHR32" | ||
56 | $! | ||
57 | $ if (p1 .nes. "") | ||
58 | $ then | ||
59 | $ if (p1 .eqs. "64") | ||
60 | $ then | ||
61 | $ archd = arch+ "_64" | ||
62 | $ lib32 = "" | ||
63 | $ shr = "SHR" | ||
64 | $ else | ||
65 | $ if (p1 .nes. "32") | ||
66 | $ then | ||
67 | $ write sys$output "Second argument invalid." | ||
68 | $ write sys$output "It should be "32", "64", or nothing." | ||
69 | $ exit | ||
70 | $ endif | ||
71 | $ endif | ||
72 | $ endif | ||
73 | $! | ||
74 | $! ----- Prepare info for processing: disabled algorithms info | ||
75 | $ gosub read_disabled_algorithms_info | ||
76 | $! | ||
77 | $ ZLIB = p2 | ||
78 | $ zlib_lib = "" | ||
79 | $ if (ZLIB .nes. "") | ||
80 | $ then | ||
81 | $ file2 = f$parse( ZLIB, "libz.olb", , , "syntax_only") | ||
82 | $ if (f$search( file2) .eqs. "") | ||
83 | $ then | ||
84 | $ write sys$output "" | ||
85 | $ write sys$output "The Option ", ZLIB, " Is Invalid." | ||
86 | $ write sys$output " Can't find library: ''file2'" | ||
87 | $ write sys$output "" | ||
88 | $ goto tidy | ||
89 | $ endif | ||
90 | $ zlib_lib = ", ''file2' /library" | ||
91 | $ endif | ||
92 | $! | ||
93 | $ if (arch_vax) | ||
94 | $ then | ||
95 | $ libtit = "CRYPTO_TRANSFER_VECTOR" | ||
96 | $ libid = "Crypto" | ||
97 | $ libnum = "[.UTIL]LIBEAY.NUM" | ||
98 | $ libdir = "[.''ARCHD'.EXE.CRYPTO]" | ||
99 | $ libmar = "''libdir'SSL_LIBCRYPTO_''shr'.MAR" | ||
100 | $ libolb = "''libdir'SSL_LIBCRYPTO''lib32'.OLB" | ||
101 | $ libopt = "''libdir'SSL_LIBCRYPTO_''shr'.OPT" | ||
102 | $ libobj = "''libdir'SSL_LIBCRYPTO_''shr'.OBJ" | ||
103 | $ libmap = "''libdir'SSL_LIBCRYPTO_''shr'.MAP" | ||
104 | $ libgoal= "''libdir'SSL_LIBCRYPTO_''shr'.EXE" | ||
105 | $ libref = "" | ||
106 | $ libvec = "LIBCRYPTO" | ||
107 | $ if f$search( libolb) .nes. "" then gosub create_vax_shr | ||
108 | $ libtit = "SSL_TRANSFER_VECTOR" | ||
109 | $ libid = "SSL" | ||
110 | $ libnum = "[.UTIL]SSLEAY.NUM" | ||
111 | $ libdir = "[.''ARCHD'.EXE.SSL]" | ||
112 | $ libmar = "''libdir'SSL_LIBSSL_''shr'.MAR" | ||
113 | $ libolb = "''libdir'SSL_LIBSSL''lib32'.OLB" | ||
114 | $ libopt = "''libdir'SSL_LIBSSL_''shr'.OPT" | ||
115 | $ libobj = "''libdir'SSL_LIBSSL_''shr'.OBJ" | ||
116 | $ libmap = "''libdir'SSL_LIBSSL_''shr'.MAP" | ||
117 | $ libgoal= "''libdir'SSL_LIBSSL_''shr'.EXE" | ||
118 | $ libref = "[.''ARCHD'.EXE.CRYPTO]SSL_LIBCRYPTO_''shr'.EXE" | ||
119 | $ libvec = "LIBSSL" | ||
120 | $ if f$search( libolb) .nes. "" then gosub create_vax_shr | ||
121 | $ else | ||
122 | $ libid = "Crypto" | ||
123 | $ libnum = "[.UTIL]LIBEAY.NUM" | ||
124 | $ libdir = "[.''ARCHD'.EXE.CRYPTO]" | ||
125 | $ libolb = "''libdir'SSL_LIBCRYPTO''lib32'.OLB" | ||
126 | $ libopt = "''libdir'SSL_LIBCRYPTO_''shr'.OPT" | ||
127 | $ libmap = "''libdir'SSL_LIBCRYPTO_''shr'.MAP" | ||
128 | $ libgoal= "''libdir'SSL_LIBCRYPTO_''shr'.EXE" | ||
129 | $ libref = "" | ||
130 | $ if f$search( libolb) .nes. "" then gosub create_nonvax_shr | ||
131 | $ libid = "SSL" | ||
132 | $ libnum = "[.UTIL]SSLEAY.NUM" | ||
133 | $ libdir = "[.''ARCHD'.EXE.SSL]" | ||
134 | $ libolb = "''libdir'SSL_LIBSSL''lib32'.OLB" | ||
135 | $ libopt = "''libdir'SSL_LIBSSL_''shr'.OPT" | ||
136 | $ libmap = "''libdir'SSL_LIBSSL_''shr'.MAP" | ||
137 | $ libgoal= "''libdir'SSL_LIBSSL_''shr'.EXE" | ||
138 | $ libref = "[.''ARCHD'.EXE.CRYPTO]SSL_LIBCRYPTO_''shr'.EXE" | ||
139 | $ if f$search( libolb) .nes. "" then gosub create_nonvax_shr | ||
140 | $ endif | ||
141 | $! | ||
142 | $ tidy: | ||
143 | $! | ||
144 | $! Close any open files. | ||
145 | $! | ||
146 | $ if (f$trnlnm( "libnum", "LNM$PROCESS", 0, "SUPERVISOR") .nes. "") then - | ||
147 | close libnum | ||
148 | $! | ||
149 | $ if (f$trnlnm( "mar", "LNM$PROCESS", 0, "SUPERVISOR") .nes. "") then - | ||
150 | close mar | ||
151 | $! | ||
152 | $ if (f$trnlnm( "opt", "LNM$PROCESS", 0, "SUPERVISOR") .nes. "") then - | ||
153 | close opt | ||
154 | $! | ||
155 | $ if (f$trnlnm( "vf", "LNM$PROCESS", 0, "SUPERVISOR") .nes. "") then - | ||
156 | close vf | ||
157 | $! | ||
158 | $! Restore the original default device:[directory]. | ||
159 | $! | ||
160 | $ set default 'def_orig' | ||
161 | $ exit | ||
162 | $ | ||
163 | $! ----- Subroutines to build the shareable libraries | ||
164 | $! For each supported architecture, there's a main shareable library | ||
165 | $! creator, which is called from the main code above. | ||
166 | $! The creator will define a number of variables to tell the next levels of | ||
167 | $! subroutines what routines to use to write to the option files, call the | ||
168 | $! main processor, read_func_num, and when that is done, it will write version | ||
169 | $! data at the end of the .opt file, close it, and link the library. | ||
170 | $! | ||
171 | $! read_func_num reads through a .num file and calls the writer routine for | ||
172 | $! each line. It's also responsible for checking that order is properly kept | ||
173 | $! in the .num file, check that each line applies to VMS and the architecture, | ||
174 | $! and to fill in "holes" with dummy entries. | ||
175 | $! | ||
176 | $! The creator routines depend on the following variables: | ||
177 | $! libnum The name of the .num file to use as input | ||
178 | $! libolb The name of the object library to build from | ||
179 | $! libid The identification string of the shareable library | ||
180 | $! libopt The name of the .opt file to write | ||
181 | $! libtit The title of the assembler transfer vector file (VAX only) | ||
182 | $! libmar The name of the assembler transfer vector file (VAX only) | ||
183 | $! libmap The name of the map file to write | ||
184 | $! libgoal The name of the shareable library to write | ||
185 | $! libref The name of a shareable library to link in | ||
186 | $! | ||
187 | $! read_func_num depends on the following variables from the creator: | ||
188 | $! libwriter The name of the writer routine to call for each .num file line | ||
189 | $! ----- | ||
190 | $ | ||
191 | $! ----- Subroutines for non-VAX | ||
192 | $! ----- | ||
193 | $! The creator routine | ||
194 | $ create_nonvax_shr: | ||
195 | $ open /write opt 'libopt' | ||
196 | $ write opt "identification=""",libid," ",libverstr,"""" | ||
197 | $ write opt libolb, " /library" | ||
198 | $ if libref .nes. "" then write opt libref,"/SHARE" | ||
199 | $ write opt "SYMBOL_VECTOR=(-" | ||
200 | $ libfirstentry := true | ||
201 | $ libwrch := opt | ||
202 | $ libwriter := write_nonvax_transfer_entry | ||
203 | $ textcount = 0 | ||
204 | $ gosub read_func_num | ||
205 | $ write opt ")" | ||
206 | $ write opt "GSMATCH=",libvmatch,",",libver | ||
207 | $ close opt | ||
208 | $ link /map = 'libmap' /full /share = 'libgoal' 'libopt' /options - | ||
209 | 'zlib_lib' | ||
210 | $ return | ||
211 | $ | ||
212 | $! The record writer routine | ||
213 | $ write_nonvax_transfer_entry: | ||
214 | $ if libentry .eqs. ".dummy" then return | ||
215 | $ if info_kind .eqs. "VARIABLE" | ||
216 | $ then | ||
217 | $ pr:=DATA | ||
218 | $ else | ||
219 | $ pr:=PROCEDURE | ||
220 | $ endif | ||
221 | $ textcount_this = f$length(pr) + f$length(libentry) + 5 | ||
222 | $ if textcount + textcount_this .gt. 1024 | ||
223 | $ then | ||
224 | $ write opt ")" | ||
225 | $ write opt "SYMBOL_VECTOR=(-" | ||
226 | $ textcount = 16 | ||
227 | $ libfirstentry := true | ||
228 | $ endif | ||
229 | $ if libfirstentry | ||
230 | $ then | ||
231 | $ write 'libwrch' " ",libentry,"=",pr," -" | ||
232 | $ else | ||
233 | $ write 'libwrch' " ,",libentry,"=",pr," -" | ||
234 | $ endif | ||
235 | $ libfirstentry := false | ||
236 | $ textcount = textcount + textcount_this | ||
237 | $ return | ||
238 | $ | ||
239 | $! ----- Subroutines for VAX | ||
240 | $! ----- | ||
241 | $! The creator routine | ||
242 | $ create_vax_shr: | ||
243 | $ open /write mar 'libmar' | ||
244 | $ type sys$input:/out=mar: | ||
245 | ; | ||
246 | ; Transfer vector for VAX shareable image | ||
247 | ; | ||
248 | $ write mar " .TITLE ",libtit | ||
249 | $ write mar " .IDENT /",libid,"/" | ||
250 | $ type sys$input:/out=mar: | ||
251 | ; | ||
252 | ; Define macro to assist in building transfer vector entries. Each entry | ||
253 | ; should take no more than 8 bytes. | ||
254 | ; | ||
255 | .MACRO FTRANSFER_ENTRY routine | ||
256 | .ALIGN QUAD | ||
257 | .TRANSFER routine | ||
258 | .MASK routine | ||
259 | JMP routine+2 | ||
260 | .ENDM FTRANSFER_ENTRY | ||
261 | ; | ||
262 | ; Place entries in own program section. | ||
263 | ; | ||
264 | $ write mar " .PSECT $$",libvec,",QUAD,PIC,USR,CON,REL,LCL,SHR,EXE,RD,NOWRT" | ||
265 | $ write mar libvec,"_xfer:" | ||
266 | $ libwrch := mar | ||
267 | $ libwriter := write_vax_ftransfer_entry | ||
268 | $ gosub read_func_num | ||
269 | $ type sys$input:/out=mar: | ||
270 | ; | ||
271 | ; Allocate extra storage at end of vector to allow for expansion. | ||
272 | ; | ||
273 | $ write mar " .BLKB 32768-<.-",libvec,"_xfer> ; 64 pages total." | ||
274 | $! libwriter := write_vax_vtransfer_entry | ||
275 | $! gosub read_func_num | ||
276 | $ write mar " .END" | ||
277 | $ close mar | ||
278 | $ open /write opt 'libopt' | ||
279 | $ write opt "identification=""",libid," ",libverstr,"""" | ||
280 | $ write opt libobj | ||
281 | $ write opt libolb, " /library" | ||
282 | $ if libref .nes. "" then write opt libref,"/SHARE" | ||
283 | $ type sys$input:/out=opt: | ||
284 | ! | ||
285 | ! Ensure transfer vector is at beginning of image | ||
286 | ! | ||
287 | CLUSTER=FIRST | ||
288 | $ write opt "COLLECT=FIRST,$$",libvec | ||
289 | $ write opt "GSMATCH=",libvmatch,",",libver | ||
290 | $ type sys$input:/out=opt: | ||
291 | ! | ||
292 | ! make psects nonshareable so image can be installed. | ||
293 | ! | ||
294 | PSECT_ATTR=$CHAR_STRING_CONSTANTS,NOWRT | ||
295 | $ libwrch := opt | ||
296 | $ libwriter := write_vax_psect_attr | ||
297 | $ gosub read_func_num | ||
298 | $ close opt | ||
299 | $ macro/obj='libobj' 'libmar' | ||
300 | $ link /map = 'libmap' /full /share = 'libgoal' 'libopt' /options - | ||
301 | 'zlib_lib' | ||
302 | $ return | ||
303 | $ | ||
304 | $! The record writer routine for VAX functions | ||
305 | $ write_vax_ftransfer_entry: | ||
306 | $ if info_kind .nes. "FUNCTION" then return | ||
307 | $ if libentry .eqs ".dummy" | ||
308 | $ then | ||
309 | $ write 'libwrch' " .BLKB 8" ! Dummy is zeroes... | ||
310 | $ else | ||
311 | $ write 'libwrch' " FTRANSFER_ENTRY ",libentry | ||
312 | $ endif | ||
313 | $ return | ||
314 | $! The record writer routine for VAX variables (should never happen!) | ||
315 | $ write_vax_psect_attr: | ||
316 | $ if info_kind .nes. "VARIABLE" then return | ||
317 | $ if libentry .eqs ".dummy" then return | ||
318 | $ write 'libwrch' "PSECT_ATTR=",libentry,",NOSHR" | ||
319 | $ return | ||
320 | $ | ||
321 | $! ----- Common subroutines | ||
322 | $! ----- | ||
323 | $! The .num file reader. This one has great responsibility. | ||
324 | $ read_func_num: | ||
325 | $ open /read libnum 'libnum' | ||
326 | $ goto read_nums | ||
327 | $ | ||
328 | $ read_nums: | ||
329 | $ libentrynum=0 | ||
330 | $ liblastentry:=false | ||
331 | $ entrycount=0 | ||
332 | $ loop: | ||
333 | $ read /end=loop_end /err=loop_end libnum line | ||
334 | $ lin = f$edit( line, "COMPRESS,TRIM") | ||
335 | $! Skip a "#" comment line. | ||
336 | $ if (f$extract( 0, 1, lin) .eqs. "#") then goto loop | ||
337 | $ entrynum = f$int(f$element( 1, " ", lin)) | ||
338 | $ entryinfo = f$element( 2, " ", lin) | ||
339 | $ curentry = f$element( 0, " ", lin) | ||
340 | $ info_exist = f$element( 0, ":", entryinfo) | ||
341 | $ info_platforms = ","+ f$element(1, ":", entryinfo)+ "," | ||
342 | $ info_kind = f$element( 2, ":", entryinfo) | ||
343 | $ info_algorithms = ","+ f$element( 3, ":", entryinfo)+ "," | ||
344 | $ if info_exist .eqs. "NOEXIST" then goto loop | ||
345 | $ truesum = 0 | ||
346 | $ falsesum = 0 | ||
347 | $ negatives = 1 | ||
348 | $ plat_i = 0 | ||
349 | $ loop1: | ||
350 | $ plat_entry = f$element( plat_i, ",", info_platforms) | ||
351 | $ plat_i = plat_i + 1 | ||
352 | $ if plat_entry .eqs. "" then goto loop1 | ||
353 | $ if plat_entry .nes. "," | ||
354 | $ then | ||
355 | $ if f$extract(0,1,plat_entry) .nes. "!" then negatives = 0 | ||
356 | $ if (arch_vax) | ||
357 | $ then | ||
358 | $ if plat_entry .eqs. "EXPORT_VAR_AS_FUNCTION" then - | ||
359 | $ truesum = truesum + 1 | ||
360 | $ if plat_entry .eqs. "!EXPORT_VAR_AS_FUNCTION" then - | ||
361 | $ falsesum = falsesum + 1 | ||
362 | $ endif | ||
363 | $! | ||
364 | $ if ((plat_entry .eqs. "VMS") .or. - | ||
365 | ((plat_entry .eqs. "ZLIB") .and. (ZLIB .nes. "")) .or. - | ||
366 | (arch_vax .and. (plat_entry .eqs. "VMSVAX"))) then - | ||
367 | truesum = truesum + 1 | ||
368 | $! | ||
369 | $ if ((plat_entry .eqs. "!VMS") .or. - | ||
370 | (arch_vax .and. (plat_entry .eqs. "!VMSVAX"))) then - | ||
371 | falsesum = falsesum + 1 | ||
372 | $! | ||
373 | $ goto loop1 | ||
374 | $ endif | ||
375 | $ endloop1: | ||
376 | $!DEBUG!$ if info_platforms - "EXPORT_VAR_AS_FUNCTION" .nes. info_platforms | ||
377 | $!DEBUG!$ then | ||
378 | $!DEBUG!$ write sys$output line | ||
379 | $!DEBUG!$ write sys$output " truesum = ",truesum,- | ||
380 | $!DEBUG! ", negatives = ",negatives,", falsesum = ",falsesum | ||
381 | $!DEBUG!$ endif | ||
382 | $ if falsesum .ne. 0 then goto loop | ||
383 | $ if truesum+negatives .eq. 0 then goto loop | ||
384 | $ alg_i = 0 | ||
385 | $ loop2: | ||
386 | $ alg_entry = f$element(alg_i,",",info_algorithms) | ||
387 | $ alg_i = alg_i + 1 | ||
388 | $ if alg_entry .eqs. "" then goto loop2 | ||
389 | $ if alg_entry .nes. "," | ||
390 | $ then | ||
391 | $ if disabled_algorithms - ("," + alg_entry + ",") .nes disabled_algorithms then goto loop | ||
392 | $ if f$trnlnm("OPENSSL_NO_"+alg_entry) .nes. "" then goto loop | ||
393 | $ goto loop2 | ||
394 | $ endif | ||
395 | $ endloop2: | ||
396 | $ if info_platforms - "EXPORT_VAR_AS_FUNCTION" .nes. info_platforms | ||
397 | $ then | ||
398 | $!DEBUG!$ write sys$output curentry," ; ",entrynum," ; ",entryinfo | ||
399 | $ endif | ||
400 | $ redo: | ||
401 | $ next:=loop | ||
402 | $ tolibentry=curentry | ||
403 | $ if libentrynum .ne. entrynum | ||
404 | $ then | ||
405 | $ entrycount=entrycount+1 | ||
406 | $ if entrycount .lt. entrynum | ||
407 | $ then | ||
408 | $!DEBUG!$ write sys$output "Info: entrycount: ''entrycount', entrynum: ''entrynum' => 0" | ||
409 | $ tolibentry=".dummy" | ||
410 | $ next:=redo | ||
411 | $ endif | ||
412 | $ if entrycount .gt. entrynum | ||
413 | $ then | ||
414 | $ write sys$error "Decreasing library entry numbers! Can't continue" | ||
415 | $ write sys$error """",line,"""" | ||
416 | $ close libnum | ||
417 | $ return | ||
418 | $ endif | ||
419 | $ libentry=tolibentry | ||
420 | $!DEBUG!$ write sys$output entrycount," ",libentry," ",entryinfo | ||
421 | $ if libentry .nes. "" .and. libwriter .nes. "" then gosub 'libwriter' | ||
422 | $ else | ||
423 | $ write sys$error "Info: ""''curentry'"" is an alias for ""''libentry'"". Overriding..." | ||
424 | $ endif | ||
425 | $ libentrynum=entrycount | ||
426 | $ goto 'next' | ||
427 | $ loop_end: | ||
428 | $ close libnum | ||
429 | $ return | ||
430 | $ | ||
431 | $! The version number reader | ||
432 | $ read_version_info: | ||
433 | $ libver = "" | ||
434 | $ open /read vf [.CRYPTO]OPENSSLV.H | ||
435 | $ loop_rvi: | ||
436 | $ read/err=endloop_rvi/end=endloop_rvi vf rvi_line | ||
437 | $ if rvi_line - "SHLIB_VERSION_NUMBER """ .eqs. rvi_line then - | ||
438 | goto loop_rvi | ||
439 | $ libverstr = f$element(1,"""",rvi_line) | ||
440 | $ libvmajor = f$element(0,".",libverstr) | ||
441 | $ libvminor = f$element(1,".",libverstr) | ||
442 | $ libvedit = f$element(2,".",libverstr) | ||
443 | $ libvpatch = f$cvui(0,8,f$extract(1,1,libvedit)+"@")-f$cvui(0,8,"@") | ||
444 | $ libvedit = f$extract(0,1,libvedit) | ||
445 | $ libver = f$string(f$int(libvmajor)*100)+","+- | ||
446 | f$string(f$int(libvminor)*100+f$int(libvedit)*10+f$int(libvpatch)) | ||
447 | $ if libvmajor .eqs. "0" | ||
448 | $ then | ||
449 | $ libvmatch = "EQUAL" | ||
450 | $ else | ||
451 | $ ! Starting with the 1.0 release, backward compatibility should be | ||
452 | $ ! kept, so switch over to the following | ||
453 | $ libvmatch = "LEQUAL" | ||
454 | $ endif | ||
455 | $ endloop_rvi: | ||
456 | $ close vf | ||
457 | $ return | ||
458 | $ | ||
459 | $! The disabled algorithms reader | ||
460 | $ read_disabled_algorithms_info: | ||
461 | $ disabled_algorithms = "," | ||
462 | $ open /read cf [.CRYPTO.'ARCH']OPENSSLCONF.H | ||
463 | $ loop_rci: | ||
464 | $ read/err=endloop_rci/end=endloop_rci cf rci_line | ||
465 | $ rci_line = f$edit(rci_line,"TRIM,COMPRESS") | ||
466 | $ rci_ei = 0 | ||
467 | $ if f$extract(0,9,rci_line) .eqs. "# define " then rci_ei = 2 | ||
468 | $ if f$extract(0,8,rci_line) .eqs. "#define " then rci_ei = 1 | ||
469 | $ if rci_ei .eq. 0 then goto loop_rci | ||
470 | $ rci_e = f$element(rci_ei," ",rci_line) | ||
471 | $ if f$extract(0,11,rci_e) .nes. "OPENSSL_NO_" then goto loop_rci | ||
472 | $ disabled_algorithms = disabled_algorithms + f$extract(11,999,rci_e) + "," | ||
473 | $ goto loop_rci | ||
474 | $ endloop_rci: | ||
475 | $ close cf | ||
476 | $ return | ||
diff --git a/src/lib/libssl/src/VMS/multinet_shr.opt b/src/lib/libssl/src/VMS/multinet_shr.opt deleted file mode 100644 index 610f42dddb..0000000000 --- a/src/lib/libssl/src/VMS/multinet_shr.opt +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | multinet:multinet_socket_library.exe/share | ||
diff --git a/src/lib/libssl/src/VMS/openssl_startup.com b/src/lib/libssl/src/VMS/openssl_startup.com deleted file mode 100755 index 04bbbde886..0000000000 --- a/src/lib/libssl/src/VMS/openssl_startup.com +++ /dev/null | |||
@@ -1,108 +0,0 @@ | |||
1 | $! | ||
2 | $! Startup file for OpenSSL 1.x. | ||
3 | $! | ||
4 | $! 2011-03-05 SMS. | ||
5 | $! | ||
6 | $! This procedure must reside in the OpenSSL installation directory. | ||
7 | $! It will fail if it is copied to a different location. | ||
8 | $! | ||
9 | $! P1 qualifier(s) for DEFINE. For example, "/SYSTEM" to get the | ||
10 | $! logical names defined in the system logical name table. | ||
11 | $! | ||
12 | $! P2 "64", to use executables which were built with 64-bit pointers. | ||
13 | $! | ||
14 | $! Good (default) and bad status values. | ||
15 | $! | ||
16 | $ status = %x00010001 ! RMS$_NORMAL, normal successful completion. | ||
17 | $ rms_e_fnf = %x00018292 ! RMS$_FNF, file not found. | ||
18 | $! | ||
19 | $! Prepare for problems. | ||
20 | $! | ||
21 | $ orig_dev_dir = f$environment( "DEFAULT") | ||
22 | $ on control_y then goto clean_up | ||
23 | $ on error then goto clean_up | ||
24 | $! | ||
25 | $! Determine hardware architecture. | ||
26 | $! | ||
27 | $ if (f$getsyi( "cpu") .lt. 128) | ||
28 | $ then | ||
29 | $ arch_name = "VAX" | ||
30 | $ else | ||
31 | $ arch_name = f$edit( f$getsyi( "arch_name"), "upcase") | ||
32 | $ if (arch_name .eqs. "") then arch_name = "UNK" | ||
33 | $ endif | ||
34 | $! | ||
35 | $ if (p2 .eqs. "64") | ||
36 | $ then | ||
37 | $ arch_name_exe = arch_name+ "_64" | ||
38 | $ else | ||
39 | $ arch_name_exe = arch_name | ||
40 | $ endif | ||
41 | $! | ||
42 | $! Derive the OpenSSL installation device:[directory] from the location | ||
43 | $! of this command procedure. | ||
44 | $! | ||
45 | $ proc = f$environment( "procedure") | ||
46 | $ proc_dev_dir = f$parse( "A.;", proc, , , "no_conceal") - "A.;" | ||
47 | $ proc_dev = f$parse( proc_dev_dir, , , "device", "syntax_only") | ||
48 | $ proc_dir = f$parse( proc_dev_dir, , , "directory", "syntax_only") - - | ||
49 | ".][000000"- "[000000."- "]["- "["- "]" | ||
50 | $ proc_dev_dir = proc_dev+ "["+ proc_dir+ "]" | ||
51 | $ set default 'proc_dev_dir' | ||
52 | $ set default [-] | ||
53 | $ ossl_dev_dir = f$environment( "default") | ||
54 | $! | ||
55 | $! Check existence of expected directories (to see if this procedure has | ||
56 | $! been moved away from its proper place). | ||
57 | $! | ||
58 | $ if ((f$search( "certs.dir;1") .eqs. "") .or. - | ||
59 | (f$search( "include.dir;1") .eqs. "") .or. - | ||
60 | (f$search( "private.dir;1") .eqs. "") .or. - | ||
61 | (f$search( "vms.dir;1") .eqs. "")) | ||
62 | $ then | ||
63 | $ write sys$output - | ||
64 | " Can't find expected common OpenSSL directories in:" | ||
65 | $ write sys$output " ''ossl_dev_dir'" | ||
66 | $ status = rms_e_fnf | ||
67 | $ goto clean_up | ||
68 | $ endif | ||
69 | $! | ||
70 | $ if ((f$search( "''arch_name_exe'_exe.dir;1") .eqs. "") .or. - | ||
71 | (f$search( "''arch_name'_lib.dir;1") .eqs. "")) | ||
72 | $ then | ||
73 | $ write sys$output - | ||
74 | " Can't find expected architecture-specific OpenSSL directories in:" | ||
75 | $ write sys$output " ''ossl_dev_dir'" | ||
76 | $ status = rms_e_fnf | ||
77 | $ goto clean_up | ||
78 | $ endif | ||
79 | $! | ||
80 | $! All seems well (enough). Define the OpenSSL logical names. | ||
81 | $! | ||
82 | $ ossl_root = ossl_dev_dir- "]"+ ".]" | ||
83 | $ define /translation_attributes = concealed /nolog'p1 SSLROOT 'ossl_root' | ||
84 | $ define /nolog 'p1' SSLCERTS sslroot:[certs] | ||
85 | $ define /nolog 'p1' SSLINCLUDE sslroot:[include] | ||
86 | $ define /nolog 'p1' SSLPRIVATE sslroot:[private] | ||
87 | $ define /nolog 'p1' SSLEXE sslroot:['arch_name_exe'_exe] | ||
88 | $ define /nolog 'p1' SSLLIB sslroot:['arch_name'_lib] | ||
89 | $! | ||
90 | $! Defining OPENSSL lets a C program use "#include <openssl/{foo}.h>": | ||
91 | $ define /nolog 'p1' OPENSSL SSLINCLUDE: | ||
92 | $! | ||
93 | $! Run a site-specific procedure, if it exists. | ||
94 | $! | ||
95 | $ if f$search( "sslroot:[vms]openssl_systartup.com") .nes."" then - | ||
96 | @ sslroot:[vms]openssl_systartup.com | ||
97 | $! | ||
98 | $! Restore the original default dev:[dir] (if known). | ||
99 | $! | ||
100 | $ clean_up: | ||
101 | $! | ||
102 | $ if (f$type( orig_dev_dir) .nes. "") | ||
103 | $ then | ||
104 | $ set default 'orig_dev_dir' | ||
105 | $ endif | ||
106 | $! | ||
107 | $ EXIT 'status' | ||
108 | $! | ||
diff --git a/src/lib/libssl/src/VMS/openssl_undo.com b/src/lib/libssl/src/VMS/openssl_undo.com deleted file mode 100755 index d1623a3160..0000000000 --- a/src/lib/libssl/src/VMS/openssl_undo.com +++ /dev/null | |||
@@ -1,20 +0,0 @@ | |||
1 | $! | ||
2 | $! Deassign OpenSSL logical names. | ||
3 | $! | ||
4 | $ call deass "OPENSSL" "''p1'" | ||
5 | $ call deass "SSLCERTS" "''p1'" | ||
6 | $ call deass "SSLEXE" "''p1'" | ||
7 | $ call deass "SSLINCLUDE" "''p1'" | ||
8 | $ call deass "SSLLIB" "''p1'" | ||
9 | $ call deass "SSLPRIVATE" "''p1'" | ||
10 | $ call deass "SSLROOT" "''p1'" | ||
11 | $! | ||
12 | $ exit | ||
13 | $! | ||
14 | $deass: subroutine | ||
15 | $ if (f$trnlnm( p1) .nes. "") | ||
16 | $ then | ||
17 | $ deassign 'p2' 'p1' | ||
18 | $ endif | ||
19 | $ endsubroutine | ||
20 | $! | ||
diff --git a/src/lib/libssl/src/VMS/openssl_utils.com b/src/lib/libssl/src/VMS/openssl_utils.com deleted file mode 100644 index 64f4915104..0000000000 --- a/src/lib/libssl/src/VMS/openssl_utils.com +++ /dev/null | |||
@@ -1,46 +0,0 @@ | |||
1 | $! | ||
2 | $! APPS.COM | ||
3 | $! Written By: Robert Byer | ||
4 | $! Vice-President | ||
5 | $! A-Com Computing, Inc. | ||
6 | $! byer@mail.all-net.net | ||
7 | $! | ||
8 | $! | ||
9 | $! Slightly modified by Richard Levitte <richard@levitte.org> | ||
10 | $! | ||
11 | $! | ||
12 | $! Always define OPENSSL. Others are optional (non-null P1). | ||
13 | $! | ||
14 | $ OPENSSL :== $SSLEXE:OPENSSL | ||
15 | $ | ||
16 | $ IF (P1 .NES. "") | ||
17 | $ THEN | ||
18 | $ VERIFY :== $SSLEXE:OPENSSL VERIFY | ||
19 | $ ASN1PARSE:== $SSLEXE:OPENSSL ASN1PARS | ||
20 | $! REQ could conflict with REQUEST. | ||
21 | $ OREQ :== $SSLEXE:OPENSSL REQ | ||
22 | $ DGST :== $SSLEXE:OPENSSL DGST | ||
23 | $ DH :== $SSLEXE:OPENSSL DH | ||
24 | $ ENC :== $SSLEXE:OPENSSL ENC | ||
25 | $ GENDH :== $SSLEXE:OPENSSL GENDH | ||
26 | $ ERRSTR :== $SSLEXE:OPENSSL ERRSTR | ||
27 | $ CA :== $SSLEXE:OPENSSL CA | ||
28 | $ CRL :== $SSLEXE:OPENSSL CRL | ||
29 | $ RSA :== $SSLEXE:OPENSSL RSA | ||
30 | $ DSA :== $SSLEXE:OPENSSL DSA | ||
31 | $ DSAPARAM :== $SSLEXE:OPENSSL DSAPARAM | ||
32 | $ X509 :== $SSLEXE:OPENSSL X509 | ||
33 | $ GENRSA :== $SSLEXE:OPENSSL GENRSA | ||
34 | $ GENDSA :== $SSLEXE:OPENSSL GENDSA | ||
35 | $ S_SERVER :== $SSLEXE:OPENSSL S_SERVER | ||
36 | $ S_CLIENT :== $SSLEXE:OPENSSL S_CLIENT | ||
37 | $ SPEED :== $SSLEXE:OPENSSL SPEED | ||
38 | $ S_TIME :== $SSLEXE:OPENSSL S_TIME | ||
39 | $ VERSION :== $SSLEXE:OPENSSL VERSION | ||
40 | $ PKCS7 :== $SSLEXE:OPENSSL PKCS7 | ||
41 | $ CRL2PKCS7:== $SSLEXE:OPENSSL CRL2P7 | ||
42 | $ SESS_ID :== $SSLEXE:OPENSSL SESS_ID | ||
43 | $ CIPHERS :== $SSLEXE:OPENSSL CIPHERS | ||
44 | $ NSEQ :== $SSLEXE:OPENSSL NSEQ | ||
45 | $ PKCS12 :== $SSLEXE:OPENSSL PKCS12 | ||
46 | $ ENDIF | ||
diff --git a/src/lib/libssl/src/VMS/socketshr_shr.opt b/src/lib/libssl/src/VMS/socketshr_shr.opt deleted file mode 100644 index f6e3131626..0000000000 --- a/src/lib/libssl/src/VMS/socketshr_shr.opt +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | socketshr/share | ||
diff --git a/src/lib/libssl/src/VMS/tcpip_shr_decc.opt b/src/lib/libssl/src/VMS/tcpip_shr_decc.opt deleted file mode 100644 index 33b159e5f5..0000000000 --- a/src/lib/libssl/src/VMS/tcpip_shr_decc.opt +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | sys$share:tcpip$ipc_shr.exe/share | ||
diff --git a/src/lib/libssl/src/VMS/test-includes.com b/src/lib/libssl/src/VMS/test-includes.com deleted file mode 100644 index c1d7ccd0ee..0000000000 --- a/src/lib/libssl/src/VMS/test-includes.com +++ /dev/null | |||
@@ -1,28 +0,0 @@ | |||
1 | $! Quick script to check how well including individual header files works | ||
2 | $! on VMS, even when the VMS macro isn't defined. | ||
3 | $ | ||
4 | $ sav_def = f$env("DEFAULT") | ||
5 | $ here = f$parse("A.;0",f$ENV("PROCEDURE")) - "A.;0" | ||
6 | $ set default 'here' | ||
7 | $ set default [-.include.openssl] | ||
8 | $ define openssl 'f$env("DEFAULT")' | ||
9 | $ set default [--] | ||
10 | $ | ||
11 | $ loop: | ||
12 | $ f = f$search("openssl:*.h") | ||
13 | $ if f .eqs. "" then goto loop_end | ||
14 | $ write sys$output "Checking ",f | ||
15 | $ open/write foo foo.c | ||
16 | $ write foo "#undef VMS" | ||
17 | $ write foo "#include <stdio.h>" | ||
18 | $ write foo "#include <openssl/",f$parse(f,,,"NAME"),".h>" | ||
19 | $ write foo "main()" | ||
20 | $ write foo "{printf(""foo\n"");}" | ||
21 | $ close foo | ||
22 | $ cc/STANDARD=ANSI89/NOLIST/PREFIX=ALL foo.c | ||
23 | $ delete foo.c; | ||
24 | $ goto loop | ||
25 | $ loop_end: | ||
26 | $ set default 'save_def' | ||
27 | $ exit | ||
28 | |||
diff --git a/src/lib/libssl/src/VMS/ucx_shr_decc.opt b/src/lib/libssl/src/VMS/ucx_shr_decc.opt deleted file mode 100644 index 28d84f4af6..0000000000 --- a/src/lib/libssl/src/VMS/ucx_shr_decc.opt +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | sys$share:ucx$ipc_shr.exe/share | ||
diff --git a/src/lib/libssl/src/VMS/ucx_shr_decc_log.opt b/src/lib/libssl/src/VMS/ucx_shr_decc_log.opt deleted file mode 100644 index c9d9a96d09..0000000000 --- a/src/lib/libssl/src/VMS/ucx_shr_decc_log.opt +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | ucx$ipc_shr/share | ||
diff --git a/src/lib/libssl/src/VMS/ucx_shr_vaxc.opt b/src/lib/libssl/src/VMS/ucx_shr_vaxc.opt deleted file mode 100644 index 86bfaf0d07..0000000000 --- a/src/lib/libssl/src/VMS/ucx_shr_vaxc.opt +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | sys$library:ucx$ipc.olb/library | ||
diff --git a/src/lib/libssl/src/apps/CA.com b/src/lib/libssl/src/apps/CA.com deleted file mode 100644 index 2c0d465274..0000000000 --- a/src/lib/libssl/src/apps/CA.com +++ /dev/null | |||
@@ -1,236 +0,0 @@ | |||
1 | $! CA - wrapper around ca to make it easier to use ... basically ca requires | ||
2 | $! some setup stuff to be done before you can use it and this makes | ||
3 | $! things easier between now and when Eric is convinced to fix it :-) | ||
4 | $! | ||
5 | $! CA -newca ... will setup the right stuff | ||
6 | $! CA -newreq ... will generate a certificate request | ||
7 | $! CA -sign ... will sign the generated request and output | ||
8 | $! | ||
9 | $! At the end of that grab newreq.pem and newcert.pem (one has the key | ||
10 | $! and the other the certificate) and cat them together and that is what | ||
11 | $! you want/need ... I'll make even this a little cleaner later. | ||
12 | $! | ||
13 | $! | ||
14 | $! 12-Jan-96 tjh Added more things ... including CA -signcert which | ||
15 | $! converts a certificate to a request and then signs it. | ||
16 | $! 10-Jan-96 eay Fixed a few more bugs and added the SSLEAY_CONFIG | ||
17 | $! environment variable so this can be driven from | ||
18 | $! a script. | ||
19 | $! 25-Jul-96 eay Cleaned up filenames some more. | ||
20 | $! 11-Jun-96 eay Fixed a few filename missmatches. | ||
21 | $! 03-May-96 eay Modified to use 'openssl cmd' instead of 'cmd'. | ||
22 | $! 18-Apr-96 tjh Original hacking | ||
23 | $! | ||
24 | $! Tim Hudson | ||
25 | $! tjh@cryptsoft.com | ||
26 | $! | ||
27 | $! | ||
28 | $! default ssleay.cnf file has setup as per the following | ||
29 | $! demoCA ... where everything is stored | ||
30 | $ | ||
31 | $ IF F$TYPE(SSLEAY_CONFIG) .EQS. "" THEN SSLEAY_CONFIG := SSLLIB:SSLEAY.CNF | ||
32 | $ | ||
33 | $ DAYS = "-days 365" | ||
34 | $ REQ = openssl + " req " + SSLEAY_CONFIG | ||
35 | $ CA = openssl + " ca " + SSLEAY_CONFIG | ||
36 | $ VERIFY = openssl + " verify" | ||
37 | $ X509 = openssl + " x509" | ||
38 | $ PKCS12 = openssl + " pkcs12" | ||
39 | $ echo = "write sys$Output" | ||
40 | $ RET = 1 | ||
41 | $! | ||
42 | $! 2010-12-20 SMS. | ||
43 | $! Use a concealed logical name to reduce command line lengths, to | ||
44 | $! avoid DCL errors on VAX: | ||
45 | $! %DCL-W-TKNOVF, command element is too long - shorten | ||
46 | $! (Path segments like "openssl-1_0_1-stable-SNAP-20101217" accumulate | ||
47 | $! quickly.) | ||
48 | $! | ||
49 | $ CATOP = F$PARSE( F$ENVIRONMENT( "DEFAULT"), "[]")- "].;"+ ".demoCA.]" | ||
50 | $ define /translation_attributes = concealed CATOP 'CATOP' | ||
51 | $! | ||
52 | $ on error then goto clean_up | ||
53 | $ on control_y then goto clean_up | ||
54 | $! | ||
55 | $ CAKEY = "CATOP:[private]cakey.pem" | ||
56 | $ CACERT = "CATOP:[000000]cacert.pem" | ||
57 | $ | ||
58 | $ __INPUT := SYS$COMMAND | ||
59 | $! | ||
60 | $ i = 1 | ||
61 | $opt_loop: | ||
62 | $ if i .gt. 8 then goto opt_loop_end | ||
63 | $ | ||
64 | $ prog_opt = F$EDIT(P'i',"lowercase") | ||
65 | $ | ||
66 | $ IF (prog_opt .EQS. "?" .OR. prog_opt .EQS. "-h" .OR. prog_opt .EQS. "-help") | ||
67 | $ THEN | ||
68 | $ echo "usage: CA -newcert|-newreq|-newca|-sign|-verify" | ||
69 | $ goto clean_up | ||
70 | $ ENDIF | ||
71 | $! | ||
72 | $ IF (prog_opt .EQS. "-input") | ||
73 | $ THEN | ||
74 | $ ! Get input from somewhere other than SYS$COMMAND | ||
75 | $ i = i + 1 | ||
76 | $ __INPUT = P'i' | ||
77 | $ GOTO opt_loop_continue | ||
78 | $ ENDIF | ||
79 | $! | ||
80 | $ IF (prog_opt .EQS. "-newcert") | ||
81 | $ THEN | ||
82 | $ ! Create a certificate. | ||
83 | $ DEFINE /USER_MODE SYS$INPUT '__INPUT' | ||
84 | $ REQ -new -x509 -keyout newreq.pem -out newreq.pem 'DAYS' | ||
85 | $ RET=$STATUS | ||
86 | $ echo "Certificate (and private key) is in newreq.pem" | ||
87 | $ GOTO opt_loop_continue | ||
88 | $ ENDIF | ||
89 | $! | ||
90 | $ IF (prog_opt .EQS. "-newreq") | ||
91 | $ THEN | ||
92 | $ ! Create a certificate request | ||
93 | $ DEFINE /USER_MODE SYS$INPUT '__INPUT' | ||
94 | $ REQ -new -keyout newreq.pem -out newreq.pem 'DAYS' | ||
95 | $ RET=$STATUS | ||
96 | $ echo "Request (and private key) is in newreq.pem" | ||
97 | $ GOTO opt_loop_continue | ||
98 | $ ENDIF | ||
99 | $! | ||
100 | $ IF (prog_opt .EQS. "-newca") | ||
101 | $ THEN | ||
102 | $ ! If explicitly asked for or it doesn't exist then setup the directory | ||
103 | $ ! structure that Eric likes to manage things. | ||
104 | $ IF F$SEARCH( "CATOP:[000000]serial.") .EQS. "" | ||
105 | $ THEN | ||
106 | $ CREATE /DIRECTORY /PROTECTION=OWNER:RWED CATOP:[000000] | ||
107 | $ CREATE /DIRECTORY /PROTECTION=OWNER:RWED CATOP:[certs] | ||
108 | $ CREATE /DIRECTORY /PROTECTION=OWNER:RWED CATOP:[crl] | ||
109 | $ CREATE /DIRECTORY /PROTECTION=OWNER:RWED CATOP:[newcerts] | ||
110 | $ CREATE /DIRECTORY /PROTECTION=OWNER:RWED CATOP:[private] | ||
111 | $ | ||
112 | $ OPEN /WRITE ser_file CATOP:[000000]serial. | ||
113 | $ WRITE ser_file "01" | ||
114 | $ CLOSE ser_file | ||
115 | $ APPEND /NEW_VERSION NL: CATOP:[000000]index.txt | ||
116 | $ | ||
117 | $ ! The following is to make sure access() doesn't get confused. It | ||
118 | $ ! really needs one file in the directory to give correct answers... | ||
119 | $ COPY NLA0: CATOP:[certs].; | ||
120 | $ COPY NLA0: CATOP:[crl].; | ||
121 | $ COPY NLA0: CATOP:[newcerts].; | ||
122 | $ COPY NLA0: CATOP:[private].; | ||
123 | $ ENDIF | ||
124 | $! | ||
125 | $ IF F$SEARCH( CAKEY) .EQS. "" | ||
126 | $ THEN | ||
127 | $ READ '__INPUT' FILE - | ||
128 | /PROMPT="CA certificate filename (or enter to create): " | ||
129 | $ IF (FILE .NES. "") .AND. (F$SEARCH(FILE) .NES. "") | ||
130 | $ THEN | ||
131 | $ COPY 'FILE' 'CAKEY' | ||
132 | $ RET=$STATUS | ||
133 | $ ELSE | ||
134 | $ echo "Making CA certificate ..." | ||
135 | $ DEFINE /USER_MODE SYS$INPUT '__INPUT' | ||
136 | $ REQ -new -x509 -keyout 'CAKEY' -out 'CACERT' 'DAYS' | ||
137 | $ RET=$STATUS | ||
138 | $ ENDIF | ||
139 | $ ENDIF | ||
140 | $ GOTO opt_loop_continue | ||
141 | $ ENDIF | ||
142 | $! | ||
143 | $ IF (prog_opt .EQS. "-pkcs12") | ||
144 | $ THEN | ||
145 | $ i = i + 1 | ||
146 | $ cname = P'i' | ||
147 | $ IF cname .EQS. "" THEN cname = "My certificate" | ||
148 | $ PKCS12 -in newcert.pem -inkey newreq.pem -certfile 'CACERT' - | ||
149 | -out newcert.p12 -export -name "''cname'" | ||
150 | $ RET=$STATUS | ||
151 | $ goto clean_up | ||
152 | $ ENDIF | ||
153 | $! | ||
154 | $ IF (prog_opt .EQS. "-xsign") | ||
155 | $ THEN | ||
156 | $! | ||
157 | $ DEFINE /USER_MODE SYS$INPUT '__INPUT' | ||
158 | $ CA -policy policy_anything -infiles newreq.pem | ||
159 | $ RET=$STATUS | ||
160 | $ GOTO opt_loop_continue | ||
161 | $ ENDIF | ||
162 | $! | ||
163 | $ IF ((prog_opt .EQS. "-sign") .OR. (prog_opt .EQS. "-signreq")) | ||
164 | $ THEN | ||
165 | $! | ||
166 | $ DEFINE /USER_MODE SYS$INPUT '__INPUT' | ||
167 | $ CA -policy policy_anything -out newcert.pem -infiles newreq.pem | ||
168 | $ RET=$STATUS | ||
169 | $ type newcert.pem | ||
170 | $ echo "Signed certificate is in newcert.pem" | ||
171 | $ GOTO opt_loop_continue | ||
172 | $ ENDIF | ||
173 | $! | ||
174 | $ IF (prog_opt .EQS. "-signcert") | ||
175 | $ THEN | ||
176 | $! | ||
177 | $ echo "Cert passphrase will be requested twice - bug?" | ||
178 | $ DEFINE /USER_MODE SYS$INPUT '__INPUT' | ||
179 | $ X509 -x509toreq -in newreq.pem -signkey newreq.pem -out tmp.pem | ||
180 | $ DEFINE /USER_MODE SYS$INPUT '__INPUT' | ||
181 | $ CA -policy policy_anything -out newcert.pem -infiles tmp.pem | ||
182 | y | ||
183 | y | ||
184 | $ type newcert.pem | ||
185 | $ echo "Signed certificate is in newcert.pem" | ||
186 | $ GOTO opt_loop_continue | ||
187 | $ ENDIF | ||
188 | $! | ||
189 | $ IF (prog_opt .EQS. "-verify") | ||
190 | $ THEN | ||
191 | $! | ||
192 | $ i = i + 1 | ||
193 | $ IF (p'i' .EQS. "") | ||
194 | $ THEN | ||
195 | $ DEFINE /USER_MODE SYS$INPUT '__INPUT' | ||
196 | $ VERIFY "-CAfile" 'CACERT' newcert.pem | ||
197 | $ ELSE | ||
198 | $ j = i | ||
199 | $ verify_opt_loop: | ||
200 | $ IF j .GT. 8 THEN GOTO verify_opt_loop_end | ||
201 | $ IF p'j' .NES. "" | ||
202 | $ THEN | ||
203 | $ DEFINE /USER_MODE SYS$INPUT '__INPUT' | ||
204 | $ __tmp = p'j' | ||
205 | $ VERIFY "-CAfile" 'CACERT' '__tmp' | ||
206 | $ tmp=$STATUS | ||
207 | $ IF tmp .NE. 0 THEN RET=tmp | ||
208 | $ ENDIF | ||
209 | $ j = j + 1 | ||
210 | $ GOTO verify_opt_loop | ||
211 | $ verify_opt_loop_end: | ||
212 | $ ENDIF | ||
213 | $ | ||
214 | $ GOTO opt_loop_end | ||
215 | $ ENDIF | ||
216 | $! | ||
217 | $ IF (prog_opt .NES. "") | ||
218 | $ THEN | ||
219 | $! | ||
220 | $ echo "Unknown argument ''prog_opt'" | ||
221 | $ RET = 3 | ||
222 | $ goto clean_up | ||
223 | $ ENDIF | ||
224 | $ | ||
225 | $opt_loop_continue: | ||
226 | $ i = i + 1 | ||
227 | $ GOTO opt_loop | ||
228 | $ | ||
229 | $opt_loop_end: | ||
230 | $! | ||
231 | $clean_up: | ||
232 | $! | ||
233 | $ if f$trnlnm( "CATOP", "LNM$PROCESS") .nes. "" then - | ||
234 | deassign /process CATOP | ||
235 | $! | ||
236 | $ EXIT 'RET' | ||
diff --git a/src/lib/libssl/src/apps/Makefile b/src/lib/libssl/src/apps/Makefile index 95f499e330..72657ea658 100644 --- a/src/lib/libssl/src/apps/Makefile +++ b/src/lib/libssl/src/apps/Makefile | |||
@@ -577,14 +577,15 @@ openssl.o: ../include/openssl/objects.h ../include/openssl/ocsp.h | |||
577 | openssl.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h | 577 | openssl.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h |
578 | openssl.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h | 578 | openssl.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h |
579 | openssl.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h | 579 | openssl.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h |
580 | openssl.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h | 580 | openssl.o: ../include/openssl/pqueue.h ../include/openssl/rand.h |
581 | openssl.o: ../include/openssl/sha.h ../include/openssl/srtp.h | 581 | openssl.o: ../include/openssl/safestack.h ../include/openssl/sha.h |
582 | openssl.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h | 582 | openssl.o: ../include/openssl/srtp.h ../include/openssl/ssl.h |
583 | openssl.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h | 583 | openssl.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h |
584 | openssl.o: ../include/openssl/stack.h ../include/openssl/symhacks.h | 584 | openssl.o: ../include/openssl/ssl3.h ../include/openssl/stack.h |
585 | openssl.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h | 585 | openssl.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h |
586 | openssl.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h | 586 | openssl.o: ../include/openssl/txt_db.h ../include/openssl/x509.h |
587 | openssl.o: ../include/openssl/x509v3.h apps.h openssl.c progs.h s_apps.h | 587 | openssl.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h |
588 | openssl.o: openssl.c progs.h s_apps.h | ||
588 | passwd.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h | 589 | passwd.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h |
589 | passwd.o: ../include/openssl/buffer.h ../include/openssl/conf.h | 590 | passwd.o: ../include/openssl/buffer.h ../include/openssl/conf.h |
590 | passwd.o: ../include/openssl/crypto.h ../include/openssl/des.h | 591 | passwd.o: ../include/openssl/crypto.h ../include/openssl/des.h |
diff --git a/src/lib/libssl/src/apps/apps.c b/src/lib/libssl/src/apps/apps.c index 4e11915b02..b76db10a5e 100644 --- a/src/lib/libssl/src/apps/apps.c +++ b/src/lib/libssl/src/apps/apps.c | |||
@@ -586,12 +586,12 @@ int password_callback(char *buf, int bufsiz, int verify, | |||
586 | 586 | ||
587 | if (ok >= 0) | 587 | if (ok >= 0) |
588 | ok = UI_add_input_string(ui,prompt,ui_flags,buf, | 588 | ok = UI_add_input_string(ui,prompt,ui_flags,buf, |
589 | PW_MIN_LENGTH,BUFSIZ-1); | 589 | PW_MIN_LENGTH,bufsiz-1); |
590 | if (ok >= 0 && verify) | 590 | if (ok >= 0 && verify) |
591 | { | 591 | { |
592 | buff = (char *)OPENSSL_malloc(bufsiz); | 592 | buff = (char *)OPENSSL_malloc(bufsiz); |
593 | ok = UI_add_verify_string(ui,prompt,ui_flags,buff, | 593 | ok = UI_add_verify_string(ui,prompt,ui_flags,buff, |
594 | PW_MIN_LENGTH,BUFSIZ-1, buf); | 594 | PW_MIN_LENGTH,bufsiz-1, buf); |
595 | } | 595 | } |
596 | if (ok >= 0) | 596 | if (ok >= 0) |
597 | do | 597 | do |
@@ -2132,7 +2132,7 @@ X509_NAME *parse_name(char *subject, long chtype, int multirdn) | |||
2132 | X509_NAME *n = NULL; | 2132 | X509_NAME *n = NULL; |
2133 | int nid; | 2133 | int nid; |
2134 | 2134 | ||
2135 | if (!buf || !ne_types || !ne_values) | 2135 | if (!buf || !ne_types || !ne_values || !mval) |
2136 | { | 2136 | { |
2137 | BIO_printf(bio_err, "malloc error\n"); | 2137 | BIO_printf(bio_err, "malloc error\n"); |
2138 | goto error; | 2138 | goto error; |
@@ -2236,6 +2236,7 @@ X509_NAME *parse_name(char *subject, long chtype, int multirdn) | |||
2236 | OPENSSL_free(ne_values); | 2236 | OPENSSL_free(ne_values); |
2237 | OPENSSL_free(ne_types); | 2237 | OPENSSL_free(ne_types); |
2238 | OPENSSL_free(buf); | 2238 | OPENSSL_free(buf); |
2239 | OPENSSL_free(mval); | ||
2239 | return n; | 2240 | return n; |
2240 | 2241 | ||
2241 | error: | 2242 | error: |
@@ -2244,6 +2245,8 @@ error: | |||
2244 | OPENSSL_free(ne_values); | 2245 | OPENSSL_free(ne_values); |
2245 | if (ne_types) | 2246 | if (ne_types) |
2246 | OPENSSL_free(ne_types); | 2247 | OPENSSL_free(ne_types); |
2248 | if (mval) | ||
2249 | OPENSSL_free(mval); | ||
2247 | if (buf) | 2250 | if (buf) |
2248 | OPENSSL_free(buf); | 2251 | OPENSSL_free(buf); |
2249 | return NULL; | 2252 | return NULL; |
@@ -2838,7 +2841,7 @@ double app_tminterval(int stop,int usertime) | |||
2838 | 2841 | ||
2839 | if (proc==NULL) | 2842 | if (proc==NULL) |
2840 | { | 2843 | { |
2841 | if (GetVersion() < 0x80000000) | 2844 | if (check_winnt()) |
2842 | proc = OpenProcess(PROCESS_QUERY_INFORMATION,FALSE, | 2845 | proc = OpenProcess(PROCESS_QUERY_INFORMATION,FALSE, |
2843 | GetCurrentProcessId()); | 2846 | GetCurrentProcessId()); |
2844 | if (proc==NULL) proc = (HANDLE)-1; | 2847 | if (proc==NULL) proc = (HANDLE)-1; |
diff --git a/src/lib/libssl/src/apps/apps.h b/src/lib/libssl/src/apps/apps.h index c1ca99da12..3aeb46c4e2 100644 --- a/src/lib/libssl/src/apps/apps.h +++ b/src/lib/libssl/src/apps/apps.h | |||
@@ -188,6 +188,7 @@ extern BIO *bio_err; | |||
188 | do { CONF_modules_unload(1); destroy_ui_method(); \ | 188 | do { CONF_modules_unload(1); destroy_ui_method(); \ |
189 | OBJ_cleanup(); EVP_cleanup(); ENGINE_cleanup(); \ | 189 | OBJ_cleanup(); EVP_cleanup(); ENGINE_cleanup(); \ |
190 | CRYPTO_cleanup_all_ex_data(); ERR_remove_thread_state(NULL); \ | 190 | CRYPTO_cleanup_all_ex_data(); ERR_remove_thread_state(NULL); \ |
191 | RAND_cleanup(); \ | ||
191 | ERR_free_strings(); zlib_cleanup();} while(0) | 192 | ERR_free_strings(); zlib_cleanup();} while(0) |
192 | # else | 193 | # else |
193 | # define apps_startup() \ | 194 | # define apps_startup() \ |
@@ -198,6 +199,7 @@ extern BIO *bio_err; | |||
198 | do { CONF_modules_unload(1); destroy_ui_method(); \ | 199 | do { CONF_modules_unload(1); destroy_ui_method(); \ |
199 | OBJ_cleanup(); EVP_cleanup(); \ | 200 | OBJ_cleanup(); EVP_cleanup(); \ |
200 | CRYPTO_cleanup_all_ex_data(); ERR_remove_thread_state(NULL); \ | 201 | CRYPTO_cleanup_all_ex_data(); ERR_remove_thread_state(NULL); \ |
202 | RAND_cleanup(); \ | ||
201 | ERR_free_strings(); zlib_cleanup(); } while(0) | 203 | ERR_free_strings(); zlib_cleanup(); } while(0) |
202 | # endif | 204 | # endif |
203 | #endif | 205 | #endif |
diff --git a/src/lib/libssl/src/apps/ca.c b/src/lib/libssl/src/apps/ca.c index a548f4eeb0..55dea95ac1 100644 --- a/src/lib/libssl/src/apps/ca.c +++ b/src/lib/libssl/src/apps/ca.c | |||
@@ -1408,6 +1408,7 @@ bad: | |||
1408 | if (!NCONF_get_number(conf,section, | 1408 | if (!NCONF_get_number(conf,section, |
1409 | ENV_DEFAULT_CRL_HOURS, &crlhours)) | 1409 | ENV_DEFAULT_CRL_HOURS, &crlhours)) |
1410 | crlhours = 0; | 1410 | crlhours = 0; |
1411 | ERR_clear_error(); | ||
1411 | } | 1412 | } |
1412 | if ((crldays == 0) && (crlhours == 0) && (crlsec == 0)) | 1413 | if ((crldays == 0) && (crlhours == 0) && (crlsec == 0)) |
1413 | { | 1414 | { |
diff --git a/src/lib/libssl/src/apps/crl.c b/src/lib/libssl/src/apps/crl.c index c395b2afd5..8797d300cf 100644 --- a/src/lib/libssl/src/apps/crl.c +++ b/src/lib/libssl/src/apps/crl.c | |||
@@ -81,6 +81,9 @@ static const char *crl_usage[]={ | |||
81 | " -in arg - input file - default stdin\n", | 81 | " -in arg - input file - default stdin\n", |
82 | " -out arg - output file - default stdout\n", | 82 | " -out arg - output file - default stdout\n", |
83 | " -hash - print hash value\n", | 83 | " -hash - print hash value\n", |
84 | #ifndef OPENSSL_NO_MD5 | ||
85 | " -hash_old - print old-style (MD5) hash value\n", | ||
86 | #endif | ||
84 | " -fingerprint - print the crl fingerprint\n", | 87 | " -fingerprint - print the crl fingerprint\n", |
85 | " -issuer - print issuer DN\n", | 88 | " -issuer - print issuer DN\n", |
86 | " -lastupdate - lastUpdate field\n", | 89 | " -lastupdate - lastUpdate field\n", |
@@ -108,6 +111,9 @@ int MAIN(int argc, char **argv) | |||
108 | int informat,outformat; | 111 | int informat,outformat; |
109 | char *infile=NULL,*outfile=NULL; | 112 | char *infile=NULL,*outfile=NULL; |
110 | int hash=0,issuer=0,lastupdate=0,nextupdate=0,noout=0,text=0; | 113 | int hash=0,issuer=0,lastupdate=0,nextupdate=0,noout=0,text=0; |
114 | #ifndef OPENSSL_NO_MD5 | ||
115 | int hash_old=0; | ||
116 | #endif | ||
111 | int fingerprint = 0, crlnumber = 0; | 117 | int fingerprint = 0, crlnumber = 0; |
112 | const char **pp; | 118 | const char **pp; |
113 | X509_STORE *store = NULL; | 119 | X509_STORE *store = NULL; |
@@ -192,6 +198,10 @@ int MAIN(int argc, char **argv) | |||
192 | text = 1; | 198 | text = 1; |
193 | else if (strcmp(*argv,"-hash") == 0) | 199 | else if (strcmp(*argv,"-hash") == 0) |
194 | hash= ++num; | 200 | hash= ++num; |
201 | #ifndef OPENSSL_NO_MD5 | ||
202 | else if (strcmp(*argv,"-hash_old") == 0) | ||
203 | hash_old= ++num; | ||
204 | #endif | ||
195 | else if (strcmp(*argv,"-nameopt") == 0) | 205 | else if (strcmp(*argv,"-nameopt") == 0) |
196 | { | 206 | { |
197 | if (--argc < 1) goto bad; | 207 | if (--argc < 1) goto bad; |
@@ -304,6 +314,14 @@ bad: | |||
304 | BIO_printf(bio_out,"%08lx\n", | 314 | BIO_printf(bio_out,"%08lx\n", |
305 | X509_NAME_hash(X509_CRL_get_issuer(x))); | 315 | X509_NAME_hash(X509_CRL_get_issuer(x))); |
306 | } | 316 | } |
317 | #ifndef OPENSSL_NO_MD5 | ||
318 | if (hash_old == i) | ||
319 | { | ||
320 | BIO_printf(bio_out,"%08lx\n", | ||
321 | X509_NAME_hash_old( | ||
322 | X509_CRL_get_issuer(x))); | ||
323 | } | ||
324 | #endif | ||
307 | if (lastupdate == i) | 325 | if (lastupdate == i) |
308 | { | 326 | { |
309 | BIO_printf(bio_out,"lastUpdate="); | 327 | BIO_printf(bio_out,"lastUpdate="); |
diff --git a/src/lib/libssl/src/apps/dgst.c b/src/lib/libssl/src/apps/dgst.c index b08e9a7c78..f4aec779c1 100644 --- a/src/lib/libssl/src/apps/dgst.c +++ b/src/lib/libssl/src/apps/dgst.c | |||
@@ -216,10 +216,10 @@ int MAIN(int argc, char **argv) | |||
216 | out_bin = 1; | 216 | out_bin = 1; |
217 | else if (strcmp(*argv,"-d") == 0) | 217 | else if (strcmp(*argv,"-d") == 0) |
218 | debug=1; | 218 | debug=1; |
219 | else if (strcmp(*argv,"-non-fips-allow") == 0) | ||
220 | non_fips_allow=1; | ||
221 | else if (!strcmp(*argv,"-fips-fingerprint")) | 219 | else if (!strcmp(*argv,"-fips-fingerprint")) |
222 | hmac_key = "etaonrishdlcupfm"; | 220 | hmac_key = "etaonrishdlcupfm"; |
221 | else if (strcmp(*argv,"-non-fips-allow") == 0) | ||
222 | non_fips_allow=1; | ||
223 | else if (!strcmp(*argv,"-hmac")) | 223 | else if (!strcmp(*argv,"-hmac")) |
224 | { | 224 | { |
225 | if (--argc < 1) | 225 | if (--argc < 1) |
@@ -427,9 +427,9 @@ int MAIN(int argc, char **argv) | |||
427 | goto end; | 427 | goto end; |
428 | } | 428 | } |
429 | if (do_verify) | 429 | if (do_verify) |
430 | r = EVP_DigestVerifyInit(mctx, &pctx, md, e, sigkey); | 430 | r = EVP_DigestVerifyInit(mctx, &pctx, md, NULL, sigkey); |
431 | else | 431 | else |
432 | r = EVP_DigestSignInit(mctx, &pctx, md, e, sigkey); | 432 | r = EVP_DigestSignInit(mctx, &pctx, md, NULL, sigkey); |
433 | if (!r) | 433 | if (!r) |
434 | { | 434 | { |
435 | BIO_printf(bio_err, "Error setting context\n"); | 435 | BIO_printf(bio_err, "Error setting context\n"); |
diff --git a/src/lib/libssl/src/apps/dhparam.c b/src/lib/libssl/src/apps/dhparam.c index b47097cbb2..1297d6fb5e 100644 --- a/src/lib/libssl/src/apps/dhparam.c +++ b/src/lib/libssl/src/apps/dhparam.c | |||
@@ -332,7 +332,6 @@ bad: | |||
332 | BIO_printf(bio_err,"This is going to take a long time\n"); | 332 | BIO_printf(bio_err,"This is going to take a long time\n"); |
333 | if(!dh || !DH_generate_parameters_ex(dh, num, g, &cb)) | 333 | if(!dh || !DH_generate_parameters_ex(dh, num, g, &cb)) |
334 | { | 334 | { |
335 | if(dh) DH_free(dh); | ||
336 | ERR_print_errors(bio_err); | 335 | ERR_print_errors(bio_err); |
337 | goto end; | 336 | goto end; |
338 | } | 337 | } |
diff --git a/src/lib/libssl/src/apps/dsaparam.c b/src/lib/libssl/src/apps/dsaparam.c index fe72c1d3df..683d51391b 100644 --- a/src/lib/libssl/src/apps/dsaparam.c +++ b/src/lib/libssl/src/apps/dsaparam.c | |||
@@ -326,6 +326,7 @@ bad: | |||
326 | goto end; | 326 | goto end; |
327 | } | 327 | } |
328 | #endif | 328 | #endif |
329 | ERR_print_errors(bio_err); | ||
329 | BIO_printf(bio_err,"Error, DSA key generation failed\n"); | 330 | BIO_printf(bio_err,"Error, DSA key generation failed\n"); |
330 | goto end; | 331 | goto end; |
331 | } | 332 | } |
@@ -429,13 +430,19 @@ bad: | |||
429 | 430 | ||
430 | assert(need_rand); | 431 | assert(need_rand); |
431 | if ((dsakey=DSAparams_dup(dsa)) == NULL) goto end; | 432 | if ((dsakey=DSAparams_dup(dsa)) == NULL) goto end; |
432 | if (!DSA_generate_key(dsakey)) goto end; | 433 | if (!DSA_generate_key(dsakey)) |
434 | { | ||
435 | ERR_print_errors(bio_err); | ||
436 | DSA_free(dsakey); | ||
437 | goto end; | ||
438 | } | ||
433 | if (outformat == FORMAT_ASN1) | 439 | if (outformat == FORMAT_ASN1) |
434 | i=i2d_DSAPrivateKey_bio(out,dsakey); | 440 | i=i2d_DSAPrivateKey_bio(out,dsakey); |
435 | else if (outformat == FORMAT_PEM) | 441 | else if (outformat == FORMAT_PEM) |
436 | i=PEM_write_bio_DSAPrivateKey(out,dsakey,NULL,NULL,0,NULL,NULL); | 442 | i=PEM_write_bio_DSAPrivateKey(out,dsakey,NULL,NULL,0,NULL,NULL); |
437 | else { | 443 | else { |
438 | BIO_printf(bio_err,"bad output format specified for outfile\n"); | 444 | BIO_printf(bio_err,"bad output format specified for outfile\n"); |
445 | DSA_free(dsakey); | ||
439 | goto end; | 446 | goto end; |
440 | } | 447 | } |
441 | DSA_free(dsakey); | 448 | DSA_free(dsakey); |
diff --git a/src/lib/libssl/src/apps/genrsa.c b/src/lib/libssl/src/apps/genrsa.c index 37e9310910..ece114c876 100644 --- a/src/lib/libssl/src/apps/genrsa.c +++ b/src/lib/libssl/src/apps/genrsa.c | |||
@@ -78,7 +78,7 @@ | |||
78 | #include <openssl/pem.h> | 78 | #include <openssl/pem.h> |
79 | #include <openssl/rand.h> | 79 | #include <openssl/rand.h> |
80 | 80 | ||
81 | #define DEFBITS 512 | 81 | #define DEFBITS 1024 |
82 | #undef PROG | 82 | #undef PROG |
83 | #define PROG genrsa_main | 83 | #define PROG genrsa_main |
84 | 84 | ||
diff --git a/src/lib/libssl/src/apps/install-apps.com b/src/lib/libssl/src/apps/install-apps.com deleted file mode 100755 index 7a553aa12e..0000000000 --- a/src/lib/libssl/src/apps/install-apps.com +++ /dev/null | |||
@@ -1,107 +0,0 @@ | |||
1 | $! INSTALL.COM -- Installs the files in a given directory tree | ||
2 | $! | ||
3 | $! Author: Richard Levitte <richard@levitte.org> | ||
4 | $! Time of creation: 22-MAY-1998 10:13 | ||
5 | $! | ||
6 | $! P1 root of the directory tree | ||
7 | $! P2 "64" for 64-bit pointers. | ||
8 | $! | ||
9 | $! | ||
10 | $! Announce/identify. | ||
11 | $! | ||
12 | $ proc = f$environment( "procedure") | ||
13 | $ write sys$output "@@@ "+ - | ||
14 | f$parse( proc, , , "name")+ f$parse( proc, , , "type") | ||
15 | $! | ||
16 | $ on error then goto tidy | ||
17 | $ on control_c then goto tidy | ||
18 | $! | ||
19 | $ if (p1 .eqs. "") | ||
20 | $ then | ||
21 | $ write sys$output "First argument missing." | ||
22 | $ write sys$output - | ||
23 | "It should be the directory where you want things installed." | ||
24 | $ exit | ||
25 | $ endif | ||
26 | $! | ||
27 | $ if (f$getsyi("cpu") .lt. 128) | ||
28 | $ then | ||
29 | $ arch = "VAX" | ||
30 | $ else | ||
31 | $ arch = f$edit( f$getsyi( "arch_name"), "upcase") | ||
32 | $ if (arch .eqs. "") then arch = "UNK" | ||
33 | $ endif | ||
34 | $! | ||
35 | $ archd = arch | ||
36 | $! | ||
37 | $ if (p2 .nes. "") | ||
38 | $ then | ||
39 | $ if (p2 .eqs. "64") | ||
40 | $ then | ||
41 | $ archd = arch+ "_64" | ||
42 | $ else | ||
43 | $ if (p2 .nes. "32") | ||
44 | $ then | ||
45 | $ write sys$output "Second argument invalid." | ||
46 | $ write sys$output "It should be "32", "64", or nothing." | ||
47 | $ exit | ||
48 | $ endif | ||
49 | $ endif | ||
50 | $ endif | ||
51 | $! | ||
52 | $ root = f$parse( p1, "[]A.;0", , , "syntax_only, no_conceal") - "A.;0" | ||
53 | $ root_dev = f$parse(root,,,"device","syntax_only") | ||
54 | $ root_dir = f$parse(root,,,"directory","syntax_only") - - | ||
55 | "[000000." - "][" - "[" - "]" | ||
56 | $ root = root_dev + "[" + root_dir | ||
57 | $! | ||
58 | $ define /nolog wrk_sslroot 'root'.] /trans=conc | ||
59 | $ define /nolog wrk_sslxexe wrk_sslroot:['archd'_exe] | ||
60 | $! | ||
61 | $ if f$parse("wrk_sslroot:[000000]") .eqs. "" then - | ||
62 | create /directory /log wrk_sslroot:[000000] | ||
63 | $ if f$parse("wrk_sslxexe:") .eqs. "" then - | ||
64 | create /directory /log wrk_sslxexe: | ||
65 | $! | ||
66 | $ exe := openssl | ||
67 | $! | ||
68 | $ exe_dir := [-.'archd'.exe.apps] | ||
69 | $! | ||
70 | $! Executables. | ||
71 | $! | ||
72 | $ i = 0 | ||
73 | $ loop_exe: | ||
74 | $ e = f$edit(f$element( i, ",", exe), "trim") | ||
75 | $ i = i + 1 | ||
76 | $ if e .eqs. "," then goto loop_exe_end | ||
77 | $ set noon | ||
78 | $ file = exe_dir+ e+ ".exe" | ||
79 | $ if f$search( file) .nes. "" | ||
80 | $ then | ||
81 | $ copy /protection = w:re 'file' wrk_sslxexe: /log | ||
82 | $ endif | ||
83 | $ set on | ||
84 | $ goto loop_exe | ||
85 | $ loop_exe_end: | ||
86 | $! | ||
87 | $! Miscellaneous. | ||
88 | $! | ||
89 | $ set noon | ||
90 | $ copy /protection = w:re ca.com wrk_sslxexe:ca.com /log | ||
91 | $ copy /protection = w:re openssl-vms.cnf wrk_sslroot:[000000]openssl.cnf /log | ||
92 | $ set on | ||
93 | $! | ||
94 | $ tidy: | ||
95 | $! | ||
96 | $ call deass wrk_sslroot | ||
97 | $ call deass wrk_sslxexe | ||
98 | $! | ||
99 | $ exit | ||
100 | $! | ||
101 | $ deass: subroutine | ||
102 | $ if (f$trnlnm( p1, "LNM$PROCESS") .nes. "") | ||
103 | $ then | ||
104 | $ deassign /process 'p1' | ||
105 | $ endif | ||
106 | $ endsubroutine | ||
107 | $! | ||
diff --git a/src/lib/libssl/src/apps/install.com b/src/lib/libssl/src/apps/install.com deleted file mode 100644 index c5821b40e3..0000000000 --- a/src/lib/libssl/src/apps/install.com +++ /dev/null | |||
@@ -1,65 +0,0 @@ | |||
1 | $! INSTALL.COM -- Installs the files in a given directory tree | ||
2 | $! | ||
3 | $! Author: Richard Levitte <richard@levitte.org> | ||
4 | $! Time of creation: 22-MAY-1998 10:13 | ||
5 | $! | ||
6 | $! P1 root of the directory tree | ||
7 | $! | ||
8 | $ | ||
9 | $ IF P1 .EQS. "" | ||
10 | $ THEN | ||
11 | $ WRITE SYS$OUTPUT "First argument missing." | ||
12 | $ WRITE SYS$OUTPUT - | ||
13 | "Should be the directory where you want things installed." | ||
14 | $ EXIT | ||
15 | $ ENDIF | ||
16 | $ | ||
17 | $ IF (F$GETSYI("CPU").LT.128) | ||
18 | $ THEN | ||
19 | $ ARCH := VAX | ||
20 | $ ELSE | ||
21 | $ ARCH = F$EDIT( F$GETSYI( "ARCH_NAME"), "UPCASE") | ||
22 | $ IF (ARCH .EQS. "") THEN ARCH = "UNK" | ||
23 | $ ENDIF | ||
24 | $ | ||
25 | $ ROOT = F$PARSE(P1,"[]A.;0",,,"SYNTAX_ONLY,NO_CONCEAL") - "A.;0" | ||
26 | $ ROOT_DEV = F$PARSE(ROOT,,,"DEVICE","SYNTAX_ONLY") | ||
27 | $ ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") - | ||
28 | - "[000000." - "][" - "[" - "]" | ||
29 | $ ROOT = ROOT_DEV + "[" + ROOT_DIR | ||
30 | $ | ||
31 | $ DEFINE/NOLOG WRK_SSLROOT 'ROOT'.] /TRANS=CONC | ||
32 | $ DEFINE/NOLOG WRK_SSLEXE WRK_SSLROOT:['ARCH'_EXE] | ||
33 | $ | ||
34 | $ IF F$PARSE("WRK_SSLROOT:[000000]") .EQS. "" THEN - | ||
35 | CREATE/DIR/LOG WRK_SSLROOT:[000000] | ||
36 | $ IF F$PARSE("WRK_SSLEXE:") .EQS. "" THEN - | ||
37 | CREATE/DIR/LOG WRK_SSLEXE: | ||
38 | $ | ||
39 | $ EXE := openssl | ||
40 | $ | ||
41 | $ EXE_DIR := [-.'ARCH'.EXE.APPS] | ||
42 | $ | ||
43 | $ I = 0 | ||
44 | $ LOOP_EXE: | ||
45 | $ E = F$EDIT(F$ELEMENT(I, ",", EXE),"TRIM") | ||
46 | $ I = I + 1 | ||
47 | $ IF E .EQS. "," THEN GOTO LOOP_EXE_END | ||
48 | $ SET NOON | ||
49 | $ IF F$SEARCH(EXE_DIR+E+".EXE") .NES. "" | ||
50 | $ THEN | ||
51 | $ COPY 'EXE_DIR''E'.EXE WRK_SSLEXE:'E'.EXE/log | ||
52 | $ SET FILE/PROT=W:RE WRK_SSLEXE:'E'.EXE | ||
53 | $ ENDIF | ||
54 | $ SET ON | ||
55 | $ GOTO LOOP_EXE | ||
56 | $ LOOP_EXE_END: | ||
57 | $ | ||
58 | $ SET NOON | ||
59 | $ COPY CA.COM WRK_SSLEXE:CA.COM/LOG | ||
60 | $ SET FILE/PROT=W:RE WRK_SSLEXE:CA.COM | ||
61 | $ COPY OPENSSL-VMS.CNF WRK_SSLROOT:[000000]OPENSSL.CNF/LOG | ||
62 | $ SET FILE/PROT=W:R WRK_SSLROOT:[000000]OPENSSL.CNF | ||
63 | $ SET ON | ||
64 | $ | ||
65 | $ EXIT | ||
diff --git a/src/lib/libssl/src/apps/makeapps.com b/src/lib/libssl/src/apps/makeapps.com deleted file mode 100644 index efc213c8ee..0000000000 --- a/src/lib/libssl/src/apps/makeapps.com +++ /dev/null | |||
@@ -1,1169 +0,0 @@ | |||
1 | $! | ||
2 | $! MAKEAPPS.COM | ||
3 | $! Written By: Robert Byer | ||
4 | $! Vice-President | ||
5 | $! A-Com Computing, Inc. | ||
6 | $! byer@mail.all-net.net | ||
7 | $! | ||
8 | $! Changes by Richard Levitte <richard@levitte.org> | ||
9 | $! Zoltan Arpadffy <zoli@polarhome.com> | ||
10 | $! | ||
11 | $! This command files compiles and creates all the various different | ||
12 | $! "application" programs for the different types of encryption for OpenSSL. | ||
13 | $! The EXE's are placed in the directory [.xxx.EXE.APPS] where "xxx" denotes | ||
14 | $! ALPHA, IA64 or VAX, depending on your machine architecture. | ||
15 | $! | ||
16 | $! It was written so it would try to determine what "C" compiler to | ||
17 | $! use or you can specify which "C" compiler to use. | ||
18 | $! | ||
19 | $! Specify DEBUG or NODEBUG as P1 to compile with or without debugger | ||
20 | $! information. | ||
21 | $! | ||
22 | $! Specify which compiler at P2 to try to compile under. | ||
23 | $! | ||
24 | $! VAXC For VAX C. | ||
25 | $! DECC For DEC C. | ||
26 | $! GNUC For GNU C. | ||
27 | $! | ||
28 | $! If you don't specify a compiler, it will try to determine which | ||
29 | $! "C" compiler to use. | ||
30 | $! | ||
31 | $! P3, if defined, sets a TCP/IP library to use, through one of the following | ||
32 | $! keywords: | ||
33 | $! | ||
34 | $! UCX for UCX | ||
35 | $! SOCKETSHR for SOCKETSHR+NETLIB | ||
36 | $! TCPIP for TCPIP (post UCX) | ||
37 | $! | ||
38 | $! P4, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up) | ||
39 | $! | ||
40 | $! P5, if defined, sets a choice of programs to compile. | ||
41 | $! | ||
42 | $! P6, if defined, specifies the C pointer size. Ignored on VAX. | ||
43 | $! ("64=ARGV" gives more efficient code with HP C V7.3 or newer.) | ||
44 | $! Supported values are: | ||
45 | $! | ||
46 | $! "" Compile with default (/NOPOINTER_SIZE) | ||
47 | $! 32 Compile with /POINTER_SIZE=32 (SHORT) | ||
48 | $! 64 Compile with /POINTER_SIZE=64[=ARGV] (LONG[=ARGV]) | ||
49 | $! (Automatically select ARGV if compiler supports it.) | ||
50 | $! 64= Compile with /POINTER_SIZE=64 (LONG). | ||
51 | $! 64=ARGV Compile with /POINTER_SIZE=64=ARGV (LONG=ARGV). | ||
52 | $! | ||
53 | $! P7, if defined, specifies a directory where ZLIB files (zlib.h, | ||
54 | $! libz.olb) may be found. Optionally, a non-default object library | ||
55 | $! name may be included ("dev:[dir]libz_64.olb", for example). | ||
56 | $! | ||
57 | $! | ||
58 | $! Announce/identify. | ||
59 | $! | ||
60 | $ proc = f$environment( "procedure") | ||
61 | $ write sys$output "@@@ "+ - | ||
62 | f$parse( proc, , , "name")+ f$parse( proc, , , "type") | ||
63 | $! | ||
64 | $ on control_c then goto exit | ||
65 | $! | ||
66 | $! Define A TCP/IP Library That We Will Need To Link To. | ||
67 | $! (That Is, If We Need To Link To One.) | ||
68 | $! | ||
69 | $ TCPIP_LIB = "" | ||
70 | $ ZLIB_LIB = "" | ||
71 | $! | ||
72 | $! Check What Architecture We Are Using. | ||
73 | $! | ||
74 | $ IF (F$GETSYI("CPU").LT.128) | ||
75 | $ THEN | ||
76 | $! | ||
77 | $! The Architecture Is VAX. | ||
78 | $! | ||
79 | $ ARCH = "VAX" | ||
80 | $! | ||
81 | $! Else... | ||
82 | $! | ||
83 | $ ELSE | ||
84 | $! | ||
85 | $! The Architecture Is Alpha, IA64 or whatever comes in the future. | ||
86 | $! | ||
87 | $ ARCH = F$EDIT( F$GETSYI( "ARCH_NAME"), "UPCASE") | ||
88 | $ IF (ARCH .EQS. "") THEN ARCH = "UNK" | ||
89 | $! | ||
90 | $! End The Architecture Check. | ||
91 | $! | ||
92 | $ ENDIF | ||
93 | $! | ||
94 | $ ARCHD = ARCH | ||
95 | $ LIB32 = "32" | ||
96 | $ OPT_FILE = "" | ||
97 | $ POINTER_SIZE = "" | ||
98 | $! | ||
99 | $! Define what programs should be compiled | ||
100 | $! | ||
101 | $ PROGRAMS := OPENSSL | ||
102 | $! | ||
103 | $! Check To Make Sure We Have Valid Command Line Parameters. | ||
104 | $! | ||
105 | $ GOSUB CHECK_OPTIONS | ||
106 | $! | ||
107 | $! Define The CRYPTO Library. | ||
108 | $! | ||
109 | $ CRYPTO_LIB := SYS$DISK:[-.'ARCHD'.EXE.CRYPTO]SSL_LIBCRYPTO'LIB32'.OLB | ||
110 | $! | ||
111 | $! Define The SSL Library. | ||
112 | $! | ||
113 | $ SSL_LIB := SYS$DISK:[-.'ARCHD'.EXE.SSL]SSL_LIBSSL'LIB32'.OLB | ||
114 | $! | ||
115 | $! Define The OBJ and EXE Directories. | ||
116 | $! | ||
117 | $ OBJ_DIR := SYS$DISK:[-.'ARCHD'.OBJ.APPS] | ||
118 | $ EXE_DIR := SYS$DISK:[-.'ARCHD'.EXE.APPS] | ||
119 | $! | ||
120 | $! Specify the destination directory in any /MAP option. | ||
121 | $! | ||
122 | $ if (LINKMAP .eqs. "MAP") | ||
123 | $ then | ||
124 | $ LINKMAP = LINKMAP+ "=''EXE_DIR'" | ||
125 | $ endif | ||
126 | $! | ||
127 | $! Add the location prefix to the linker options file name. | ||
128 | $! | ||
129 | $ if (OPT_FILE .nes. "") | ||
130 | $ then | ||
131 | $ OPT_FILE = EXE_DIR+ OPT_FILE | ||
132 | $ endif | ||
133 | $! | ||
134 | $! Initialise logical names and such | ||
135 | $! | ||
136 | $ GOSUB INITIALISE | ||
137 | $! | ||
138 | $! Tell The User What Kind of Machine We Run On. | ||
139 | $! | ||
140 | $ WRITE SYS$OUTPUT "Host system architecture: ''ARCHD'" | ||
141 | $! | ||
142 | $! Check To See If The OBJ Directory Exists. | ||
143 | $! | ||
144 | $ IF (F$PARSE(OBJ_DIR).EQS."") | ||
145 | $ THEN | ||
146 | $! | ||
147 | $! It Dosen't Exist, So Create It. | ||
148 | $! | ||
149 | $ CREATE/DIRECTORY 'OBJ_DIR' | ||
150 | $! | ||
151 | $! End The OBJ Directory Check. | ||
152 | $! | ||
153 | $ ENDIF | ||
154 | $! | ||
155 | $! Check To See If The EXE Directory Exists. | ||
156 | $! | ||
157 | $ IF (F$PARSE(EXE_DIR).EQS."") | ||
158 | $ THEN | ||
159 | $! | ||
160 | $! It Dosen't Exist, So Create It. | ||
161 | $! | ||
162 | $ CREATE/DIRECTORY 'EXE_DIR' | ||
163 | $! | ||
164 | $! End The EXE Directory Check. | ||
165 | $! | ||
166 | $ ENDIF | ||
167 | $! | ||
168 | $! Check To See If We Have The Proper Libraries. | ||
169 | $! | ||
170 | $ GOSUB LIB_CHECK | ||
171 | $! | ||
172 | $! Check To See If We Have A Linker Option File. | ||
173 | $! | ||
174 | $ GOSUB CHECK_OPT_FILE | ||
175 | $! | ||
176 | $! Define The Application Files. | ||
177 | $! NOTE: Some might think this list ugly. However, it's made this way to | ||
178 | $! reflect the E_OBJ variable in Makefile as closely as possible, thereby | ||
179 | $! making it fairly easy to verify that the lists are the same. | ||
180 | $! | ||
181 | $ LIB_OPENSSL = "VERIFY,ASN1PARS,REQ,DGST,DH,DHPARAM,ENC,PASSWD,GENDH,ERRSTR,"+- | ||
182 | "CA,PKCS7,CRL2P7,CRL,"+- | ||
183 | "RSA,RSAUTL,DSA,DSAPARAM,EC,ECPARAM,"+- | ||
184 | "X509,GENRSA,GENDSA,GENPKEY,S_SERVER,S_CLIENT,SPEED,"+- | ||
185 | "S_TIME,APPS,S_CB,S_SOCKET,APP_RAND,VERSION,SESS_ID,"+- | ||
186 | "CIPHERS,NSEQ,PKCS12,PKCS8,PKEY,PKEYPARAM,PKEYUTL,"+ - | ||
187 | "SPKAC,SMIME,CMS,RAND,ENGINE,OCSP,PRIME,TS,SRP" | ||
188 | $! | ||
189 | $ LIB_OPENSSL = LIB_OPENSSL+ ",VMS_DECC_INIT" | ||
190 | $! | ||
191 | $ TCPIP_PROGRAMS = ",," | ||
192 | $ IF COMPILER .EQS. "VAXC" THEN - | ||
193 | TCPIP_PROGRAMS = ",OPENSSL," | ||
194 | $! | ||
195 | $! Setup exceptional compilations | ||
196 | $! | ||
197 | $ COMPILEWITH_CC2 = ",S_SOCKET,S_SERVER,S_CLIENT," | ||
198 | $! | ||
199 | $ PHASE := LIB | ||
200 | $! | ||
201 | $ RESTART: | ||
202 | $! | ||
203 | $! Define An App Counter And Set It To "0". | ||
204 | $! | ||
205 | $ APP_COUNTER = 0 | ||
206 | $! | ||
207 | $! Top Of The App Loop. | ||
208 | $! | ||
209 | $ NEXT_APP: | ||
210 | $! | ||
211 | $! Make The Application File Name | ||
212 | $! | ||
213 | $ CURRENT_APP = F$EDIT(F$ELEMENT(APP_COUNTER,",",PROGRAMS),"TRIM") | ||
214 | $! | ||
215 | $! Create The Executable File Name. | ||
216 | $! | ||
217 | $ EXE_FILE = EXE_DIR + CURRENT_APP + ".EXE" | ||
218 | $! | ||
219 | $! Check To See If We Are At The End Of The File List. | ||
220 | $! | ||
221 | $ IF (CURRENT_APP.EQS.",") | ||
222 | $ THEN | ||
223 | $ IF (PHASE.EQS."LIB") | ||
224 | $ THEN | ||
225 | $ PHASE := APP | ||
226 | $ GOTO RESTART | ||
227 | $ ELSE | ||
228 | $ GOTO APP_DONE | ||
229 | $ ENDIF | ||
230 | $ ENDIF | ||
231 | $! | ||
232 | $! Increment The Counter. | ||
233 | $! | ||
234 | $ APP_COUNTER = APP_COUNTER + 1 | ||
235 | $! | ||
236 | $! Decide if we're building the object files or not. | ||
237 | $! | ||
238 | $ IF (PHASE.EQS."LIB") | ||
239 | $ THEN | ||
240 | $! | ||
241 | $! Define A Library File Counter And Set It To "-1". | ||
242 | $! -1 Means The Application File Name Is To Be Used. | ||
243 | $! | ||
244 | $ LIB_COUNTER = -1 | ||
245 | $! | ||
246 | $! Create a .OPT file for the object files | ||
247 | $! | ||
248 | $ OPEN /WRITE OBJECTS 'EXE_DIR''CURRENT_APP'.OPT | ||
249 | $! | ||
250 | $! Top Of The File Loop. | ||
251 | $! | ||
252 | $ NEXT_LIB: | ||
253 | $! | ||
254 | $! O.K, Extract The File Name From The File List. | ||
255 | $! | ||
256 | $ IF LIB_COUNTER .GE. 0 | ||
257 | $ THEN | ||
258 | $ FILE_NAME = F$EDIT(F$ELEMENT(LIB_COUNTER,",",LIB_'CURRENT_APP'),"TRIM") | ||
259 | $ ELSE | ||
260 | $ FILE_NAME = CURRENT_APP | ||
261 | $ ENDIF | ||
262 | $! | ||
263 | $! Check To See If We Are At The End Of The File List. | ||
264 | $! | ||
265 | $ IF (FILE_NAME.EQS.",") | ||
266 | $ THEN | ||
267 | $ CLOSE OBJECTS | ||
268 | $ GOTO NEXT_APP | ||
269 | $ ENDIF | ||
270 | $! | ||
271 | $! Increment The Counter. | ||
272 | $! | ||
273 | $ LIB_COUNTER = LIB_COUNTER + 1 | ||
274 | $! | ||
275 | $! Create The Source File Name. | ||
276 | $! | ||
277 | $ SOURCE_FILE = "SYS$DISK:[]" + FILE_NAME + ".C" | ||
278 | $! | ||
279 | $! Create The Object File Name. | ||
280 | $! | ||
281 | $ OBJECT_FILE = OBJ_DIR + FILE_NAME + ".OBJ" | ||
282 | $ ON WARNING THEN GOTO NEXT_LIB | ||
283 | $! | ||
284 | $! Check To See If The File We Want To Compile Actually Exists. | ||
285 | $! | ||
286 | $ IF (F$SEARCH(SOURCE_FILE).EQS."") | ||
287 | $ THEN | ||
288 | $! | ||
289 | $! Tell The User That The File Dosen't Exist. | ||
290 | $! | ||
291 | $ WRITE SYS$OUTPUT "" | ||
292 | $ WRITE SYS$OUTPUT "The File ",SOURCE_FILE," Dosen't Exist." | ||
293 | $ WRITE SYS$OUTPUT "" | ||
294 | $! | ||
295 | $! Exit The Build. | ||
296 | $! | ||
297 | $ GOTO EXIT | ||
298 | $! | ||
299 | $! End The File Exist Check. | ||
300 | $! | ||
301 | $ ENDIF | ||
302 | $! | ||
303 | $! Tell The User What We Are Building. | ||
304 | $! | ||
305 | $ IF (PHASE.EQS."LIB") | ||
306 | $ THEN | ||
307 | $ WRITE SYS$OUTPUT "Compiling The ",FILE_NAME,".C File." | ||
308 | $ ELSE | ||
309 | $ WRITE SYS$OUTPUT "Building The ",FILE_NAME," Application Program." | ||
310 | $ ENDIF | ||
311 | $! | ||
312 | $! Compile The File. | ||
313 | $! | ||
314 | $ ON ERROR THEN GOTO NEXT_LIB | ||
315 | $ IF COMPILEWITH_CC2 - FILE_NAME .NES. COMPILEWITH_CC2 | ||
316 | $ THEN | ||
317 | $ CC2/OBJECT='OBJECT_FILE' 'SOURCE_FILE' | ||
318 | $ ELSE | ||
319 | $ CC/OBJECT='OBJECT_FILE' 'SOURCE_FILE' | ||
320 | $ ENDIF | ||
321 | $ WRITE OBJECTS OBJECT_FILE | ||
322 | $! | ||
323 | $ GOTO NEXT_LIB | ||
324 | $ ENDIF | ||
325 | $! | ||
326 | $! Check if this program works well without a TCPIP library | ||
327 | $! | ||
328 | $ IF TCPIP_LIB .EQS. "" .AND. TCPIP_PROGRAMS - CURRENT_APP .NES. TCPIP_PROGRAMS | ||
329 | $ THEN | ||
330 | $ WRITE SYS$OUTPUT CURRENT_APP," needs a TCP/IP library. Can't link. Skipping..." | ||
331 | $ GOTO NEXT_APP | ||
332 | $ ENDIF | ||
333 | $! | ||
334 | $! Link The Program. | ||
335 | $! | ||
336 | $ ON WARNING THEN GOTO NEXT_APP | ||
337 | $! | ||
338 | $! Don't Link With The RSAREF Routines And TCP/IP Library. | ||
339 | $! | ||
340 | $ LINK /'DEBUGGER' /'LINKMAP' /'TRACEBACK' /EXE='EXE_FILE' - | ||
341 | 'EXE_DIR''CURRENT_APP'.OPT /OPTIONS, - | ||
342 | 'SSL_LIB' /LIBRARY, - | ||
343 | 'CRYPTO_LIB' /LIBRARY - | ||
344 | 'TCPIP_LIB' - | ||
345 | 'ZLIB_LIB' - | ||
346 | ,'OPT_FILE' /OPTIONS | ||
347 | $! | ||
348 | $! Go Back And Do It Again. | ||
349 | $! | ||
350 | $ GOTO NEXT_APP | ||
351 | $! | ||
352 | $! All Done With This File. | ||
353 | $! | ||
354 | $ APP_DONE: | ||
355 | $ EXIT: | ||
356 | $! | ||
357 | $! All Done, Time To Clean Up And Exit. | ||
358 | $! | ||
359 | $ GOSUB CLEANUP | ||
360 | $ EXIT | ||
361 | $! | ||
362 | $! Check For The Link Option FIle. | ||
363 | $! | ||
364 | $ CHECK_OPT_FILE: | ||
365 | $! | ||
366 | $! Check To See If We Need To Make A VAX C Option File. | ||
367 | $! | ||
368 | $ IF (COMPILER.EQS."VAXC") | ||
369 | $ THEN | ||
370 | $! | ||
371 | $! Check To See If We Already Have A VAX C Linker Option File. | ||
372 | $! | ||
373 | $ IF (F$SEARCH(OPT_FILE).EQS."") | ||
374 | $ THEN | ||
375 | $! | ||
376 | $! We Need A VAX C Linker Option File. | ||
377 | $! | ||
378 | $ CREATE 'OPT_FILE' | ||
379 | $DECK | ||
380 | ! | ||
381 | ! Default System Options File To Link Against | ||
382 | ! The Sharable VAX C Runtime Library. | ||
383 | ! | ||
384 | SYS$SHARE:VAXCRTL.EXE/SHARE | ||
385 | $EOD | ||
386 | $! | ||
387 | $! End The Option File Check. | ||
388 | $! | ||
389 | $ ENDIF | ||
390 | $! | ||
391 | $! End The VAXC Check. | ||
392 | $! | ||
393 | $ ENDIF | ||
394 | $! | ||
395 | $! Check To See If We Need A GNU C Option File. | ||
396 | $! | ||
397 | $ IF (COMPILER.EQS."GNUC") | ||
398 | $ THEN | ||
399 | $! | ||
400 | $! Check To See If We Already Have A GNU C Linker Option File. | ||
401 | $! | ||
402 | $ IF (F$SEARCH(OPT_FILE).EQS."") | ||
403 | $ THEN | ||
404 | $! | ||
405 | $! We Need A GNU C Linker Option File. | ||
406 | $! | ||
407 | $ CREATE 'OPT_FILE' | ||
408 | $DECK | ||
409 | ! | ||
410 | ! Default System Options File To Link Against | ||
411 | ! The Sharable C Runtime Library. | ||
412 | ! | ||
413 | GNU_CC:[000000]GCCLIB/LIBRARY | ||
414 | SYS$SHARE:VAXCRTL/SHARE | ||
415 | $EOD | ||
416 | $! | ||
417 | $! End The Option File Check. | ||
418 | $! | ||
419 | $ ENDIF | ||
420 | $! | ||
421 | $! End The GNU C Check. | ||
422 | $! | ||
423 | $ ENDIF | ||
424 | $! | ||
425 | $! Check To See If We Need A DEC C Option File. | ||
426 | $! | ||
427 | $ IF (COMPILER.EQS."DECC") | ||
428 | $ THEN | ||
429 | $! | ||
430 | $! Check To See If We Already Have A DEC C Linker Option File. | ||
431 | $! | ||
432 | $ IF (F$SEARCH(OPT_FILE).EQS."") | ||
433 | $ THEN | ||
434 | $! | ||
435 | $! Figure Out If We Need An AXP Or A VAX Linker Option File. | ||
436 | $! | ||
437 | $ IF ARCH.EQS."VAX" | ||
438 | $ THEN | ||
439 | $! | ||
440 | $! We Need A DEC C Linker Option File For VAX. | ||
441 | $! | ||
442 | $ CREATE 'OPT_FILE' | ||
443 | $DECK | ||
444 | ! | ||
445 | ! Default System Options File To Link Against | ||
446 | ! The Sharable DEC C Runtime Library. | ||
447 | ! | ||
448 | SYS$SHARE:DECC$SHR.EXE/SHARE | ||
449 | $EOD | ||
450 | $! | ||
451 | $! Else... | ||
452 | $! | ||
453 | $ ELSE | ||
454 | $! | ||
455 | $! Create The non-VAX Linker Option File. | ||
456 | $! | ||
457 | $ CREATE 'OPT_FILE' | ||
458 | $DECK | ||
459 | ! | ||
460 | ! Default System Options File For non-VAX To Link Against | ||
461 | ! The Sharable C Runtime Library. | ||
462 | ! | ||
463 | SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE | ||
464 | SYS$SHARE:CMA$OPEN_RTL/SHARE | ||
465 | $EOD | ||
466 | $! | ||
467 | $! End The DEC C Option File Check. | ||
468 | $! | ||
469 | $ ENDIF | ||
470 | $! | ||
471 | $! End The Option File Search. | ||
472 | $! | ||
473 | $ ENDIF | ||
474 | $! | ||
475 | $! End The DEC C Check. | ||
476 | $! | ||
477 | $ ENDIF | ||
478 | $! | ||
479 | $! Tell The User What Linker Option File We Are Using. | ||
480 | $! | ||
481 | $ WRITE SYS$OUTPUT "Using Linker Option File ",OPT_FILE,"." | ||
482 | $! | ||
483 | $! Time To RETURN. | ||
484 | $! | ||
485 | $ RETURN | ||
486 | $! | ||
487 | $! Check To See If We Have The Appropiate Libraries. | ||
488 | $! | ||
489 | $ LIB_CHECK: | ||
490 | $! | ||
491 | $! Look For The Library LIBCRYPTO.OLB. | ||
492 | $! | ||
493 | $ IF (F$SEARCH(CRYPTO_LIB).EQS."") | ||
494 | $ THEN | ||
495 | $! | ||
496 | $! Tell The User We Can't Find The LIBCRYPTO.OLB Library. | ||
497 | $! | ||
498 | $ WRITE SYS$OUTPUT "" | ||
499 | $ WRITE SYS$OUTPUT "Can't Find The Library ",CRYPTO_LIB,"." | ||
500 | $ WRITE SYS$OUTPUT "We Can't Link Without It." | ||
501 | $ WRITE SYS$OUTPUT "" | ||
502 | $! | ||
503 | $! Since We Can't Link Without It, Exit. | ||
504 | $! | ||
505 | $ EXIT | ||
506 | $! | ||
507 | $! End The Crypto Library Check. | ||
508 | $! | ||
509 | $ ENDIF | ||
510 | $! | ||
511 | $! Look For The Library LIBSSL.OLB. | ||
512 | $! | ||
513 | $ IF (F$SEARCH(SSL_LIB).EQS."") | ||
514 | $ THEN | ||
515 | $! | ||
516 | $! Tell The User We Can't Find The LIBSSL.OLB Library. | ||
517 | $! | ||
518 | $ WRITE SYS$OUTPUT "" | ||
519 | $ WRITE SYS$OUTPUT "Can't Find The Library ",SSL_LIB,"." | ||
520 | $ WRITE SYS$OUTPUT "Some Of The Test Programs Need To Link To It." | ||
521 | $ WRITE SYS$OUTPUT "" | ||
522 | $! | ||
523 | $! Since We Can't Link Without It, Exit. | ||
524 | $! | ||
525 | $ EXIT | ||
526 | $! | ||
527 | $! End The SSL Library Check. | ||
528 | $! | ||
529 | $ ENDIF | ||
530 | $! | ||
531 | $! Time To Return. | ||
532 | $! | ||
533 | $ RETURN | ||
534 | $! | ||
535 | $! Check The User's Options. | ||
536 | $! | ||
537 | $ CHECK_OPTIONS: | ||
538 | $! | ||
539 | $! Check To See If P1 Is Blank. | ||
540 | $! | ||
541 | $ IF (P1.EQS."NODEBUG") | ||
542 | $ THEN | ||
543 | $! | ||
544 | $! P1 Is NODEBUG, So Compile Without Debugger Information. | ||
545 | $! | ||
546 | $ DEBUGGER = "NODEBUG" | ||
547 | $ LINKMAP = "NOMAP" | ||
548 | $ TRACEBACK = "NOTRACEBACK" | ||
549 | $ GCC_OPTIMIZE = "OPTIMIZE" | ||
550 | $ CC_OPTIMIZE = "OPTIMIZE" | ||
551 | $ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile." | ||
552 | $ WRITE SYS$OUTPUT "Compiling With Compiler Optimization." | ||
553 | $! | ||
554 | $! Else... | ||
555 | $! | ||
556 | $ ELSE | ||
557 | $! | ||
558 | $! Check To See If We Are To Compile With Debugger Information. | ||
559 | $! | ||
560 | $ IF (P1.EQS."DEBUG") | ||
561 | $ THEN | ||
562 | $! | ||
563 | $! Compile With Debugger Information. | ||
564 | $! | ||
565 | $ DEBUGGER = "DEBUG" | ||
566 | $ LINKMAP = "MAP" | ||
567 | $ TRACEBACK = "TRACEBACK" | ||
568 | $ GCC_OPTIMIZE = "NOOPTIMIZE" | ||
569 | $ CC_OPTIMIZE = "NOOPTIMIZE" | ||
570 | $ WRITE SYS$OUTPUT "Debugger Information Will Be Produced During Compile." | ||
571 | $ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization." | ||
572 | $ ELSE | ||
573 | $! | ||
574 | $! Tell The User Entered An Invalid Option. | ||
575 | $! | ||
576 | $ WRITE SYS$OUTPUT "" | ||
577 | $ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:" | ||
578 | $ WRITE SYS$OUTPUT "" | ||
579 | $ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information." | ||
580 | $ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information." | ||
581 | $ WRITE SYS$OUTPUT "" | ||
582 | $! | ||
583 | $! Time To EXIT. | ||
584 | $! | ||
585 | $ EXIT | ||
586 | $! | ||
587 | $! End The Valid Argument Check. | ||
588 | $! | ||
589 | $ ENDIF | ||
590 | $! | ||
591 | $! End The P1 Check. | ||
592 | $! | ||
593 | $ ENDIF | ||
594 | $! | ||
595 | $! Check P6 (POINTER_SIZE). | ||
596 | $! | ||
597 | $ IF (P6 .NES. "") .AND. (ARCH .NES. "VAX") | ||
598 | $ THEN | ||
599 | $! | ||
600 | $ IF (P6 .EQS. "32") | ||
601 | $ THEN | ||
602 | $ POINTER_SIZE = " /POINTER_SIZE=32" | ||
603 | $ ELSE | ||
604 | $ POINTER_SIZE = F$EDIT( P6, "COLLAPSE, UPCASE") | ||
605 | $ IF ((POINTER_SIZE .EQS. "64") .OR. - | ||
606 | (POINTER_SIZE .EQS. "64=") .OR. - | ||
607 | (POINTER_SIZE .EQS. "64=ARGV")) | ||
608 | $ THEN | ||
609 | $ ARCHD = ARCH+ "_64" | ||
610 | $ LIB32 = "" | ||
611 | $ IF (F$EXTRACT( 2, 1, POINTER_SIZE) .EQS. "=") | ||
612 | $ THEN | ||
613 | $! Explicit user choice: "64" or "64=ARGV". | ||
614 | $ IF (POINTER_SIZE .EQS. "64=") THEN POINTER_SIZE = "64" | ||
615 | $ ELSE | ||
616 | $ SET NOON | ||
617 | $ DEFINE /USER_MODE SYS$OUTPUT NL: | ||
618 | $ DEFINE /USER_MODE SYS$ERROR NL: | ||
619 | $ CC /NOLIST /NOOBJECT /POINTER_SIZE=64=ARGV NL: | ||
620 | $ IF ($STATUS .AND. %X0FFF0000) .EQ. %X00030000 | ||
621 | $ THEN | ||
622 | $ ! If we got here, it means DCL complained like this: | ||
623 | $ ! %DCL-W-NOVALU, value not allowed - remove value specification | ||
624 | $ ! \64=\ | ||
625 | $ ! | ||
626 | $ ! If the compiler was run, logicals defined in /USER would | ||
627 | $ ! have been deassigned automatically. However, when DCL | ||
628 | $ ! complains, they aren't, so we do it here (it might be | ||
629 | $ ! unnecessary, but just in case there will be another error | ||
630 | $ ! message further on that we don't want to miss) | ||
631 | $ DEASSIGN /USER_MODE SYS$ERROR | ||
632 | $ DEASSIGN /USER_MODE SYS$OUTPUT | ||
633 | $ ELSE | ||
634 | $ POINTER_SIZE = POINTER_SIZE + "=ARGV" | ||
635 | $ ENDIF | ||
636 | $ SET ON | ||
637 | $ ENDIF | ||
638 | $ POINTER_SIZE = " /POINTER_SIZE=''POINTER_SIZE'" | ||
639 | $! | ||
640 | $ ELSE | ||
641 | $! | ||
642 | $! Tell The User Entered An Invalid Option. | ||
643 | $! | ||
644 | $ WRITE SYS$OUTPUT "" | ||
645 | $ WRITE SYS$OUTPUT "The Option ", P6, - | ||
646 | " Is Invalid. The Valid Options Are:" | ||
647 | $ WRITE SYS$OUTPUT "" | ||
648 | $ WRITE SYS$OUTPUT - | ||
649 | " """" : Compile with default (short) pointers." | ||
650 | $ WRITE SYS$OUTPUT - | ||
651 | " 32 : Compile with 32-bit (short) pointers." | ||
652 | $ WRITE SYS$OUTPUT - | ||
653 | " 64 : Compile with 64-bit (long) pointers (auto ARGV)." | ||
654 | $ WRITE SYS$OUTPUT - | ||
655 | " 64= : Compile with 64-bit (long) pointers (no ARGV)." | ||
656 | $ WRITE SYS$OUTPUT - | ||
657 | " 64=ARGV : Compile with 64-bit (long) pointers (ARGV)." | ||
658 | $ WRITE SYS$OUTPUT "" | ||
659 | $! | ||
660 | $! Time To EXIT. | ||
661 | $! | ||
662 | $ EXIT | ||
663 | $! | ||
664 | $ ENDIF | ||
665 | $! | ||
666 | $ ENDIF | ||
667 | $! | ||
668 | $! End The P6 (POINTER_SIZE) Check. | ||
669 | $! | ||
670 | $ ENDIF | ||
671 | $! | ||
672 | $! Set basic C compiler /INCLUDE directories. | ||
673 | $! | ||
674 | $ CC_INCLUDES = "SYS$DISK:[-],SYS$DISK:[-.CRYPTO]" | ||
675 | $! | ||
676 | $! Check To See If P2 Is Blank. | ||
677 | $! | ||
678 | $ IF (P2.EQS."") | ||
679 | $ THEN | ||
680 | $! | ||
681 | $! O.K., The User Didn't Specify A Compiler, Let's Try To | ||
682 | $! Find Out Which One To Use. | ||
683 | $! | ||
684 | $! Check To See If We Have GNU C. | ||
685 | $! | ||
686 | $ IF (F$TRNLNM("GNU_CC").NES."") | ||
687 | $ THEN | ||
688 | $! | ||
689 | $! Looks Like GNUC, Set To Use GNUC. | ||
690 | $! | ||
691 | $ P2 = "GNUC" | ||
692 | $! | ||
693 | $! Else... | ||
694 | $! | ||
695 | $ ELSE | ||
696 | $! | ||
697 | $! Check To See If We Have VAXC Or DECC. | ||
698 | $! | ||
699 | $ IF (ARCH.NES."VAX").OR.(F$TRNLNM("DECC$CC_DEFAULT").NES."") | ||
700 | $ THEN | ||
701 | $! | ||
702 | $! Looks Like DECC, Set To Use DECC. | ||
703 | $! | ||
704 | $ P2 = "DECC" | ||
705 | $! | ||
706 | $! Else... | ||
707 | $! | ||
708 | $ ELSE | ||
709 | $! | ||
710 | $! Looks Like VAXC, Set To Use VAXC. | ||
711 | $! | ||
712 | $ P2 = "VAXC" | ||
713 | $! | ||
714 | $! End The VAXC Compiler Check. | ||
715 | $! | ||
716 | $ ENDIF | ||
717 | $! | ||
718 | $! End The DECC & VAXC Compiler Check. | ||
719 | $! | ||
720 | $ ENDIF | ||
721 | $! | ||
722 | $! End The Compiler Check. | ||
723 | $! | ||
724 | $ ENDIF | ||
725 | $! | ||
726 | $! Check To See If We Have A Option For P3. | ||
727 | $! | ||
728 | $ IF (P3.EQS."") | ||
729 | $ THEN | ||
730 | $! | ||
731 | $! Find out what socket library we have available | ||
732 | $! | ||
733 | $ IF F$PARSE("SOCKETSHR:") .NES. "" | ||
734 | $ THEN | ||
735 | $! | ||
736 | $! We have SOCKETSHR, and it is my opinion that it's the best to use. | ||
737 | $! | ||
738 | $ P3 = "SOCKETSHR" | ||
739 | $! | ||
740 | $! Tell the user | ||
741 | $! | ||
742 | $ WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP" | ||
743 | $! | ||
744 | $! Else, let's look for something else | ||
745 | $! | ||
746 | $ ELSE | ||
747 | $! | ||
748 | $! Like UCX (the reason to do this before Multinet is that the UCX | ||
749 | $! emulation is easier to use...) | ||
750 | $! | ||
751 | $ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" - | ||
752 | .OR. F$PARSE("SYS$SHARE:UCX$IPC_SHR.EXE") .NES. "" - | ||
753 | .OR. F$PARSE("SYS$LIBRARY:UCX$IPC.OLB") .NES. "" | ||
754 | $ THEN | ||
755 | $! | ||
756 | $! Last resort: a UCX or UCX-compatible library | ||
757 | $! | ||
758 | $ P3 = "UCX" | ||
759 | $! | ||
760 | $! Tell the user | ||
761 | $! | ||
762 | $ WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP" | ||
763 | $! | ||
764 | $! That was all... | ||
765 | $! | ||
766 | $ ENDIF | ||
767 | $ ENDIF | ||
768 | $ ENDIF | ||
769 | $! | ||
770 | $! Set Up Initial CC Definitions, Possibly With User Ones | ||
771 | $! | ||
772 | $ CCDEFS = "MONOLITH" | ||
773 | $ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS | ||
774 | $ CCEXTRAFLAGS = "" | ||
775 | $ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS | ||
776 | $ CCDISABLEWARNINGS = "" !!! "LONGLONGTYPE,LONGLONGSUFX,FOUNDCR" | ||
777 | $ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN - | ||
778 | CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS | ||
779 | $! | ||
780 | $! Check To See If We Have A ZLIB Option. | ||
781 | $! | ||
782 | $ ZLIB = P7 | ||
783 | $ IF (ZLIB .NES. "") | ||
784 | $ THEN | ||
785 | $! | ||
786 | $! Check for expected ZLIB files. | ||
787 | $! | ||
788 | $ err = 0 | ||
789 | $ file1 = f$parse( "zlib.h", ZLIB, , , "SYNTAX_ONLY") | ||
790 | $ if (f$search( file1) .eqs. "") | ||
791 | $ then | ||
792 | $ WRITE SYS$OUTPUT "" | ||
793 | $ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid." | ||
794 | $ WRITE SYS$OUTPUT " Can't find header: ''file1'" | ||
795 | $ err = 1 | ||
796 | $ endif | ||
797 | $ file1 = f$parse( "A.;", ZLIB)- "A.;" | ||
798 | $! | ||
799 | $ file2 = f$parse( ZLIB, "libz.olb", , , "SYNTAX_ONLY") | ||
800 | $ if (f$search( file2) .eqs. "") | ||
801 | $ then | ||
802 | $ if (err .eq. 0) | ||
803 | $ then | ||
804 | $ WRITE SYS$OUTPUT "" | ||
805 | $ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid." | ||
806 | $ endif | ||
807 | $ WRITE SYS$OUTPUT " Can't find library: ''file2'" | ||
808 | $ WRITE SYS$OUTPUT "" | ||
809 | $ err = err+ 2 | ||
810 | $ endif | ||
811 | $ if (err .eq. 1) | ||
812 | $ then | ||
813 | $ WRITE SYS$OUTPUT "" | ||
814 | $ endif | ||
815 | $! | ||
816 | $ if (err .ne. 0) | ||
817 | $ then | ||
818 | $ EXIT | ||
819 | $ endif | ||
820 | $! | ||
821 | $ CCDEFS = """ZLIB=1"", "+ CCDEFS | ||
822 | $ CC_INCLUDES = CC_INCLUDES+ ", "+ file1 | ||
823 | $ ZLIB_LIB = ", ''file2' /library" | ||
824 | $! | ||
825 | $! Print info | ||
826 | $! | ||
827 | $ WRITE SYS$OUTPUT "ZLIB library spec: ", file2 | ||
828 | $! | ||
829 | $! End The ZLIB Check. | ||
830 | $! | ||
831 | $ ENDIF | ||
832 | $! | ||
833 | $! Check To See If The User Entered A Valid Parameter. | ||
834 | $! | ||
835 | $ IF (P2.EQS."VAXC").OR.(P2.EQS."DECC").OR.(P2.EQS."GNUC") | ||
836 | $ THEN | ||
837 | $! | ||
838 | $! Check To See If The User Wanted DECC. | ||
839 | $! | ||
840 | $ IF (P2.EQS."DECC") | ||
841 | $ THEN | ||
842 | $! | ||
843 | $! Looks Like DECC, Set To Use DECC. | ||
844 | $! | ||
845 | $ COMPILER = "DECC" | ||
846 | $! | ||
847 | $! Tell The User We Are Using DECC. | ||
848 | $! | ||
849 | $ WRITE SYS$OUTPUT "Using DECC 'C' Compiler." | ||
850 | $! | ||
851 | $! Use DECC... | ||
852 | $! | ||
853 | $ CC = "CC" | ||
854 | $ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" - | ||
855 | THEN CC = "CC/DECC" | ||
856 | $ CC = CC + " /''CC_OPTIMIZE' /''DEBUGGER' /STANDARD=RELAXED"+ - | ||
857 | "''POINTER_SIZE' /NOLIST /PREFIX=ALL" + - | ||
858 | " /INCLUDE=(''CC_INCLUDES') " + CCEXTRAFLAGS | ||
859 | $! | ||
860 | $! Define The Linker Options File Name. | ||
861 | $! | ||
862 | $ OPT_FILE = "VAX_DECC_OPTIONS.OPT" | ||
863 | $! | ||
864 | $! End DECC Check. | ||
865 | $! | ||
866 | $ ENDIF | ||
867 | $! | ||
868 | $! Check To See If We Are To Use VAXC. | ||
869 | $! | ||
870 | $ IF (P2.EQS."VAXC") | ||
871 | $ THEN | ||
872 | $! | ||
873 | $! Looks Like VAXC, Set To Use VAXC. | ||
874 | $! | ||
875 | $ COMPILER = "VAXC" | ||
876 | $! | ||
877 | $! Tell The User We Are Using VAX C. | ||
878 | $ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler." | ||
879 | $! | ||
880 | $! Compile Using VAXC. | ||
881 | $! | ||
882 | $ CC = "CC" | ||
883 | $ IF ARCH.NES."VAX" | ||
884 | $ THEN | ||
885 | $ WRITE SYS$OUTPUT "There is no VAX C on ''ARCH'!" | ||
886 | $ EXIT | ||
887 | $ ENDIF | ||
888 | $ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC" | ||
889 | $ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + - | ||
890 | "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS | ||
891 | $ CCDEFS = CCDEFS + ",""VAXC""" | ||
892 | $! | ||
893 | $! Define <sys> As SYS$COMMON:[SYSLIB] | ||
894 | $! | ||
895 | $ DEFINE/NOLOG SYS SYS$COMMON:[SYSLIB] | ||
896 | $! | ||
897 | $! Define The Linker Options File Name. | ||
898 | $! | ||
899 | $ OPT_FILE = "VAX_VAXC_OPTIONS.OPT" | ||
900 | $! | ||
901 | $! End VAXC Check | ||
902 | $! | ||
903 | $ ENDIF | ||
904 | $! | ||
905 | $! Check To See If We Are To Use GNU C. | ||
906 | $! | ||
907 | $ IF (P2.EQS."GNUC") | ||
908 | $ THEN | ||
909 | $! | ||
910 | $! Looks Like GNUC, Set To Use GNUC. | ||
911 | $! | ||
912 | $ COMPILER = "GNUC" | ||
913 | $! | ||
914 | $! Tell The User We Are Using GNUC. | ||
915 | $! | ||
916 | $ WRITE SYS$OUTPUT "Using GNU 'C' Compiler." | ||
917 | $! | ||
918 | $! Use GNU C... | ||
919 | $! | ||
920 | $ IF F$TYPE(GCC) .EQS. "" THEN GCC := GCC | ||
921 | $ CC = GCC+"/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + - | ||
922 | "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS | ||
923 | $! | ||
924 | $! Define The Linker Options File Name. | ||
925 | $! | ||
926 | $ OPT_FILE = "VAX_GNUC_OPTIONS.OPT" | ||
927 | $! | ||
928 | $! End The GNU C Check. | ||
929 | $! | ||
930 | $ ENDIF | ||
931 | $! | ||
932 | $! Set up default defines | ||
933 | $! | ||
934 | $ CCDEFS = """FLAT_INC=1""," + CCDEFS | ||
935 | $! | ||
936 | $! Else The User Entered An Invalid Argument. | ||
937 | $! | ||
938 | $ ELSE | ||
939 | $! | ||
940 | $! Tell The User We Don't Know What They Want. | ||
941 | $! | ||
942 | $ WRITE SYS$OUTPUT "" | ||
943 | $ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:" | ||
944 | $ WRITE SYS$OUTPUT "" | ||
945 | $ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C." | ||
946 | $ WRITE SYS$OUTPUT " DECC : To Compile With DEC C." | ||
947 | $ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C." | ||
948 | $ WRITE SYS$OUTPUT "" | ||
949 | $! | ||
950 | $! Time To EXIT. | ||
951 | $! | ||
952 | $ EXIT | ||
953 | $ ENDIF | ||
954 | $! | ||
955 | $! Time to check the contents, and to make sure we get the correct library. | ||
956 | $! | ||
957 | $ IF P3.EQS."SOCKETSHR" .OR. P3.EQS."MULTINET" .OR. P3.EQS."UCX" - | ||
958 | .OR. P3.EQS."TCPIP" .OR. P3.EQS."NONE" | ||
959 | $ THEN | ||
960 | $! | ||
961 | $! Check to see if SOCKETSHR was chosen | ||
962 | $! | ||
963 | $ IF P3.EQS."SOCKETSHR" | ||
964 | $ THEN | ||
965 | $! | ||
966 | $! Set the library to use SOCKETSHR | ||
967 | $! | ||
968 | $ TCPIP_LIB = ",SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT /OPTIONS" | ||
969 | $! | ||
970 | $! Done with SOCKETSHR | ||
971 | $! | ||
972 | $ ENDIF | ||
973 | $! | ||
974 | $! Check to see if MULTINET was chosen | ||
975 | $! | ||
976 | $ IF P3.EQS."MULTINET" | ||
977 | $ THEN | ||
978 | $! | ||
979 | $! Set the library to use UCX emulation. | ||
980 | $! | ||
981 | $ P3 = "UCX" | ||
982 | $! | ||
983 | $! Done with MULTINET | ||
984 | $! | ||
985 | $ ENDIF | ||
986 | $! | ||
987 | $! Check to see if UCX was chosen | ||
988 | $! | ||
989 | $ IF P3.EQS."UCX" | ||
990 | $ THEN | ||
991 | $! | ||
992 | $! Set the library to use UCX. | ||
993 | $! | ||
994 | $ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT /OPTIONS" | ||
995 | $ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" | ||
996 | $ THEN | ||
997 | $ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT /OPTIONS" | ||
998 | $ ELSE | ||
999 | $ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN - | ||
1000 | TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT /OPTIONS" | ||
1001 | $ ENDIF | ||
1002 | $! | ||
1003 | $! Done with UCX | ||
1004 | $! | ||
1005 | $ ENDIF | ||
1006 | $! | ||
1007 | $! Check to see if TCPIP (post UCX) was chosen | ||
1008 | $! | ||
1009 | $ IF P3.EQS."TCPIP" | ||
1010 | $ THEN | ||
1011 | $! | ||
1012 | $! Set the library to use TCPIP. | ||
1013 | $! | ||
1014 | $ TCPIP_LIB = ",SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT /OPTIONS" | ||
1015 | $! | ||
1016 | $! Done with TCPIP | ||
1017 | $! | ||
1018 | $ ENDIF | ||
1019 | $! | ||
1020 | $! Check to see if NONE was chosen | ||
1021 | $! | ||
1022 | $ IF P3.EQS."NONE" | ||
1023 | $ THEN | ||
1024 | $! | ||
1025 | $! Do not use TCPIP. | ||
1026 | $! | ||
1027 | $ TCPIP_LIB = "" | ||
1028 | $! | ||
1029 | $! Done with TCPIP | ||
1030 | $! | ||
1031 | $ ENDIF | ||
1032 | $! | ||
1033 | $! Add TCP/IP type to CC definitions. | ||
1034 | $! | ||
1035 | $ CCDEFS = CCDEFS + ",TCPIP_TYPE_''P3'" | ||
1036 | $! | ||
1037 | $! Print info | ||
1038 | $! | ||
1039 | $ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB- "," | ||
1040 | $! | ||
1041 | $! Else The User Entered An Invalid Argument. | ||
1042 | $! | ||
1043 | $ ELSE | ||
1044 | $! | ||
1045 | $! Tell The User We Don't Know What They Want. | ||
1046 | $! | ||
1047 | $ WRITE SYS$OUTPUT "" | ||
1048 | $ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:" | ||
1049 | $ WRITE SYS$OUTPUT "" | ||
1050 | $ WRITE SYS$OUTPUT " SOCKETSHR : To link with SOCKETSHR TCP/IP library." | ||
1051 | $ WRITE SYS$OUTPUT " UCX : To link with UCX TCP/IP library." | ||
1052 | $ WRITE SYS$OUTPUT " TCPIP : To link with TCPIP (post UCX) TCP/IP library." | ||
1053 | $ WRITE SYS$OUTPUT "" | ||
1054 | $! | ||
1055 | $! Time To EXIT. | ||
1056 | $! | ||
1057 | $ EXIT | ||
1058 | $! | ||
1059 | $! Done with TCP/IP libraries | ||
1060 | $! | ||
1061 | $ ENDIF | ||
1062 | $! | ||
1063 | $! Finish up the definition of CC. | ||
1064 | $! | ||
1065 | $ IF COMPILER .EQS. "DECC" | ||
1066 | $ THEN | ||
1067 | $ IF CCDISABLEWARNINGS .NES. "" | ||
1068 | $ THEN | ||
1069 | $ CCDISABLEWARNINGS = " /WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))" | ||
1070 | $ ENDIF | ||
1071 | $ ELSE | ||
1072 | $ CCDISABLEWARNINGS = "" | ||
1073 | $ ENDIF | ||
1074 | $ CC2 = CC + " /DEFINE=(" + CCDEFS + ",_POSIX_C_SOURCE)" + CCDISABLEWARNINGS | ||
1075 | $ CC = CC + " /DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS | ||
1076 | $! | ||
1077 | $! Show user the result | ||
1078 | $! | ||
1079 | $ WRITE/SYMBOL SYS$OUTPUT "Main Compiling Command: ",CC | ||
1080 | $! | ||
1081 | $! Special Threads For OpenVMS v7.1 Or Later | ||
1082 | $! | ||
1083 | $! Written By: Richard Levitte | ||
1084 | $! richard@levitte.org | ||
1085 | $! | ||
1086 | $! | ||
1087 | $! Check To See If We Have A Option For P4. | ||
1088 | $! | ||
1089 | $ IF (P4.EQS."") | ||
1090 | $ THEN | ||
1091 | $! | ||
1092 | $! Get The Version Of VMS We Are Using. | ||
1093 | $! | ||
1094 | $ ISSEVEN := | ||
1095 | $ TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION"))) | ||
1096 | $ TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP)) | ||
1097 | $! | ||
1098 | $! Check To See If The VMS Version Is v7.1 Or Later. | ||
1099 | $! | ||
1100 | $ IF (TMP.GE.71) | ||
1101 | $ THEN | ||
1102 | $! | ||
1103 | $! We Have OpenVMS v7.1 Or Later, So Use The Special Threads. | ||
1104 | $! | ||
1105 | $ ISSEVEN := ,PTHREAD_USE_D4 | ||
1106 | $! | ||
1107 | $! End The VMS Version Check. | ||
1108 | $! | ||
1109 | $ ENDIF | ||
1110 | $! | ||
1111 | $! End The P4 Check. | ||
1112 | $! | ||
1113 | $ ENDIF | ||
1114 | $! | ||
1115 | $! Check if the user wanted to compile just a subset of all the programs. | ||
1116 | $! | ||
1117 | $ IF P5 .NES. "" | ||
1118 | $ THEN | ||
1119 | $ PROGRAMS = P5 | ||
1120 | $ ENDIF | ||
1121 | $! | ||
1122 | $! Time To RETURN... | ||
1123 | $! | ||
1124 | $ RETURN | ||
1125 | $! | ||
1126 | $ INITIALISE: | ||
1127 | $! | ||
1128 | $! Save old value of the logical name OPENSSL | ||
1129 | $! | ||
1130 | $ __SAVE_OPENSSL = F$TRNLNM("OPENSSL","LNM$PROCESS_TABLE") | ||
1131 | $! | ||
1132 | $! Save directory information | ||
1133 | $! | ||
1134 | $ __HERE = F$PARSE(F$PARSE("A.;",F$ENVIRONMENT("PROCEDURE"))-"A.;","[]A.;") - "A.;" | ||
1135 | $ __HERE = F$EDIT(__HERE,"UPCASE") | ||
1136 | $ __TOP = __HERE - "APPS]" | ||
1137 | $ __INCLUDE = __TOP + "INCLUDE.OPENSSL]" | ||
1138 | $! | ||
1139 | $! Set up the logical name OPENSSL to point at the include directory | ||
1140 | $! | ||
1141 | $ DEFINE OPENSSL /NOLOG '__INCLUDE' | ||
1142 | $! | ||
1143 | $! Done | ||
1144 | $! | ||
1145 | $ RETURN | ||
1146 | $! | ||
1147 | $ CLEANUP: | ||
1148 | $! | ||
1149 | $! Restore the saved logical name OPENSSL, if it had a value. | ||
1150 | $! | ||
1151 | $ if (f$type( __SAVE_OPENSSL) .nes. "") | ||
1152 | $ then | ||
1153 | $ IF __SAVE_OPENSSL .EQS. "" | ||
1154 | $ THEN | ||
1155 | $ DEASSIGN OPENSSL | ||
1156 | $ ELSE | ||
1157 | $ DEFINE /NOLOG OPENSSL '__SAVE_OPENSSL' | ||
1158 | $ ENDIF | ||
1159 | $ endif | ||
1160 | $! | ||
1161 | $! Close any open files. | ||
1162 | $! | ||
1163 | $ if (f$trnlnm( "objects", "LNM$PROCESS", 0, "SUPERVISOR") .nes. "") then - | ||
1164 | close objects | ||
1165 | $! | ||
1166 | $! Done | ||
1167 | $! | ||
1168 | $ RETURN | ||
1169 | $! | ||
diff --git a/src/lib/libssl/src/apps/ocsp.c b/src/lib/libssl/src/apps/ocsp.c index 01847dfad7..83c5a76700 100644 --- a/src/lib/libssl/src/apps/ocsp.c +++ b/src/lib/libssl/src/apps/ocsp.c | |||
@@ -617,7 +617,7 @@ int MAIN(int argc, char **argv) | |||
617 | BIO_printf (bio_err, "-ndays n number of days before next update\n"); | 617 | BIO_printf (bio_err, "-ndays n number of days before next update\n"); |
618 | BIO_printf (bio_err, "-resp_key_id identify reponse by signing certificate key ID\n"); | 618 | BIO_printf (bio_err, "-resp_key_id identify reponse by signing certificate key ID\n"); |
619 | BIO_printf (bio_err, "-nrequest n number of requests to accept (default unlimited)\n"); | 619 | BIO_printf (bio_err, "-nrequest n number of requests to accept (default unlimited)\n"); |
620 | BIO_printf (bio_err, "-<dgst alg> use specified digest in the request"); | 620 | BIO_printf (bio_err, "-<dgst alg> use specified digest in the request\n"); |
621 | goto end; | 621 | goto end; |
622 | } | 622 | } |
623 | 623 | ||
diff --git a/src/lib/libssl/src/apps/openssl.c b/src/lib/libssl/src/apps/openssl.c index 1c880d90ba..71e1e48ece 100644 --- a/src/lib/libssl/src/apps/openssl.c +++ b/src/lib/libssl/src/apps/openssl.c | |||
@@ -117,6 +117,7 @@ | |||
117 | #include "apps.h" | 117 | #include "apps.h" |
118 | #include <openssl/bio.h> | 118 | #include <openssl/bio.h> |
119 | #include <openssl/crypto.h> | 119 | #include <openssl/crypto.h> |
120 | #include <openssl/rand.h> | ||
120 | #include <openssl/lhash.h> | 121 | #include <openssl/lhash.h> |
121 | #include <openssl/conf.h> | 122 | #include <openssl/conf.h> |
122 | #include <openssl/x509.h> | 123 | #include <openssl/x509.h> |
diff --git a/src/lib/libssl/src/apps/pkcs12.c b/src/lib/libssl/src/apps/pkcs12.c index b54c6f84a4..4d62a7b8ca 100644 --- a/src/lib/libssl/src/apps/pkcs12.c +++ b/src/lib/libssl/src/apps/pkcs12.c | |||
@@ -112,7 +112,7 @@ int MAIN(int argc, char **argv) | |||
112 | int maciter = PKCS12_DEFAULT_ITER; | 112 | int maciter = PKCS12_DEFAULT_ITER; |
113 | int twopass = 0; | 113 | int twopass = 0; |
114 | int keytype = 0; | 114 | int keytype = 0; |
115 | int cert_pbe = NID_pbe_WithSHA1And40BitRC2_CBC; | 115 | int cert_pbe; |
116 | int key_pbe = NID_pbe_WithSHA1And3_Key_TripleDES_CBC; | 116 | int key_pbe = NID_pbe_WithSHA1And3_Key_TripleDES_CBC; |
117 | int ret = 1; | 117 | int ret = 1; |
118 | int macver = 1; | 118 | int macver = 1; |
@@ -130,6 +130,13 @@ int MAIN(int argc, char **argv) | |||
130 | 130 | ||
131 | apps_startup(); | 131 | apps_startup(); |
132 | 132 | ||
133 | #ifdef OPENSSL_FIPS | ||
134 | if (FIPS_mode()) | ||
135 | cert_pbe = NID_pbe_WithSHA1And3_Key_TripleDES_CBC; | ||
136 | else | ||
137 | #endif | ||
138 | cert_pbe = NID_pbe_WithSHA1And40BitRC2_CBC; | ||
139 | |||
133 | enc = EVP_des_ede3_cbc(); | 140 | enc = EVP_des_ede3_cbc(); |
134 | if (bio_err == NULL ) bio_err = BIO_new_fp (stderr, BIO_NOCLOSE); | 141 | if (bio_err == NULL ) bio_err = BIO_new_fp (stderr, BIO_NOCLOSE); |
135 | 142 | ||
diff --git a/src/lib/libssl/src/apps/req.c b/src/lib/libssl/src/apps/req.c index 85526581ce..5e034a85e8 100644 --- a/src/lib/libssl/src/apps/req.c +++ b/src/lib/libssl/src/apps/req.c | |||
@@ -644,6 +644,11 @@ bad: | |||
644 | if (inrand) | 644 | if (inrand) |
645 | app_RAND_load_files(inrand); | 645 | app_RAND_load_files(inrand); |
646 | 646 | ||
647 | if (!NCONF_get_number(req_conf,SECTION,BITS, &newkey)) | ||
648 | { | ||
649 | newkey=DEFAULT_KEY_LENGTH; | ||
650 | } | ||
651 | |||
647 | if (keyalg) | 652 | if (keyalg) |
648 | { | 653 | { |
649 | genctx = set_keygen_ctx(bio_err, keyalg, &pkey_type, &newkey, | 654 | genctx = set_keygen_ctx(bio_err, keyalg, &pkey_type, &newkey, |
@@ -652,12 +657,6 @@ bad: | |||
652 | goto end; | 657 | goto end; |
653 | } | 658 | } |
654 | 659 | ||
655 | if (newkey <= 0) | ||
656 | { | ||
657 | if (!NCONF_get_number(req_conf,SECTION,BITS, &newkey)) | ||
658 | newkey=DEFAULT_KEY_LENGTH; | ||
659 | } | ||
660 | |||
661 | if (newkey < MIN_KEY_LENGTH && (pkey_type == EVP_PKEY_RSA || pkey_type == EVP_PKEY_DSA)) | 660 | if (newkey < MIN_KEY_LENGTH && (pkey_type == EVP_PKEY_RSA || pkey_type == EVP_PKEY_DSA)) |
662 | { | 661 | { |
663 | BIO_printf(bio_err,"private key length is too short,\n"); | 662 | BIO_printf(bio_err,"private key length is too short,\n"); |
@@ -1649,6 +1648,8 @@ static EVP_PKEY_CTX *set_keygen_ctx(BIO *err, const char *gstr, int *pkey_type, | |||
1649 | keylen = atol(p + 1); | 1648 | keylen = atol(p + 1); |
1650 | *pkeylen = keylen; | 1649 | *pkeylen = keylen; |
1651 | } | 1650 | } |
1651 | else | ||
1652 | keylen = *pkeylen; | ||
1652 | } | 1653 | } |
1653 | else if (p) | 1654 | else if (p) |
1654 | paramfile = p + 1; | 1655 | paramfile = p + 1; |
diff --git a/src/lib/libssl/src/apps/s_cb.c b/src/lib/libssl/src/apps/s_cb.c index 2cd73376df..84c3b447c2 100644 --- a/src/lib/libssl/src/apps/s_cb.c +++ b/src/lib/libssl/src/apps/s_cb.c | |||
@@ -237,8 +237,8 @@ int set_cert_stuff(SSL_CTX *ctx, char *cert_file, char *key_file) | |||
237 | 237 | ||
238 | /* If we are using DSA, we can copy the parameters from | 238 | /* If we are using DSA, we can copy the parameters from |
239 | * the private key */ | 239 | * the private key */ |
240 | 240 | ||
241 | 241 | ||
242 | /* Now we know that a key and cert have been set against | 242 | /* Now we know that a key and cert have been set against |
243 | * the SSL context */ | 243 | * the SSL context */ |
244 | if (!SSL_CTX_check_private_key(ctx)) | 244 | if (!SSL_CTX_check_private_key(ctx)) |
@@ -436,6 +436,8 @@ void MS_CALLBACK msg_cb(int write_p, int version, int content_type, const void * | |||
436 | 436 | ||
437 | if (version == SSL3_VERSION || | 437 | if (version == SSL3_VERSION || |
438 | version == TLS1_VERSION || | 438 | version == TLS1_VERSION || |
439 | version == TLS1_1_VERSION || | ||
440 | version == TLS1_2_VERSION || | ||
439 | version == DTLS1_VERSION || | 441 | version == DTLS1_VERSION || |
440 | version == DTLS1_BAD_VER) | 442 | version == DTLS1_BAD_VER) |
441 | { | 443 | { |
diff --git a/src/lib/libssl/src/apps/s_client.c b/src/lib/libssl/src/apps/s_client.c index 5e60c8371b..eb8b8eef67 100644 --- a/src/lib/libssl/src/apps/s_client.c +++ b/src/lib/libssl/src/apps/s_client.c | |||
@@ -365,12 +365,14 @@ static void sc_usage(void) | |||
365 | BIO_printf(bio_err," -tlsextdebug - hex dump of all TLS extensions received\n"); | 365 | BIO_printf(bio_err," -tlsextdebug - hex dump of all TLS extensions received\n"); |
366 | BIO_printf(bio_err," -status - request certificate status from server\n"); | 366 | BIO_printf(bio_err," -status - request certificate status from server\n"); |
367 | BIO_printf(bio_err," -no_ticket - disable use of RFC4507bis session tickets\n"); | 367 | BIO_printf(bio_err," -no_ticket - disable use of RFC4507bis session tickets\n"); |
368 | # if !defined(OPENSSL_NO_NEXTPROTONEG) | 368 | # ifndef OPENSSL_NO_NEXTPROTONEG |
369 | BIO_printf(bio_err," -nextprotoneg arg - enable NPN extension, considering named protocols supported (comma-separated list)\n"); | 369 | BIO_printf(bio_err," -nextprotoneg arg - enable NPN extension, considering named protocols supported (comma-separated list)\n"); |
370 | # endif | 370 | # endif |
371 | #endif | 371 | #endif |
372 | BIO_printf(bio_err," -legacy_renegotiation - enable use of legacy renegotiation (dangerous)\n"); | 372 | BIO_printf(bio_err," -legacy_renegotiation - enable use of legacy renegotiation (dangerous)\n"); |
373 | #ifndef OPENSSL_NO_SRTP | ||
373 | BIO_printf(bio_err," -use_srtp profiles - Offer SRTP key management with a colon-separated profile list\n"); | 374 | BIO_printf(bio_err," -use_srtp profiles - Offer SRTP key management with a colon-separated profile list\n"); |
375 | #endif | ||
374 | BIO_printf(bio_err," -keymatexport label - Export keying material using label\n"); | 376 | BIO_printf(bio_err," -keymatexport label - Export keying material using label\n"); |
375 | BIO_printf(bio_err," -keymatexportlen len - Export len bytes of keying material (default 20)\n"); | 377 | BIO_printf(bio_err," -keymatexportlen len - Export len bytes of keying material (default 20)\n"); |
376 | } | 378 | } |
@@ -510,7 +512,9 @@ static char * MS_CALLBACK ssl_give_srp_client_pwd_cb(SSL *s, void *arg) | |||
510 | } | 512 | } |
511 | 513 | ||
512 | #endif | 514 | #endif |
515 | #ifndef OPENSSL_NO_SRTP | ||
513 | char *srtp_profiles = NULL; | 516 | char *srtp_profiles = NULL; |
517 | #endif | ||
514 | 518 | ||
515 | # ifndef OPENSSL_NO_NEXTPROTONEG | 519 | # ifndef OPENSSL_NO_NEXTPROTONEG |
516 | /* This the context that we pass to next_proto_cb */ | 520 | /* This the context that we pass to next_proto_cb */ |
@@ -544,7 +548,7 @@ static int next_proto_cb(SSL *s, unsigned char **out, unsigned char *outlen, con | |||
544 | ctx->status = SSL_select_next_proto(out, outlen, in, inlen, ctx->data, ctx->len); | 548 | ctx->status = SSL_select_next_proto(out, outlen, in, inlen, ctx->data, ctx->len); |
545 | return SSL_TLSEXT_ERR_OK; | 549 | return SSL_TLSEXT_ERR_OK; |
546 | } | 550 | } |
547 | # endif | 551 | # endif /* ndef OPENSSL_NO_NEXTPROTONEG */ |
548 | #endif | 552 | #endif |
549 | 553 | ||
550 | enum | 554 | enum |
@@ -955,11 +959,13 @@ int MAIN(int argc, char **argv) | |||
955 | jpake_secret = *++argv; | 959 | jpake_secret = *++argv; |
956 | } | 960 | } |
957 | #endif | 961 | #endif |
962 | #ifndef OPENSSL_NO_SRTP | ||
958 | else if (strcmp(*argv,"-use_srtp") == 0) | 963 | else if (strcmp(*argv,"-use_srtp") == 0) |
959 | { | 964 | { |
960 | if (--argc < 1) goto bad; | 965 | if (--argc < 1) goto bad; |
961 | srtp_profiles = *(++argv); | 966 | srtp_profiles = *(++argv); |
962 | } | 967 | } |
968 | #endif | ||
963 | else if (strcmp(*argv,"-keymatexport") == 0) | 969 | else if (strcmp(*argv,"-keymatexport") == 0) |
964 | { | 970 | { |
965 | if (--argc < 1) goto bad; | 971 | if (--argc < 1) goto bad; |
@@ -1140,6 +1146,8 @@ bad: | |||
1140 | BIO_printf(bio_c_out, "PSK key given or JPAKE in use, setting client callback\n"); | 1146 | BIO_printf(bio_c_out, "PSK key given or JPAKE in use, setting client callback\n"); |
1141 | SSL_CTX_set_psk_client_callback(ctx, psk_client_cb); | 1147 | SSL_CTX_set_psk_client_callback(ctx, psk_client_cb); |
1142 | } | 1148 | } |
1149 | #endif | ||
1150 | #ifndef OPENSSL_NO_SRTP | ||
1143 | if (srtp_profiles != NULL) | 1151 | if (srtp_profiles != NULL) |
1144 | SSL_CTX_set_tlsext_use_srtp(ctx, srtp_profiles); | 1152 | SSL_CTX_set_tlsext_use_srtp(ctx, srtp_profiles); |
1145 | #endif | 1153 | #endif |
@@ -1905,6 +1913,10 @@ end: | |||
1905 | print_stuff(bio_c_out,con,1); | 1913 | print_stuff(bio_c_out,con,1); |
1906 | SSL_free(con); | 1914 | SSL_free(con); |
1907 | } | 1915 | } |
1916 | #if !defined(OPENSSL_NO_TLSEXT) && !defined(OPENSSL_NO_NEXTPROTONEG) | ||
1917 | if (next_proto.data) | ||
1918 | OPENSSL_free(next_proto.data); | ||
1919 | #endif | ||
1908 | if (ctx != NULL) SSL_CTX_free(ctx); | 1920 | if (ctx != NULL) SSL_CTX_free(ctx); |
1909 | if (cert) | 1921 | if (cert) |
1910 | X509_free(cert); | 1922 | X509_free(cert); |
@@ -1912,6 +1924,8 @@ end: | |||
1912 | EVP_PKEY_free(key); | 1924 | EVP_PKEY_free(key); |
1913 | if (pass) | 1925 | if (pass) |
1914 | OPENSSL_free(pass); | 1926 | OPENSSL_free(pass); |
1927 | if (vpm) | ||
1928 | X509_VERIFY_PARAM_free(vpm); | ||
1915 | if (cbuf != NULL) { OPENSSL_cleanse(cbuf,BUFSIZZ); OPENSSL_free(cbuf); } | 1929 | if (cbuf != NULL) { OPENSSL_cleanse(cbuf,BUFSIZZ); OPENSSL_free(cbuf); } |
1916 | if (sbuf != NULL) { OPENSSL_cleanse(sbuf,BUFSIZZ); OPENSSL_free(sbuf); } | 1930 | if (sbuf != NULL) { OPENSSL_cleanse(sbuf,BUFSIZZ); OPENSSL_free(sbuf); } |
1917 | if (mbuf != NULL) { OPENSSL_cleanse(mbuf,BUFSIZZ); OPENSSL_free(mbuf); } | 1931 | if (mbuf != NULL) { OPENSSL_cleanse(mbuf,BUFSIZZ); OPENSSL_free(mbuf); } |
@@ -2076,6 +2090,7 @@ static void print_stuff(BIO *bio, SSL *s, int full) | |||
2076 | } | 2090 | } |
2077 | #endif | 2091 | #endif |
2078 | 2092 | ||
2093 | #ifndef OPENSSL_NO_SRTP | ||
2079 | { | 2094 | { |
2080 | SRTP_PROTECTION_PROFILE *srtp_profile=SSL_get_selected_srtp_profile(s); | 2095 | SRTP_PROTECTION_PROFILE *srtp_profile=SSL_get_selected_srtp_profile(s); |
2081 | 2096 | ||
@@ -2083,6 +2098,7 @@ static void print_stuff(BIO *bio, SSL *s, int full) | |||
2083 | BIO_printf(bio,"SRTP Extension negotiated, profile=%s\n", | 2098 | BIO_printf(bio,"SRTP Extension negotiated, profile=%s\n", |
2084 | srtp_profile->name); | 2099 | srtp_profile->name); |
2085 | } | 2100 | } |
2101 | #endif | ||
2086 | 2102 | ||
2087 | SSL_SESSION_print(bio,SSL_get_session(s)); | 2103 | SSL_SESSION_print(bio,SSL_get_session(s)); |
2088 | if (keymatexportlabel != NULL) | 2104 | if (keymatexportlabel != NULL) |
diff --git a/src/lib/libssl/src/apps/s_server.c b/src/lib/libssl/src/apps/s_server.c index 3f9b3704c6..8198d7f065 100644 --- a/src/lib/libssl/src/apps/s_server.c +++ b/src/lib/libssl/src/apps/s_server.c | |||
@@ -556,7 +556,9 @@ static void sv_usage(void) | |||
556 | # ifndef OPENSSL_NO_NEXTPROTONEG | 556 | # ifndef OPENSSL_NO_NEXTPROTONEG |
557 | BIO_printf(bio_err," -nextprotoneg arg - set the advertised protocols for the NPN extension (comma-separated list)\n"); | 557 | BIO_printf(bio_err," -nextprotoneg arg - set the advertised protocols for the NPN extension (comma-separated list)\n"); |
558 | # endif | 558 | # endif |
559 | # ifndef OPENSSL_NO_SRTP | ||
559 | BIO_printf(bio_err," -use_srtp profiles - Offer SRTP key management with a colon-separated profile list\n"); | 560 | BIO_printf(bio_err," -use_srtp profiles - Offer SRTP key management with a colon-separated profile list\n"); |
561 | # endif | ||
560 | #endif | 562 | #endif |
561 | BIO_printf(bio_err," -keymatexport label - Export keying material using label\n"); | 563 | BIO_printf(bio_err," -keymatexport label - Export keying material using label\n"); |
562 | BIO_printf(bio_err," -keymatexportlen len - Export len bytes of keying material (default 20)\n"); | 564 | BIO_printf(bio_err," -keymatexportlen len - Export len bytes of keying material (default 20)\n"); |
@@ -923,7 +925,9 @@ static char *jpake_secret = NULL; | |||
923 | #ifndef OPENSSL_NO_SRP | 925 | #ifndef OPENSSL_NO_SRP |
924 | static srpsrvparm srp_callback_parm; | 926 | static srpsrvparm srp_callback_parm; |
925 | #endif | 927 | #endif |
928 | #ifndef OPENSSL_NO_SRTP | ||
926 | static char *srtp_profiles = NULL; | 929 | static char *srtp_profiles = NULL; |
930 | #endif | ||
927 | 931 | ||
928 | int MAIN(int argc, char *argv[]) | 932 | int MAIN(int argc, char *argv[]) |
929 | { | 933 | { |
@@ -1206,13 +1210,13 @@ int MAIN(int argc, char *argv[]) | |||
1206 | { | 1210 | { |
1207 | if (--argc < 1) goto bad; | 1211 | if (--argc < 1) goto bad; |
1208 | srp_verifier_file = *(++argv); | 1212 | srp_verifier_file = *(++argv); |
1209 | meth=TLSv1_server_method(); | 1213 | meth = TLSv1_server_method(); |
1210 | } | 1214 | } |
1211 | else if (strcmp(*argv, "-srpuserseed") == 0) | 1215 | else if (strcmp(*argv, "-srpuserseed") == 0) |
1212 | { | 1216 | { |
1213 | if (--argc < 1) goto bad; | 1217 | if (--argc < 1) goto bad; |
1214 | srpuserseed = *(++argv); | 1218 | srpuserseed = *(++argv); |
1215 | meth=TLSv1_server_method(); | 1219 | meth = TLSv1_server_method(); |
1216 | } | 1220 | } |
1217 | #endif | 1221 | #endif |
1218 | else if (strcmp(*argv,"-www") == 0) | 1222 | else if (strcmp(*argv,"-www") == 0) |
@@ -1319,11 +1323,13 @@ int MAIN(int argc, char *argv[]) | |||
1319 | jpake_secret = *(++argv); | 1323 | jpake_secret = *(++argv); |
1320 | } | 1324 | } |
1321 | #endif | 1325 | #endif |
1326 | #ifndef OPENSSL_NO_SRTP | ||
1322 | else if (strcmp(*argv,"-use_srtp") == 0) | 1327 | else if (strcmp(*argv,"-use_srtp") == 0) |
1323 | { | 1328 | { |
1324 | if (--argc < 1) goto bad; | 1329 | if (--argc < 1) goto bad; |
1325 | srtp_profiles = *(++argv); | 1330 | srtp_profiles = *(++argv); |
1326 | } | 1331 | } |
1332 | #endif | ||
1327 | else if (strcmp(*argv,"-keymatexport") == 0) | 1333 | else if (strcmp(*argv,"-keymatexport") == 0) |
1328 | { | 1334 | { |
1329 | if (--argc < 1) goto bad; | 1335 | if (--argc < 1) goto bad; |
@@ -1431,25 +1437,24 @@ bad: | |||
1431 | goto end; | 1437 | goto end; |
1432 | } | 1438 | } |
1433 | } | 1439 | } |
1434 | |||
1435 | # ifndef OPENSSL_NO_NEXTPROTONEG | ||
1436 | if (next_proto_neg_in) | ||
1437 | { | ||
1438 | unsigned short len; | ||
1439 | next_proto.data = next_protos_parse(&len, | ||
1440 | next_proto_neg_in); | ||
1441 | if (next_proto.data == NULL) | ||
1442 | goto end; | ||
1443 | next_proto.len = len; | ||
1444 | } | ||
1445 | else | ||
1446 | { | ||
1447 | next_proto.data = NULL; | ||
1448 | } | ||
1449 | # endif | ||
1450 | #endif | 1440 | #endif |
1451 | } | 1441 | } |
1452 | 1442 | ||
1443 | #if !defined(OPENSSL_NO_TLSEXT) && !defined(OPENSSL_NO_NEXTPROTONEG) | ||
1444 | if (next_proto_neg_in) | ||
1445 | { | ||
1446 | unsigned short len; | ||
1447 | next_proto.data = next_protos_parse(&len, next_proto_neg_in); | ||
1448 | if (next_proto.data == NULL) | ||
1449 | goto end; | ||
1450 | next_proto.len = len; | ||
1451 | } | ||
1452 | else | ||
1453 | { | ||
1454 | next_proto.data = NULL; | ||
1455 | } | ||
1456 | #endif | ||
1457 | |||
1453 | 1458 | ||
1454 | if (s_dcert_file) | 1459 | if (s_dcert_file) |
1455 | { | 1460 | { |
@@ -1550,8 +1555,10 @@ bad: | |||
1550 | else | 1555 | else |
1551 | SSL_CTX_sess_set_cache_size(ctx,128); | 1556 | SSL_CTX_sess_set_cache_size(ctx,128); |
1552 | 1557 | ||
1558 | #ifndef OPENSSL_NO_SRTP | ||
1553 | if (srtp_profiles != NULL) | 1559 | if (srtp_profiles != NULL) |
1554 | SSL_CTX_set_tlsext_use_srtp(ctx, srtp_profiles); | 1560 | SSL_CTX_set_tlsext_use_srtp(ctx, srtp_profiles); |
1561 | #endif | ||
1555 | 1562 | ||
1556 | #if 0 | 1563 | #if 0 |
1557 | if (cipher == NULL) cipher=getenv("SSL_CIPHER"); | 1564 | if (cipher == NULL) cipher=getenv("SSL_CIPHER"); |
@@ -1730,7 +1737,7 @@ bad: | |||
1730 | } | 1737 | } |
1731 | #endif | 1738 | #endif |
1732 | 1739 | ||
1733 | if (!set_cert_key_stuff(ctx,s_cert,s_key)) | 1740 | if (!set_cert_key_stuff(ctx, s_cert, s_key)) |
1734 | goto end; | 1741 | goto end; |
1735 | #ifndef OPENSSL_NO_TLSEXT | 1742 | #ifndef OPENSSL_NO_TLSEXT |
1736 | if (ctx2 && !set_cert_key_stuff(ctx2,s_cert2,s_key2)) | 1743 | if (ctx2 && !set_cert_key_stuff(ctx2,s_cert2,s_key2)) |
@@ -1738,7 +1745,7 @@ bad: | |||
1738 | #endif | 1745 | #endif |
1739 | if (s_dcert != NULL) | 1746 | if (s_dcert != NULL) |
1740 | { | 1747 | { |
1741 | if (!set_cert_key_stuff(ctx,s_dcert,s_dkey)) | 1748 | if (!set_cert_key_stuff(ctx, s_dcert, s_dkey)) |
1742 | goto end; | 1749 | goto end; |
1743 | } | 1750 | } |
1744 | 1751 | ||
@@ -1893,7 +1900,15 @@ end: | |||
1893 | OPENSSL_free(pass); | 1900 | OPENSSL_free(pass); |
1894 | if (dpass) | 1901 | if (dpass) |
1895 | OPENSSL_free(dpass); | 1902 | OPENSSL_free(dpass); |
1903 | if (vpm) | ||
1904 | X509_VERIFY_PARAM_free(vpm); | ||
1896 | #ifndef OPENSSL_NO_TLSEXT | 1905 | #ifndef OPENSSL_NO_TLSEXT |
1906 | if (tlscstatp.host) | ||
1907 | OPENSSL_free(tlscstatp.host); | ||
1908 | if (tlscstatp.port) | ||
1909 | OPENSSL_free(tlscstatp.port); | ||
1910 | if (tlscstatp.path) | ||
1911 | OPENSSL_free(tlscstatp.path); | ||
1897 | if (ctx2 != NULL) SSL_CTX_free(ctx2); | 1912 | if (ctx2 != NULL) SSL_CTX_free(ctx2); |
1898 | if (s_cert2) | 1913 | if (s_cert2) |
1899 | X509_free(s_cert2); | 1914 | X509_free(s_cert2); |
@@ -2433,6 +2448,7 @@ static int init_ssl_connection(SSL *con) | |||
2433 | BIO_printf(bio_s_out,"Shared ciphers:%s\n",buf); | 2448 | BIO_printf(bio_s_out,"Shared ciphers:%s\n",buf); |
2434 | str=SSL_CIPHER_get_name(SSL_get_current_cipher(con)); | 2449 | str=SSL_CIPHER_get_name(SSL_get_current_cipher(con)); |
2435 | BIO_printf(bio_s_out,"CIPHER is %s\n",(str != NULL)?str:"(NONE)"); | 2450 | BIO_printf(bio_s_out,"CIPHER is %s\n",(str != NULL)?str:"(NONE)"); |
2451 | |||
2436 | #if !defined(OPENSSL_NO_TLSEXT) && !defined(OPENSSL_NO_NEXTPROTONEG) | 2452 | #if !defined(OPENSSL_NO_TLSEXT) && !defined(OPENSSL_NO_NEXTPROTONEG) |
2437 | SSL_get0_next_proto_negotiated(con, &next_proto_neg, &next_proto_neg_len); | 2453 | SSL_get0_next_proto_negotiated(con, &next_proto_neg, &next_proto_neg_len); |
2438 | if (next_proto_neg) | 2454 | if (next_proto_neg) |
@@ -2442,6 +2458,7 @@ static int init_ssl_connection(SSL *con) | |||
2442 | BIO_printf(bio_s_out, "\n"); | 2458 | BIO_printf(bio_s_out, "\n"); |
2443 | } | 2459 | } |
2444 | #endif | 2460 | #endif |
2461 | #ifndef OPENSSL_NO_SRTP | ||
2445 | { | 2462 | { |
2446 | SRTP_PROTECTION_PROFILE *srtp_profile | 2463 | SRTP_PROTECTION_PROFILE *srtp_profile |
2447 | = SSL_get_selected_srtp_profile(con); | 2464 | = SSL_get_selected_srtp_profile(con); |
@@ -2450,6 +2467,7 @@ static int init_ssl_connection(SSL *con) | |||
2450 | BIO_printf(bio_s_out,"SRTP Extension negotiated, profile=%s\n", | 2467 | BIO_printf(bio_s_out,"SRTP Extension negotiated, profile=%s\n", |
2451 | srtp_profile->name); | 2468 | srtp_profile->name); |
2452 | } | 2469 | } |
2470 | #endif | ||
2453 | if (SSL_cache_hit(con)) BIO_printf(bio_s_out,"Reused session-id\n"); | 2471 | if (SSL_cache_hit(con)) BIO_printf(bio_s_out,"Reused session-id\n"); |
2454 | if (SSL_ctrl(con,SSL_CTRL_GET_FLAGS,0,NULL) & | 2472 | if (SSL_ctrl(con,SSL_CTRL_GET_FLAGS,0,NULL) & |
2455 | TLS1_FLAGS_TLS_PADDING_BUG) | 2473 | TLS1_FLAGS_TLS_PADDING_BUG) |
@@ -2701,6 +2719,11 @@ static int www_body(char *hostname, int s, unsigned char *context) | |||
2701 | } | 2719 | } |
2702 | BIO_puts(io,"\n"); | 2720 | BIO_puts(io,"\n"); |
2703 | 2721 | ||
2722 | BIO_printf(io, | ||
2723 | "Secure Renegotiation IS%s supported\n", | ||
2724 | SSL_get_secure_renegotiation_support(con) ? | ||
2725 | "" : " NOT"); | ||
2726 | |||
2704 | /* The following is evil and should not really | 2727 | /* The following is evil and should not really |
2705 | * be done */ | 2728 | * be done */ |
2706 | BIO_printf(io,"Ciphers supported in s_server binary\n"); | 2729 | BIO_printf(io,"Ciphers supported in s_server binary\n"); |
diff --git a/src/lib/libssl/src/apps/speed.c b/src/lib/libssl/src/apps/speed.c index 8358b12fdd..9886ca3766 100644 --- a/src/lib/libssl/src/apps/speed.c +++ b/src/lib/libssl/src/apps/speed.c | |||
@@ -254,7 +254,7 @@ static const char *names[ALGOR_NUM]={ | |||
254 | "aes-128 cbc","aes-192 cbc","aes-256 cbc", | 254 | "aes-128 cbc","aes-192 cbc","aes-256 cbc", |
255 | "camellia-128 cbc","camellia-192 cbc","camellia-256 cbc", | 255 | "camellia-128 cbc","camellia-192 cbc","camellia-256 cbc", |
256 | "evp","sha256","sha512","whirlpool", | 256 | "evp","sha256","sha512","whirlpool", |
257 | "aes-128 ige","aes-192 ige","aes-256 ige","ghash"}; | 257 | "aes-128 ige","aes-192 ige","aes-256 ige","ghash" }; |
258 | static double results[ALGOR_NUM][SIZE_NUM]; | 258 | static double results[ALGOR_NUM][SIZE_NUM]; |
259 | static int lengths[SIZE_NUM]={16,64,256,1024,8*1024}; | 259 | static int lengths[SIZE_NUM]={16,64,256,1024,8*1024}; |
260 | #ifndef OPENSSL_NO_RSA | 260 | #ifndef OPENSSL_NO_RSA |
@@ -299,7 +299,7 @@ static SIGRETTYPE sig_done(int sig) | |||
299 | #if defined(_WIN32) | 299 | #if defined(_WIN32) |
300 | 300 | ||
301 | #if !defined(SIGALRM) | 301 | #if !defined(SIGALRM) |
302 | #define SIGALRM | 302 | # define SIGALRM |
303 | #endif | 303 | #endif |
304 | static unsigned int lapse,schlock; | 304 | static unsigned int lapse,schlock; |
305 | static void alarm_win32(unsigned int secs) { lapse = secs*1000; } | 305 | static void alarm_win32(unsigned int secs) { lapse = secs*1000; } |
diff --git a/src/lib/libssl/src/apps/tsget b/src/lib/libssl/src/apps/tsget index 482b8cae3f..c8ad4b8338 100644 --- a/src/lib/libssl/src/apps/tsget +++ b/src/lib/libssl/src/apps/tsget | |||
@@ -1,7 +1,7 @@ | |||
1 | #!/usr/bin/perl -w | 1 | #!/usr/bin/perl -w |
2 | # Written by Zoltan Glozik <zglozik@stones.com>. | 2 | # Written by Zoltan Glozik <zglozik@stones.com>. |
3 | # Copyright (c) 2002 The OpenTSA Project. All rights reserved. | 3 | # Copyright (c) 2002 The OpenTSA Project. All rights reserved. |
4 | $::version = '$Id: tsget,v 1.2 2010/10/01 22:58:51 djm Exp $'; | 4 | $::version = '$Id: tsget,v 1.3 2014/04/13 15:25:28 miod Exp $'; |
5 | 5 | ||
6 | use strict; | 6 | use strict; |
7 | use IO::Handle; | 7 | use IO::Handle; |
diff --git a/src/lib/libssl/src/apps/verify.c b/src/lib/libssl/src/apps/verify.c index b9749dcd36..893670ff41 100644 --- a/src/lib/libssl/src/apps/verify.c +++ b/src/lib/libssl/src/apps/verify.c | |||
@@ -222,11 +222,19 @@ int MAIN(int argc, char **argv) | |||
222 | goto end; | 222 | goto end; |
223 | } | 223 | } |
224 | 224 | ||
225 | if (argc < 1) check(cert_ctx, NULL, untrusted, trusted, crls, e); | 225 | ret = 0; |
226 | if (argc < 1) | ||
227 | { | ||
228 | if (1 != check(cert_ctx, NULL, untrusted, trusted, crls, e)) | ||
229 | ret = -1; | ||
230 | } | ||
226 | else | 231 | else |
232 | { | ||
227 | for (i=0; i<argc; i++) | 233 | for (i=0; i<argc; i++) |
228 | check(cert_ctx,argv[i], untrusted, trusted, crls, e); | 234 | if (1 != check(cert_ctx,argv[i], untrusted, trusted, crls, e)) |
229 | ret=0; | 235 | ret = -1; |
236 | } | ||
237 | |||
230 | end: | 238 | end: |
231 | if (ret == 1) { | 239 | if (ret == 1) { |
232 | BIO_printf(bio_err,"usage: verify [-verbose] [-CApath path] [-CAfile file] [-purpose purpose] [-crl_check]"); | 240 | BIO_printf(bio_err,"usage: verify [-verbose] [-CApath path] [-CAfile file] [-purpose purpose] [-crl_check]"); |
@@ -235,13 +243,16 @@ end: | |||
235 | BIO_printf(bio_err," [-engine e]"); | 243 | BIO_printf(bio_err," [-engine e]"); |
236 | #endif | 244 | #endif |
237 | BIO_printf(bio_err," cert1 cert2 ...\n"); | 245 | BIO_printf(bio_err," cert1 cert2 ...\n"); |
246 | |||
238 | BIO_printf(bio_err,"recognized usages:\n"); | 247 | BIO_printf(bio_err,"recognized usages:\n"); |
239 | for(i = 0; i < X509_PURPOSE_get_count(); i++) { | 248 | for(i = 0; i < X509_PURPOSE_get_count(); i++) |
249 | { | ||
240 | X509_PURPOSE *ptmp; | 250 | X509_PURPOSE *ptmp; |
241 | ptmp = X509_PURPOSE_get0(i); | 251 | ptmp = X509_PURPOSE_get0(i); |
242 | BIO_printf(bio_err, "\t%-10s\t%s\n", X509_PURPOSE_get0_sname(ptmp), | 252 | BIO_printf(bio_err, "\t%-10s\t%s\n", |
243 | X509_PURPOSE_get0_name(ptmp)); | 253 | X509_PURPOSE_get0_sname(ptmp), |
244 | } | 254 | X509_PURPOSE_get0_name(ptmp)); |
255 | } | ||
245 | } | 256 | } |
246 | if (vpm) X509_VERIFY_PARAM_free(vpm); | 257 | if (vpm) X509_VERIFY_PARAM_free(vpm); |
247 | if (cert_ctx != NULL) X509_STORE_free(cert_ctx); | 258 | if (cert_ctx != NULL) X509_STORE_free(cert_ctx); |
@@ -249,7 +260,7 @@ end: | |||
249 | sk_X509_pop_free(trusted, X509_free); | 260 | sk_X509_pop_free(trusted, X509_free); |
250 | sk_X509_CRL_pop_free(crls, X509_CRL_free); | 261 | sk_X509_CRL_pop_free(crls, X509_CRL_free); |
251 | apps_shutdown(); | 262 | apps_shutdown(); |
252 | OPENSSL_EXIT(ret); | 263 | OPENSSL_EXIT(ret < 0 ? 2 : ret); |
253 | } | 264 | } |
254 | 265 | ||
255 | static int check(X509_STORE *ctx, char *file, | 266 | static int check(X509_STORE *ctx, char *file, |
diff --git a/src/lib/libssl/src/apps/x509.c b/src/lib/libssl/src/apps/x509.c index e6e5e0d4e5..3863ab968d 100644 --- a/src/lib/libssl/src/apps/x509.c +++ b/src/lib/libssl/src/apps/x509.c | |||
@@ -288,7 +288,7 @@ int MAIN(int argc, char **argv) | |||
288 | days=atoi(*(++argv)); | 288 | days=atoi(*(++argv)); |
289 | if (days == 0) | 289 | if (days == 0) |
290 | { | 290 | { |
291 | BIO_printf(STDout,"bad number of days\n"); | 291 | BIO_printf(bio_err,"bad number of days\n"); |
292 | goto bad; | 292 | goto bad; |
293 | } | 293 | } |
294 | } | 294 | } |
@@ -912,7 +912,7 @@ bad: | |||
912 | } | 912 | } |
913 | else if (text == i) | 913 | else if (text == i) |
914 | { | 914 | { |
915 | X509_print_ex(out,x,nmflag, certflag); | 915 | X509_print_ex(STDout,x,nmflag, certflag); |
916 | } | 916 | } |
917 | else if (startdate == i) | 917 | else if (startdate == i) |
918 | { | 918 | { |
diff --git a/src/lib/libssl/src/crypto/aes/asm/aes-x86_64.pl b/src/lib/libssl/src/crypto/aes/asm/aes-x86_64.pl index 48fa857d5b..34cbb5d844 100755 --- a/src/lib/libssl/src/crypto/aes/asm/aes-x86_64.pl +++ b/src/lib/libssl/src/crypto/aes/asm/aes-x86_64.pl | |||
@@ -36,7 +36,8 @@ $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1; | |||
36 | ( $xlate="${dir}../../perlasm/x86_64-xlate.pl" and -f $xlate) or | 36 | ( $xlate="${dir}../../perlasm/x86_64-xlate.pl" and -f $xlate) or |
37 | die "can't locate x86_64-xlate.pl"; | 37 | die "can't locate x86_64-xlate.pl"; |
38 | 38 | ||
39 | open STDOUT,"| $^X $xlate $flavour $output"; | 39 | open OUT,"| \"$^X\" $xlate $flavour $output"; |
40 | *STDOUT=*OUT; | ||
40 | 41 | ||
41 | $verticalspin=1; # unlike 32-bit version $verticalspin performs | 42 | $verticalspin=1; # unlike 32-bit version $verticalspin performs |
42 | # ~15% better on both AMD and Intel cores | 43 | # ~15% better on both AMD and Intel cores |
diff --git a/src/lib/libssl/src/crypto/aes/asm/aesni-x86_64.pl b/src/lib/libssl/src/crypto/aes/asm/aesni-x86_64.pl index 499f3b3f42..0dbb194b8d 100644 --- a/src/lib/libssl/src/crypto/aes/asm/aesni-x86_64.pl +++ b/src/lib/libssl/src/crypto/aes/asm/aesni-x86_64.pl | |||
@@ -172,7 +172,8 @@ $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1; | |||
172 | ( $xlate="${dir}../../perlasm/x86_64-xlate.pl" and -f $xlate) or | 172 | ( $xlate="${dir}../../perlasm/x86_64-xlate.pl" and -f $xlate) or |
173 | die "can't locate x86_64-xlate.pl"; | 173 | die "can't locate x86_64-xlate.pl"; |
174 | 174 | ||
175 | open STDOUT,"| $^X $xlate $flavour $output"; | 175 | open OUT,"| \"$^X\" $xlate $flavour $output"; |
176 | *STDOUT=*OUT; | ||
176 | 177 | ||
177 | $movkey = $PREFIX eq "aesni" ? "movups" : "movups"; | 178 | $movkey = $PREFIX eq "aesni" ? "movups" : "movups"; |
178 | @_4args=$win64? ("%rcx","%rdx","%r8", "%r9") : # Win64 order | 179 | @_4args=$win64? ("%rcx","%rdx","%r8", "%r9") : # Win64 order |
diff --git a/src/lib/libssl/src/crypto/asn1/a_int.c b/src/lib/libssl/src/crypto/asn1/a_int.c index ad0d2506f6..297c45a9ff 100644 --- a/src/lib/libssl/src/crypto/asn1/a_int.c +++ b/src/lib/libssl/src/crypto/asn1/a_int.c | |||
@@ -116,7 +116,7 @@ int i2c_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **pp) | |||
116 | int pad=0,ret,i,neg; | 116 | int pad=0,ret,i,neg; |
117 | unsigned char *p,*n,pb=0; | 117 | unsigned char *p,*n,pb=0; |
118 | 118 | ||
119 | if ((a == NULL) || (a->data == NULL)) return(0); | 119 | if (a == NULL) return(0); |
120 | neg=a->type & V_ASN1_NEG; | 120 | neg=a->type & V_ASN1_NEG; |
121 | if (a->length == 0) | 121 | if (a->length == 0) |
122 | ret=1; | 122 | ret=1; |
diff --git a/src/lib/libssl/src/crypto/asn1/a_strex.c b/src/lib/libssl/src/crypto/asn1/a_strex.c index 264ebf2393..ead37ac325 100644 --- a/src/lib/libssl/src/crypto/asn1/a_strex.c +++ b/src/lib/libssl/src/crypto/asn1/a_strex.c | |||
@@ -567,6 +567,7 @@ int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_STRING *in) | |||
567 | if(mbflag == -1) return -1; | 567 | if(mbflag == -1) return -1; |
568 | mbflag |= MBSTRING_FLAG; | 568 | mbflag |= MBSTRING_FLAG; |
569 | stmp.data = NULL; | 569 | stmp.data = NULL; |
570 | stmp.length = 0; | ||
570 | ret = ASN1_mbstring_copy(&str, in->data, in->length, mbflag, B_ASN1_UTF8STRING); | 571 | ret = ASN1_mbstring_copy(&str, in->data, in->length, mbflag, B_ASN1_UTF8STRING); |
571 | if(ret < 0) return ret; | 572 | if(ret < 0) return ret; |
572 | *out = stmp.data; | 573 | *out = stmp.data; |
diff --git a/src/lib/libssl/src/crypto/asn1/asn1_err.c b/src/lib/libssl/src/crypto/asn1/asn1_err.c index 1a30bf119b..aa60203ba8 100644 --- a/src/lib/libssl/src/crypto/asn1/asn1_err.c +++ b/src/lib/libssl/src/crypto/asn1/asn1_err.c | |||
@@ -305,7 +305,7 @@ static ERR_STRING_DATA ASN1_str_reasons[]= | |||
305 | {ERR_REASON(ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE),"unknown public key type"}, | 305 | {ERR_REASON(ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE),"unknown public key type"}, |
306 | {ERR_REASON(ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM),"unknown signature algorithm"}, | 306 | {ERR_REASON(ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM),"unknown signature algorithm"}, |
307 | {ERR_REASON(ASN1_R_UNKNOWN_TAG) ,"unknown tag"}, | 307 | {ERR_REASON(ASN1_R_UNKNOWN_TAG) ,"unknown tag"}, |
308 | {ERR_REASON(ASN1_R_UNKOWN_FORMAT) ,"unkown format"}, | 308 | {ERR_REASON(ASN1_R_UNKOWN_FORMAT) ,"unknown format"}, |
309 | {ERR_REASON(ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE),"unsupported any defined by type"}, | 309 | {ERR_REASON(ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE),"unsupported any defined by type"}, |
310 | {ERR_REASON(ASN1_R_UNSUPPORTED_CIPHER) ,"unsupported cipher"}, | 310 | {ERR_REASON(ASN1_R_UNSUPPORTED_CIPHER) ,"unsupported cipher"}, |
311 | {ERR_REASON(ASN1_R_UNSUPPORTED_ENCRYPTION_ALGORITHM),"unsupported encryption algorithm"}, | 311 | {ERR_REASON(ASN1_R_UNSUPPORTED_ENCRYPTION_ALGORITHM),"unsupported encryption algorithm"}, |
diff --git a/src/lib/libssl/src/crypto/asn1/x_pubkey.c b/src/lib/libssl/src/crypto/asn1/x_pubkey.c index 627ec87f9f..b649e1fcf9 100644 --- a/src/lib/libssl/src/crypto/asn1/x_pubkey.c +++ b/src/lib/libssl/src/crypto/asn1/x_pubkey.c | |||
@@ -175,12 +175,15 @@ EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key) | |||
175 | CRYPTO_w_lock(CRYPTO_LOCK_EVP_PKEY); | 175 | CRYPTO_w_lock(CRYPTO_LOCK_EVP_PKEY); |
176 | if (key->pkey) | 176 | if (key->pkey) |
177 | { | 177 | { |
178 | CRYPTO_w_unlock(CRYPTO_LOCK_EVP_PKEY); | ||
178 | EVP_PKEY_free(ret); | 179 | EVP_PKEY_free(ret); |
179 | ret = key->pkey; | 180 | ret = key->pkey; |
180 | } | 181 | } |
181 | else | 182 | else |
183 | { | ||
182 | key->pkey = ret; | 184 | key->pkey = ret; |
183 | CRYPTO_w_unlock(CRYPTO_LOCK_EVP_PKEY); | 185 | CRYPTO_w_unlock(CRYPTO_LOCK_EVP_PKEY); |
186 | } | ||
184 | CRYPTO_add(&ret->references, 1, CRYPTO_LOCK_EVP_PKEY); | 187 | CRYPTO_add(&ret->references, 1, CRYPTO_LOCK_EVP_PKEY); |
185 | 188 | ||
186 | return ret; | 189 | return ret; |
diff --git a/src/lib/libssl/src/crypto/bio/bss_dgram.c b/src/lib/libssl/src/crypto/bio/bss_dgram.c index 1b1e4bec81..54c012c47d 100644 --- a/src/lib/libssl/src/crypto/bio/bss_dgram.c +++ b/src/lib/libssl/src/crypto/bio/bss_dgram.c | |||
@@ -77,10 +77,20 @@ | |||
77 | #define OPENSSL_SCTP_FORWARD_CUM_TSN_CHUNK_TYPE 0xc0 | 77 | #define OPENSSL_SCTP_FORWARD_CUM_TSN_CHUNK_TYPE 0xc0 |
78 | #endif | 78 | #endif |
79 | 79 | ||
80 | #ifdef OPENSSL_SYS_LINUX | 80 | #if defined(OPENSSL_SYS_LINUX) && !defined(IP_MTU) |
81 | #define IP_MTU 14 /* linux is lame */ | 81 | #define IP_MTU 14 /* linux is lame */ |
82 | #endif | 82 | #endif |
83 | 83 | ||
84 | #if defined(__FreeBSD__) && defined(IN6_IS_ADDR_V4MAPPED) | ||
85 | /* Standard definition causes type-punning problems. */ | ||
86 | #undef IN6_IS_ADDR_V4MAPPED | ||
87 | #define s6_addr32 __u6_addr.__u6_addr32 | ||
88 | #define IN6_IS_ADDR_V4MAPPED(a) \ | ||
89 | (((a)->s6_addr32[0] == 0) && \ | ||
90 | ((a)->s6_addr32[1] == 0) && \ | ||
91 | ((a)->s6_addr32[2] == htonl(0x0000ffff))) | ||
92 | #endif | ||
93 | |||
84 | #ifdef WATT32 | 94 | #ifdef WATT32 |
85 | #define sock_write SockWrite /* Watt-32 uses same names */ | 95 | #define sock_write SockWrite /* Watt-32 uses same names */ |
86 | #define sock_read SockRead | 96 | #define sock_read SockRead |
@@ -255,7 +265,7 @@ static void dgram_adjust_rcv_timeout(BIO *b) | |||
255 | { | 265 | { |
256 | #if defined(SO_RCVTIMEO) | 266 | #if defined(SO_RCVTIMEO) |
257 | bio_dgram_data *data = (bio_dgram_data *)b->ptr; | 267 | bio_dgram_data *data = (bio_dgram_data *)b->ptr; |
258 | int sz = sizeof(int); | 268 | union { size_t s; int i; } sz = {0}; |
259 | 269 | ||
260 | /* Is a timer active? */ | 270 | /* Is a timer active? */ |
261 | if (data->next_timeout.tv_sec > 0 || data->next_timeout.tv_usec > 0) | 271 | if (data->next_timeout.tv_sec > 0 || data->next_timeout.tv_usec > 0) |
@@ -265,8 +275,10 @@ static void dgram_adjust_rcv_timeout(BIO *b) | |||
265 | /* Read current socket timeout */ | 275 | /* Read current socket timeout */ |
266 | #ifdef OPENSSL_SYS_WINDOWS | 276 | #ifdef OPENSSL_SYS_WINDOWS |
267 | int timeout; | 277 | int timeout; |
278 | |||
279 | sz.i = sizeof(timeout); | ||
268 | if (getsockopt(b->num, SOL_SOCKET, SO_RCVTIMEO, | 280 | if (getsockopt(b->num, SOL_SOCKET, SO_RCVTIMEO, |
269 | (void*)&timeout, &sz) < 0) | 281 | (void*)&timeout, &sz.i) < 0) |
270 | { perror("getsockopt"); } | 282 | { perror("getsockopt"); } |
271 | else | 283 | else |
272 | { | 284 | { |
@@ -274,9 +286,12 @@ static void dgram_adjust_rcv_timeout(BIO *b) | |||
274 | data->socket_timeout.tv_usec = (timeout % 1000) * 1000; | 286 | data->socket_timeout.tv_usec = (timeout % 1000) * 1000; |
275 | } | 287 | } |
276 | #else | 288 | #else |
289 | sz.i = sizeof(data->socket_timeout); | ||
277 | if ( getsockopt(b->num, SOL_SOCKET, SO_RCVTIMEO, | 290 | if ( getsockopt(b->num, SOL_SOCKET, SO_RCVTIMEO, |
278 | &(data->socket_timeout), (void *)&sz) < 0) | 291 | &(data->socket_timeout), (void *)&sz) < 0) |
279 | { perror("getsockopt"); } | 292 | { perror("getsockopt"); } |
293 | else if (sizeof(sz.s)!=sizeof(sz.i) && sz.i==0) | ||
294 | OPENSSL_assert(sz.s<=sizeof(data->socket_timeout)); | ||
280 | #endif | 295 | #endif |
281 | 296 | ||
282 | /* Get current time */ | 297 | /* Get current time */ |
@@ -445,11 +460,10 @@ static long dgram_ctrl(BIO *b, int cmd, long num, void *ptr) | |||
445 | int *ip; | 460 | int *ip; |
446 | struct sockaddr *to = NULL; | 461 | struct sockaddr *to = NULL; |
447 | bio_dgram_data *data = NULL; | 462 | bio_dgram_data *data = NULL; |
448 | #if defined(IP_MTU_DISCOVER) || defined(IP_MTU) | 463 | #if defined(OPENSSL_SYS_LINUX) && (defined(IP_MTU_DISCOVER) || defined(IP_MTU)) |
449 | long sockopt_val = 0; | 464 | int sockopt_val = 0; |
450 | unsigned int sockopt_len = 0; | 465 | socklen_t sockopt_len; /* assume that system supporting IP_MTU is |
451 | #endif | 466 | * modern enough to define socklen_t */ |
452 | #ifdef OPENSSL_SYS_LINUX | ||
453 | socklen_t addr_len; | 467 | socklen_t addr_len; |
454 | union { | 468 | union { |
455 | struct sockaddr sa; | 469 | struct sockaddr sa; |
@@ -531,7 +545,7 @@ static long dgram_ctrl(BIO *b, int cmd, long num, void *ptr) | |||
531 | break; | 545 | break; |
532 | /* (Linux)kernel sets DF bit on outgoing IP packets */ | 546 | /* (Linux)kernel sets DF bit on outgoing IP packets */ |
533 | case BIO_CTRL_DGRAM_MTU_DISCOVER: | 547 | case BIO_CTRL_DGRAM_MTU_DISCOVER: |
534 | #ifdef OPENSSL_SYS_LINUX | 548 | #if defined(OPENSSL_SYS_LINUX) && defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_DO) |
535 | addr_len = (socklen_t)sizeof(addr); | 549 | addr_len = (socklen_t)sizeof(addr); |
536 | memset((void *)&addr, 0, sizeof(addr)); | 550 | memset((void *)&addr, 0, sizeof(addr)); |
537 | if (getsockname(b->num, &addr.sa, &addr_len) < 0) | 551 | if (getsockname(b->num, &addr.sa, &addr_len) < 0) |
@@ -539,7 +553,6 @@ static long dgram_ctrl(BIO *b, int cmd, long num, void *ptr) | |||
539 | ret = 0; | 553 | ret = 0; |
540 | break; | 554 | break; |
541 | } | 555 | } |
542 | sockopt_len = sizeof(sockopt_val); | ||
543 | switch (addr.sa.sa_family) | 556 | switch (addr.sa.sa_family) |
544 | { | 557 | { |
545 | case AF_INET: | 558 | case AF_INET: |
@@ -548,7 +561,7 @@ static long dgram_ctrl(BIO *b, int cmd, long num, void *ptr) | |||
548 | &sockopt_val, sizeof(sockopt_val))) < 0) | 561 | &sockopt_val, sizeof(sockopt_val))) < 0) |
549 | perror("setsockopt"); | 562 | perror("setsockopt"); |
550 | break; | 563 | break; |
551 | #if OPENSSL_USE_IPV6 && defined(IPV6_MTU_DISCOVER) | 564 | #if OPENSSL_USE_IPV6 && defined(IPV6_MTU_DISCOVER) && defined(IPV6_PMTUDISC_DO) |
552 | case AF_INET6: | 565 | case AF_INET6: |
553 | sockopt_val = IPV6_PMTUDISC_DO; | 566 | sockopt_val = IPV6_PMTUDISC_DO; |
554 | if ((ret = setsockopt(b->num, IPPROTO_IPV6, IPV6_MTU_DISCOVER, | 567 | if ((ret = setsockopt(b->num, IPPROTO_IPV6, IPV6_MTU_DISCOVER, |
@@ -565,7 +578,7 @@ static long dgram_ctrl(BIO *b, int cmd, long num, void *ptr) | |||
565 | break; | 578 | break; |
566 | #endif | 579 | #endif |
567 | case BIO_CTRL_DGRAM_QUERY_MTU: | 580 | case BIO_CTRL_DGRAM_QUERY_MTU: |
568 | #ifdef OPENSSL_SYS_LINUX | 581 | #if defined(OPENSSL_SYS_LINUX) && defined(IP_MTU) |
569 | addr_len = (socklen_t)sizeof(addr); | 582 | addr_len = (socklen_t)sizeof(addr); |
570 | memset((void *)&addr, 0, sizeof(addr)); | 583 | memset((void *)&addr, 0, sizeof(addr)); |
571 | if (getsockname(b->num, &addr.sa, &addr_len) < 0) | 584 | if (getsockname(b->num, &addr.sa, &addr_len) < 0) |
@@ -727,12 +740,15 @@ static long dgram_ctrl(BIO *b, int cmd, long num, void *ptr) | |||
727 | #endif | 740 | #endif |
728 | break; | 741 | break; |
729 | case BIO_CTRL_DGRAM_GET_RECV_TIMEOUT: | 742 | case BIO_CTRL_DGRAM_GET_RECV_TIMEOUT: |
730 | #ifdef OPENSSL_SYS_WINDOWS | ||
731 | { | 743 | { |
732 | int timeout, sz = sizeof(timeout); | 744 | union { size_t s; int i; } sz = {0}; |
745 | #ifdef OPENSSL_SYS_WINDOWS | ||
746 | int timeout; | ||
733 | struct timeval *tv = (struct timeval *)ptr; | 747 | struct timeval *tv = (struct timeval *)ptr; |
748 | |||
749 | sz.i = sizeof(timeout); | ||
734 | if (getsockopt(b->num, SOL_SOCKET, SO_RCVTIMEO, | 750 | if (getsockopt(b->num, SOL_SOCKET, SO_RCVTIMEO, |
735 | (void*)&timeout, &sz) < 0) | 751 | (void*)&timeout, &sz.i) < 0) |
736 | { perror("getsockopt"); ret = -1; } | 752 | { perror("getsockopt"); ret = -1; } |
737 | else | 753 | else |
738 | { | 754 | { |
@@ -740,12 +756,20 @@ static long dgram_ctrl(BIO *b, int cmd, long num, void *ptr) | |||
740 | tv->tv_usec = (timeout % 1000) * 1000; | 756 | tv->tv_usec = (timeout % 1000) * 1000; |
741 | ret = sizeof(*tv); | 757 | ret = sizeof(*tv); |
742 | } | 758 | } |
743 | } | ||
744 | #else | 759 | #else |
760 | sz.i = sizeof(struct timeval); | ||
745 | if ( getsockopt(b->num, SOL_SOCKET, SO_RCVTIMEO, | 761 | if ( getsockopt(b->num, SOL_SOCKET, SO_RCVTIMEO, |
746 | ptr, (void *)&ret) < 0) | 762 | ptr, (void *)&sz) < 0) |
747 | { perror("getsockopt"); ret = -1; } | 763 | { perror("getsockopt"); ret = -1; } |
764 | else if (sizeof(sz.s)!=sizeof(sz.i) && sz.i==0) | ||
765 | { | ||
766 | OPENSSL_assert(sz.s<=sizeof(struct timeval)); | ||
767 | ret = (int)sz.s; | ||
768 | } | ||
769 | else | ||
770 | ret = sz.i; | ||
748 | #endif | 771 | #endif |
772 | } | ||
749 | break; | 773 | break; |
750 | #endif | 774 | #endif |
751 | #if defined(SO_SNDTIMEO) | 775 | #if defined(SO_SNDTIMEO) |
@@ -765,12 +789,15 @@ static long dgram_ctrl(BIO *b, int cmd, long num, void *ptr) | |||
765 | #endif | 789 | #endif |
766 | break; | 790 | break; |
767 | case BIO_CTRL_DGRAM_GET_SEND_TIMEOUT: | 791 | case BIO_CTRL_DGRAM_GET_SEND_TIMEOUT: |
768 | #ifdef OPENSSL_SYS_WINDOWS | ||
769 | { | 792 | { |
770 | int timeout, sz = sizeof(timeout); | 793 | union { size_t s; int i; } sz = {0}; |
794 | #ifdef OPENSSL_SYS_WINDOWS | ||
795 | int timeout; | ||
771 | struct timeval *tv = (struct timeval *)ptr; | 796 | struct timeval *tv = (struct timeval *)ptr; |
797 | |||
798 | sz.i = sizeof(timeout); | ||
772 | if (getsockopt(b->num, SOL_SOCKET, SO_SNDTIMEO, | 799 | if (getsockopt(b->num, SOL_SOCKET, SO_SNDTIMEO, |
773 | (void*)&timeout, &sz) < 0) | 800 | (void*)&timeout, &sz.i) < 0) |
774 | { perror("getsockopt"); ret = -1; } | 801 | { perror("getsockopt"); ret = -1; } |
775 | else | 802 | else |
776 | { | 803 | { |
@@ -778,12 +805,20 @@ static long dgram_ctrl(BIO *b, int cmd, long num, void *ptr) | |||
778 | tv->tv_usec = (timeout % 1000) * 1000; | 805 | tv->tv_usec = (timeout % 1000) * 1000; |
779 | ret = sizeof(*tv); | 806 | ret = sizeof(*tv); |
780 | } | 807 | } |
781 | } | ||
782 | #else | 808 | #else |
809 | sz.i = sizeof(struct timeval); | ||
783 | if ( getsockopt(b->num, SOL_SOCKET, SO_SNDTIMEO, | 810 | if ( getsockopt(b->num, SOL_SOCKET, SO_SNDTIMEO, |
784 | ptr, (void *)&ret) < 0) | 811 | ptr, (void *)&sz) < 0) |
785 | { perror("getsockopt"); ret = -1; } | 812 | { perror("getsockopt"); ret = -1; } |
813 | else if (sizeof(sz.s)!=sizeof(sz.i) && sz.i==0) | ||
814 | { | ||
815 | OPENSSL_assert(sz.s<=sizeof(struct timeval)); | ||
816 | ret = (int)sz.s; | ||
817 | } | ||
818 | else | ||
819 | ret = sz.i; | ||
786 | #endif | 820 | #endif |
821 | } | ||
787 | break; | 822 | break; |
788 | #endif | 823 | #endif |
789 | case BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP: | 824 | case BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP: |
@@ -871,8 +906,8 @@ BIO *BIO_new_dgram_sctp(int fd, int close_flag) | |||
871 | memset(authchunks, 0, sizeof(sockopt_len)); | 906 | memset(authchunks, 0, sizeof(sockopt_len)); |
872 | ret = getsockopt(fd, IPPROTO_SCTP, SCTP_LOCAL_AUTH_CHUNKS, authchunks, &sockopt_len); | 907 | ret = getsockopt(fd, IPPROTO_SCTP, SCTP_LOCAL_AUTH_CHUNKS, authchunks, &sockopt_len); |
873 | OPENSSL_assert(ret >= 0); | 908 | OPENSSL_assert(ret >= 0); |
874 | 909 | ||
875 | for (p = (unsigned char*) authchunks + sizeof(sctp_assoc_t); | 910 | for (p = (unsigned char*) authchunks->gauth_chunks; |
876 | p < (unsigned char*) authchunks + sockopt_len; | 911 | p < (unsigned char*) authchunks + sockopt_len; |
877 | p += sizeof(uint8_t)) | 912 | p += sizeof(uint8_t)) |
878 | { | 913 | { |
@@ -955,7 +990,6 @@ static int dgram_sctp_free(BIO *a) | |||
955 | #ifdef SCTP_AUTHENTICATION_EVENT | 990 | #ifdef SCTP_AUTHENTICATION_EVENT |
956 | void dgram_sctp_handle_auth_free_key_event(BIO *b, union sctp_notification *snp) | 991 | void dgram_sctp_handle_auth_free_key_event(BIO *b, union sctp_notification *snp) |
957 | { | 992 | { |
958 | unsigned int sockopt_len = 0; | ||
959 | int ret; | 993 | int ret; |
960 | struct sctp_authkey_event* authkeyevent = &snp->sn_auth_event; | 994 | struct sctp_authkey_event* authkeyevent = &snp->sn_auth_event; |
961 | 995 | ||
@@ -965,9 +999,8 @@ void dgram_sctp_handle_auth_free_key_event(BIO *b, union sctp_notification *snp) | |||
965 | 999 | ||
966 | /* delete key */ | 1000 | /* delete key */ |
967 | authkeyid.scact_keynumber = authkeyevent->auth_keynumber; | 1001 | authkeyid.scact_keynumber = authkeyevent->auth_keynumber; |
968 | sockopt_len = sizeof(struct sctp_authkeyid); | ||
969 | ret = setsockopt(b->num, IPPROTO_SCTP, SCTP_AUTH_DELETE_KEY, | 1002 | ret = setsockopt(b->num, IPPROTO_SCTP, SCTP_AUTH_DELETE_KEY, |
970 | &authkeyid, sockopt_len); | 1003 | &authkeyid, sizeof(struct sctp_authkeyid)); |
971 | } | 1004 | } |
972 | } | 1005 | } |
973 | #endif | 1006 | #endif |
@@ -1164,7 +1197,7 @@ static int dgram_sctp_read(BIO *b, char *out, int outl) | |||
1164 | ii = getsockopt(b->num, IPPROTO_SCTP, SCTP_PEER_AUTH_CHUNKS, authchunks, &optlen); | 1197 | ii = getsockopt(b->num, IPPROTO_SCTP, SCTP_PEER_AUTH_CHUNKS, authchunks, &optlen); |
1165 | OPENSSL_assert(ii >= 0); | 1198 | OPENSSL_assert(ii >= 0); |
1166 | 1199 | ||
1167 | for (p = (unsigned char*) authchunks + sizeof(sctp_assoc_t); | 1200 | for (p = (unsigned char*) authchunks->gauth_chunks; |
1168 | p < (unsigned char*) authchunks + optlen; | 1201 | p < (unsigned char*) authchunks + optlen; |
1169 | p += sizeof(uint8_t)) | 1202 | p += sizeof(uint8_t)) |
1170 | { | 1203 | { |
@@ -1298,7 +1331,7 @@ static long dgram_sctp_ctrl(BIO *b, int cmd, long num, void *ptr) | |||
1298 | { | 1331 | { |
1299 | long ret=1; | 1332 | long ret=1; |
1300 | bio_dgram_sctp_data *data = NULL; | 1333 | bio_dgram_sctp_data *data = NULL; |
1301 | unsigned int sockopt_len = 0; | 1334 | socklen_t sockopt_len = 0; |
1302 | struct sctp_authkeyid authkeyid; | 1335 | struct sctp_authkeyid authkeyid; |
1303 | struct sctp_authkey *authkey; | 1336 | struct sctp_authkey *authkey; |
1304 | 1337 | ||
diff --git a/src/lib/libssl/src/crypto/bio/bss_log.c b/src/lib/libssl/src/crypto/bio/bss_log.c index b7dce5c1a2..2227b2b52d 100644 --- a/src/lib/libssl/src/crypto/bio/bss_log.c +++ b/src/lib/libssl/src/crypto/bio/bss_log.c | |||
@@ -245,7 +245,7 @@ static int MS_CALLBACK slg_puts(BIO *bp, const char *str) | |||
245 | 245 | ||
246 | static void xopenlog(BIO* bp, char* name, int level) | 246 | static void xopenlog(BIO* bp, char* name, int level) |
247 | { | 247 | { |
248 | if (GetVersion() < 0x80000000) | 248 | if (check_winnt()) |
249 | bp->ptr = RegisterEventSourceA(NULL,name); | 249 | bp->ptr = RegisterEventSourceA(NULL,name); |
250 | else | 250 | else |
251 | bp->ptr = NULL; | 251 | bp->ptr = NULL; |
diff --git a/src/lib/libssl/src/crypto/bn/bn.h b/src/lib/libssl/src/crypto/bn/bn.h index f34248ec4f..21a1a3fe35 100644 --- a/src/lib/libssl/src/crypto/bn/bn.h +++ b/src/lib/libssl/src/crypto/bn/bn.h | |||
@@ -538,6 +538,8 @@ BIGNUM *BN_mod_inverse(BIGNUM *ret, | |||
538 | BIGNUM *BN_mod_sqrt(BIGNUM *ret, | 538 | BIGNUM *BN_mod_sqrt(BIGNUM *ret, |
539 | const BIGNUM *a, const BIGNUM *n,BN_CTX *ctx); | 539 | const BIGNUM *a, const BIGNUM *n,BN_CTX *ctx); |
540 | 540 | ||
541 | void BN_consttime_swap(BN_ULONG swap, BIGNUM *a, BIGNUM *b, int nwords); | ||
542 | |||
541 | /* Deprecated versions */ | 543 | /* Deprecated versions */ |
542 | #ifndef OPENSSL_NO_DEPRECATED | 544 | #ifndef OPENSSL_NO_DEPRECATED |
543 | BIGNUM *BN_generate_prime(BIGNUM *ret,int bits,int safe, | 545 | BIGNUM *BN_generate_prime(BIGNUM *ret,int bits,int safe, |
@@ -774,11 +776,20 @@ int RAND_pseudo_bytes(unsigned char *buf,int num); | |||
774 | 776 | ||
775 | #define bn_fix_top(a) bn_check_top(a) | 777 | #define bn_fix_top(a) bn_check_top(a) |
776 | 778 | ||
779 | #define bn_check_size(bn, bits) bn_wcheck_size(bn, ((bits+BN_BITS2-1))/BN_BITS2) | ||
780 | #define bn_wcheck_size(bn, words) \ | ||
781 | do { \ | ||
782 | const BIGNUM *_bnum2 = (bn); \ | ||
783 | assert(words <= (_bnum2)->dmax && words >= (_bnum2)->top); \ | ||
784 | } while(0) | ||
785 | |||
777 | #else /* !BN_DEBUG */ | 786 | #else /* !BN_DEBUG */ |
778 | 787 | ||
779 | #define bn_pollute(a) | 788 | #define bn_pollute(a) |
780 | #define bn_check_top(a) | 789 | #define bn_check_top(a) |
781 | #define bn_fix_top(a) bn_correct_top(a) | 790 | #define bn_fix_top(a) bn_correct_top(a) |
791 | #define bn_check_size(bn, bits) | ||
792 | #define bn_wcheck_size(bn, words) | ||
782 | 793 | ||
783 | #endif | 794 | #endif |
784 | 795 | ||
diff --git a/src/lib/libssl/src/crypto/bn/bn_div.c b/src/lib/libssl/src/crypto/bn/bn_div.c index 52b3304293..7b2403185e 100644 --- a/src/lib/libssl/src/crypto/bn/bn_div.c +++ b/src/lib/libssl/src/crypto/bn/bn_div.c | |||
@@ -141,6 +141,7 @@ int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, | |||
141 | * | 141 | * |
142 | * <appro@fy.chalmers.se> | 142 | * <appro@fy.chalmers.se> |
143 | */ | 143 | */ |
144 | #undef bn_div_words | ||
144 | # define bn_div_words(n0,n1,d0) \ | 145 | # define bn_div_words(n0,n1,d0) \ |
145 | ({ asm volatile ( \ | 146 | ({ asm volatile ( \ |
146 | "divl %4" \ | 147 | "divl %4" \ |
@@ -155,6 +156,7 @@ int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, | |||
155 | * Same story here, but it's 128-bit by 64-bit division. Wow! | 156 | * Same story here, but it's 128-bit by 64-bit division. Wow! |
156 | * <appro@fy.chalmers.se> | 157 | * <appro@fy.chalmers.se> |
157 | */ | 158 | */ |
159 | # undef bn_div_words | ||
158 | # define bn_div_words(n0,n1,d0) \ | 160 | # define bn_div_words(n0,n1,d0) \ |
159 | ({ asm volatile ( \ | 161 | ({ asm volatile ( \ |
160 | "divq %4" \ | 162 | "divq %4" \ |
diff --git a/src/lib/libssl/src/crypto/bn/bn_gcd.c b/src/lib/libssl/src/crypto/bn/bn_gcd.c index 4a352119ba..a808f53178 100644 --- a/src/lib/libssl/src/crypto/bn/bn_gcd.c +++ b/src/lib/libssl/src/crypto/bn/bn_gcd.c | |||
@@ -205,6 +205,7 @@ err: | |||
205 | /* solves ax == 1 (mod n) */ | 205 | /* solves ax == 1 (mod n) */ |
206 | static BIGNUM *BN_mod_inverse_no_branch(BIGNUM *in, | 206 | static BIGNUM *BN_mod_inverse_no_branch(BIGNUM *in, |
207 | const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); | 207 | const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); |
208 | |||
208 | BIGNUM *BN_mod_inverse(BIGNUM *in, | 209 | BIGNUM *BN_mod_inverse(BIGNUM *in, |
209 | const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx) | 210 | const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx) |
210 | { | 211 | { |
diff --git a/src/lib/libssl/src/crypto/bn/bn_lcl.h b/src/lib/libssl/src/crypto/bn/bn_lcl.h index eecfd8cc99..817c773b65 100644 --- a/src/lib/libssl/src/crypto/bn/bn_lcl.h +++ b/src/lib/libssl/src/crypto/bn/bn_lcl.h | |||
@@ -282,16 +282,23 @@ extern "C" { | |||
282 | # endif | 282 | # endif |
283 | # elif defined(__mips) && (defined(SIXTY_FOUR_BIT) || defined(SIXTY_FOUR_BIT_LONG)) | 283 | # elif defined(__mips) && (defined(SIXTY_FOUR_BIT) || defined(SIXTY_FOUR_BIT_LONG)) |
284 | # if defined(__GNUC__) && __GNUC__>=2 | 284 | # if defined(__GNUC__) && __GNUC__>=2 |
285 | # define BN_UMULT_HIGH(a,b) ({ \ | 285 | # if __GNUC__>=4 && __GNUC_MINOR__>=4 /* "h" constraint is no more since 4.4 */ |
286 | # define BN_UMULT_HIGH(a,b) (((__uint128_t)(a)*(b))>>64) | ||
287 | # define BN_UMULT_LOHI(low,high,a,b) ({ \ | ||
288 | __uint128_t ret=(__uint128_t)(a)*(b); \ | ||
289 | (high)=ret>>64; (low)=ret; }) | ||
290 | # else | ||
291 | # define BN_UMULT_HIGH(a,b) ({ \ | ||
286 | register BN_ULONG ret; \ | 292 | register BN_ULONG ret; \ |
287 | asm ("dmultu %1,%2" \ | 293 | asm ("dmultu %1,%2" \ |
288 | : "=h"(ret) \ | 294 | : "=h"(ret) \ |
289 | : "r"(a), "r"(b) : "l"); \ | 295 | : "r"(a), "r"(b) : "l"); \ |
290 | ret; }) | 296 | ret; }) |
291 | # define BN_UMULT_LOHI(low,high,a,b) \ | 297 | # define BN_UMULT_LOHI(low,high,a,b)\ |
292 | asm ("dmultu %2,%3" \ | 298 | asm ("dmultu %2,%3" \ |
293 | : "=l"(low),"=h"(high) \ | 299 | : "=l"(low),"=h"(high) \ |
294 | : "r"(a), "r"(b)); | 300 | : "r"(a), "r"(b)); |
301 | # endif | ||
295 | # endif | 302 | # endif |
296 | # endif /* cpu */ | 303 | # endif /* cpu */ |
297 | #endif /* OPENSSL_NO_ASM */ | 304 | #endif /* OPENSSL_NO_ASM */ |
diff --git a/src/lib/libssl/src/crypto/bn/bn_lib.c b/src/lib/libssl/src/crypto/bn/bn_lib.c index 7a5676de69..5461e6ee7d 100644 --- a/src/lib/libssl/src/crypto/bn/bn_lib.c +++ b/src/lib/libssl/src/crypto/bn/bn_lib.c | |||
@@ -824,3 +824,55 @@ int bn_cmp_part_words(const BN_ULONG *a, const BN_ULONG *b, | |||
824 | } | 824 | } |
825 | return bn_cmp_words(a,b,cl); | 825 | return bn_cmp_words(a,b,cl); |
826 | } | 826 | } |
827 | |||
828 | /* | ||
829 | * Constant-time conditional swap of a and b. | ||
830 | * a and b are swapped if condition is not 0. The code assumes that at most one bit of condition is set. | ||
831 | * nwords is the number of words to swap. The code assumes that at least nwords are allocated in both a and b, | ||
832 | * and that no more than nwords are used by either a or b. | ||
833 | * a and b cannot be the same number | ||
834 | */ | ||
835 | void BN_consttime_swap(BN_ULONG condition, BIGNUM *a, BIGNUM *b, int nwords) | ||
836 | { | ||
837 | BN_ULONG t; | ||
838 | int i; | ||
839 | |||
840 | bn_wcheck_size(a, nwords); | ||
841 | bn_wcheck_size(b, nwords); | ||
842 | |||
843 | assert(a != b); | ||
844 | assert((condition & (condition - 1)) == 0); | ||
845 | assert(sizeof(BN_ULONG) >= sizeof(int)); | ||
846 | |||
847 | condition = ((condition - 1) >> (BN_BITS2 - 1)) - 1; | ||
848 | |||
849 | t = (a->top^b->top) & condition; | ||
850 | a->top ^= t; | ||
851 | b->top ^= t; | ||
852 | |||
853 | #define BN_CONSTTIME_SWAP(ind) \ | ||
854 | do { \ | ||
855 | t = (a->d[ind] ^ b->d[ind]) & condition; \ | ||
856 | a->d[ind] ^= t; \ | ||
857 | b->d[ind] ^= t; \ | ||
858 | } while (0) | ||
859 | |||
860 | |||
861 | switch (nwords) { | ||
862 | default: | ||
863 | for (i = 10; i < nwords; i++) | ||
864 | BN_CONSTTIME_SWAP(i); | ||
865 | /* Fallthrough */ | ||
866 | case 10: BN_CONSTTIME_SWAP(9); /* Fallthrough */ | ||
867 | case 9: BN_CONSTTIME_SWAP(8); /* Fallthrough */ | ||
868 | case 8: BN_CONSTTIME_SWAP(7); /* Fallthrough */ | ||
869 | case 7: BN_CONSTTIME_SWAP(6); /* Fallthrough */ | ||
870 | case 6: BN_CONSTTIME_SWAP(5); /* Fallthrough */ | ||
871 | case 5: BN_CONSTTIME_SWAP(4); /* Fallthrough */ | ||
872 | case 4: BN_CONSTTIME_SWAP(3); /* Fallthrough */ | ||
873 | case 3: BN_CONSTTIME_SWAP(2); /* Fallthrough */ | ||
874 | case 2: BN_CONSTTIME_SWAP(1); /* Fallthrough */ | ||
875 | case 1: BN_CONSTTIME_SWAP(0); | ||
876 | } | ||
877 | #undef BN_CONSTTIME_SWAP | ||
878 | } | ||
diff --git a/src/lib/libssl/src/crypto/bn/bn_nist.c b/src/lib/libssl/src/crypto/bn/bn_nist.c index 43caee4770..e22968d4a3 100644 --- a/src/lib/libssl/src/crypto/bn/bn_nist.c +++ b/src/lib/libssl/src/crypto/bn/bn_nist.c | |||
@@ -286,26 +286,25 @@ const BIGNUM *BN_get0_nist_prime_521(void) | |||
286 | } | 286 | } |
287 | 287 | ||
288 | 288 | ||
289 | static void nist_cp_bn_0(BN_ULONG *buf, BN_ULONG *a, int top, int max) | 289 | static void nist_cp_bn_0(BN_ULONG *dst, const BN_ULONG *src, int top, int max) |
290 | { | 290 | { |
291 | int i; | 291 | int i; |
292 | BN_ULONG *_tmp1 = (buf), *_tmp2 = (a); | ||
293 | 292 | ||
294 | #ifdef BN_DEBUG | 293 | #ifdef BN_DEBUG |
295 | OPENSSL_assert(top <= max); | 294 | OPENSSL_assert(top <= max); |
296 | #endif | 295 | #endif |
297 | for (i = (top); i != 0; i--) | 296 | for (i = 0; i < top; i++) |
298 | *_tmp1++ = *_tmp2++; | 297 | dst[i] = src[i]; |
299 | for (i = (max) - (top); i != 0; i--) | 298 | for (; i < max; i++) |
300 | *_tmp1++ = (BN_ULONG) 0; | 299 | dst[i] = 0; |
301 | } | 300 | } |
302 | 301 | ||
303 | static void nist_cp_bn(BN_ULONG *buf, BN_ULONG *a, int top) | 302 | static void nist_cp_bn(BN_ULONG *dst, const BN_ULONG *src, int top) |
304 | { | 303 | { |
305 | int i; | 304 | int i; |
306 | BN_ULONG *_tmp1 = (buf), *_tmp2 = (a); | 305 | |
307 | for (i = (top); i != 0; i--) | 306 | for (i = 0; i < top; i++) |
308 | *_tmp1++ = *_tmp2++; | 307 | dst[i] = src[i]; |
309 | } | 308 | } |
310 | 309 | ||
311 | #if BN_BITS2 == 64 | 310 | #if BN_BITS2 == 64 |
@@ -451,8 +450,9 @@ int BN_nist_mod_192(BIGNUM *r, const BIGNUM *a, const BIGNUM *field, | |||
451 | */ | 450 | */ |
452 | mask = 0-(PTR_SIZE_INT)bn_sub_words(c_d,r_d,_nist_p_192[0],BN_NIST_192_TOP); | 451 | mask = 0-(PTR_SIZE_INT)bn_sub_words(c_d,r_d,_nist_p_192[0],BN_NIST_192_TOP); |
453 | mask &= 0-(PTR_SIZE_INT)carry; | 452 | mask &= 0-(PTR_SIZE_INT)carry; |
453 | res = c_d; | ||
454 | res = (BN_ULONG *) | 454 | res = (BN_ULONG *) |
455 | (((PTR_SIZE_INT)c_d&~mask) | ((PTR_SIZE_INT)r_d&mask)); | 455 | (((PTR_SIZE_INT)res&~mask) | ((PTR_SIZE_INT)r_d&mask)); |
456 | nist_cp_bn(r_d, res, BN_NIST_192_TOP); | 456 | nist_cp_bn(r_d, res, BN_NIST_192_TOP); |
457 | r->top = BN_NIST_192_TOP; | 457 | r->top = BN_NIST_192_TOP; |
458 | bn_correct_top(r); | 458 | bn_correct_top(r); |
@@ -479,8 +479,11 @@ int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *field, | |||
479 | int top = a->top, i; | 479 | int top = a->top, i; |
480 | int carry; | 480 | int carry; |
481 | BN_ULONG *r_d, *a_d = a->d; | 481 | BN_ULONG *r_d, *a_d = a->d; |
482 | BN_ULONG buf[BN_NIST_224_TOP], | 482 | union { |
483 | c_d[BN_NIST_224_TOP], | 483 | BN_ULONG bn[BN_NIST_224_TOP]; |
484 | unsigned int ui[BN_NIST_224_TOP*sizeof(BN_ULONG)/sizeof(unsigned int)]; | ||
485 | } buf; | ||
486 | BN_ULONG c_d[BN_NIST_224_TOP], | ||
484 | *res; | 487 | *res; |
485 | PTR_SIZE_INT mask; | 488 | PTR_SIZE_INT mask; |
486 | union { bn_addsub_f f; PTR_SIZE_INT p; } u; | 489 | union { bn_addsub_f f; PTR_SIZE_INT p; } u; |
@@ -519,18 +522,18 @@ int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *field, | |||
519 | /* copy upper 256 bits of 448 bit number ... */ | 522 | /* copy upper 256 bits of 448 bit number ... */ |
520 | nist_cp_bn_0(c_d, a_d + (BN_NIST_224_TOP-1), top - (BN_NIST_224_TOP-1), BN_NIST_224_TOP); | 523 | nist_cp_bn_0(c_d, a_d + (BN_NIST_224_TOP-1), top - (BN_NIST_224_TOP-1), BN_NIST_224_TOP); |
521 | /* ... and right shift by 32 to obtain upper 224 bits */ | 524 | /* ... and right shift by 32 to obtain upper 224 bits */ |
522 | nist_set_224(buf, c_d, 14, 13, 12, 11, 10, 9, 8); | 525 | nist_set_224(buf.bn, c_d, 14, 13, 12, 11, 10, 9, 8); |
523 | /* truncate lower part to 224 bits too */ | 526 | /* truncate lower part to 224 bits too */ |
524 | r_d[BN_NIST_224_TOP-1] &= BN_MASK2l; | 527 | r_d[BN_NIST_224_TOP-1] &= BN_MASK2l; |
525 | #else | 528 | #else |
526 | nist_cp_bn_0(buf, a_d + BN_NIST_224_TOP, top - BN_NIST_224_TOP, BN_NIST_224_TOP); | 529 | nist_cp_bn_0(buf.bn, a_d + BN_NIST_224_TOP, top - BN_NIST_224_TOP, BN_NIST_224_TOP); |
527 | #endif | 530 | #endif |
528 | 531 | ||
529 | #if defined(NIST_INT64) && BN_BITS2!=64 | 532 | #if defined(NIST_INT64) && BN_BITS2!=64 |
530 | { | 533 | { |
531 | NIST_INT64 acc; /* accumulator */ | 534 | NIST_INT64 acc; /* accumulator */ |
532 | unsigned int *rp=(unsigned int *)r_d; | 535 | unsigned int *rp=(unsigned int *)r_d; |
533 | const unsigned int *bp=(const unsigned int *)buf; | 536 | const unsigned int *bp=(const unsigned int *)buf.ui; |
534 | 537 | ||
535 | acc = rp[0]; acc -= bp[7-7]; | 538 | acc = rp[0]; acc -= bp[7-7]; |
536 | acc -= bp[11-7]; rp[0] = (unsigned int)acc; acc >>= 32; | 539 | acc -= bp[11-7]; rp[0] = (unsigned int)acc; acc >>= 32; |
@@ -565,13 +568,13 @@ int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *field, | |||
565 | { | 568 | { |
566 | BN_ULONG t_d[BN_NIST_224_TOP]; | 569 | BN_ULONG t_d[BN_NIST_224_TOP]; |
567 | 570 | ||
568 | nist_set_224(t_d, buf, 10, 9, 8, 7, 0, 0, 0); | 571 | nist_set_224(t_d, buf.bn, 10, 9, 8, 7, 0, 0, 0); |
569 | carry = (int)bn_add_words(r_d, r_d, t_d, BN_NIST_224_TOP); | 572 | carry = (int)bn_add_words(r_d, r_d, t_d, BN_NIST_224_TOP); |
570 | nist_set_224(t_d, buf, 0, 13, 12, 11, 0, 0, 0); | 573 | nist_set_224(t_d, buf.bn, 0, 13, 12, 11, 0, 0, 0); |
571 | carry += (int)bn_add_words(r_d, r_d, t_d, BN_NIST_224_TOP); | 574 | carry += (int)bn_add_words(r_d, r_d, t_d, BN_NIST_224_TOP); |
572 | nist_set_224(t_d, buf, 13, 12, 11, 10, 9, 8, 7); | 575 | nist_set_224(t_d, buf.bn, 13, 12, 11, 10, 9, 8, 7); |
573 | carry -= (int)bn_sub_words(r_d, r_d, t_d, BN_NIST_224_TOP); | 576 | carry -= (int)bn_sub_words(r_d, r_d, t_d, BN_NIST_224_TOP); |
574 | nist_set_224(t_d, buf, 0, 0, 0, 0, 13, 12, 11); | 577 | nist_set_224(t_d, buf.bn, 0, 0, 0, 0, 13, 12, 11); |
575 | carry -= (int)bn_sub_words(r_d, r_d, t_d, BN_NIST_224_TOP); | 578 | carry -= (int)bn_sub_words(r_d, r_d, t_d, BN_NIST_224_TOP); |
576 | 579 | ||
577 | #if BN_BITS2==64 | 580 | #if BN_BITS2==64 |
@@ -606,7 +609,8 @@ int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *field, | |||
606 | /* otherwise it's effectively same as in BN_nist_mod_192... */ | 609 | /* otherwise it's effectively same as in BN_nist_mod_192... */ |
607 | mask = 0-(PTR_SIZE_INT)(*u.f)(c_d,r_d,_nist_p_224[0],BN_NIST_224_TOP); | 610 | mask = 0-(PTR_SIZE_INT)(*u.f)(c_d,r_d,_nist_p_224[0],BN_NIST_224_TOP); |
608 | mask &= 0-(PTR_SIZE_INT)carry; | 611 | mask &= 0-(PTR_SIZE_INT)carry; |
609 | res = (BN_ULONG *)(((PTR_SIZE_INT)c_d&~mask) | | 612 | res = c_d; |
613 | res = (BN_ULONG *)(((PTR_SIZE_INT)res&~mask) | | ||
610 | ((PTR_SIZE_INT)r_d&mask)); | 614 | ((PTR_SIZE_INT)r_d&mask)); |
611 | nist_cp_bn(r_d, res, BN_NIST_224_TOP); | 615 | nist_cp_bn(r_d, res, BN_NIST_224_TOP); |
612 | r->top = BN_NIST_224_TOP; | 616 | r->top = BN_NIST_224_TOP; |
@@ -805,7 +809,8 @@ int BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *field, | |||
805 | 809 | ||
806 | mask = 0-(PTR_SIZE_INT)(*u.f)(c_d,r_d,_nist_p_256[0],BN_NIST_256_TOP); | 810 | mask = 0-(PTR_SIZE_INT)(*u.f)(c_d,r_d,_nist_p_256[0],BN_NIST_256_TOP); |
807 | mask &= 0-(PTR_SIZE_INT)carry; | 811 | mask &= 0-(PTR_SIZE_INT)carry; |
808 | res = (BN_ULONG *)(((PTR_SIZE_INT)c_d&~mask) | | 812 | res = c_d; |
813 | res = (BN_ULONG *)(((PTR_SIZE_INT)res&~mask) | | ||
809 | ((PTR_SIZE_INT)r_d&mask)); | 814 | ((PTR_SIZE_INT)r_d&mask)); |
810 | nist_cp_bn(r_d, res, BN_NIST_256_TOP); | 815 | nist_cp_bn(r_d, res, BN_NIST_256_TOP); |
811 | r->top = BN_NIST_256_TOP; | 816 | r->top = BN_NIST_256_TOP; |
@@ -1026,7 +1031,8 @@ int BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *field, | |||
1026 | 1031 | ||
1027 | mask = 0-(PTR_SIZE_INT)(*u.f)(c_d,r_d,_nist_p_384[0],BN_NIST_384_TOP); | 1032 | mask = 0-(PTR_SIZE_INT)(*u.f)(c_d,r_d,_nist_p_384[0],BN_NIST_384_TOP); |
1028 | mask &= 0-(PTR_SIZE_INT)carry; | 1033 | mask &= 0-(PTR_SIZE_INT)carry; |
1029 | res = (BN_ULONG *)(((PTR_SIZE_INT)c_d&~mask) | | 1034 | res = c_d; |
1035 | res = (BN_ULONG *)(((PTR_SIZE_INT)res&~mask) | | ||
1030 | ((PTR_SIZE_INT)r_d&mask)); | 1036 | ((PTR_SIZE_INT)r_d&mask)); |
1031 | nist_cp_bn(r_d, res, BN_NIST_384_TOP); | 1037 | nist_cp_bn(r_d, res, BN_NIST_384_TOP); |
1032 | r->top = BN_NIST_384_TOP; | 1038 | r->top = BN_NIST_384_TOP; |
@@ -1092,7 +1098,8 @@ int BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *field, | |||
1092 | 1098 | ||
1093 | bn_add_words(r_d,r_d,t_d,BN_NIST_521_TOP); | 1099 | bn_add_words(r_d,r_d,t_d,BN_NIST_521_TOP); |
1094 | mask = 0-(PTR_SIZE_INT)bn_sub_words(t_d,r_d,_nist_p_521,BN_NIST_521_TOP); | 1100 | mask = 0-(PTR_SIZE_INT)bn_sub_words(t_d,r_d,_nist_p_521,BN_NIST_521_TOP); |
1095 | res = (BN_ULONG *)(((PTR_SIZE_INT)t_d&~mask) | | 1101 | res = t_d; |
1102 | res = (BN_ULONG *)(((PTR_SIZE_INT)res&~mask) | | ||
1096 | ((PTR_SIZE_INT)r_d&mask)); | 1103 | ((PTR_SIZE_INT)r_d&mask)); |
1097 | nist_cp_bn(r_d,res,BN_NIST_521_TOP); | 1104 | nist_cp_bn(r_d,res,BN_NIST_521_TOP); |
1098 | r->top = BN_NIST_521_TOP; | 1105 | r->top = BN_NIST_521_TOP; |
diff --git a/src/lib/libssl/src/crypto/buffer/buffer.c b/src/lib/libssl/src/crypto/buffer/buffer.c index d7aa79ad7f..d4a4ce43b3 100644 --- a/src/lib/libssl/src/crypto/buffer/buffer.c +++ b/src/lib/libssl/src/crypto/buffer/buffer.c | |||
@@ -179,14 +179,14 @@ int BUF_MEM_grow_clean(BUF_MEM *str, size_t len) | |||
179 | return(len); | 179 | return(len); |
180 | } | 180 | } |
181 | 181 | ||
182 | void BUF_reverse(unsigned char *out, unsigned char *in, size_t size) | 182 | void BUF_reverse(unsigned char *out, const unsigned char *in, size_t size) |
183 | { | 183 | { |
184 | size_t i; | 184 | size_t i; |
185 | if (in) | 185 | if (in) |
186 | { | 186 | { |
187 | out += size - 1; | 187 | out += size - 1; |
188 | for (i = 0; i < size; i++) | 188 | for (i = 0; i < size; i++) |
189 | *in++ = *out--; | 189 | *out-- = *in++; |
190 | } | 190 | } |
191 | else | 191 | else |
192 | { | 192 | { |
diff --git a/src/lib/libssl/src/crypto/buffer/buffer.h b/src/lib/libssl/src/crypto/buffer/buffer.h index 178e418282..f8da32b485 100644 --- a/src/lib/libssl/src/crypto/buffer/buffer.h +++ b/src/lib/libssl/src/crypto/buffer/buffer.h | |||
@@ -88,7 +88,7 @@ int BUF_MEM_grow_clean(BUF_MEM *str, size_t len); | |||
88 | char * BUF_strdup(const char *str); | 88 | char * BUF_strdup(const char *str); |
89 | char * BUF_strndup(const char *str, size_t siz); | 89 | char * BUF_strndup(const char *str, size_t siz); |
90 | void * BUF_memdup(const void *data, size_t siz); | 90 | void * BUF_memdup(const void *data, size_t siz); |
91 | void BUF_reverse(unsigned char *out, unsigned char *in, size_t siz); | 91 | void BUF_reverse(unsigned char *out, const unsigned char *in, size_t siz); |
92 | 92 | ||
93 | /* safe string functions */ | 93 | /* safe string functions */ |
94 | size_t BUF_strlcpy(char *dst,const char *src,size_t siz); | 94 | size_t BUF_strlcpy(char *dst,const char *src,size_t siz); |
diff --git a/src/lib/libssl/src/crypto/cryptlib.c b/src/lib/libssl/src/crypto/cryptlib.c index 766ea8cac7..0b77d8b7d0 100644 --- a/src/lib/libssl/src/crypto/cryptlib.c +++ b/src/lib/libssl/src/crypto/cryptlib.c | |||
@@ -504,7 +504,7 @@ void CRYPTO_THREADID_current(CRYPTO_THREADID *id) | |||
504 | CRYPTO_THREADID_set_numeric(id, (unsigned long)find_thread(NULL)); | 504 | CRYPTO_THREADID_set_numeric(id, (unsigned long)find_thread(NULL)); |
505 | #else | 505 | #else |
506 | /* For everything else, default to using the address of 'errno' */ | 506 | /* For everything else, default to using the address of 'errno' */ |
507 | CRYPTO_THREADID_set_pointer(id, &errno); | 507 | CRYPTO_THREADID_set_pointer(id, (void*)&errno); |
508 | #endif | 508 | #endif |
509 | } | 509 | } |
510 | 510 | ||
@@ -704,6 +704,7 @@ void OPENSSL_cpuid_setup(void) | |||
704 | } | 704 | } |
705 | else | 705 | else |
706 | vec = OPENSSL_ia32_cpuid(); | 706 | vec = OPENSSL_ia32_cpuid(); |
707 | |||
707 | /* | 708 | /* |
708 | * |(1<<10) sets a reserved bit to signal that variable | 709 | * |(1<<10) sets a reserved bit to signal that variable |
709 | * was initialized already... This is to avoid interference | 710 | * was initialized already... This is to avoid interference |
@@ -888,7 +889,7 @@ void OPENSSL_showfatal (const char *fmta,...) | |||
888 | 889 | ||
889 | #if defined(_WIN32_WINNT) && _WIN32_WINNT>=0x0333 | 890 | #if defined(_WIN32_WINNT) && _WIN32_WINNT>=0x0333 |
890 | /* this -------------v--- guards NT-specific calls */ | 891 | /* this -------------v--- guards NT-specific calls */ |
891 | if (GetVersion() < 0x80000000 && OPENSSL_isservice() > 0) | 892 | if (check_winnt() && OPENSSL_isservice() > 0) |
892 | { HANDLE h = RegisterEventSource(0,_T("OPENSSL")); | 893 | { HANDLE h = RegisterEventSource(0,_T("OPENSSL")); |
893 | const TCHAR *pmsg=buf; | 894 | const TCHAR *pmsg=buf; |
894 | ReportEvent(h,EVENTLOG_ERROR_TYPE,0,0,0,1,0,&pmsg,0); | 895 | ReportEvent(h,EVENTLOG_ERROR_TYPE,0,0,0,1,0,&pmsg,0); |
@@ -924,3 +925,16 @@ void OpenSSLDie(const char *file,int line,const char *assertion) | |||
924 | } | 925 | } |
925 | 926 | ||
926 | void *OPENSSL_stderr(void) { return stderr; } | 927 | void *OPENSSL_stderr(void) { return stderr; } |
928 | |||
929 | int CRYPTO_memcmp(const void *in_a, const void *in_b, size_t len) | ||
930 | { | ||
931 | size_t i; | ||
932 | const unsigned char *a = in_a; | ||
933 | const unsigned char *b = in_b; | ||
934 | unsigned char x = 0; | ||
935 | |||
936 | for (i = 0; i < len; i++) | ||
937 | x |= a[i] ^ b[i]; | ||
938 | |||
939 | return x; | ||
940 | } | ||
diff --git a/src/lib/libssl/src/crypto/cryptlib.h b/src/lib/libssl/src/crypto/cryptlib.h index 1761f6b668..d26f9630ea 100644 --- a/src/lib/libssl/src/crypto/cryptlib.h +++ b/src/lib/libssl/src/crypto/cryptlib.h | |||
@@ -100,7 +100,7 @@ extern "C" { | |||
100 | 100 | ||
101 | void OPENSSL_cpuid_setup(void); | 101 | void OPENSSL_cpuid_setup(void); |
102 | extern unsigned int OPENSSL_ia32cap_P[]; | 102 | extern unsigned int OPENSSL_ia32cap_P[]; |
103 | void OPENSSL_showfatal(const char *,...); | 103 | void OPENSSL_showfatal(const char *fmta,...); |
104 | void *OPENSSL_stderr(void); | 104 | void *OPENSSL_stderr(void); |
105 | extern int OPENSSL_NONPIC_relocated; | 105 | extern int OPENSSL_NONPIC_relocated; |
106 | 106 | ||
diff --git a/src/lib/libssl/src/crypto/crypto-lib.com b/src/lib/libssl/src/crypto/crypto-lib.com deleted file mode 100644 index c280aa03a8..0000000000 --- a/src/lib/libssl/src/crypto/crypto-lib.com +++ /dev/null | |||
@@ -1,1516 +0,0 @@ | |||
1 | $! | ||
2 | $! CRYPTO-LIB.COM | ||
3 | $! Written By: Robert Byer | ||
4 | $! Vice-President | ||
5 | $! A-Com Computing, Inc. | ||
6 | $! byer@mail.all-net.net | ||
7 | $! | ||
8 | $! Changes by Richard Levitte <richard@levitte.org> | ||
9 | $! Zoltan Arpadffy <arpadffy@polarhome.com> | ||
10 | $! | ||
11 | $! This command files compiles and creates the "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" | ||
12 | $! library for OpenSSL. The "xxx" denotes the machine architecture, ALPHA, | ||
13 | $! IA64 or VAX. | ||
14 | $! | ||
15 | $! It was re-written so it would try to determine what "C" compiler to use | ||
16 | $! or you can specify which "C" compiler to use. | ||
17 | $! | ||
18 | $! Specify the following as P1 to build just that part or ALL to just | ||
19 | $! build everything. | ||
20 | $! | ||
21 | $! LIBRARY To just compile the [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library. | ||
22 | $! APPS To just compile the [.xxx.EXE.CRYPTO]*.EXE | ||
23 | $! ALL To do both LIBRARY and APPS | ||
24 | $! | ||
25 | $! Specify DEBUG or NODEBUG as P2 to compile with or without debugger | ||
26 | $! information. | ||
27 | $! | ||
28 | $! Specify which compiler at P3 to try to compile under. | ||
29 | $! | ||
30 | $! VAXC For VAX C. | ||
31 | $! DECC For DEC C. | ||
32 | $! GNUC For GNU C. | ||
33 | $! | ||
34 | $! If you don't specify a compiler, it will try to determine which | ||
35 | $! "C" compiler to use. | ||
36 | $! | ||
37 | $! P4, if defined, sets a TCP/IP library to use, through one of the following | ||
38 | $! keywords: | ||
39 | $! | ||
40 | $! UCX For UCX | ||
41 | $! TCPIP For TCPIP (post UCX) | ||
42 | $! SOCKETSHR For SOCKETSHR+NETLIB | ||
43 | $! | ||
44 | $! P5, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up) | ||
45 | $! | ||
46 | $! P6, if defined, sets a choice of crypto methods to compile. | ||
47 | $! WARNING: this should only be done to recompile some part of an already | ||
48 | $! fully compiled library. | ||
49 | $! | ||
50 | $! P7, if defined, specifies the C pointer size. Ignored on VAX. | ||
51 | $! ("64=ARGV" gives more efficient code with HP C V7.3 or newer.) | ||
52 | $! Supported values are: | ||
53 | $! | ||
54 | $! "" Compile with default (/NOPOINTER_SIZE) | ||
55 | $! 32 Compile with /POINTER_SIZE=32 (SHORT) | ||
56 | $! 64 Compile with /POINTER_SIZE=64[=ARGV] (LONG[=ARGV]). | ||
57 | $! (Automatically select ARGV if compiler supports it.) | ||
58 | $! 64= Compile with /POINTER_SIZE=64 (LONG). | ||
59 | $! 64=ARGV Compile with /POINTER_SIZE=64=ARGV (LONG=ARGV). | ||
60 | $! | ||
61 | $! P8, if defined, specifies a directory where ZLIB files (zlib.h, | ||
62 | $! libz.olb) may be found. Optionally, a non-default object library | ||
63 | $! name may be included ("dev:[dir]libz_64.olb", for example). | ||
64 | $! | ||
65 | $! | ||
66 | $! Announce/identify. | ||
67 | $! | ||
68 | $ proc = f$environment( "procedure") | ||
69 | $ write sys$output "@@@ "+ - | ||
70 | f$parse( proc, , , "name")+ f$parse( proc, , , "type") | ||
71 | $! | ||
72 | $! Define A TCP/IP Library That We Will Need To Link To. | ||
73 | $! (That Is, If We Need To Link To One.) | ||
74 | $! | ||
75 | $ TCPIP_LIB = "" | ||
76 | $ ZLIB_LIB = "" | ||
77 | $! | ||
78 | $! Check Which Architecture We Are Using. | ||
79 | $! | ||
80 | $ IF (F$GETSYI("CPU").LT.128) | ||
81 | $ THEN | ||
82 | $! | ||
83 | $! The Architecture Is VAX | ||
84 | $! | ||
85 | $ ARCH = "VAX" | ||
86 | $! | ||
87 | $! Else... | ||
88 | $! | ||
89 | $ ELSE | ||
90 | $! | ||
91 | $! The Architecture Is Alpha, IA64 or whatever comes in the future. | ||
92 | $! | ||
93 | $ ARCH = F$EDIT( F$GETSYI( "ARCH_NAME"), "UPCASE") | ||
94 | $ IF (ARCH .EQS. "") THEN ARCH = "UNK" | ||
95 | $! | ||
96 | $! End The Architecture Check. | ||
97 | $! | ||
98 | $ ENDIF | ||
99 | $! | ||
100 | $ ARCHD = ARCH | ||
101 | $ LIB32 = "32" | ||
102 | $ OPT_FILE = "" | ||
103 | $ POINTER_SIZE = "" | ||
104 | $! | ||
105 | $! Define The Different Encryption Types. | ||
106 | $! NOTE: Some might think this list ugly. However, it's made this way to | ||
107 | $! reflect the SDIRS variable in [-]Makefile.org as closely as possible, | ||
108 | $! thereby making it fairly easy to verify that the lists are the same. | ||
109 | $! | ||
110 | $ ET_WHIRLPOOL = "WHRLPOOL" | ||
111 | $ IF ARCH .EQS. "VAX" THEN ET_WHIRLPOOL = "" | ||
112 | $ ENCRYPT_TYPES = "Basic,"+ - | ||
113 | "OBJECTS,"+ - | ||
114 | "MD2,MD4,MD5,SHA,MDC2,HMAC,RIPEMD,"+ET_WHIRLPOOL+","+ - | ||
115 | "DES,AES,RC2,RC4,RC5,IDEA,BF,CAST,CAMELLIA,SEED,MODES,"+ - | ||
116 | "BN,EC,RSA,DSA,ECDSA,DH,ECDH,DSO,ENGINE,"+ - | ||
117 | "BUFFER,BIO,STACK,LHASH,RAND,ERR,"+ - | ||
118 | "EVP,EVP_2,EVP_3,ASN1,ASN1_2,PEM,X509,X509V3,"+ - | ||
119 | "CONF,TXT_DB,PKCS7,PKCS12,COMP,OCSP,UI,KRB5,"+ - | ||
120 | "CMS,PQUEUE,TS,JPAKE,SRP,STORE,CMAC" | ||
121 | $! | ||
122 | $! Check To Make Sure We Have Valid Command Line Parameters. | ||
123 | $! | ||
124 | $ GOSUB CHECK_OPTIONS | ||
125 | $! | ||
126 | $! Define The OBJ and EXE Directories. | ||
127 | $! | ||
128 | $ OBJ_DIR := SYS$DISK:[-.'ARCHD'.OBJ.CRYPTO] | ||
129 | $ EXE_DIR := SYS$DISK:[-.'ARCHD'.EXE.CRYPTO] | ||
130 | $! | ||
131 | $! Specify the destination directory in any /MAP option. | ||
132 | $! | ||
133 | $ if (LINKMAP .eqs. "MAP") | ||
134 | $ then | ||
135 | $ LINKMAP = LINKMAP+ "=''EXE_DIR'" | ||
136 | $ endif | ||
137 | $! | ||
138 | $! Add the location prefix to the linker options file name. | ||
139 | $! | ||
140 | $ if (OPT_FILE .nes. "") | ||
141 | $ then | ||
142 | $ OPT_FILE = EXE_DIR+ OPT_FILE | ||
143 | $ endif | ||
144 | $! | ||
145 | $! Initialise logical names and such | ||
146 | $! | ||
147 | $ GOSUB INITIALISE | ||
148 | $! | ||
149 | $! Tell The User What Kind of Machine We Run On. | ||
150 | $! | ||
151 | $ WRITE SYS$OUTPUT "Host system architecture: ''ARCHD'" | ||
152 | $! | ||
153 | $! | ||
154 | $! Check To See If The Architecture Specific OBJ Directory Exists. | ||
155 | $! | ||
156 | $ IF (F$PARSE(OBJ_DIR).EQS."") | ||
157 | $ THEN | ||
158 | $! | ||
159 | $! It Dosen't Exist, So Create It. | ||
160 | $! | ||
161 | $ CREATE/DIR 'OBJ_DIR' | ||
162 | $! | ||
163 | $! End The Architecture Specific OBJ Directory Check. | ||
164 | $! | ||
165 | $ ENDIF | ||
166 | $! | ||
167 | $! Check To See If The Architecture Specific Directory Exists. | ||
168 | $! | ||
169 | $ IF (F$PARSE(EXE_DIR).EQS."") | ||
170 | $ THEN | ||
171 | $! | ||
172 | $! It Dosen't Exist, So Create It. | ||
173 | $! | ||
174 | $ CREATE/DIRECTORY 'EXE_DIR' | ||
175 | $! | ||
176 | $! End The Architecture Specific Directory Check. | ||
177 | $! | ||
178 | $ ENDIF | ||
179 | $! | ||
180 | $! Define The Library Name. | ||
181 | $! | ||
182 | $ LIB_NAME := 'EXE_DIR'SSL_LIBCRYPTO'LIB32'.OLB | ||
183 | $! | ||
184 | $! Define The CRYPTO-LIB We Are To Use. | ||
185 | $! | ||
186 | $ CRYPTO_LIB := 'EXE_DIR'SSL_LIBCRYPTO'LIB32'.OLB | ||
187 | $! | ||
188 | $! Check To See If We Already Have A "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" Library... | ||
189 | $! | ||
190 | $ IF (F$SEARCH(LIB_NAME).EQS."") | ||
191 | $ THEN | ||
192 | $! | ||
193 | $! Guess Not, Create The Library. | ||
194 | $! | ||
195 | $ LIBRARY/CREATE/OBJECT 'LIB_NAME' | ||
196 | $! | ||
197 | $! End The Library Check. | ||
198 | $! | ||
199 | $ ENDIF | ||
200 | $! | ||
201 | $! Build our options file for the application | ||
202 | $! | ||
203 | $ GOSUB CHECK_OPT_FILE | ||
204 | $! | ||
205 | $! Define The Different Encryption "library" Strings. | ||
206 | $! | ||
207 | $ APPS_DES = "DES/DES,CBC3_ENC" | ||
208 | $ APPS_PKCS7 = "ENC/ENC;DEC/DEC;SIGN/SIGN;VERIFY/VERIFY,EXAMPLE" | ||
209 | $ | ||
210 | $ LIB_ = "cryptlib,mem,mem_clr,mem_dbg,cversion,ex_data,cpt_err,"+ - | ||
211 | "ebcdic,uid,o_time,o_str,o_dir,o_fips.c,o_init,fips_ers" | ||
212 | $ LIB_MD2 = "md2_dgst,md2_one" | ||
213 | $ LIB_MD4 = "md4_dgst,md4_one" | ||
214 | $ LIB_MD5 = "md5_dgst,md5_one" | ||
215 | $ LIB_SHA = "sha_dgst,sha1dgst,sha_one,sha1_one,sha256,sha512" | ||
216 | $ LIB_MDC2 = "mdc2dgst,mdc2_one" | ||
217 | $ LIB_HMAC = "hmac,hm_ameth,hm_pmeth" | ||
218 | $ LIB_RIPEMD = "rmd_dgst,rmd_one" | ||
219 | $ LIB_WHRLPOOL = "wp_dgst,wp_block" | ||
220 | $ LIB_DES = "set_key,ecb_enc,cbc_enc,"+ - | ||
221 | "ecb3_enc,cfb64enc,cfb64ede,cfb_enc,ofb64ede,"+ - | ||
222 | "enc_read,enc_writ,ofb64enc,"+ - | ||
223 | "ofb_enc,str2key,pcbc_enc,qud_cksm,rand_key,"+ - | ||
224 | "des_enc,fcrypt_b,"+ - | ||
225 | "fcrypt,xcbc_enc,rpc_enc,cbc_cksm,"+ - | ||
226 | "ede_cbcm_enc,des_old,des_old2,read2pwd" | ||
227 | $ LIB_RC2 = "rc2_ecb,rc2_skey,rc2_cbc,rc2cfb64,rc2ofb64" | ||
228 | $ LIB_RC4 = "rc4_skey,rc4_enc,rc4_utl" | ||
229 | $ LIB_RC5 = "rc5_skey,rc5_ecb,rc5_enc,rc5cfb64,rc5ofb64" | ||
230 | $ LIB_IDEA = "i_cbc,i_cfb64,i_ofb64,i_ecb,i_skey" | ||
231 | $ LIB_BF = "bf_skey,bf_ecb,bf_enc,bf_cfb64,bf_ofb64" | ||
232 | $ LIB_CAST = "c_skey,c_ecb,c_enc,c_cfb64,c_ofb64" | ||
233 | $ LIB_CAMELLIA = "camellia,cmll_misc,cmll_ecb,cmll_cbc,cmll_ofb,"+ - | ||
234 | "cmll_cfb,cmll_ctr,cmll_utl" | ||
235 | $ LIB_SEED = "seed,seed_ecb,seed_cbc,seed_cfb,seed_ofb" | ||
236 | $ LIB_MODES = "cbc128,ctr128,cts128,cfb128,ofb128,gcm128,"+ - | ||
237 | "ccm128,xts128" | ||
238 | $ LIB_BN_ASM = "[.asm]vms.mar,vms-helper" | ||
239 | $ IF F$TRNLNM("OPENSSL_NO_ASM") .OR. ARCH .NES. "VAX" THEN - | ||
240 | LIB_BN_ASM = "bn_asm" | ||
241 | $ LIB_BN = "bn_add,bn_div,bn_exp,bn_lib,bn_ctx,bn_mul,bn_mod,"+ - | ||
242 | "bn_print,bn_rand,bn_shift,bn_word,bn_blind,"+ - | ||
243 | "bn_kron,bn_sqrt,bn_gcd,bn_prime,bn_err,bn_sqr,"+LIB_BN_ASM+","+ - | ||
244 | "bn_recp,bn_mont,bn_mpi,bn_exp2,bn_gf2m,bn_nist,"+ - | ||
245 | "bn_depr,bn_const,bn_x931p" | ||
246 | $ LIB_EC = "ec_lib,ecp_smpl,ecp_mont,ecp_nist,ec_cvt,ec_mult,"+ - | ||
247 | "ec_err,ec_curve,ec_check,ec_print,ec_asn1,ec_key,"+ - | ||
248 | "ec2_smpl,ec2_mult,ec_ameth,ec_pmeth,eck_prn,"+ - | ||
249 | "ecp_nistp224,ecp_nistp256,ecp_nistp521,ecp_nistputil,"+ - | ||
250 | "ecp_oct,ec2_oct,ec_oct" | ||
251 | $ LIB_RSA = "rsa_eay,rsa_gen,rsa_lib,rsa_sign,rsa_saos,rsa_err,"+ - | ||
252 | "rsa_pk1,rsa_ssl,rsa_none,rsa_oaep,rsa_chk,rsa_null,"+ - | ||
253 | "rsa_pss,rsa_x931,rsa_asn1,rsa_depr,rsa_ameth,rsa_prn,"+ - | ||
254 | "rsa_pmeth,rsa_crpt" | ||
255 | $ LIB_DSA = "dsa_gen,dsa_key,dsa_lib,dsa_asn1,dsa_vrf,dsa_sign,"+ - | ||
256 | "dsa_err,dsa_ossl,dsa_depr,dsa_ameth,dsa_pmeth,dsa_prn" | ||
257 | $ LIB_ECDSA = "ecs_lib,ecs_asn1,ecs_ossl,ecs_sign,ecs_vrf,ecs_err" | ||
258 | $ LIB_DH = "dh_asn1,dh_gen,dh_key,dh_lib,dh_check,dh_err,dh_depr,"+ - | ||
259 | "dh_ameth,dh_pmeth,dh_prn" | ||
260 | $ LIB_ECDH = "ech_lib,ech_ossl,ech_key,ech_err" | ||
261 | $ LIB_DSO = "dso_dl,dso_dlfcn,dso_err,dso_lib,dso_null,"+ - | ||
262 | "dso_openssl,dso_win32,dso_vms,dso_beos" | ||
263 | $ LIB_ENGINE = "eng_err,eng_lib,eng_list,eng_init,eng_ctrl,"+ - | ||
264 | "eng_table,eng_pkey,eng_fat,eng_all,"+ - | ||
265 | "tb_rsa,tb_dsa,tb_ecdsa,tb_dh,tb_ecdh,tb_rand,tb_store,"+ - | ||
266 | "tb_cipher,tb_digest,tb_pkmeth,tb_asnmth,"+ - | ||
267 | "eng_openssl,eng_dyn,eng_cnf,eng_cryptodev,"+ - | ||
268 | "eng_rsax,eng_rdrand" | ||
269 | $ LIB_AES = "aes_core,aes_misc,aes_ecb,aes_cbc,aes_cfb,aes_ofb,aes_ctr,"+ - | ||
270 | "aes_ige,aes_wrap" | ||
271 | $ LIB_BUFFER = "buffer,buf_str,buf_err" | ||
272 | $ LIB_BIO = "bio_lib,bio_cb,bio_err,"+ - | ||
273 | "bss_mem,bss_null,bss_fd,"+ - | ||
274 | "bss_file,bss_sock,bss_conn,"+ - | ||
275 | "bf_null,bf_buff,b_print,b_dump,"+ - | ||
276 | "b_sock,bss_acpt,bf_nbio,bss_rtcp,bss_bio,bss_log,"+ - | ||
277 | "bss_dgram,"+ - | ||
278 | "bf_lbuf" | ||
279 | $ LIB_STACK = "stack" | ||
280 | $ LIB_LHASH = "lhash,lh_stats" | ||
281 | $ LIB_RAND = "md_rand,randfile,rand_lib,rand_err,rand_egd,"+ - | ||
282 | "rand_vms" | ||
283 | $ LIB_ERR = "err,err_all,err_prn" | ||
284 | $ LIB_OBJECTS = "o_names,obj_dat,obj_lib,obj_err,obj_xref" | ||
285 | $ LIB_EVP = "encode,digest,evp_enc,evp_key,evp_acnf,"+ - | ||
286 | "e_des,e_bf,e_idea,e_des3,e_camellia,"+ - | ||
287 | "e_rc4,e_aes,names,e_seed,"+ - | ||
288 | "e_xcbc_d,e_rc2,e_cast,e_rc5" | ||
289 | $ LIB_EVP_2 = "m_null,m_md2,m_md4,m_md5,m_sha,m_sha1,m_wp," + - | ||
290 | "m_dss,m_dss1,m_mdc2,m_ripemd,m_ecdsa,"+ - | ||
291 | "p_open,p_seal,p_sign,p_verify,p_lib,p_enc,p_dec,"+ - | ||
292 | "bio_md,bio_b64,bio_enc,evp_err,e_null,"+ - | ||
293 | "c_all,c_allc,c_alld,evp_lib,bio_ok,"+- | ||
294 | "evp_pkey,evp_pbe,p5_crpt,p5_crpt2" | ||
295 | $ LIB_EVP_3 = "e_old,pmeth_lib,pmeth_fn,pmeth_gn,m_sigver,evp_fips,"+ - | ||
296 | "e_aes_cbc_hmac_sha1,e_rc4_hmac_md5" | ||
297 | $ LIB_ASN1 = "a_object,a_bitstr,a_utctm,a_gentm,a_time,a_int,a_octet,"+ - | ||
298 | "a_print,a_type,a_set,a_dup,a_d2i_fp,a_i2d_fp,"+ - | ||
299 | "a_enum,a_utf8,a_sign,a_digest,a_verify,a_mbstr,a_strex,"+ - | ||
300 | "x_algor,x_val,x_pubkey,x_sig,x_req,x_attrib,x_bignum,"+ - | ||
301 | "x_long,x_name,x_x509,x_x509a,x_crl,x_info,x_spki,nsseq,"+ - | ||
302 | "x_nx509,d2i_pu,d2i_pr,i2d_pu,i2d_pr" | ||
303 | $ LIB_ASN1_2 = "t_req,t_x509,t_x509a,t_crl,t_pkey,t_spki,t_bitst,"+ - | ||
304 | "tasn_new,tasn_fre,tasn_enc,tasn_dec,tasn_utl,tasn_typ,"+ - | ||
305 | "tasn_prn,ameth_lib,"+ - | ||
306 | "f_int,f_string,n_pkey,"+ - | ||
307 | "f_enum,x_pkey,a_bool,x_exten,bio_asn1,bio_ndef,asn_mime,"+ - | ||
308 | "asn1_gen,asn1_par,asn1_lib,asn1_err,a_bytes,a_strnid,"+ - | ||
309 | "evp_asn1,asn_pack,p5_pbe,p5_pbev2,p8_pkey,asn_moid" | ||
310 | $ LIB_PEM = "pem_sign,pem_seal,pem_info,pem_lib,pem_all,pem_err,"+ - | ||
311 | "pem_x509,pem_xaux,pem_oth,pem_pk8,pem_pkey,pvkfmt" | ||
312 | $ LIB_X509 = "x509_def,x509_d2,x509_r2x,x509_cmp,"+ - | ||
313 | "x509_obj,x509_req,x509spki,x509_vfy,"+ - | ||
314 | "x509_set,x509cset,x509rset,x509_err,"+ - | ||
315 | "x509name,x509_v3,x509_ext,x509_att,"+ - | ||
316 | "x509type,x509_lu,x_all,x509_txt,"+ - | ||
317 | "x509_trs,by_file,by_dir,x509_vpm" | ||
318 | $ LIB_X509V3 = "v3_bcons,v3_bitst,v3_conf,v3_extku,v3_ia5,v3_lib,"+ - | ||
319 | "v3_prn,v3_utl,v3err,v3_genn,v3_alt,v3_skey,v3_akey,v3_pku,"+ - | ||
320 | "v3_int,v3_enum,v3_sxnet,v3_cpols,v3_crld,v3_purp,v3_info,"+ - | ||
321 | "v3_ocsp,v3_akeya,v3_pmaps,v3_pcons,v3_ncons,v3_pcia,v3_pci,"+ - | ||
322 | "pcy_cache,pcy_node,pcy_data,pcy_map,pcy_tree,pcy_lib,"+ - | ||
323 | "v3_asid,v3_addr" | ||
324 | $ LIB_CONF = "conf_err,conf_lib,conf_api,conf_def,conf_mod,conf_mall,conf_sap" | ||
325 | $ LIB_TXT_DB = "txt_db" | ||
326 | $ LIB_PKCS7 = "pk7_asn1,pk7_lib,pkcs7err,pk7_doit,pk7_smime,pk7_attr,"+ - | ||
327 | "pk7_mime,bio_pk7" | ||
328 | $ LIB_PKCS12 = "p12_add,p12_asn,p12_attr,p12_crpt,p12_crt,p12_decr,"+ - | ||
329 | "p12_init,p12_key,p12_kiss,p12_mutl,"+ - | ||
330 | "p12_utl,p12_npas,pk12err,p12_p8d,p12_p8e" | ||
331 | $ LIB_COMP = "comp_lib,comp_err,"+ - | ||
332 | "c_rle,c_zlib" | ||
333 | $ LIB_OCSP = "ocsp_asn,ocsp_ext,ocsp_ht,ocsp_lib,ocsp_cl,"+ - | ||
334 | "ocsp_srv,ocsp_prn,ocsp_vfy,ocsp_err" | ||
335 | $ LIB_UI_COMPAT = ",ui_compat" | ||
336 | $ LIB_UI = "ui_err,ui_lib,ui_openssl,ui_util"+LIB_UI_COMPAT | ||
337 | $ LIB_KRB5 = "krb5_asn" | ||
338 | $ LIB_CMS = "cms_lib,cms_asn1,cms_att,cms_io,cms_smime,cms_err,"+ - | ||
339 | "cms_sd,cms_dd,cms_cd,cms_env,cms_enc,cms_ess,"+ - | ||
340 | "cms_pwri" | ||
341 | $ LIB_PQUEUE = "pqueue" | ||
342 | $ LIB_TS = "ts_err,ts_req_utils,ts_req_print,ts_rsp_utils,ts_rsp_print,"+ - | ||
343 | "ts_rsp_sign,ts_rsp_verify,ts_verify_ctx,ts_lib,ts_conf,"+ - | ||
344 | "ts_asn1" | ||
345 | $ LIB_JPAKE = "jpake,jpake_err" | ||
346 | $ LIB_SRP = "srp_lib,srp_vfy" | ||
347 | $ LIB_STORE = "str_err,str_lib,str_meth,str_mem" | ||
348 | $ LIB_CMAC = "cmac,cm_ameth.c,cm_pmeth" | ||
349 | $! | ||
350 | $! Setup exceptional compilations | ||
351 | $! | ||
352 | $ CC3_SHOWN = 0 | ||
353 | $ CC4_SHOWN = 0 | ||
354 | $ CC5_SHOWN = 0 | ||
355 | $ CC6_SHOWN = 0 | ||
356 | $! | ||
357 | $! The following lists must have leading and trailing commas, and no | ||
358 | $! embedded spaces. (They are scanned for ",name,".) | ||
359 | $! | ||
360 | $ ! Add definitions for no threads on OpenVMS 7.1 and higher. | ||
361 | $ COMPILEWITH_CC3 = ",bss_rtcp," | ||
362 | $ ! Disable the DOLLARID warning. Not needed with /STANDARD=RELAXED. | ||
363 | $ COMPILEWITH_CC4 = "" !!! ",a_utctm,bss_log,o_time,o_dir," | ||
364 | $ ! Disable disjoint optimization on VAX with DECC. | ||
365 | $ COMPILEWITH_CC5 = ",md2_dgst,md4_dgst,md5_dgst,mdc2dgst," + - | ||
366 | "seed,sha_dgst,sha1dgst,rmd_dgst,bf_enc," | ||
367 | $ ! Disable the MIXLINKAGE warning. | ||
368 | $ COMPILEWITH_CC6 = "" !!! ",enc_read,set_key," | ||
369 | $! | ||
370 | $! Figure Out What Other Modules We Are To Build. | ||
371 | $! | ||
372 | $ BUILD_SET: | ||
373 | $! | ||
374 | $! Define A Module Counter. | ||
375 | $! | ||
376 | $ MODULE_COUNTER = 0 | ||
377 | $! | ||
378 | $! Top Of The Loop. | ||
379 | $! | ||
380 | $ MODULE_NEXT: | ||
381 | $! | ||
382 | $! Extract The Module Name From The Encryption List. | ||
383 | $! | ||
384 | $ MODULE_NAME = F$ELEMENT(MODULE_COUNTER,",",ENCRYPT_TYPES) | ||
385 | $ IF MODULE_NAME.EQS."Basic" THEN MODULE_NAME = "" | ||
386 | $ MODULE_NAME1 = MODULE_NAME | ||
387 | $! | ||
388 | $! Check To See If We Are At The End Of The Module List. | ||
389 | $! | ||
390 | $ IF (MODULE_NAME.EQS.",") | ||
391 | $ THEN | ||
392 | $! | ||
393 | $! We Are At The End Of The Module List, Go To MODULE_DONE. | ||
394 | $! | ||
395 | $ GOTO MODULE_DONE | ||
396 | $! | ||
397 | $! End The Module List Check. | ||
398 | $! | ||
399 | $ ENDIF | ||
400 | $! | ||
401 | $! Increment The Moudle Counter. | ||
402 | $! | ||
403 | $ MODULE_COUNTER = MODULE_COUNTER + 1 | ||
404 | $! | ||
405 | $! Create The Library and Apps Module Names. | ||
406 | $! | ||
407 | $ LIB_MODULE = "LIB_" + MODULE_NAME | ||
408 | $ APPS_MODULE = "APPS_" + MODULE_NAME | ||
409 | $ IF (F$EXTRACT(0,5,MODULE_NAME).EQS."ASN1_") | ||
410 | $ THEN | ||
411 | $ MODULE_NAME = "ASN1" | ||
412 | $ ENDIF | ||
413 | $ IF (F$EXTRACT(0,4,MODULE_NAME).EQS."EVP_") | ||
414 | $ THEN | ||
415 | $ MODULE_NAME = "EVP" | ||
416 | $ ENDIF | ||
417 | $! | ||
418 | $! Set state (can be LIB and APPS) | ||
419 | $! | ||
420 | $ STATE = "LIB" | ||
421 | $ IF BUILDALL .EQS. "APPS" THEN STATE = "APPS" | ||
422 | $! | ||
423 | $! Check if the library module name actually is defined | ||
424 | $! | ||
425 | $ IF F$TYPE('LIB_MODULE') .EQS. "" | ||
426 | $ THEN | ||
427 | $ WRITE SYS$ERROR "" | ||
428 | $ WRITE SYS$ERROR "The module ",MODULE_NAME1," does not exist. Continuing..." | ||
429 | $ WRITE SYS$ERROR "" | ||
430 | $ GOTO MODULE_NEXT | ||
431 | $ ENDIF | ||
432 | $! | ||
433 | $! Top Of The Module Loop. | ||
434 | $! | ||
435 | $ MODULE_AGAIN: | ||
436 | $! | ||
437 | $! Tell The User What Module We Are Building. | ||
438 | $! | ||
439 | $ IF (MODULE_NAME1.NES."") | ||
440 | $ THEN | ||
441 | $ IF STATE .EQS. "LIB" | ||
442 | $ THEN | ||
443 | $ WRITE SYS$OUTPUT "Compiling The ",MODULE_NAME1," Library Files. (",BUILDALL,",",STATE,")" | ||
444 | $ ELSE IF F$TYPE('APPS_MODULE') .NES. "" | ||
445 | $ THEN | ||
446 | $ WRITE SYS$OUTPUT "Compiling The ",MODULE_NAME1," Applications. (",BUILDALL,",",STATE,")" | ||
447 | $ ENDIF | ||
448 | $ ENDIF | ||
449 | $ ENDIF | ||
450 | $! | ||
451 | $! Define A File Counter And Set It To "0". | ||
452 | $! | ||
453 | $ FILE_COUNTER = 0 | ||
454 | $ APPLICATION = "" | ||
455 | $ APPLICATION_COUNTER = 0 | ||
456 | $! | ||
457 | $! Top Of The File Loop. | ||
458 | $! | ||
459 | $ NEXT_FILE: | ||
460 | $! | ||
461 | $! Look in the LIB_MODULE is we're in state LIB | ||
462 | $! | ||
463 | $ IF STATE .EQS. "LIB" | ||
464 | $ THEN | ||
465 | $! | ||
466 | $! O.K, Extract The File Name From The File List. | ||
467 | $! | ||
468 | $ FILE_NAME = F$ELEMENT(FILE_COUNTER,",",'LIB_MODULE') | ||
469 | $! | ||
470 | $! else | ||
471 | $! | ||
472 | $ ELSE | ||
473 | $ FILE_NAME = "," | ||
474 | $! | ||
475 | $ IF F$TYPE('APPS_MODULE') .NES. "" | ||
476 | $ THEN | ||
477 | $! | ||
478 | $! Extract The File Name From The File List. | ||
479 | $! This part is a bit more complicated. | ||
480 | $! | ||
481 | $ IF APPLICATION .EQS. "" | ||
482 | $ THEN | ||
483 | $ APPLICATION = F$ELEMENT(APPLICATION_COUNTER,";",'APPS_MODULE') | ||
484 | $ APPLICATION_COUNTER = APPLICATION_COUNTER + 1 | ||
485 | $ APPLICATION_OBJECTS = F$ELEMENT(1,"/",APPLICATION) | ||
486 | $ APPLICATION = F$ELEMENT(0,"/",APPLICATION) | ||
487 | $ FILE_COUNTER = 0 | ||
488 | $ ENDIF | ||
489 | $ | ||
490 | $! WRITE SYS$OUTPUT "DEBUG: SHOW SYMBOL APPLICATION*" | ||
491 | $! SHOW SYMBOL APPLICATION* | ||
492 | $! | ||
493 | $ IF APPLICATION .NES. ";" | ||
494 | $ THEN | ||
495 | $ FILE_NAME = F$ELEMENT(FILE_COUNTER,",",APPLICATION_OBJECTS) | ||
496 | $ IF FILE_NAME .EQS. "," | ||
497 | $ THEN | ||
498 | $ APPLICATION = "" | ||
499 | $ GOTO NEXT_FILE | ||
500 | $ ENDIF | ||
501 | $ ENDIF | ||
502 | $ ENDIF | ||
503 | $ ENDIF | ||
504 | $! | ||
505 | $! Check To See If We Are At The End Of The File List. | ||
506 | $! | ||
507 | $ IF (FILE_NAME.EQS.",") | ||
508 | $ THEN | ||
509 | $! | ||
510 | $! We Are At The End Of The File List, Change State Or Goto FILE_DONE. | ||
511 | $! | ||
512 | $ IF STATE .EQS. "LIB" .AND. BUILDALL .NES. "LIBRARY" | ||
513 | $ THEN | ||
514 | $ STATE = "APPS" | ||
515 | $ GOTO MODULE_AGAIN | ||
516 | $ ELSE | ||
517 | $ GOTO FILE_DONE | ||
518 | $ ENDIF | ||
519 | $! | ||
520 | $! End The File List Check. | ||
521 | $! | ||
522 | $ ENDIF | ||
523 | $! | ||
524 | $! Increment The Counter. | ||
525 | $! | ||
526 | $ FILE_COUNTER = FILE_COUNTER + 1 | ||
527 | $! | ||
528 | $! Create The Source File Name. | ||
529 | $! | ||
530 | $ TMP_FILE_NAME = F$ELEMENT(1,"]",FILE_NAME) | ||
531 | $ IF TMP_FILE_NAME .EQS. "]" THEN TMP_FILE_NAME = FILE_NAME | ||
532 | $ IF F$ELEMENT(0,".",TMP_FILE_NAME) .EQS. TMP_FILE_NAME THEN - | ||
533 | FILE_NAME = FILE_NAME + ".c" | ||
534 | $ IF (MODULE_NAME.NES."") | ||
535 | $ THEN | ||
536 | $ SOURCE_FILE = "SYS$DISK:[." + MODULE_NAME+ "]" + FILE_NAME | ||
537 | $ ELSE | ||
538 | $ SOURCE_FILE = "SYS$DISK:[]" + FILE_NAME | ||
539 | $ ENDIF | ||
540 | $ SOURCE_FILE = SOURCE_FILE - "][" | ||
541 | $! | ||
542 | $! Create The Object File Name. | ||
543 | $! | ||
544 | $ OBJECT_FILE = OBJ_DIR + F$PARSE(FILE_NAME,,,"NAME","SYNTAX_ONLY") + ".OBJ" | ||
545 | $ ON WARNING THEN GOTO NEXT_FILE | ||
546 | $! | ||
547 | $! Check To See If The File We Want To Compile Is Actually There. | ||
548 | $! | ||
549 | $ IF (F$SEARCH(SOURCE_FILE).EQS."") | ||
550 | $ THEN | ||
551 | $! | ||
552 | $! Tell The User That The File Doesn't Exist. | ||
553 | $! | ||
554 | $ WRITE SYS$OUTPUT "" | ||
555 | $ WRITE SYS$OUTPUT "The File ",SOURCE_FILE," Doesn't Exist." | ||
556 | $ WRITE SYS$OUTPUT "" | ||
557 | $! | ||
558 | $! Exit The Build. | ||
559 | $! | ||
560 | $ GOTO EXIT | ||
561 | $! | ||
562 | $! End The File Exist Check. | ||
563 | $! | ||
564 | $ ENDIF | ||
565 | $! | ||
566 | $! Tell The User We Are Compiling The File. | ||
567 | $! | ||
568 | $ IF (MODULE_NAME.EQS."") | ||
569 | $ THEN | ||
570 | $ WRITE SYS$OUTPUT "Compiling The ",FILE_NAME," File. (",BUILDALL,",",STATE,")" | ||
571 | $ ENDIF | ||
572 | $ IF (MODULE_NAME.NES."") | ||
573 | $ THEN | ||
574 | $ WRITE SYS$OUTPUT " ",FILE_NAME,"" | ||
575 | $ ENDIF | ||
576 | $! | ||
577 | $! Compile The File. | ||
578 | $! | ||
579 | $ ON ERROR THEN GOTO NEXT_FILE | ||
580 | $ FILE_NAME0 = ","+ F$ELEMENT(0,".",FILE_NAME)+ "," | ||
581 | $ IF FILE_NAME - ".mar" .NES. FILE_NAME | ||
582 | $ THEN | ||
583 | $ MACRO/OBJECT='OBJECT_FILE' 'SOURCE_FILE' | ||
584 | $ ELSE | ||
585 | $ IF COMPILEWITH_CC3 - FILE_NAME0 .NES. COMPILEWITH_CC3 | ||
586 | $ THEN | ||
587 | $ write sys$output " \Using special rule (3)" | ||
588 | $ if (.not. CC3_SHOWN) | ||
589 | $ then | ||
590 | $ CC3_SHOWN = 1 | ||
591 | $ x = " "+ CC3 | ||
592 | $ write /symbol sys$output x | ||
593 | $ endif | ||
594 | $ CC3/OBJECT='OBJECT_FILE' 'SOURCE_FILE' | ||
595 | $ ELSE | ||
596 | $ IF COMPILEWITH_CC4 - FILE_NAME0 .NES. COMPILEWITH_CC4 | ||
597 | $ THEN | ||
598 | $ write /symbol sys$output " \Using special rule (4)" | ||
599 | $ if (.not. CC4_SHOWN) | ||
600 | $ then | ||
601 | $ CC4_SHOWN = 1 | ||
602 | $ x = " "+ CC4 | ||
603 | $ write /symbol sys$output x | ||
604 | $ endif | ||
605 | $ CC4/OBJECT='OBJECT_FILE' 'SOURCE_FILE' | ||
606 | $ ELSE | ||
607 | $ IF CC5_DIFFERENT .AND. - | ||
608 | (COMPILEWITH_CC5 - FILE_NAME0 .NES. COMPILEWITH_CC5) | ||
609 | $ THEN | ||
610 | $ write sys$output " \Using special rule (5)" | ||
611 | $ if (.not. CC5_SHOWN) | ||
612 | $ then | ||
613 | $ CC5_SHOWN = 1 | ||
614 | $ x = " "+ CC5 | ||
615 | $ write /symbol sys$output x | ||
616 | $ endif | ||
617 | $ CC5/OBJECT='OBJECT_FILE' 'SOURCE_FILE' | ||
618 | $ ELSE | ||
619 | $ IF COMPILEWITH_CC6 - FILE_NAME0 .NES. COMPILEWITH_CC6 | ||
620 | $ THEN | ||
621 | $ write sys$output " \Using special rule (6)" | ||
622 | $ if (.not. CC6_SHOWN) | ||
623 | $ then | ||
624 | $ CC6_SHOWN = 1 | ||
625 | $ x = " "+ CC6 | ||
626 | $ write /symbol sys$output x | ||
627 | $ endif | ||
628 | $ CC6/OBJECT='OBJECT_FILE' 'SOURCE_FILE' | ||
629 | $ ELSE | ||
630 | $ CC/OBJECT='OBJECT_FILE' 'SOURCE_FILE' | ||
631 | $ ENDIF | ||
632 | $ ENDIF | ||
633 | $ ENDIF | ||
634 | $ ENDIF | ||
635 | $ ENDIF | ||
636 | $ IF STATE .EQS. "LIB" | ||
637 | $ THEN | ||
638 | $! | ||
639 | $! Add It To The Library. | ||
640 | $! | ||
641 | $ LIBRARY/REPLACE 'LIB_NAME' 'OBJECT_FILE' | ||
642 | $! | ||
643 | $! Time To Clean Up The Object File. | ||
644 | $! | ||
645 | $ DELETE 'OBJECT_FILE';* | ||
646 | $ ENDIF | ||
647 | $! | ||
648 | $! Go Back And Do It Again. | ||
649 | $! | ||
650 | $ GOTO NEXT_FILE | ||
651 | $! | ||
652 | $! All Done With This Library Part. | ||
653 | $! | ||
654 | $ FILE_DONE: | ||
655 | $! | ||
656 | $! Time To Build Some Applications | ||
657 | $! | ||
658 | $ IF F$TYPE('APPS_MODULE') .NES. "" .AND. BUILDALL .NES. "LIBRARY" | ||
659 | $ THEN | ||
660 | $ APPLICATION_COUNTER = 0 | ||
661 | $ NEXT_APPLICATION: | ||
662 | $ APPLICATION = F$ELEMENT(APPLICATION_COUNTER,";",'APPS_MODULE') | ||
663 | $ IF APPLICATION .EQS. ";" THEN GOTO APPLICATION_DONE | ||
664 | $ | ||
665 | $ APPLICATION_COUNTER = APPLICATION_COUNTER + 1 | ||
666 | $ APPLICATION_OBJECTS = F$ELEMENT(1,"/",APPLICATION) | ||
667 | $ APPLICATION = F$ELEMENT(0,"/",APPLICATION) | ||
668 | $ | ||
669 | $! WRITE SYS$OUTPUT "DEBUG: SHOW SYMBOL APPLICATION*" | ||
670 | $! SHOW SYMBOL APPLICATION* | ||
671 | $! | ||
672 | $! Tell the user what happens | ||
673 | $! | ||
674 | $ WRITE SYS$OUTPUT " ",APPLICATION,".exe" | ||
675 | $! | ||
676 | $! Link The Program. | ||
677 | $! | ||
678 | $ ON ERROR THEN GOTO NEXT_APPLICATION | ||
679 | $! | ||
680 | $! Link With A TCP/IP Library. | ||
681 | $! | ||
682 | $ LINK /'DEBUGGER' /'LINKMAP' /'TRACEBACK' - | ||
683 | /EXE='EXE_DIR''APPLICATION'.EXE - | ||
684 | 'OBJ_DIR''APPLICATION_OBJECTS', - | ||
685 | 'CRYPTO_LIB'/LIBRARY - | ||
686 | 'TCPIP_LIB' - | ||
687 | 'ZLIB_LIB' - | ||
688 | ,'OPT_FILE' /OPTIONS | ||
689 | $! | ||
690 | $ GOTO NEXT_APPLICATION | ||
691 | $ APPLICATION_DONE: | ||
692 | $ ENDIF | ||
693 | $! | ||
694 | $! Go Back And Get The Next Module. | ||
695 | $! | ||
696 | $ GOTO MODULE_NEXT | ||
697 | $! | ||
698 | $! All Done With This Module. | ||
699 | $! | ||
700 | $ MODULE_DONE: | ||
701 | $! | ||
702 | $! Tell The User That We Are All Done. | ||
703 | $! | ||
704 | $ WRITE SYS$OUTPUT "All Done..." | ||
705 | $ EXIT: | ||
706 | $ GOSUB CLEANUP | ||
707 | $ EXIT | ||
708 | $! | ||
709 | $! Check For The Link Option FIle. | ||
710 | $! | ||
711 | $ CHECK_OPT_FILE: | ||
712 | $! | ||
713 | $! Check To See If We Need To Make A VAX C Option File. | ||
714 | $! | ||
715 | $ IF (COMPILER.EQS."VAXC") | ||
716 | $ THEN | ||
717 | $! | ||
718 | $! Check To See If We Already Have A VAX C Linker Option File. | ||
719 | $! | ||
720 | $ IF (F$SEARCH(OPT_FILE).EQS."") | ||
721 | $ THEN | ||
722 | $! | ||
723 | $! We Need A VAX C Linker Option File. | ||
724 | $! | ||
725 | $ CREATE 'OPT_FILE' | ||
726 | $DECK | ||
727 | ! | ||
728 | ! Default System Options File To Link Against | ||
729 | ! The Sharable VAX C Runtime Library. | ||
730 | ! | ||
731 | SYS$SHARE:VAXCRTL.EXE/SHARE | ||
732 | $EOD | ||
733 | $! | ||
734 | $! End The Option File Check. | ||
735 | $! | ||
736 | $ ENDIF | ||
737 | $! | ||
738 | $! End The VAXC Check. | ||
739 | $! | ||
740 | $ ENDIF | ||
741 | $! | ||
742 | $! Check To See If We Need A GNU C Option File. | ||
743 | $! | ||
744 | $ IF (COMPILER.EQS."GNUC") | ||
745 | $ THEN | ||
746 | $! | ||
747 | $! Check To See If We Already Have A GNU C Linker Option File. | ||
748 | $! | ||
749 | $ IF (F$SEARCH(OPT_FILE).EQS."") | ||
750 | $ THEN | ||
751 | $! | ||
752 | $! We Need A GNU C Linker Option File. | ||
753 | $! | ||
754 | $ CREATE 'OPT_FILE' | ||
755 | $DECK | ||
756 | ! | ||
757 | ! Default System Options File To Link Against | ||
758 | ! The Sharable C Runtime Library. | ||
759 | ! | ||
760 | GNU_CC:[000000]GCCLIB/LIBRARY | ||
761 | SYS$SHARE:VAXCRTL/SHARE | ||
762 | $EOD | ||
763 | $! | ||
764 | $! End The Option File Check. | ||
765 | $! | ||
766 | $ ENDIF | ||
767 | $! | ||
768 | $! End The GNU C Check. | ||
769 | $! | ||
770 | $ ENDIF | ||
771 | $! | ||
772 | $! Check To See If We Need A DEC C Option File. | ||
773 | $! | ||
774 | $ IF (COMPILER.EQS."DECC") | ||
775 | $ THEN | ||
776 | $! | ||
777 | $! Check To See If We Already Have A DEC C Linker Option File. | ||
778 | $! | ||
779 | $ IF (F$SEARCH(OPT_FILE).EQS."") | ||
780 | $ THEN | ||
781 | $! | ||
782 | $! Figure Out If We Need A non-VAX Or A VAX Linker Option File. | ||
783 | $! | ||
784 | $ IF ARCH .EQS. "VAX" | ||
785 | $ THEN | ||
786 | $! | ||
787 | $! We Need A DEC C Linker Option File For VAX. | ||
788 | $! | ||
789 | $ CREATE 'OPT_FILE' | ||
790 | $DECK | ||
791 | ! | ||
792 | ! Default System Options File To Link Against | ||
793 | ! The Sharable DEC C Runtime Library. | ||
794 | ! | ||
795 | SYS$SHARE:DECC$SHR.EXE/SHARE | ||
796 | $EOD | ||
797 | $! | ||
798 | $! Else... | ||
799 | $! | ||
800 | $ ELSE | ||
801 | $! | ||
802 | $! Create The non-VAX Linker Option File. | ||
803 | $! | ||
804 | $ CREATE 'OPT_FILE' | ||
805 | $DECK | ||
806 | ! | ||
807 | ! Default System Options File For non-VAX To Link Against | ||
808 | ! The Sharable C Runtime Library. | ||
809 | ! | ||
810 | SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE | ||
811 | SYS$SHARE:CMA$OPEN_RTL/SHARE | ||
812 | $EOD | ||
813 | $! | ||
814 | $! End The DEC C Option File Check. | ||
815 | $! | ||
816 | $ ENDIF | ||
817 | $! | ||
818 | $! End The Option File Search. | ||
819 | $! | ||
820 | $ ENDIF | ||
821 | $! | ||
822 | $! End The DEC C Check. | ||
823 | $! | ||
824 | $ ENDIF | ||
825 | $! | ||
826 | $! Tell The User What Linker Option File We Are Using. | ||
827 | $! | ||
828 | $ WRITE SYS$OUTPUT "Using Linker Option File ",OPT_FILE,"." | ||
829 | $! | ||
830 | $! Time To RETURN. | ||
831 | $! | ||
832 | $ RETURN | ||
833 | $! | ||
834 | $! Check The User's Options. | ||
835 | $! | ||
836 | $ CHECK_OPTIONS: | ||
837 | $! | ||
838 | $! Check To See If P1 Is Blank. | ||
839 | $! | ||
840 | $ IF (P1.EQS."ALL") | ||
841 | $ THEN | ||
842 | $! | ||
843 | $! P1 Is Blank, So Build Everything. | ||
844 | $! | ||
845 | $ BUILDALL = "TRUE" | ||
846 | $! | ||
847 | $! Else... | ||
848 | $! | ||
849 | $ ELSE | ||
850 | $! | ||
851 | $! Else, Check To See If P1 Has A Valid Argument. | ||
852 | $! | ||
853 | $ IF (P1.EQS."LIBRARY").OR.(P1.EQS."APPS") | ||
854 | $ THEN | ||
855 | $! | ||
856 | $! A Valid Argument. | ||
857 | $! | ||
858 | $ BUILDALL = P1 | ||
859 | $! | ||
860 | $! Else... | ||
861 | $! | ||
862 | $ ELSE | ||
863 | $! | ||
864 | $! Tell The User We Don't Know What They Want. | ||
865 | $! | ||
866 | $ WRITE SYS$OUTPUT "" | ||
867 | $ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:" | ||
868 | $ WRITE SYS$OUTPUT "" | ||
869 | $ WRITE SYS$OUTPUT " ALL : Just Build Everything." | ||
870 | $ WRITE SYS$OUTPUT " LIBRARY : To Compile Just The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library." | ||
871 | $ WRITE SYS$OUTPUT " APPS : To Compile Just The [.xxx.EXE.CRYPTO]*.EXE Programs." | ||
872 | $ WRITE SYS$OUTPUT "" | ||
873 | $ WRITE SYS$OUTPUT " Where 'xxx' Stands For:" | ||
874 | $ WRITE SYS$OUTPUT "" | ||
875 | $ WRITE SYS$OUTPUT " ALPHA[64]: Alpha Architecture." | ||
876 | $ WRITE SYS$OUTPUT " IA64[64] : IA64 Architecture." | ||
877 | $ WRITE SYS$OUTPUT " VAX : VAX Architecture." | ||
878 | $ WRITE SYS$OUTPUT "" | ||
879 | $! | ||
880 | $! Time To EXIT. | ||
881 | $! | ||
882 | $ EXIT | ||
883 | $! | ||
884 | $! End The Valid Argument Check. | ||
885 | $! | ||
886 | $ ENDIF | ||
887 | $! | ||
888 | $! End The P1 Check. | ||
889 | $! | ||
890 | $ ENDIF | ||
891 | $! | ||
892 | $! Check To See If P2 Is Blank. | ||
893 | $! | ||
894 | $ IF (P2.EQS."NODEBUG") | ||
895 | $ THEN | ||
896 | $! | ||
897 | $! P2 Is NODEBUG, So Compile Without The Debugger Information. | ||
898 | $! | ||
899 | $ DEBUGGER = "NODEBUG" | ||
900 | $ LINKMAP = "NOMAP" | ||
901 | $ TRACEBACK = "NOTRACEBACK" | ||
902 | $ GCC_OPTIMIZE = "OPTIMIZE" | ||
903 | $ CC_OPTIMIZE = "OPTIMIZE" | ||
904 | $ MACRO_OPTIMIZE = "OPTIMIZE" | ||
905 | $ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile." | ||
906 | $ WRITE SYS$OUTPUT "Compiling With Compiler Optimization." | ||
907 | $ ELSE | ||
908 | $! | ||
909 | $! Check To See If We Are To Compile With Debugger Information. | ||
910 | $! | ||
911 | $ IF (P2.EQS."DEBUG") | ||
912 | $ THEN | ||
913 | $! | ||
914 | $! Compile With Debugger Information. | ||
915 | $! | ||
916 | $ DEBUGGER = "DEBUG" | ||
917 | $ LINKMAP = "MAP" | ||
918 | $ TRACEBACK = "TRACEBACK" | ||
919 | $ GCC_OPTIMIZE = "NOOPTIMIZE" | ||
920 | $ CC_OPTIMIZE = "NOOPTIMIZE" | ||
921 | $ MACRO_OPTIMIZE = "NOOPTIMIZE" | ||
922 | $ WRITE SYS$OUTPUT "Debugger Information Will Be Produced During Compile." | ||
923 | $ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization." | ||
924 | $ ELSE | ||
925 | $! | ||
926 | $! They Entered An Invalid Option. | ||
927 | $! | ||
928 | $ WRITE SYS$OUTPUT "" | ||
929 | $ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:" | ||
930 | $ WRITE SYS$OUTPUT "" | ||
931 | $ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information." | ||
932 | $ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information." | ||
933 | $ WRITE SYS$OUTPUT "" | ||
934 | $! | ||
935 | $! Time To EXIT. | ||
936 | $! | ||
937 | $ EXIT | ||
938 | $! | ||
939 | $! End The Valid Argument Check. | ||
940 | $! | ||
941 | $ ENDIF | ||
942 | $! | ||
943 | $! End The P2 Check. | ||
944 | $! | ||
945 | $ ENDIF | ||
946 | $! | ||
947 | $! Special Threads For OpenVMS v7.1 Or Later | ||
948 | $! | ||
949 | $! Written By: Richard Levitte | ||
950 | $! richard@levitte.org | ||
951 | $! | ||
952 | $! | ||
953 | $! Check To See If We Have A Option For P5. | ||
954 | $! | ||
955 | $ IF (P5.EQS."") | ||
956 | $ THEN | ||
957 | $! | ||
958 | $! Get The Version Of VMS We Are Using. | ||
959 | $! | ||
960 | $ ISSEVEN := | ||
961 | $ TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION"))) | ||
962 | $ TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP)) | ||
963 | $! | ||
964 | $! Check To See If The VMS Version Is v7.1 Or Later. | ||
965 | $! | ||
966 | $ IF (TMP.GE.71) | ||
967 | $ THEN | ||
968 | $! | ||
969 | $! We Have OpenVMS v7.1 Or Later, So Use The Special Threads. | ||
970 | $! | ||
971 | $ ISSEVEN := ,PTHREAD_USE_D4 | ||
972 | $! | ||
973 | $! End The VMS Version Check. | ||
974 | $! | ||
975 | $ ENDIF | ||
976 | $! | ||
977 | $! End The P5 Check. | ||
978 | $! | ||
979 | $ ENDIF | ||
980 | $! | ||
981 | $! Check P7 (POINTER_SIZE). | ||
982 | $! | ||
983 | $ IF (P7 .NES. "") .AND. (ARCH .NES. "VAX") | ||
984 | $ THEN | ||
985 | $! | ||
986 | $ IF (P7 .EQS. "32") | ||
987 | $ THEN | ||
988 | $ POINTER_SIZE = " /POINTER_SIZE=32" | ||
989 | $ ELSE | ||
990 | $ POINTER_SIZE = F$EDIT( P7, "COLLAPSE, UPCASE") | ||
991 | $ IF ((POINTER_SIZE .EQS. "64") .OR. - | ||
992 | (POINTER_SIZE .EQS. "64=") .OR. - | ||
993 | (POINTER_SIZE .EQS. "64=ARGV")) | ||
994 | $ THEN | ||
995 | $ ARCHD = ARCH+ "_64" | ||
996 | $ LIB32 = "" | ||
997 | $ POINTER_SIZE = " /POINTER_SIZE=64" | ||
998 | $ ELSE | ||
999 | $! | ||
1000 | $! Tell The User Entered An Invalid Option. | ||
1001 | $! | ||
1002 | $ WRITE SYS$OUTPUT "" | ||
1003 | $ WRITE SYS$OUTPUT "The Option ", P7, - | ||
1004 | " Is Invalid. The Valid Options Are:" | ||
1005 | $ WRITE SYS$OUTPUT "" | ||
1006 | $ WRITE SYS$OUTPUT - | ||
1007 | " """" : Compile with default (short) pointers." | ||
1008 | $ WRITE SYS$OUTPUT - | ||
1009 | " 32 : Compile with 32-bit (short) pointers." | ||
1010 | $ WRITE SYS$OUTPUT - | ||
1011 | " 64 : Compile with 64-bit (long) pointers (auto ARGV)." | ||
1012 | $ WRITE SYS$OUTPUT - | ||
1013 | " 64= : Compile with 64-bit (long) pointers (no ARGV)." | ||
1014 | $ WRITE SYS$OUTPUT - | ||
1015 | " 64=ARGV : Compile with 64-bit (long) pointers (ARGV)." | ||
1016 | $ WRITE SYS$OUTPUT "" | ||
1017 | $! | ||
1018 | $! Time To EXIT. | ||
1019 | $! | ||
1020 | $ EXIT | ||
1021 | $! | ||
1022 | $ ENDIF | ||
1023 | $! | ||
1024 | $ ENDIF | ||
1025 | $! | ||
1026 | $! End The P7 (POINTER_SIZE) Check. | ||
1027 | $! | ||
1028 | $ ENDIF | ||
1029 | $! | ||
1030 | $! Set basic C compiler /INCLUDE directories. | ||
1031 | $! | ||
1032 | $ CC_INCLUDES = "SYS$DISK:[.''ARCHD'],SYS$DISK:[],SYS$DISK:[-],"+ - | ||
1033 | "SYS$DISK:[.ENGINE.VENDOR_DEFNS],SYS$DISK:[.MODES],SYS$DISK:[.ASN1],SYS$DISK:[.EVP]" | ||
1034 | $! | ||
1035 | $! Check To See If P3 Is Blank. | ||
1036 | $! | ||
1037 | $ IF (P3.EQS."") | ||
1038 | $ THEN | ||
1039 | $! | ||
1040 | $! O.K., The User Didn't Specify A Compiler, Let's Try To | ||
1041 | $! Find Out Which One To Use. | ||
1042 | $! | ||
1043 | $! Check To See If We Have GNU C. | ||
1044 | $! | ||
1045 | $ IF (F$TRNLNM("GNU_CC").NES."") | ||
1046 | $ THEN | ||
1047 | $! | ||
1048 | $! Looks Like GNUC, Set To Use GNUC. | ||
1049 | $! | ||
1050 | $ P3 = "GNUC" | ||
1051 | $! | ||
1052 | $! Else... | ||
1053 | $! | ||
1054 | $ ELSE | ||
1055 | $! | ||
1056 | $! Check To See If We Have VAXC Or DECC. | ||
1057 | $! | ||
1058 | $ IF (ARCH.NES."VAX").OR.(F$TRNLNM("DECC$CC_DEFAULT").NES."") | ||
1059 | $ THEN | ||
1060 | $! | ||
1061 | $! Looks Like DECC, Set To Use DECC. | ||
1062 | $! | ||
1063 | $ P3 = "DECC" | ||
1064 | $! | ||
1065 | $! Else... | ||
1066 | $! | ||
1067 | $ ELSE | ||
1068 | $! | ||
1069 | $! Looks Like VAXC, Set To Use VAXC. | ||
1070 | $! | ||
1071 | $ P3 = "VAXC" | ||
1072 | $! | ||
1073 | $! End The VAXC Compiler Check. | ||
1074 | $! | ||
1075 | $ ENDIF | ||
1076 | $! | ||
1077 | $! End The DECC & VAXC Compiler Check. | ||
1078 | $! | ||
1079 | $ ENDIF | ||
1080 | $! | ||
1081 | $! End The Compiler Check. | ||
1082 | $! | ||
1083 | $ ENDIF | ||
1084 | $! | ||
1085 | $! Check To See If We Have A Option For P4. | ||
1086 | $! | ||
1087 | $ IF (P4.EQS."") | ||
1088 | $ THEN | ||
1089 | $! | ||
1090 | $! Find out what socket library we have available | ||
1091 | $! | ||
1092 | $ IF F$PARSE("SOCKETSHR:") .NES. "" | ||
1093 | $ THEN | ||
1094 | $! | ||
1095 | $! We have SOCKETSHR, and it is my opinion that it's the best to use. | ||
1096 | $! | ||
1097 | $ P4 = "SOCKETSHR" | ||
1098 | $! | ||
1099 | $! Tell the user | ||
1100 | $! | ||
1101 | $ WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP" | ||
1102 | $! | ||
1103 | $! Else, let's look for something else | ||
1104 | $! | ||
1105 | $ ELSE | ||
1106 | $! | ||
1107 | $! Like UCX (the reason to do this before Multinet is that the UCX | ||
1108 | $! emulation is easier to use...) | ||
1109 | $! | ||
1110 | $ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" - | ||
1111 | .OR. F$PARSE("SYS$SHARE:UCX$IPC_SHR.EXE") .NES. "" - | ||
1112 | .OR. F$PARSE("SYS$LIBRARY:UCX$IPC.OLB") .NES. "" | ||
1113 | $ THEN | ||
1114 | $! | ||
1115 | $! Last resort: a UCX or UCX-compatible library | ||
1116 | $! | ||
1117 | $ P4 = "UCX" | ||
1118 | $! | ||
1119 | $! Tell the user | ||
1120 | $! | ||
1121 | $ WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP" | ||
1122 | $! | ||
1123 | $! That was all... | ||
1124 | $! | ||
1125 | $ ENDIF | ||
1126 | $ ENDIF | ||
1127 | $ ENDIF | ||
1128 | $! | ||
1129 | $! Set Up Initial CC Definitions, Possibly With User Ones | ||
1130 | $! | ||
1131 | $ CCDEFS = "TCPIP_TYPE_''P4',DSO_VMS" | ||
1132 | $ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS | ||
1133 | $ CCEXTRAFLAGS = "" | ||
1134 | $ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS | ||
1135 | $ CCDISABLEWARNINGS = "" !!! "LONGLONGTYPE,LONGLONGSUFX,FOUNDCR" | ||
1136 | $ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN - | ||
1137 | CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS | ||
1138 | $! | ||
1139 | $! Check To See If We Have A ZLIB Option. | ||
1140 | $! | ||
1141 | $ ZLIB = P8 | ||
1142 | $ IF (ZLIB .NES. "") | ||
1143 | $ THEN | ||
1144 | $! | ||
1145 | $! Check for expected ZLIB files. | ||
1146 | $! | ||
1147 | $ err = 0 | ||
1148 | $ file1 = f$parse( "zlib.h", ZLIB, , , "SYNTAX_ONLY") | ||
1149 | $ if (f$search( file1) .eqs. "") | ||
1150 | $ then | ||
1151 | $ WRITE SYS$OUTPUT "" | ||
1152 | $ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid." | ||
1153 | $ WRITE SYS$OUTPUT " Can't find header: ''file1'" | ||
1154 | $ err = 1 | ||
1155 | $ endif | ||
1156 | $ file1 = f$parse( "A.;", ZLIB)- "A.;" | ||
1157 | $! | ||
1158 | $ file2 = f$parse( ZLIB, "libz.olb", , , "SYNTAX_ONLY") | ||
1159 | $ if (f$search( file2) .eqs. "") | ||
1160 | $ then | ||
1161 | $ if (err .eq. 0) | ||
1162 | $ then | ||
1163 | $ WRITE SYS$OUTPUT "" | ||
1164 | $ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid." | ||
1165 | $ endif | ||
1166 | $ WRITE SYS$OUTPUT " Can't find library: ''file2'" | ||
1167 | $ WRITE SYS$OUTPUT "" | ||
1168 | $ err = err+ 2 | ||
1169 | $ endif | ||
1170 | $ if (err .eq. 1) | ||
1171 | $ then | ||
1172 | $ WRITE SYS$OUTPUT "" | ||
1173 | $ endif | ||
1174 | $! | ||
1175 | $ if (err .ne. 0) | ||
1176 | $ then | ||
1177 | $ EXIT | ||
1178 | $ endif | ||
1179 | $! | ||
1180 | $ CCDEFS = """ZLIB=1"", "+ CCDEFS | ||
1181 | $ CC_INCLUDES = CC_INCLUDES+ ", "+ file1 | ||
1182 | $ ZLIB_LIB = ", ''file2' /library" | ||
1183 | $! | ||
1184 | $! Print info | ||
1185 | $! | ||
1186 | $ WRITE SYS$OUTPUT "ZLIB library spec: ", file2 | ||
1187 | $! | ||
1188 | $! End The ZLIB Check. | ||
1189 | $! | ||
1190 | $ ENDIF | ||
1191 | $! | ||
1192 | $! Check To See If The User Entered A Valid Parameter. | ||
1193 | $! | ||
1194 | $ IF (P3.EQS."VAXC").OR.(P3.EQS."DECC").OR.(P3.EQS."GNUC") | ||
1195 | $ THEN | ||
1196 | $! | ||
1197 | $! Check To See If The User Wanted DECC. | ||
1198 | $! | ||
1199 | $ IF (P3.EQS."DECC") | ||
1200 | $ THEN | ||
1201 | $! | ||
1202 | $! Looks Like DECC, Set To Use DECC. | ||
1203 | $! | ||
1204 | $ COMPILER = "DECC" | ||
1205 | $! | ||
1206 | $! Tell The User We Are Using DECC. | ||
1207 | $! | ||
1208 | $ WRITE SYS$OUTPUT "Using DECC 'C' Compiler." | ||
1209 | $! | ||
1210 | $! Use DECC... | ||
1211 | $! | ||
1212 | $ CC = "CC" | ||
1213 | $ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" - | ||
1214 | THEN CC = "CC/DECC" | ||
1215 | $ CC = CC + " /''CC_OPTIMIZE' /''DEBUGGER' /STANDARD=RELAXED"+ - | ||
1216 | "''POINTER_SIZE' /NOLIST /PREFIX=ALL" + - | ||
1217 | " /INCLUDE=(''CC_INCLUDES')"+ - | ||
1218 | CCEXTRAFLAGS | ||
1219 | $! | ||
1220 | $! Define The Linker Options File Name. | ||
1221 | $! | ||
1222 | $ OPT_FILE = "VAX_DECC_OPTIONS.OPT" | ||
1223 | $! | ||
1224 | $! End DECC Check. | ||
1225 | $! | ||
1226 | $ ENDIF | ||
1227 | $! | ||
1228 | $! Check To See If We Are To Use VAXC. | ||
1229 | $! | ||
1230 | $ IF (P3.EQS."VAXC") | ||
1231 | $ THEN | ||
1232 | $! | ||
1233 | $! Looks Like VAXC, Set To Use VAXC. | ||
1234 | $! | ||
1235 | $ COMPILER = "VAXC" | ||
1236 | $! | ||
1237 | $! Tell The User We Are Using VAX C. | ||
1238 | $! | ||
1239 | $ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler." | ||
1240 | $! | ||
1241 | $! Compile Using VAXC. | ||
1242 | $! | ||
1243 | $ CC = "CC" | ||
1244 | $ IF ARCH.NES."VAX" | ||
1245 | $ THEN | ||
1246 | $ WRITE SYS$OUTPUT "There is no VAX C on ''ARCH'!" | ||
1247 | $ EXIT | ||
1248 | $ ENDIF | ||
1249 | $ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC" | ||
1250 | $ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + - | ||
1251 | "/INCLUDE=(''CC_INCLUDES')"+ - | ||
1252 | CCEXTRAFLAGS | ||
1253 | $ CCDEFS = """VAXC""," + CCDEFS | ||
1254 | $! | ||
1255 | $! Define <sys> As SYS$COMMON:[SYSLIB] | ||
1256 | $! | ||
1257 | $ DEFINE/NOLOG SYS SYS$COMMON:[SYSLIB] | ||
1258 | $! | ||
1259 | $! Define The Linker Options File Name. | ||
1260 | $! | ||
1261 | $ OPT_FILE = "VAX_VAXC_OPTIONS.OPT" | ||
1262 | $! | ||
1263 | $! End VAXC Check | ||
1264 | $! | ||
1265 | $ ENDIF | ||
1266 | $! | ||
1267 | $! Check To See If We Are To Use GNU C. | ||
1268 | $! | ||
1269 | $ IF (P3.EQS."GNUC") | ||
1270 | $ THEN | ||
1271 | $! | ||
1272 | $! Looks Like GNUC, Set To Use GNUC. | ||
1273 | $! | ||
1274 | $ COMPILER = "GNUC" | ||
1275 | $! | ||
1276 | $! Tell The User We Are Using GNUC. | ||
1277 | $! | ||
1278 | $ WRITE SYS$OUTPUT "Using GNU 'C' Compiler." | ||
1279 | $! | ||
1280 | $! Use GNU C... | ||
1281 | $! | ||
1282 | $ CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + - | ||
1283 | "/INCLUDE=(''CC_INCLUDES')"+ - | ||
1284 | CCEXTRAFLAGS | ||
1285 | $! | ||
1286 | $! Define The Linker Options File Name. | ||
1287 | $! | ||
1288 | $ OPT_FILE = "VAX_GNUC_OPTIONS.OPT" | ||
1289 | $! | ||
1290 | $! End The GNU C Check. | ||
1291 | $! | ||
1292 | $ ENDIF | ||
1293 | $! | ||
1294 | $! Set up default defines | ||
1295 | $! | ||
1296 | $ CCDEFS = """FLAT_INC=1""," + CCDEFS | ||
1297 | $! | ||
1298 | $! Finish up the definition of CC. | ||
1299 | $! | ||
1300 | $ IF COMPILER .EQS. "DECC" | ||
1301 | $ THEN | ||
1302 | $ IF CCDISABLEWARNINGS .EQS. "" | ||
1303 | $ THEN | ||
1304 | $ CC4DISABLEWARNINGS = "DOLLARID" | ||
1305 | $ CC6DISABLEWARNINGS = "MIXLINKAGE" | ||
1306 | $ ELSE | ||
1307 | $ CC4DISABLEWARNINGS = CCDISABLEWARNINGS + ",DOLLARID" | ||
1308 | $ CC6DISABLEWARNINGS = CCDISABLEWARNINGS + ",MIXLINKAGE" | ||
1309 | $ CCDISABLEWARNINGS = " /WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))" | ||
1310 | $ ENDIF | ||
1311 | $ CC4DISABLEWARNINGS = " /WARNING=(DISABLE=(" + CC4DISABLEWARNINGS + "))" | ||
1312 | $ CC6DISABLEWARNINGS = " /WARNING=(DISABLE=(" + CC6DISABLEWARNINGS + "))" | ||
1313 | $ ELSE | ||
1314 | $ CCDISABLEWARNINGS = "" | ||
1315 | $ CC4DISABLEWARNINGS = "" | ||
1316 | $ CC6DISABLEWARNINGS = "" | ||
1317 | $ ENDIF | ||
1318 | $ CC3 = CC + " /DEFINE=(" + CCDEFS + ISSEVEN + ")" + CCDISABLEWARNINGS | ||
1319 | $ CC = CC + " /DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS | ||
1320 | $ IF ARCH .EQS. "VAX" .AND. COMPILER .EQS. "DECC" .AND. P2 .NES. "DEBUG" | ||
1321 | $ THEN | ||
1322 | $ CC5 = CC + " /OPTIMIZE=NODISJOINT" | ||
1323 | $ CC5_DIFFERENT = 1 | ||
1324 | $ ELSE | ||
1325 | $ CC5 = CC | ||
1326 | $ CC5_DIFFERENT = 0 | ||
1327 | $ ENDIF | ||
1328 | $ CC4 = CC - CCDISABLEWARNINGS + CC4DISABLEWARNINGS | ||
1329 | $ CC6 = CC - CCDISABLEWARNINGS + CC6DISABLEWARNINGS | ||
1330 | $! | ||
1331 | $! Show user the result | ||
1332 | $! | ||
1333 | $ WRITE/SYMBOL SYS$OUTPUT "Main C Compiling Command: ",CC | ||
1334 | $! | ||
1335 | $! Else The User Entered An Invalid Argument. | ||
1336 | $! | ||
1337 | $ ELSE | ||
1338 | $! | ||
1339 | $! Tell The User We Don't Know What They Want. | ||
1340 | $! | ||
1341 | $ WRITE SYS$OUTPUT "" | ||
1342 | $ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:" | ||
1343 | $ WRITE SYS$OUTPUT "" | ||
1344 | $ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C." | ||
1345 | $ WRITE SYS$OUTPUT " DECC : To Compile With DEC C." | ||
1346 | $ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C." | ||
1347 | $ WRITE SYS$OUTPUT "" | ||
1348 | $! | ||
1349 | $! Time To EXIT. | ||
1350 | $! | ||
1351 | $ EXIT | ||
1352 | $! | ||
1353 | $! End The Valid Argument Check. | ||
1354 | $! | ||
1355 | $ ENDIF | ||
1356 | $! | ||
1357 | $! Build a MACRO command for the architecture at hand | ||
1358 | $! | ||
1359 | $ IF ARCH .EQS. "VAX" THEN MACRO = "MACRO/''DEBUGGER'" | ||
1360 | $ IF ARCH .NES. "VAX" THEN MACRO = "MACRO/MIGRATION/''DEBUGGER'/''MACRO_OPTIMIZE'" | ||
1361 | $! | ||
1362 | $! Show user the result | ||
1363 | $! | ||
1364 | $ WRITE/SYMBOL SYS$OUTPUT "Main MACRO Compiling Command: ",MACRO | ||
1365 | $! | ||
1366 | $! Time to check the contents, and to make sure we get the correct library. | ||
1367 | $! | ||
1368 | $ IF P4.EQS."SOCKETSHR" .OR. P4.EQS."MULTINET" .OR. P4.EQS."UCX" - | ||
1369 | .OR. P4.EQS."TCPIP" .OR. P4.EQS."NONE" | ||
1370 | $ THEN | ||
1371 | $! | ||
1372 | $! Check to see if SOCKETSHR was chosen | ||
1373 | $! | ||
1374 | $ IF P4.EQS."SOCKETSHR" | ||
1375 | $ THEN | ||
1376 | $! | ||
1377 | $! Set the library to use SOCKETSHR | ||
1378 | $! | ||
1379 | $ TCPIP_LIB = ",SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT /OPTIONS" | ||
1380 | $! | ||
1381 | $! Done with SOCKETSHR | ||
1382 | $! | ||
1383 | $ ENDIF | ||
1384 | $! | ||
1385 | $! Check to see if MULTINET was chosen | ||
1386 | $! | ||
1387 | $ IF P4.EQS."MULTINET" | ||
1388 | $ THEN | ||
1389 | $! | ||
1390 | $! Set the library to use UCX emulation. | ||
1391 | $! | ||
1392 | $ P4 = "UCX" | ||
1393 | $! | ||
1394 | $! Done with MULTINET | ||
1395 | $! | ||
1396 | $ ENDIF | ||
1397 | $! | ||
1398 | $! Check to see if UCX was chosen | ||
1399 | $! | ||
1400 | $ IF P4.EQS."UCX" | ||
1401 | $ THEN | ||
1402 | $! | ||
1403 | $! Set the library to use UCX. | ||
1404 | $! | ||
1405 | $ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT /OPTIONS" | ||
1406 | $ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" | ||
1407 | $ THEN | ||
1408 | $ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT /OPTIONS" | ||
1409 | $ ELSE | ||
1410 | $ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN - | ||
1411 | TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT /OPTIONS" | ||
1412 | $ ENDIF | ||
1413 | $! | ||
1414 | $! Done with UCX | ||
1415 | $! | ||
1416 | $ ENDIF | ||
1417 | $! | ||
1418 | $! Check to see if TCPIP was chosen | ||
1419 | $! | ||
1420 | $ IF P4.EQS."TCPIP" | ||
1421 | $ THEN | ||
1422 | $! | ||
1423 | $! Set the library to use TCPIP (post UCX). | ||
1424 | $! | ||
1425 | $ TCPIP_LIB = ",SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT /OPTIONS" | ||
1426 | $! | ||
1427 | $! Done with TCPIP | ||
1428 | $! | ||
1429 | $ ENDIF | ||
1430 | $! | ||
1431 | $! Check to see if NONE was chosen | ||
1432 | $! | ||
1433 | $ IF P4.EQS."NONE" | ||
1434 | $ THEN | ||
1435 | $! | ||
1436 | $! Do not use a TCPIP library. | ||
1437 | $! | ||
1438 | $ TCPIP_LIB = "" | ||
1439 | $! | ||
1440 | $! Done with TCPIP | ||
1441 | $! | ||
1442 | $ ENDIF | ||
1443 | $! | ||
1444 | $! Print info | ||
1445 | $! | ||
1446 | $ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB- "," | ||
1447 | $! | ||
1448 | $! Else The User Entered An Invalid Argument. | ||
1449 | $! | ||
1450 | $ ELSE | ||
1451 | $! | ||
1452 | $! Tell The User We Don't Know What They Want. | ||
1453 | $! | ||
1454 | $ WRITE SYS$OUTPUT "" | ||
1455 | $ WRITE SYS$OUTPUT "The Option ",P4," Is Invalid. The Valid Options Are:" | ||
1456 | $ WRITE SYS$OUTPUT "" | ||
1457 | $ WRITE SYS$OUTPUT " SOCKETSHR : To link with SOCKETSHR TCP/IP library." | ||
1458 | $ WRITE SYS$OUTPUT " UCX : To link with UCX TCP/IP library." | ||
1459 | $ WRITE SYS$OUTPUT " TCPIP : To link with TCPIP (post UCX) TCP/IP library." | ||
1460 | $ WRITE SYS$OUTPUT "" | ||
1461 | $! | ||
1462 | $! Time To EXIT. | ||
1463 | $! | ||
1464 | $ EXIT | ||
1465 | $! | ||
1466 | $! Done with TCP/IP libraries | ||
1467 | $! | ||
1468 | $ ENDIF | ||
1469 | $! | ||
1470 | $! Check if the user wanted to compile just a subset of all the encryption | ||
1471 | $! methods. | ||
1472 | $! | ||
1473 | $ IF P6 .NES. "" | ||
1474 | $ THEN | ||
1475 | $ ENCRYPT_TYPES = P6 | ||
1476 | $ ENDIF | ||
1477 | $! | ||
1478 | $! Time To RETURN... | ||
1479 | $! | ||
1480 | $ RETURN | ||
1481 | $! | ||
1482 | $ INITIALISE: | ||
1483 | $! | ||
1484 | $! Save old value of the logical name OPENSSL | ||
1485 | $! | ||
1486 | $ __SAVE_OPENSSL = F$TRNLNM("OPENSSL","LNM$PROCESS_TABLE") | ||
1487 | $! | ||
1488 | $! Save directory information | ||
1489 | $! | ||
1490 | $ __HERE = F$PARSE(F$PARSE("A.;",F$ENVIRONMENT("PROCEDURE"))-"A.;","[]A.;") - "A.;" | ||
1491 | $ __HERE = F$EDIT(__HERE,"UPCASE") | ||
1492 | $ __TOP = __HERE - "CRYPTO]" | ||
1493 | $ __INCLUDE = __TOP + "INCLUDE.OPENSSL]" | ||
1494 | $! | ||
1495 | $! Set up the logical name OPENSSL to point at the include directory | ||
1496 | $! | ||
1497 | $ DEFINE OPENSSL/NOLOG '__INCLUDE' | ||
1498 | $! | ||
1499 | $! Done | ||
1500 | $! | ||
1501 | $ RETURN | ||
1502 | $! | ||
1503 | $ CLEANUP: | ||
1504 | $! | ||
1505 | $! Restore the logical name OPENSSL if it had a value | ||
1506 | $! | ||
1507 | $ IF __SAVE_OPENSSL .EQS. "" | ||
1508 | $ THEN | ||
1509 | $ DEASSIGN OPENSSL | ||
1510 | $ ELSE | ||
1511 | $ DEFINE/NOLOG OPENSSL '__SAVE_OPENSSL' | ||
1512 | $ ENDIF | ||
1513 | $! | ||
1514 | $! Done | ||
1515 | $! | ||
1516 | $ RETURN | ||
diff --git a/src/lib/libssl/src/crypto/crypto.h b/src/lib/libssl/src/crypto/crypto.h index 6aeda0a9ac..f92fc5182d 100644 --- a/src/lib/libssl/src/crypto/crypto.h +++ b/src/lib/libssl/src/crypto/crypto.h | |||
@@ -488,10 +488,10 @@ void CRYPTO_get_mem_debug_functions(void (**m)(void *,int,const char *,int,int), | |||
488 | long (**go)(void)); | 488 | long (**go)(void)); |
489 | 489 | ||
490 | void *CRYPTO_malloc_locked(int num, const char *file, int line); | 490 | void *CRYPTO_malloc_locked(int num, const char *file, int line); |
491 | void CRYPTO_free_locked(void *); | 491 | void CRYPTO_free_locked(void *ptr); |
492 | void *CRYPTO_malloc(int num, const char *file, int line); | 492 | void *CRYPTO_malloc(int num, const char *file, int line); |
493 | char *CRYPTO_strdup(const char *str, const char *file, int line); | 493 | char *CRYPTO_strdup(const char *str, const char *file, int line); |
494 | void CRYPTO_free(void *); | 494 | void CRYPTO_free(void *ptr); |
495 | void *CRYPTO_realloc(void *addr,int num, const char *file, int line); | 495 | void *CRYPTO_realloc(void *addr,int num, const char *file, int line); |
496 | void *CRYPTO_realloc_clean(void *addr,int old_num,int num,const char *file, | 496 | void *CRYPTO_realloc_clean(void *addr,int old_num,int num,const char *file, |
497 | int line); | 497 | int line); |
@@ -574,6 +574,13 @@ void OPENSSL_init(void); | |||
574 | #define fips_cipher_abort(alg) while(0) | 574 | #define fips_cipher_abort(alg) while(0) |
575 | #endif | 575 | #endif |
576 | 576 | ||
577 | /* CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal. It | ||
578 | * takes an amount of time dependent on |len|, but independent of the contents | ||
579 | * of |a| and |b|. Unlike memcmp, it cannot be used to put elements into a | ||
580 | * defined order as the return value when a != b is undefined, other than to be | ||
581 | * non-zero. */ | ||
582 | int CRYPTO_memcmp(const void *a, const void *b, size_t len); | ||
583 | |||
577 | /* BEGIN ERROR CODES */ | 584 | /* BEGIN ERROR CODES */ |
578 | /* The following lines are auto generated by the script mkerr.pl. Any changes | 585 | /* The following lines are auto generated by the script mkerr.pl. Any changes |
579 | * made after this point may be overwritten when the script is next run. | 586 | * made after this point may be overwritten when the script is next run. |
diff --git a/src/lib/libssl/src/crypto/des/des-lib.com b/src/lib/libssl/src/crypto/des/des-lib.com deleted file mode 100644 index 348f1c0470..0000000000 --- a/src/lib/libssl/src/crypto/des/des-lib.com +++ /dev/null | |||
@@ -1,1005 +0,0 @@ | |||
1 | $! | ||
2 | $! DES-LIB.COM | ||
3 | $! Written By: Robert Byer | ||
4 | $! Vice-President | ||
5 | $! A-Com Computing, Inc. | ||
6 | $! byer@mail.all-net.net | ||
7 | $! | ||
8 | $! Changes by Richard Levitte <richard@levitte.org> | ||
9 | $! | ||
10 | $! This command files compiles and creates the | ||
11 | $! "[.xxx.EXE.CRYPTO.DES]LIBDES.OLB" library. The "xxx" denotes the machine | ||
12 | $! architecture of ALPHA, IA64 or VAX. | ||
13 | $! | ||
14 | $! It was re-written to try to determine which "C" compiler to try to use | ||
15 | $! or the user can specify a compiler in P3. | ||
16 | $! | ||
17 | $! Specify one of the following to build just that part, specify "ALL" to | ||
18 | $! just build everything. | ||
19 | $! | ||
20 | $! ALL To Just Build "Everything". | ||
21 | $! LIBRARY To Just Build The [.xxx.EXE.CRYPTO.DES]LIBDES.OLB Library. | ||
22 | $! DESTEST To Just Build The [.xxx.EXE.CRYPTO.DES]DESTEST.EXE Program. | ||
23 | $! SPEED To Just Build The [.xxx.EXE.CRYPTO.DES]SPEED.EXE Program. | ||
24 | $! RPW To Just Build The [.xxx.EXE.CRYPTO.DES]RPW.EXE Program. | ||
25 | $! DES To Just Build The [.xxx.EXE.CRYPTO.DES]DES.EXE Program. | ||
26 | $! DES_OPTS To Just Build The [.xxx.EXE.CRYPTO.DES]DES_OPTS.EXE Program. | ||
27 | $! | ||
28 | $! Specify either DEBUG or NODEBUG as P2 to compile with or without | ||
29 | $! debugging information. | ||
30 | $! | ||
31 | $! Specify which compiler at P3 to try to compile under. | ||
32 | $! | ||
33 | $! VAXC For VAX C. | ||
34 | $! DECC For DEC C. | ||
35 | $! GNUC For GNU C. | ||
36 | $! | ||
37 | $! If you don't speficy a compiler, it will try to determine which | ||
38 | $! "C" compiler to try to use. | ||
39 | $! | ||
40 | $! P4, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up) | ||
41 | $! | ||
42 | $! | ||
43 | $! Make sure we know what architecture we run on. | ||
44 | $! | ||
45 | $! | ||
46 | $! Check Which Architecture We Are Using. | ||
47 | $! | ||
48 | $ IF (F$GETSYI("CPU").LT.128) | ||
49 | $ THEN | ||
50 | $! | ||
51 | $! The Architecture Is VAX | ||
52 | $! | ||
53 | $ ARCH := VAX | ||
54 | $! | ||
55 | $! Else... | ||
56 | $! | ||
57 | $ ELSE | ||
58 | $! | ||
59 | $! The Architecture Is Alpha, IA64 or whatever comes in the future. | ||
60 | $! | ||
61 | $ ARCH = F$EDIT( F$GETSYI( "ARCH_NAME"), "UPCASE") | ||
62 | $ IF (ARCH .EQS. "") THEN ARCH = "UNK" | ||
63 | $! | ||
64 | $! End The Architecture Check. | ||
65 | $! | ||
66 | $ ENDIF | ||
67 | $! | ||
68 | $! Define The OBJ Directory Name. | ||
69 | $! | ||
70 | $ OBJ_DIR := SYS$DISK:[--.'ARCH'.OBJ.CRYPTO.DES] | ||
71 | $! | ||
72 | $! Define The EXE Directory Name. | ||
73 | $! | ||
74 | $ EXE_DIR :== SYS$DISK:[--.'ARCH'.EXE.CRYPTO.DES] | ||
75 | $! | ||
76 | $! Check To Make Sure We Have Valid Command Line Parameters. | ||
77 | $! | ||
78 | $ GOSUB CHECK_OPTIONS | ||
79 | $! | ||
80 | $! Tell The User What Kind of Machine We Run On. | ||
81 | $! | ||
82 | $ WRITE SYS$OUTPUT "Compiling On A ",ARCH," Machine." | ||
83 | $! | ||
84 | $! Check To See If The Architecture Specific OBJ Directory Exists. | ||
85 | $! | ||
86 | $ IF (F$PARSE(OBJ_DIR).EQS."") | ||
87 | $ THEN | ||
88 | $! | ||
89 | $! It Dosen't Exist, So Create It. | ||
90 | $! | ||
91 | $ CREATE/DIR 'OBJ_DIR' | ||
92 | $! | ||
93 | $! End The Architecture Specific OBJ Directory Check. | ||
94 | $! | ||
95 | $ ENDIF | ||
96 | $! | ||
97 | $! Check To See If The Architecture Specific Directory Exists. | ||
98 | $! | ||
99 | $ IF (F$PARSE(EXE_DIR).EQS."") | ||
100 | $ THEN | ||
101 | $! | ||
102 | $! It Dosen't Exist, So Create It. | ||
103 | $! | ||
104 | $ CREATE/DIR 'EXE_DIR' | ||
105 | $! | ||
106 | $! End The Architecture Specific Directory Check. | ||
107 | $! | ||
108 | $ ENDIF | ||
109 | $! | ||
110 | $! Define The Library Name. | ||
111 | $! | ||
112 | $ LIB_NAME := 'EXE_DIR'LIBDES.OLB | ||
113 | $! | ||
114 | $! Check To See What We Are To Do. | ||
115 | $! | ||
116 | $ IF (BUILDALL.EQS."TRUE") | ||
117 | $ THEN | ||
118 | $! | ||
119 | $! Since Nothing Special Was Specified, Do Everything. | ||
120 | $! | ||
121 | $ GOSUB LIBRARY | ||
122 | $ GOSUB DESTEST | ||
123 | $ GOSUB SPEED | ||
124 | $ GOSUB RPW | ||
125 | $ GOSUB DES | ||
126 | $ GOSUB DES_OPTS | ||
127 | $! | ||
128 | $! Else... | ||
129 | $! | ||
130 | $ ELSE | ||
131 | $! | ||
132 | $! Build Just What The User Wants Us To Build. | ||
133 | $! | ||
134 | $ GOSUB 'BUILDALL' | ||
135 | $! | ||
136 | $! End The BUILDALL Check. | ||
137 | $! | ||
138 | $ ENDIF | ||
139 | $! | ||
140 | $! Time To EXIT. | ||
141 | $! | ||
142 | $ EXIT | ||
143 | $ LIBRARY: | ||
144 | $! | ||
145 | $! Tell The User That We Are Compiling. | ||
146 | $! | ||
147 | $ WRITE SYS$OUTPUT "Compiling The ",LIB_NAME," Files." | ||
148 | $! | ||
149 | $! Check To See If We Already Have A "[.xxx.EXE.CRYPTO.DES]LIBDES.OLB" Library... | ||
150 | $! | ||
151 | $ IF (F$SEARCH(LIB_NAME).EQS."") | ||
152 | $ THEN | ||
153 | $! | ||
154 | $! Guess Not, Create The Library. | ||
155 | $! | ||
156 | $ LIBRARY/CREATE/OBJECT 'LIB_NAME' | ||
157 | $! | ||
158 | $! End The Library Exist Check. | ||
159 | $! | ||
160 | $ ENDIF | ||
161 | $! | ||
162 | $! Define The DES Library Files. | ||
163 | $! | ||
164 | $ LIB_DES = "set_key,ecb_enc,cbc_enc,"+ - | ||
165 | "ecb3_enc,cfb64enc,cfb64ede,cfb_enc,ofb64ede,"+ - | ||
166 | "enc_read,enc_writ,ofb64enc,"+ - | ||
167 | "ofb_enc,str2key,pcbc_enc,qud_cksm,rand_key,"+ - | ||
168 | "des_enc,fcrypt_b,read2pwd,"+ - | ||
169 | "fcrypt,xcbc_enc,read_pwd,rpc_enc,cbc_cksm,supp" | ||
170 | $! | ||
171 | $! Define A File Counter And Set It To "0". | ||
172 | $! | ||
173 | $ FILE_COUNTER = 0 | ||
174 | $! | ||
175 | $! Top Of The File Loop. | ||
176 | $! | ||
177 | $ NEXT_FILE: | ||
178 | $! | ||
179 | $! O.K, Extract The File Name From The File List. | ||
180 | $! | ||
181 | $ FILE_NAME = F$ELEMENT(FILE_COUNTER,",",LIB_DES) | ||
182 | $! | ||
183 | $! Check To See If We Are At The End Of The File List. | ||
184 | $! | ||
185 | $ IF (FILE_NAME.EQS.",") THEN GOTO FILE_DONE | ||
186 | $! | ||
187 | $! Increment The Counter. | ||
188 | $! | ||
189 | $ FILE_COUNTER = FILE_COUNTER + 1 | ||
190 | $! | ||
191 | $! Create The Source File Name. | ||
192 | $! | ||
193 | $ SOURCE_FILE = "SYS$DISK:[]" + FILE_NAME + ".C" | ||
194 | $! | ||
195 | $! Tell The User We Are Compiling The Source File. | ||
196 | $! | ||
197 | $ WRITE SYS$OUTPUT " ",FILE_NAME,".C" | ||
198 | $! | ||
199 | $! Create The Object File Name. | ||
200 | $! | ||
201 | $ OBJECT_FILE = OBJ_DIR + FILE_NAME + "." + ARCH + "OBJ" | ||
202 | $ ON WARNING THEN GOTO NEXT_FILE | ||
203 | $! | ||
204 | $! Check To See If The File We Want To Compile Actually Exists. | ||
205 | $! | ||
206 | $ IF (F$SEARCH(SOURCE_FILE).EQS."") | ||
207 | $ THEN | ||
208 | $! | ||
209 | $! Tell The User That The File Dosen't Exist. | ||
210 | $! | ||
211 | $ WRITE SYS$OUTPUT "" | ||
212 | $ WRITE SYS$OUTPUT "The File ",SOURCE_FILE," Dosen't Exist." | ||
213 | $ WRITE SYS$OUTPUT "" | ||
214 | $! | ||
215 | $! Exit The Build. | ||
216 | $! | ||
217 | $ EXIT | ||
218 | $! | ||
219 | $! End The File Exists Check. | ||
220 | $! | ||
221 | $ ENDIF | ||
222 | $! | ||
223 | $! Compile The File. | ||
224 | $! | ||
225 | $ ON ERROR THEN GOTO NEXT_FILE | ||
226 | $ CC/OBJECT='OBJECT_FILE' 'SOURCE_FILE' | ||
227 | $! | ||
228 | $! Add It To The Library. | ||
229 | $! | ||
230 | $ LIBRARY/REPLACE/OBJECT 'LIB_NAME' 'OBJECT_FILE' | ||
231 | $! | ||
232 | $! Time To Clean Up The Object File. | ||
233 | $! | ||
234 | $ DELETE 'OBJECT_FILE';* | ||
235 | $! | ||
236 | $! Go Back And Do It Again. | ||
237 | $! | ||
238 | $ GOTO NEXT_FILE | ||
239 | $! | ||
240 | $! All Done With This Library Part. | ||
241 | $! | ||
242 | $ FILE_DONE: | ||
243 | $! | ||
244 | $! Tell The User That We Are All Done. | ||
245 | $! | ||
246 | $ WRITE SYS$OUTPUT "Library ",LIB_NAME," Built." | ||
247 | $! | ||
248 | $! All Done, Time To Return. | ||
249 | $! | ||
250 | $ RETURN | ||
251 | $! | ||
252 | $! Compile The DESTEST Program. | ||
253 | $! | ||
254 | $ DESTEST: | ||
255 | $! | ||
256 | $! Check To See If We Have The Proper Libraries. | ||
257 | $! | ||
258 | $ GOSUB LIB_CHECK | ||
259 | $! | ||
260 | $! Check To See If We Have A Linker Option File. | ||
261 | $! | ||
262 | $ GOSUB CHECK_OPT_FILE | ||
263 | $! | ||
264 | $! Check To See If The File We Want To Compile Actually Exists. | ||
265 | $! | ||
266 | $ IF (F$SEARCH("SYS$DISK:[]DESTEST.C").EQS."") | ||
267 | $ THEN | ||
268 | $! | ||
269 | $! Tell The User That The File Dosen't Exist. | ||
270 | $! | ||
271 | $ WRITE SYS$OUTPUT "" | ||
272 | $ WRITE SYS$OUTPUT "The File DESTEST.C Dosen't Exist." | ||
273 | $ WRITE SYS$OUTPUT "" | ||
274 | $! | ||
275 | $! Exit The Build. | ||
276 | $! | ||
277 | $ EXIT | ||
278 | $! | ||
279 | $! End The DESTEST.C File Check. | ||
280 | $! | ||
281 | $ ENDIF | ||
282 | $! | ||
283 | $! Tell The User What We Are Building. | ||
284 | $! | ||
285 | $ WRITE SYS$OUTPUT "Building ",EXE_DIR,"DESTEST.EXE" | ||
286 | $! | ||
287 | $! Compile The DESTEST Program. | ||
288 | $! | ||
289 | $ CC/OBJECT='OBJ_DIR'DESTEST.OBJ SYS$DISK:[]DESTEST.C | ||
290 | $! | ||
291 | $! Link The DESTEST Program. | ||
292 | $! | ||
293 | $ LINK/'DEBUGGER'/'TRACEBACK'/CONTIGUOUS/EXE='EXE_DIR'DESTEST.EXE - | ||
294 | 'OBJ_DIR'DESTEST.OBJ,'LIB_NAME'/LIBRARY,'OPT_FILE'/OPTION | ||
295 | $! | ||
296 | $! All Done, Time To Return. | ||
297 | $! | ||
298 | $ RETURN | ||
299 | $! | ||
300 | $! Compile The SPEED Program. | ||
301 | $! | ||
302 | $ SPEED: | ||
303 | $! | ||
304 | $! Check To See If We Have The Proper Libraries. | ||
305 | $! | ||
306 | $ GOSUB LIB_CHECK | ||
307 | $! | ||
308 | $! Check To See If We Have A Linker Option File. | ||
309 | $! | ||
310 | $ GOSUB CHECK_OPT_FILE | ||
311 | $! | ||
312 | $! Check To See If The File We Want To Compile Actually Exists. | ||
313 | $! | ||
314 | $ IF (F$SEARCH("SYS$DISK:[]SPEED.C").EQS."") | ||
315 | $ THEN | ||
316 | $! | ||
317 | $! Tell The User That The File Dosen't Exist. | ||
318 | $! | ||
319 | $ WRITE SYS$OUTPUT "" | ||
320 | $ WRITE SYS$OUTPUT "The File SPEED.C Dosen't Exist." | ||
321 | $ WRITE SYS$OUTPUT "" | ||
322 | $! | ||
323 | $! Exit The Build. | ||
324 | $! | ||
325 | $ EXIT | ||
326 | $! | ||
327 | $! End The SPEED.C File Check. | ||
328 | $! | ||
329 | $ ENDIF | ||
330 | $! | ||
331 | $! Tell The User What We Are Building. | ||
332 | $! | ||
333 | $ WRITE SYS$OUTPUT "Building ",EXE_DIR,"SPEED.EXE" | ||
334 | $! | ||
335 | $! Compile The SPEED Program. | ||
336 | $! | ||
337 | $ CC/OBJECT='OBJ_DIR'SPEED.OBJ SYS$DISK:[]SPEED.C | ||
338 | $! | ||
339 | $! Link The SPEED Program. | ||
340 | $! | ||
341 | $ LINK/'DEBUGGER'/'TRACEBACK'/CONTIGUOUS/EXE='EXE_DIR'SPEED.EXE - | ||
342 | 'OBJ_DIR'SPEED.OBJ,'LIB_NAME'/LIBRARY,'OPT_FILE'/OPTION | ||
343 | $! | ||
344 | $! All Done, Time To Return. | ||
345 | $! | ||
346 | $ RETURN | ||
347 | $! | ||
348 | $! Compile The RPW Program. | ||
349 | $! | ||
350 | $ RPW: | ||
351 | $! | ||
352 | $! Check To See If We Have The Proper Libraries. | ||
353 | $! | ||
354 | $ GOSUB LIB_CHECK | ||
355 | $! | ||
356 | $! Check To See If We Have A Linker Option File. | ||
357 | $! | ||
358 | $ GOSUB CHECK_OPT_FILE | ||
359 | $! | ||
360 | $! Check To See If The File We Want To Compile Actually Exists. | ||
361 | $! | ||
362 | $ IF (F$SEARCH("SYS$DISK:[]RPW.C").EQS."") | ||
363 | $ THEN | ||
364 | $! | ||
365 | $! Tell The User That The File Dosen't Exist. | ||
366 | $! | ||
367 | $ WRITE SYS$OUTPUT "" | ||
368 | $ WRITE SYS$OUTPUT "The File RPW.C Dosen't Exist." | ||
369 | $ WRITE SYS$OUTPUT "" | ||
370 | $! | ||
371 | $! Exit The Build. | ||
372 | $! | ||
373 | $ EXIT | ||
374 | $! | ||
375 | $! End The RPW.C File Check. | ||
376 | $! | ||
377 | $ ENDIF | ||
378 | $! | ||
379 | $! Tell The User What We Are Building. | ||
380 | $! | ||
381 | $ WRITE SYS$OUTPUT "Building ",EXE_DIR,"RPW.EXE" | ||
382 | $! | ||
383 | $! Compile The RPW Program. | ||
384 | $! | ||
385 | $ CC/OBJECT='OBJ_DIR'RPW.OBJ SYS$DISK:[]RPW.C | ||
386 | $! | ||
387 | $! Link The RPW Program. | ||
388 | $! | ||
389 | $ LINK/'DEBUGGER'/'TRACEBACK'/CONTIGUOUS/EXE='EXE_DIR'RPW.EXE - | ||
390 | 'OBJ_DIR'RPW.OBJ,'LIB_NAME'/LIBRARY,'OPT_FILE'/OPTION | ||
391 | $! | ||
392 | $! All Done, Time To Return. | ||
393 | $! | ||
394 | $ RETURN | ||
395 | $! | ||
396 | $! Compile The DES Program. | ||
397 | $! | ||
398 | $ DES: | ||
399 | $! | ||
400 | $! Check To See If We Have The Proper Libraries. | ||
401 | $! | ||
402 | $ GOSUB LIB_CHECK | ||
403 | $! | ||
404 | $! Check To See If We Have A Linker Option File. | ||
405 | $! | ||
406 | $ GOSUB CHECK_OPT_FILE | ||
407 | $! | ||
408 | $! Check To See If The File We Want To Compile Actually Exists. | ||
409 | $! | ||
410 | $ IF (F$SEARCH("SYS$DISK:[]DES.C").EQS."") | ||
411 | $ THEN | ||
412 | $! | ||
413 | $! Tell The User That The File Dosen't Exist. | ||
414 | $! | ||
415 | $ WRITE SYS$OUTPUT "" | ||
416 | $ WRITE SYS$OUTPUT "The File DES.C Dosen't Exist." | ||
417 | $ WRITE SYS$OUTPUT "" | ||
418 | $! | ||
419 | $! Exit The Build. | ||
420 | $! | ||
421 | $ EXIT | ||
422 | $! | ||
423 | $! End The DES.C File Check. | ||
424 | $! | ||
425 | $ ENDIF | ||
426 | $! | ||
427 | $! Tell The User What We Are Building. | ||
428 | $! | ||
429 | $ WRITE SYS$OUTPUT "Building ",EXE_DIR,"DES.EXE" | ||
430 | $! | ||
431 | $! Compile The DES Program. | ||
432 | $! | ||
433 | $ CC/OBJECT='OBJ_DIR'DES.OBJ SYS$DISK:[]DES.C | ||
434 | $ CC/OBJECT='OBJ_DIR'DES.OBJ SYS$DISK:[]CBC3_ENC.C | ||
435 | $! | ||
436 | $! Link The DES Program. | ||
437 | $! | ||
438 | $ LINK/'DEBUGGER'/'TRACEBACK'/CONTIGUOUS/EXE='EXE_DIR'DES.EXE - | ||
439 | 'OBJ_DIR'DES.OBJ,'OBJ_DIR'CBC3_ENC.OBJ,- | ||
440 | 'LIB_NAME'/LIBRARY,'OPT_FILE'/OPTION | ||
441 | $! | ||
442 | $! All Done, Time To Return. | ||
443 | $! | ||
444 | $ RETURN | ||
445 | $! | ||
446 | $! Compile The DES_OPTS Program. | ||
447 | $! | ||
448 | $ DES_OPTS: | ||
449 | $! | ||
450 | $! Check To See If We Have The Proper Libraries. | ||
451 | $! | ||
452 | $ GOSUB LIB_CHECK | ||
453 | $! | ||
454 | $! Check To See If We Have A Linker Option File. | ||
455 | $! | ||
456 | $ GOSUB CHECK_OPT_FILE | ||
457 | $! | ||
458 | $! Check To See If The File We Want To Compile Actually Exists. | ||
459 | $! | ||
460 | $ IF (F$SEARCH("SYS$DISK:[]DES_OPTS.C").EQS."") | ||
461 | $ THEN | ||
462 | $! | ||
463 | $! Tell The User That The File Dosen't Exist. | ||
464 | $! | ||
465 | $ WRITE SYS$OUTPUT "" | ||
466 | $ WRITE SYS$OUTPUT "The File DES_OPTS.C Dosen't Exist." | ||
467 | $ WRITE SYS$OUTPUT "" | ||
468 | $! | ||
469 | $! Exit The Build. | ||
470 | $! | ||
471 | $ EXIT | ||
472 | $! | ||
473 | $! End The DES_OPTS.C File Check. | ||
474 | $! | ||
475 | $ ENDIF | ||
476 | $! | ||
477 | $! Tell The User What We Are Building. | ||
478 | $! | ||
479 | $ WRITE SYS$OUTPUT "Building ",EXE_DIR,"DES_OPTS.EXE" | ||
480 | $! | ||
481 | $! Compile The DES_OPTS Program. | ||
482 | $! | ||
483 | $ CC/OBJECT='OBJ_DIR'DES_OPTS.OBJ SYS$DISK:[]DES_OPTS.C | ||
484 | $! | ||
485 | $! Link The DES_OPTS Program. | ||
486 | $! | ||
487 | $ LINK/'DEBUGGER'/'TRACEBACK'/CONTIGUOUS/EXE='EXE_DIR'DES_OPTS.EXE - | ||
488 | 'OBJ_DIR'DES_OPTS.OBJ,'LIB_NAME'/LIBRARY,'OPT_FILE'/OPTION | ||
489 | $! | ||
490 | $! All Done, Time To Return. | ||
491 | $! | ||
492 | $ RETURN | ||
493 | $ EXIT | ||
494 | $! | ||
495 | $! Check For The Link Option FIle. | ||
496 | $! | ||
497 | $ CHECK_OPT_FILE: | ||
498 | $! | ||
499 | $! Check To See If We Need To Make A VAX C Option File. | ||
500 | $! | ||
501 | $ IF (COMPILER.EQS."VAXC") | ||
502 | $ THEN | ||
503 | $! | ||
504 | $! Check To See If We Already Have A VAX C Linker Option File. | ||
505 | $! | ||
506 | $ IF (F$SEARCH(OPT_FILE).EQS."") | ||
507 | $ THEN | ||
508 | $! | ||
509 | $! We Need A VAX C Linker Option File. | ||
510 | $! | ||
511 | $ CREATE 'OPT_FILE' | ||
512 | $DECK | ||
513 | ! | ||
514 | ! Default System Options File To Link Agianst | ||
515 | ! The Sharable VAX C Runtime Library. | ||
516 | ! | ||
517 | SYS$SHARE:VAXCRTL.EXE/SHARE | ||
518 | $EOD | ||
519 | $! | ||
520 | $! End The Option File Check. | ||
521 | $! | ||
522 | $ ENDIF | ||
523 | $! | ||
524 | $! End The VAXC Check. | ||
525 | $! | ||
526 | $ ENDIF | ||
527 | $! | ||
528 | $! Check To See If We Need A GNU C Option File. | ||
529 | $! | ||
530 | $ IF (COMPILER.EQS."GNUC") | ||
531 | $ THEN | ||
532 | $! | ||
533 | $! Check To See If We Already Have A GNU C Linker Option File. | ||
534 | $! | ||
535 | $ IF (F$SEARCH(OPT_FILE).EQS."") | ||
536 | $ THEN | ||
537 | $! | ||
538 | $! We Need A GNU C Linker Option File. | ||
539 | $! | ||
540 | $ CREATE 'OPT_FILE' | ||
541 | $DECK | ||
542 | ! | ||
543 | ! Default System Options File To Link Agianst | ||
544 | ! The Sharable C Runtime Library. | ||
545 | ! | ||
546 | GNU_CC:[000000]GCCLIB/LIBRARY | ||
547 | SYS$SHARE:VAXCRTL/SHARE | ||
548 | $EOD | ||
549 | $! | ||
550 | $! End The Option File Check. | ||
551 | $! | ||
552 | $ ENDIF | ||
553 | $! | ||
554 | $! End The GNU C Check. | ||
555 | $! | ||
556 | $ ENDIF | ||
557 | $! | ||
558 | $! Check To See If We Need A DEC C Option File. | ||
559 | $! | ||
560 | $ IF (COMPILER.EQS."DECC") | ||
561 | $ THEN | ||
562 | $! | ||
563 | $! Check To See If We Already Have A DEC C Linker Option File. | ||
564 | $! | ||
565 | $ IF (F$SEARCH(OPT_FILE).EQS."") | ||
566 | $ THEN | ||
567 | $! | ||
568 | $! Figure Out If We Need An non-VAX Or A VAX Linker Option File. | ||
569 | $! | ||
570 | $ IF (F$GETSYI("CPU").LT.128) | ||
571 | $ THEN | ||
572 | $! | ||
573 | $! We Need A DEC C Linker Option File For VAX. | ||
574 | $! | ||
575 | $ CREATE 'OPT_FILE' | ||
576 | $DECK | ||
577 | ! | ||
578 | ! Default System Options File To Link Agianst | ||
579 | ! The Sharable DEC C Runtime Library. | ||
580 | ! | ||
581 | SYS$SHARE:DECC$SHR.EXE/SHARE | ||
582 | $EOD | ||
583 | $! | ||
584 | $! Else... | ||
585 | $! | ||
586 | $ ELSE | ||
587 | $! | ||
588 | $! Create The non-VAX Linker Option File. | ||
589 | $! | ||
590 | $ CREATE 'OPT_FILE' | ||
591 | $DECK | ||
592 | ! | ||
593 | ! Default System Options File For non-VAX To Link Agianst | ||
594 | ! The Sharable C Runtime Library. | ||
595 | ! | ||
596 | SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE | ||
597 | SYS$SHARE:CMA$OPEN_RTL/SHARE | ||
598 | $EOD | ||
599 | $! | ||
600 | $! End The DEC C Option File Check. | ||
601 | $! | ||
602 | $ ENDIF | ||
603 | $! | ||
604 | $! End The Option File Search. | ||
605 | $! | ||
606 | $ ENDIF | ||
607 | $! | ||
608 | $! End The DEC C Check. | ||
609 | $! | ||
610 | $ ENDIF | ||
611 | $! | ||
612 | $! Tell The User What Linker Option File We Are Using. | ||
613 | $! | ||
614 | $ WRITE SYS$OUTPUT "Using Linker Option File ",OPT_FILE,"." | ||
615 | $! | ||
616 | $! Time To RETURN. | ||
617 | $! | ||
618 | $ RETURN | ||
619 | $! | ||
620 | $! Library Check. | ||
621 | $! | ||
622 | $ LIB_CHECK: | ||
623 | $! | ||
624 | $! Look For The Library LIBDES.OLB. | ||
625 | $! | ||
626 | $ IF (F$SEARCH(LIB_NAME).EQS."") | ||
627 | $ THEN | ||
628 | $! | ||
629 | $! Tell The User We Can't Find The [.xxx.CRYPTO.DES]LIBDES.OLB Library. | ||
630 | $! | ||
631 | $ WRITE SYS$OUTPUT "" | ||
632 | $ WRITE SYS$OUTPUT "Can't Find The Library ",LIB_NAME,"." | ||
633 | $ WRITE SYS$OUTPUT "We Can't Link Without It." | ||
634 | $ WRITE SYS$OUTPUT "" | ||
635 | $! | ||
636 | $! Since We Can't Link Without It, Exit. | ||
637 | $! | ||
638 | $ EXIT | ||
639 | $ ENDIF | ||
640 | $! | ||
641 | $! Time To Return. | ||
642 | $! | ||
643 | $ RETURN | ||
644 | $! | ||
645 | $! Check The User's Options. | ||
646 | $! | ||
647 | $ CHECK_OPTIONS: | ||
648 | $! | ||
649 | $! Check To See If We Are To "Just Build Everything". | ||
650 | $! | ||
651 | $ IF (P1.EQS."ALL") | ||
652 | $ THEN | ||
653 | $! | ||
654 | $! P1 Is "ALL", So Build Everything. | ||
655 | $! | ||
656 | $ BUILDALL = "TRUE" | ||
657 | $! | ||
658 | $! Else... | ||
659 | $! | ||
660 | $ ELSE | ||
661 | $! | ||
662 | $! Else, Check To See If P1 Has A Valid Argument. | ||
663 | $! | ||
664 | $ IF (P1.EQS."LIBRARY").OR.(P1.EQS."DESTEST").OR.(P1.EQS."SPEED") - | ||
665 | .OR.(P1.EQS."RPW").OR.(P1.EQS."DES").OR.(P1.EQS."DES_OPTS") | ||
666 | $ THEN | ||
667 | $! | ||
668 | $! A Valid Argument. | ||
669 | $! | ||
670 | $ BUILDALL = P1 | ||
671 | $! | ||
672 | $! Else... | ||
673 | $! | ||
674 | $ ELSE | ||
675 | $! | ||
676 | $! Tell The User We Don't Know What They Want. | ||
677 | $! | ||
678 | $ WRITE SYS$OUTPUT "" | ||
679 | $ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:" | ||
680 | $ WRITE SYS$OUTPUT "" | ||
681 | $ WRITE SYS$OUTPUT " ALL : Just Build Everything." | ||
682 | $ WRITE SYS$OUTPUT " LIBRARY : To Compile Just The [.xxx.EXE.CRYPTO.DES]LIBDES.OLB Library." | ||
683 | $ WRITE SYS$OUTPUT " DESTEST : To Compile Just The [.xxx.EXE.CRYPTO.DES]DESTEST.EXE Program." | ||
684 | $ WRITE SYS$OUTPUT " SPEED : To Compile Just The [.xxx.EXE.CRYPTO.DES]SPEED.EXE Program." | ||
685 | $ WRITE SYS$OUTPUT " RPW : To Compile Just The [.xxx.EXE.CRYPTO.DES]RPW.EXE Program." | ||
686 | $ WRITE SYS$OUTPUT " DES : To Compile Just The [.xxx.EXE.CRYPTO.DES]DES.EXE Program." | ||
687 | $ WRITE SYS$OUTPUT " DES_OPTS : To Compile Just The [.xxx.EXE.CRYTPO.DES]DES_OPTS.EXE Program." | ||
688 | $ WRITE SYS$OUTPUT "" | ||
689 | $ WRITE SYS$OUTPUT " Where 'xxx' Stands For: " | ||
690 | $ WRITE SYS$OUTPUT "" | ||
691 | $ WRITE SYS$OUTPUT " ALPHA : Alpha Architecture." | ||
692 | $ WRITE SYS$OUTPUT " IA64 : IA64 Architecture." | ||
693 | $ WRITE SYS$OUTPUT " VAX : VAX Architecture." | ||
694 | $ WRITE SYS$OUTPUT "" | ||
695 | $! | ||
696 | $! Time To EXIT. | ||
697 | $! | ||
698 | $ EXIT | ||
699 | $! | ||
700 | $! End The Valid Argument Check. | ||
701 | $! | ||
702 | $ ENDIF | ||
703 | $! | ||
704 | $! End The P1 Check. | ||
705 | $! | ||
706 | $ ENDIF | ||
707 | $! | ||
708 | $! Check To See If We Are To Compile Without Debugger Information. | ||
709 | $! | ||
710 | $ IF (P2.EQS."NODEBUG") | ||
711 | $ THEN | ||
712 | $! | ||
713 | $! P2 Is Blank, So Compile Without Debugger Information. | ||
714 | $! | ||
715 | $ DEBUGGER = "NODEBUG" | ||
716 | $ TRACEBACK = "NOTRACEBACK" | ||
717 | $ GCC_OPTIMIZE = "OPTIMIZE" | ||
718 | $ CC_OPTIMIZE = "OPTIMIZE" | ||
719 | $ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile." | ||
720 | $ WRITE SYS$OUTPUT "Compiling With Compiler Optimization." | ||
721 | $! | ||
722 | $! Else... | ||
723 | $! | ||
724 | $ ELSE | ||
725 | $! | ||
726 | $! Check To See If We Are To Compile With Debugger Information. | ||
727 | $! | ||
728 | $ IF (P2.EQS."DEBUG") | ||
729 | $ THEN | ||
730 | $! | ||
731 | $! Compile With Debugger Information. | ||
732 | $! | ||
733 | $ DEBUGGER = "DEBUG" | ||
734 | $ TRACEBACK = "TRACEBACK" | ||
735 | $ GCC_OPTIMIZE = "NOOPTIMIZE" | ||
736 | $ CC_OPTIMIZE = "NOOPTIMIZE" | ||
737 | $ WRITE SYS$OUTPUT "Debugger Information Will Be Produced During Compile." | ||
738 | $ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization." | ||
739 | $! | ||
740 | $! Else... | ||
741 | $! | ||
742 | $ ELSE | ||
743 | $! | ||
744 | $! Tell The User Entered An Invalid Option.. | ||
745 | $! | ||
746 | $ WRITE SYS$OUTPUT "" | ||
747 | $ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:" | ||
748 | $ WRITE SYS$OUTPUT "" | ||
749 | $ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information." | ||
750 | $ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information." | ||
751 | $ WRITE SYS$OUTPUT "" | ||
752 | $! | ||
753 | $! Time To EXIT. | ||
754 | $! | ||
755 | $ EXIT | ||
756 | $! | ||
757 | $! End The Valid Argument Check. | ||
758 | $! | ||
759 | $ ENDIF | ||
760 | $! | ||
761 | $! End The P2 Check. | ||
762 | $! | ||
763 | $ ENDIF | ||
764 | $! | ||
765 | $! Special Threads For OpenVMS v7.1 Or Later. | ||
766 | $! | ||
767 | $! Written By: Richard Levitte | ||
768 | $! richard@levitte.org | ||
769 | $! | ||
770 | $! | ||
771 | $! Check To See If We Have A Option For P4. | ||
772 | $! | ||
773 | $ IF (P4.EQS."") | ||
774 | $ THEN | ||
775 | $! | ||
776 | $! Get The Version Of VMS We Are Using. | ||
777 | $! | ||
778 | $ ISSEVEN := "" | ||
779 | $ TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION"))) | ||
780 | $ TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP)) | ||
781 | $! | ||
782 | $! Check To See If The VMS Version Is v7.1 Or Later. | ||
783 | $! | ||
784 | $ IF (TMP.GE.71) | ||
785 | $ THEN | ||
786 | $! | ||
787 | $! We Have OpenVMS v7.1 Or Later, So Use The Special Threads. | ||
788 | $! | ||
789 | $ ISSEVEN := ,PTHREAD_USE_D4 | ||
790 | $! | ||
791 | $! End The VMS Version Check. | ||
792 | $! | ||
793 | $ ENDIF | ||
794 | $! | ||
795 | $! End The P4 Check. | ||
796 | $! | ||
797 | $ ENDIF | ||
798 | $! | ||
799 | $! Check To See If P3 Is Blank. | ||
800 | $! | ||
801 | $ IF (P3.EQS."") | ||
802 | $ THEN | ||
803 | $! | ||
804 | $! O.K., The User Didn't Specify A Compiler, Let's Try To | ||
805 | $! Find Out Which One To Use. | ||
806 | $! | ||
807 | $! Check To See If We Have GNU C. | ||
808 | $! | ||
809 | $ IF (F$TRNLNM("GNU_CC").NES."") | ||
810 | $ THEN | ||
811 | $! | ||
812 | $! Looks Like GNUC, Set To Use GNUC. | ||
813 | $! | ||
814 | $ P3 = "GNUC" | ||
815 | $! | ||
816 | $! Else... | ||
817 | $! | ||
818 | $ ELSE | ||
819 | $! | ||
820 | $! Check To See If We Have VAXC Or DECC. | ||
821 | $! | ||
822 | $ IF (ARCH.NES."VAX").OR.(F$TRNLNM("DECC$CC_DEFAULT").NES."") | ||
823 | $ THEN | ||
824 | $! | ||
825 | $! Looks Like DECC, Set To Use DECC. | ||
826 | $! | ||
827 | $ P3 = "DECC" | ||
828 | $! | ||
829 | $! Else... | ||
830 | $! | ||
831 | $ ELSE | ||
832 | $! | ||
833 | $! Looks Like VAXC, Set To Use VAXC. | ||
834 | $! | ||
835 | $ P3 = "VAXC" | ||
836 | $! | ||
837 | $! End The VAXC Compiler Check. | ||
838 | $! | ||
839 | $ ENDIF | ||
840 | $! | ||
841 | $! End The DECC & VAXC Compiler Check. | ||
842 | $! | ||
843 | $ ENDIF | ||
844 | $! | ||
845 | $! End The Compiler Check. | ||
846 | $! | ||
847 | $ ENDIF | ||
848 | $! | ||
849 | $! Set Up Initial CC Definitions, Possibly With User Ones | ||
850 | $! | ||
851 | $ CCDEFS = "" | ||
852 | $ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = USER_CCDEFS | ||
853 | $ CCEXTRAFLAGS = "" | ||
854 | $ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS | ||
855 | $ CCDISABLEWARNINGS = "" | ||
856 | $ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN - | ||
857 | CCDISABLEWARNINGS = USER_CCDISABLEWARNINGS | ||
858 | $! | ||
859 | $! Check To See If The User Entered A Valid Paramter. | ||
860 | $! | ||
861 | $ IF (P3.EQS."VAXC").OR.(P3.EQS."DECC").OR.(P3.EQS."GNUC") | ||
862 | $ THEN | ||
863 | $! | ||
864 | $! Check To See If The User Wanted DECC. | ||
865 | $! | ||
866 | $ IF (P3.EQS."DECC") | ||
867 | $ THEN | ||
868 | $! | ||
869 | $! Looks Like DECC, Set To Use DECC. | ||
870 | $! | ||
871 | $ COMPILER = "DECC" | ||
872 | $! | ||
873 | $! Tell The User We Are Using DECC. | ||
874 | $! | ||
875 | $ WRITE SYS$OUTPUT "Using DECC 'C' Compiler." | ||
876 | $! | ||
877 | $! Use DECC... | ||
878 | $! | ||
879 | $ CC = "CC" | ||
880 | $ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" - | ||
881 | THEN CC = "CC/DECC" | ||
882 | $ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/STANDARD=ANSI89" + - | ||
883 | "/NOLIST/PREFIX=ALL" + CCEXTRAFLAGS | ||
884 | $! | ||
885 | $! Define The Linker Options File Name. | ||
886 | $! | ||
887 | $ OPT_FILE = "''EXE_DIR'VAX_DECC_OPTIONS.OPT" | ||
888 | $! | ||
889 | $! End DECC Check. | ||
890 | $! | ||
891 | $ ENDIF | ||
892 | $! | ||
893 | $! Check To See If We Are To Use VAXC. | ||
894 | $! | ||
895 | $ IF (P3.EQS."VAXC") | ||
896 | $ THEN | ||
897 | $! | ||
898 | $! Looks Like VAXC, Set To Use VAXC. | ||
899 | $! | ||
900 | $ COMPILER = "VAXC" | ||
901 | $! | ||
902 | $! Tell The User We Are Using VAX C. | ||
903 | $! | ||
904 | $ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler." | ||
905 | $! | ||
906 | $! Compile Using VAXC. | ||
907 | $! | ||
908 | $ CC = "CC" | ||
909 | $ IF ARCH.NES."VAX" | ||
910 | $ THEN | ||
911 | $ WRITE SYS$OUTPUT "There is no VAX C on ''ARCH'!" | ||
912 | $ EXIT | ||
913 | $ ENDIF | ||
914 | $ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC" | ||
915 | $ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + CCEXTRAFLAGS | ||
916 | $ CCDEFS = """VAXC""," + CCDEFS | ||
917 | $! | ||
918 | $! Define <sys> As SYS$COMMON:[SYSLIB] | ||
919 | $! | ||
920 | $ DEFINE/NOLOG SYS SYS$COMMON:[SYSLIB] | ||
921 | $! | ||
922 | $! Define The Linker Options File Name. | ||
923 | $! | ||
924 | $ OPT_FILE = "''EXE_DIR'VAX_VAXC_OPTIONS.OPT" | ||
925 | $! | ||
926 | $! End VAXC Check | ||
927 | $! | ||
928 | $ ENDIF | ||
929 | $! | ||
930 | $! Check To See If We Are To Use GNU C. | ||
931 | $! | ||
932 | $ IF (P3.EQS."GNUC") | ||
933 | $ THEN | ||
934 | $! | ||
935 | $! Looks Like GNUC, Set To Use GNUC. | ||
936 | $! | ||
937 | $ COMPILER = "GNUC" | ||
938 | $! | ||
939 | $! Tell The User We Are Using GNUC. | ||
940 | $! | ||
941 | $ WRITE SYS$OUTPUT "Using GNU 'C' Compiler." | ||
942 | $! | ||
943 | $! Use GNU C... | ||
944 | $! | ||
945 | $ CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + CCEXTRAFLAGS | ||
946 | $! | ||
947 | $! Define The Linker Options File Name. | ||
948 | $! | ||
949 | $ OPT_FILE = "''EXE_DIR'VAX_GNUC_OPTIONS.OPT" | ||
950 | $! | ||
951 | $! End The GNU C Check. | ||
952 | $! | ||
953 | $ ENDIF | ||
954 | $! | ||
955 | $! Set up default defines | ||
956 | $! | ||
957 | $ CCDEFS = """FLAT_INC=1""," + CCDEFS | ||
958 | $! | ||
959 | $! Finish up the definition of CC. | ||
960 | $! | ||
961 | $ IF COMPILER .EQS. "DECC" | ||
962 | $ THEN | ||
963 | $ IF CCDISABLEWARNINGS .EQS. "" | ||
964 | $ THEN | ||
965 | $ CC4DISABLEWARNINGS = "DOLLARID" | ||
966 | $ ELSE | ||
967 | $ CC4DISABLEWARNINGS = CCDISABLEWARNINGS + ",DOLLARID" | ||
968 | $ CCDISABLEWARNINGS = "/WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))" | ||
969 | $ ENDIF | ||
970 | $ CC4DISABLEWARNINGS = "/WARNING=(DISABLE=(" + CC4DISABLEWARNINGS + "))" | ||
971 | $ ELSE | ||
972 | $ CCDISABLEWARNINGS = "" | ||
973 | $ CC4DISABLEWARNINGS = "" | ||
974 | $ ENDIF | ||
975 | $ CC = CC + "/DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS | ||
976 | $! | ||
977 | $! Show user the result | ||
978 | $! | ||
979 | $ WRITE SYS$OUTPUT "Main Compiling Command: ",CC | ||
980 | $! | ||
981 | $! Else The User Entered An Invalid Argument. | ||
982 | $! | ||
983 | $ ELSE | ||
984 | $! | ||
985 | $! Tell The User We Don't Know What They Want. | ||
986 | $! | ||
987 | $ WRITE SYS$OUTPUT "" | ||
988 | $ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:" | ||
989 | $ WRITE SYS$OUTPUT "" | ||
990 | $ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C." | ||
991 | $ WRITE SYS$OUTPUT " DECC : To Compile With DEC C." | ||
992 | $ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C." | ||
993 | $ WRITE SYS$OUTPUT "" | ||
994 | $! | ||
995 | $! Time To EXIT. | ||
996 | $! | ||
997 | $ EXIT | ||
998 | $! | ||
999 | $! End The P3 Check. | ||
1000 | $! | ||
1001 | $ ENDIF | ||
1002 | $! | ||
1003 | $! Time To RETURN... | ||
1004 | $! | ||
1005 | $ RETURN | ||
diff --git a/src/lib/libssl/src/crypto/des/des.h b/src/lib/libssl/src/crypto/des/des.h index 23c8cfc901..1eaedcbd24 100644 --- a/src/lib/libssl/src/crypto/des/des.h +++ b/src/lib/libssl/src/crypto/des/des.h | |||
@@ -56,8 +56,8 @@ | |||
56 | * [including the GNU Public Licence.] | 56 | * [including the GNU Public Licence.] |
57 | */ | 57 | */ |
58 | 58 | ||
59 | #ifndef HEADER_DES_H | 59 | #ifndef HEADER_NEW_DES_H |
60 | #define HEADER_DES_H | 60 | #define HEADER_NEW_DES_H |
61 | 61 | ||
62 | #include <openssl/e_os2.h> /* OPENSSL_EXTERN, OPENSSL_NO_DES, | 62 | #include <openssl/e_os2.h> /* OPENSSL_EXTERN, OPENSSL_NO_DES, |
63 | DES_LONG (via openssl/opensslconf.h */ | 63 | DES_LONG (via openssl/opensslconf.h */ |
@@ -71,8 +71,6 @@ | |||
71 | # define OPENSSL_EXTERN OPENSSL_EXPORT | 71 | # define OPENSSL_EXTERN OPENSSL_EXPORT |
72 | #endif | 72 | #endif |
73 | 73 | ||
74 | #define des_SPtrans DES_SPtrans | ||
75 | |||
76 | #ifdef __cplusplus | 74 | #ifdef __cplusplus |
77 | extern "C" { | 75 | extern "C" { |
78 | #endif | 76 | #endif |
diff --git a/src/lib/libssl/src/crypto/des/des_old.h b/src/lib/libssl/src/crypto/des/des_old.h index 8665ba4e7e..2b2c372354 100644 --- a/src/lib/libssl/src/crypto/des/des_old.h +++ b/src/lib/libssl/src/crypto/des/des_old.h | |||
@@ -88,8 +88,8 @@ | |||
88 | * | 88 | * |
89 | */ | 89 | */ |
90 | 90 | ||
91 | #ifndef HEADER_DES_OLD_H | 91 | #ifndef HEADER_DES_H |
92 | #define HEADER_DES_OLD_H | 92 | #define HEADER_DES_H |
93 | 93 | ||
94 | #include <openssl/e_os2.h> /* OPENSSL_EXTERN, OPENSSL_NO_DES, DES_LONG */ | 94 | #include <openssl/e_os2.h> /* OPENSSL_EXTERN, OPENSSL_NO_DES, DES_LONG */ |
95 | 95 | ||
@@ -97,7 +97,7 @@ | |||
97 | #error DES is disabled. | 97 | #error DES is disabled. |
98 | #endif | 98 | #endif |
99 | 99 | ||
100 | #ifndef HEADER_DES_H | 100 | #ifndef HEADER_NEW_DES_H |
101 | #error You must include des.h, not des_old.h directly. | 101 | #error You must include des.h, not des_old.h directly. |
102 | #endif | 102 | #endif |
103 | 103 | ||
diff --git a/src/lib/libssl/src/crypto/des/set_key.c b/src/lib/libssl/src/crypto/des/set_key.c index d3e69ca8b5..da4d62e112 100644 --- a/src/lib/libssl/src/crypto/des/set_key.c +++ b/src/lib/libssl/src/crypto/des/set_key.c | |||
@@ -63,9 +63,8 @@ | |||
63 | * 1.1 added norm_expand_bits | 63 | * 1.1 added norm_expand_bits |
64 | * 1.0 First working version | 64 | * 1.0 First working version |
65 | */ | 65 | */ |
66 | #include "des_locl.h" | ||
67 | |||
68 | #include <openssl/crypto.h> | 66 | #include <openssl/crypto.h> |
67 | #include "des_locl.h" | ||
69 | 68 | ||
70 | OPENSSL_IMPLEMENT_GLOBAL(int,DES_check_key,0) /* defaults to false */ | 69 | OPENSSL_IMPLEMENT_GLOBAL(int,DES_check_key,0) /* defaults to false */ |
71 | 70 | ||
diff --git a/src/lib/libssl/src/crypto/des/str2key.c b/src/lib/libssl/src/crypto/des/str2key.c index 9c2054bda6..1077f99d1b 100644 --- a/src/lib/libssl/src/crypto/des/str2key.c +++ b/src/lib/libssl/src/crypto/des/str2key.c | |||
@@ -56,8 +56,8 @@ | |||
56 | * [including the GNU Public Licence.] | 56 | * [including the GNU Public Licence.] |
57 | */ | 57 | */ |
58 | 58 | ||
59 | #include "des_locl.h" | ||
60 | #include <openssl/crypto.h> | 59 | #include <openssl/crypto.h> |
60 | #include "des_locl.h" | ||
61 | 61 | ||
62 | void DES_string_to_key(const char *str, DES_cblock *key) | 62 | void DES_string_to_key(const char *str, DES_cblock *key) |
63 | { | 63 | { |
diff --git a/src/lib/libssl/src/crypto/dso/dso_dlfcn.c b/src/lib/libssl/src/crypto/dso/dso_dlfcn.c index e21b9f6dbc..5f351b318d 100644 --- a/src/lib/libssl/src/crypto/dso/dso_dlfcn.c +++ b/src/lib/libssl/src/crypto/dso/dso_dlfcn.c | |||
@@ -86,7 +86,7 @@ DSO_METHOD *DSO_METHOD_dlfcn(void) | |||
86 | # if defined(_AIX) || defined(__CYGWIN__) || \ | 86 | # if defined(_AIX) || defined(__CYGWIN__) || \ |
87 | defined(__SCO_VERSION__) || defined(_SCO_ELF) || \ | 87 | defined(__SCO_VERSION__) || defined(_SCO_ELF) || \ |
88 | (defined(__osf__) && !defined(RTLD_NEXT)) || \ | 88 | (defined(__osf__) && !defined(RTLD_NEXT)) || \ |
89 | (defined(__OpenBSD__) && (!defined(__ELF__) || !defined(RTLD_SELF))) || \ | 89 | (defined(__OpenBSD__) && !defined(RTLD_SELF)) || \ |
90 | defined(__ANDROID__) | 90 | defined(__ANDROID__) |
91 | # undef HAVE_DLINFO | 91 | # undef HAVE_DLINFO |
92 | # endif | 92 | # endif |
diff --git a/src/lib/libssl/src/crypto/ec/ec.h b/src/lib/libssl/src/crypto/ec/ec.h index 9d01325af3..dfe8710d33 100644 --- a/src/lib/libssl/src/crypto/ec/ec.h +++ b/src/lib/libssl/src/crypto/ec/ec.h | |||
@@ -274,10 +274,10 @@ int EC_GROUP_get_curve_name(const EC_GROUP *group); | |||
274 | void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag); | 274 | void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag); |
275 | int EC_GROUP_get_asn1_flag(const EC_GROUP *group); | 275 | int EC_GROUP_get_asn1_flag(const EC_GROUP *group); |
276 | 276 | ||
277 | void EC_GROUP_set_point_conversion_form(EC_GROUP *, point_conversion_form_t); | 277 | void EC_GROUP_set_point_conversion_form(EC_GROUP *group, point_conversion_form_t form); |
278 | point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP *); | 278 | point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP *); |
279 | 279 | ||
280 | unsigned char *EC_GROUP_get0_seed(const EC_GROUP *); | 280 | unsigned char *EC_GROUP_get0_seed(const EC_GROUP *x); |
281 | size_t EC_GROUP_get_seed_len(const EC_GROUP *); | 281 | size_t EC_GROUP_get_seed_len(const EC_GROUP *); |
282 | size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len); | 282 | size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len); |
283 | 283 | ||
@@ -626,8 +626,8 @@ int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point, BN_CTX *c | |||
626 | */ | 626 | */ |
627 | int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, BN_CTX *ctx); | 627 | int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, BN_CTX *ctx); |
628 | 628 | ||
629 | int EC_POINT_make_affine(const EC_GROUP *, EC_POINT *, BN_CTX *); | 629 | int EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx); |
630 | int EC_POINTs_make_affine(const EC_GROUP *, size_t num, EC_POINT *[], BN_CTX *); | 630 | int EC_POINTs_make_affine(const EC_GROUP *group, size_t num, EC_POINT *points[], BN_CTX *ctx); |
631 | 631 | ||
632 | /** Computes r = generator * n sum_{i=0}^num p[i] * m[i] | 632 | /** Computes r = generator * n sum_{i=0}^num p[i] * m[i] |
633 | * \param group underlying EC_GROUP object | 633 | * \param group underlying EC_GROUP object |
@@ -800,16 +800,24 @@ const EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key); | |||
800 | int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub); | 800 | int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub); |
801 | 801 | ||
802 | unsigned EC_KEY_get_enc_flags(const EC_KEY *key); | 802 | unsigned EC_KEY_get_enc_flags(const EC_KEY *key); |
803 | void EC_KEY_set_enc_flags(EC_KEY *, unsigned int); | 803 | void EC_KEY_set_enc_flags(EC_KEY *eckey, unsigned int flags); |
804 | point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *); | 804 | point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key); |
805 | void EC_KEY_set_conv_form(EC_KEY *, point_conversion_form_t); | 805 | void EC_KEY_set_conv_form(EC_KEY *eckey, point_conversion_form_t cform); |
806 | /* functions to set/get method specific data */ | 806 | /* functions to set/get method specific data */ |
807 | void *EC_KEY_get_key_method_data(EC_KEY *, | 807 | void *EC_KEY_get_key_method_data(EC_KEY *key, |
808 | void *(*dup_func)(void *), void (*free_func)(void *), void (*clear_free_func)(void *)); | 808 | void *(*dup_func)(void *), void (*free_func)(void *), void (*clear_free_func)(void *)); |
809 | void EC_KEY_insert_key_method_data(EC_KEY *, void *data, | 809 | /** Sets the key method data of an EC_KEY object, if none has yet been set. |
810 | * \param key EC_KEY object | ||
811 | * \param data opaque data to install. | ||
812 | * \param dup_func a function that duplicates |data|. | ||
813 | * \param free_func a function that frees |data|. | ||
814 | * \param clear_free_func a function that wipes and frees |data|. | ||
815 | * \return the previously set data pointer, or NULL if |data| was inserted. | ||
816 | */ | ||
817 | void *EC_KEY_insert_key_method_data(EC_KEY *key, void *data, | ||
810 | void *(*dup_func)(void *), void (*free_func)(void *), void (*clear_free_func)(void *)); | 818 | void *(*dup_func)(void *), void (*free_func)(void *), void (*clear_free_func)(void *)); |
811 | /* wrapper functions for the underlying EC_GROUP object */ | 819 | /* wrapper functions for the underlying EC_GROUP object */ |
812 | void EC_KEY_set_asn1_flag(EC_KEY *, int); | 820 | void EC_KEY_set_asn1_flag(EC_KEY *eckey, int asn1_flag); |
813 | 821 | ||
814 | /** Creates a table of pre-computed multiples of the generator to | 822 | /** Creates a table of pre-computed multiples of the generator to |
815 | * accelerate further EC_KEY operations. | 823 | * accelerate further EC_KEY operations. |
diff --git a/src/lib/libssl/src/crypto/ec/ec_lib.c b/src/lib/libssl/src/crypto/ec/ec_lib.c index 25247b5803..de9a0cc2b3 100644 --- a/src/lib/libssl/src/crypto/ec/ec_lib.c +++ b/src/lib/libssl/src/crypto/ec/ec_lib.c | |||
@@ -480,10 +480,10 @@ int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx) | |||
480 | if (EC_METHOD_get_field_type(EC_GROUP_method_of(a)) != | 480 | if (EC_METHOD_get_field_type(EC_GROUP_method_of(a)) != |
481 | EC_METHOD_get_field_type(EC_GROUP_method_of(b))) | 481 | EC_METHOD_get_field_type(EC_GROUP_method_of(b))) |
482 | return 1; | 482 | return 1; |
483 | /* compare the curve name (if present) */ | 483 | /* compare the curve name (if present in both) */ |
484 | if (EC_GROUP_get_curve_name(a) && EC_GROUP_get_curve_name(b) && | 484 | if (EC_GROUP_get_curve_name(a) && EC_GROUP_get_curve_name(b) && |
485 | EC_GROUP_get_curve_name(a) == EC_GROUP_get_curve_name(b)) | 485 | EC_GROUP_get_curve_name(a) != EC_GROUP_get_curve_name(b)) |
486 | return 0; | 486 | return 1; |
487 | 487 | ||
488 | if (!ctx) | 488 | if (!ctx) |
489 | ctx_new = ctx = BN_CTX_new(); | 489 | ctx_new = ctx = BN_CTX_new(); |
@@ -993,12 +993,12 @@ int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, BN | |||
993 | if (group->meth->point_cmp == 0) | 993 | if (group->meth->point_cmp == 0) |
994 | { | 994 | { |
995 | ECerr(EC_F_EC_POINT_CMP, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); | 995 | ECerr(EC_F_EC_POINT_CMP, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); |
996 | return 0; | 996 | return -1; |
997 | } | 997 | } |
998 | if ((group->meth != a->meth) || (a->meth != b->meth)) | 998 | if ((group->meth != a->meth) || (a->meth != b->meth)) |
999 | { | 999 | { |
1000 | ECerr(EC_F_EC_POINT_CMP, EC_R_INCOMPATIBLE_OBJECTS); | 1000 | ECerr(EC_F_EC_POINT_CMP, EC_R_INCOMPATIBLE_OBJECTS); |
1001 | return 0; | 1001 | return -1; |
1002 | } | 1002 | } |
1003 | return group->meth->point_cmp(group, a, b, ctx); | 1003 | return group->meth->point_cmp(group, a, b, ctx); |
1004 | } | 1004 | } |
diff --git a/src/lib/libssl/src/crypto/ec/ecp_mont.c b/src/lib/libssl/src/crypto/ec/ecp_mont.c index 079e47431b..f04f132c7a 100644 --- a/src/lib/libssl/src/crypto/ec/ecp_mont.c +++ b/src/lib/libssl/src/crypto/ec/ecp_mont.c | |||
@@ -114,7 +114,6 @@ const EC_METHOD *EC_GFp_mont_method(void) | |||
114 | ec_GFp_mont_field_decode, | 114 | ec_GFp_mont_field_decode, |
115 | ec_GFp_mont_field_set_to_one }; | 115 | ec_GFp_mont_field_set_to_one }; |
116 | 116 | ||
117 | |||
118 | return &ret; | 117 | return &ret; |
119 | #endif | 118 | #endif |
120 | } | 119 | } |
diff --git a/src/lib/libssl/src/crypto/ec/ectest.c b/src/lib/libssl/src/crypto/ec/ectest.c index f107782de0..102eaa9b23 100644 --- a/src/lib/libssl/src/crypto/ec/ectest.c +++ b/src/lib/libssl/src/crypto/ec/ectest.c | |||
@@ -236,7 +236,7 @@ static void group_order_tests(EC_GROUP *group) | |||
236 | } | 236 | } |
237 | 237 | ||
238 | static void prime_field_tests(void) | 238 | static void prime_field_tests(void) |
239 | { | 239 | { |
240 | BN_CTX *ctx = NULL; | 240 | BN_CTX *ctx = NULL; |
241 | BIGNUM *p, *a, *b; | 241 | BIGNUM *p, *a, *b; |
242 | EC_GROUP *group; | 242 | EC_GROUP *group; |
diff --git a/src/lib/libssl/src/crypto/ecdh/Makefile b/src/lib/libssl/src/crypto/ecdh/Makefile index 65d8904ee8..ba05fea05c 100644 --- a/src/lib/libssl/src/crypto/ecdh/Makefile +++ b/src/lib/libssl/src/crypto/ecdh/Makefile | |||
@@ -84,17 +84,12 @@ ech_err.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h | |||
84 | ech_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h | 84 | ech_err.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h |
85 | ech_err.o: ech_err.c | 85 | ech_err.o: ech_err.c |
86 | ech_key.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h | 86 | ech_key.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h |
87 | ech_key.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h | 87 | ech_key.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h |
88 | ech_key.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h | 88 | ech_key.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h |
89 | ech_key.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h | 89 | ech_key.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h |
90 | ech_key.o: ../../include/openssl/engine.h ../../include/openssl/evp.h | 90 | ech_key.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h |
91 | ech_key.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h | 91 | ech_key.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h |
92 | ech_key.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h | 92 | ech_key.o: ech_key.c ech_locl.h |
93 | ech_key.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h | ||
94 | ech_key.o: ../../include/openssl/pkcs7.h ../../include/openssl/safestack.h | ||
95 | ech_key.o: ../../include/openssl/sha.h ../../include/openssl/stack.h | ||
96 | ech_key.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h | ||
97 | ech_key.o: ../../include/openssl/x509_vfy.h ech_key.c ech_locl.h | ||
98 | ech_lib.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h | 93 | ech_lib.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h |
99 | ech_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h | 94 | ech_lib.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h |
100 | ech_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h | 95 | ech_lib.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h |
diff --git a/src/lib/libssl/src/crypto/engine/eng_all.c b/src/lib/libssl/src/crypto/engine/eng_all.c index 0ae5d672b1..6093376df4 100644 --- a/src/lib/libssl/src/crypto/engine/eng_all.c +++ b/src/lib/libssl/src/crypto/engine/eng_all.c | |||
@@ -73,7 +73,6 @@ void ENGINE_load_builtin_engines(void) | |||
73 | #if !defined(OPENSSL_NO_HW) && (defined(__OpenBSD__) || defined(__FreeBSD__) || defined(HAVE_CRYPTODEV)) | 73 | #if !defined(OPENSSL_NO_HW) && (defined(__OpenBSD__) || defined(__FreeBSD__) || defined(HAVE_CRYPTODEV)) |
74 | ENGINE_load_cryptodev(); | 74 | ENGINE_load_cryptodev(); |
75 | #endif | 75 | #endif |
76 | |||
77 | #ifndef OPENSSL_NO_RSAX | 76 | #ifndef OPENSSL_NO_RSAX |
78 | ENGINE_load_rsax(); | 77 | ENGINE_load_rsax(); |
79 | #endif | 78 | #endif |
diff --git a/src/lib/libssl/src/crypto/engine/eng_list.c b/src/lib/libssl/src/crypto/engine/eng_list.c index 27846edb1e..95c858960b 100644 --- a/src/lib/libssl/src/crypto/engine/eng_list.c +++ b/src/lib/libssl/src/crypto/engine/eng_list.c | |||
@@ -408,6 +408,7 @@ ENGINE *ENGINE_by_id(const char *id) | |||
408 | !ENGINE_ctrl_cmd_string(iterator, "DIR_LOAD", "2", 0) || | 408 | !ENGINE_ctrl_cmd_string(iterator, "DIR_LOAD", "2", 0) || |
409 | !ENGINE_ctrl_cmd_string(iterator, "DIR_ADD", | 409 | !ENGINE_ctrl_cmd_string(iterator, "DIR_ADD", |
410 | load_dir, 0) || | 410 | load_dir, 0) || |
411 | !ENGINE_ctrl_cmd_string(iterator, "LIST_ADD", "1", 0) || | ||
411 | !ENGINE_ctrl_cmd_string(iterator, "LOAD", NULL, 0)) | 412 | !ENGINE_ctrl_cmd_string(iterator, "LOAD", NULL, 0)) |
412 | goto notfound; | 413 | goto notfound; |
413 | return iterator; | 414 | return iterator; |
diff --git a/src/lib/libssl/src/crypto/err/err_all.c b/src/lib/libssl/src/crypto/err/err_all.c index bd8946d8ba..8eb547d98d 100644 --- a/src/lib/libssl/src/crypto/err/err_all.c +++ b/src/lib/libssl/src/crypto/err/err_all.c | |||
@@ -64,7 +64,9 @@ | |||
64 | #endif | 64 | #endif |
65 | #include <openssl/buffer.h> | 65 | #include <openssl/buffer.h> |
66 | #include <openssl/bio.h> | 66 | #include <openssl/bio.h> |
67 | #ifndef OPENSSL_NO_COMP | ||
67 | #include <openssl/comp.h> | 68 | #include <openssl/comp.h> |
69 | #endif | ||
68 | #ifndef OPENSSL_NO_RSA | 70 | #ifndef OPENSSL_NO_RSA |
69 | #include <openssl/rsa.h> | 71 | #include <openssl/rsa.h> |
70 | #endif | 72 | #endif |
@@ -95,6 +97,9 @@ | |||
95 | #include <openssl/ui.h> | 97 | #include <openssl/ui.h> |
96 | #include <openssl/ocsp.h> | 98 | #include <openssl/ocsp.h> |
97 | #include <openssl/err.h> | 99 | #include <openssl/err.h> |
100 | #ifdef OPENSSL_FIPS | ||
101 | #include <openssl/fips.h> | ||
102 | #endif | ||
98 | #include <openssl/ts.h> | 103 | #include <openssl/ts.h> |
99 | #ifndef OPENSSL_NO_CMS | 104 | #ifndef OPENSSL_NO_CMS |
100 | #include <openssl/cms.h> | 105 | #include <openssl/cms.h> |
@@ -102,11 +107,6 @@ | |||
102 | #ifndef OPENSSL_NO_JPAKE | 107 | #ifndef OPENSSL_NO_JPAKE |
103 | #include <openssl/jpake.h> | 108 | #include <openssl/jpake.h> |
104 | #endif | 109 | #endif |
105 | #include <openssl/comp.h> | ||
106 | |||
107 | #ifdef OPENSSL_FIPS | ||
108 | #include <openssl/fips.h> | ||
109 | #endif | ||
110 | 110 | ||
111 | void ERR_load_crypto_strings(void) | 111 | void ERR_load_crypto_strings(void) |
112 | { | 112 | { |
@@ -130,7 +130,9 @@ void ERR_load_crypto_strings(void) | |||
130 | ERR_load_ASN1_strings(); | 130 | ERR_load_ASN1_strings(); |
131 | ERR_load_CONF_strings(); | 131 | ERR_load_CONF_strings(); |
132 | ERR_load_CRYPTO_strings(); | 132 | ERR_load_CRYPTO_strings(); |
133 | #ifndef OPENSSL_NO_COMP | ||
133 | ERR_load_COMP_strings(); | 134 | ERR_load_COMP_strings(); |
135 | #endif | ||
134 | #ifndef OPENSSL_NO_EC | 136 | #ifndef OPENSSL_NO_EC |
135 | ERR_load_EC_strings(); | 137 | ERR_load_EC_strings(); |
136 | #endif | 138 | #endif |
@@ -153,15 +155,14 @@ void ERR_load_crypto_strings(void) | |||
153 | #endif | 155 | #endif |
154 | ERR_load_OCSP_strings(); | 156 | ERR_load_OCSP_strings(); |
155 | ERR_load_UI_strings(); | 157 | ERR_load_UI_strings(); |
158 | #ifdef OPENSSL_FIPS | ||
159 | ERR_load_FIPS_strings(); | ||
160 | #endif | ||
156 | #ifndef OPENSSL_NO_CMS | 161 | #ifndef OPENSSL_NO_CMS |
157 | ERR_load_CMS_strings(); | 162 | ERR_load_CMS_strings(); |
158 | #endif | 163 | #endif |
159 | #ifndef OPENSSL_NO_JPAKE | 164 | #ifndef OPENSSL_NO_JPAKE |
160 | ERR_load_JPAKE_strings(); | 165 | ERR_load_JPAKE_strings(); |
161 | #endif | 166 | #endif |
162 | ERR_load_COMP_strings(); | ||
163 | #endif | ||
164 | #ifdef OPENSSL_FIPS | ||
165 | ERR_load_FIPS_strings(); | ||
166 | #endif | 167 | #endif |
167 | } | 168 | } |
diff --git a/src/lib/libssl/src/crypto/evp/Makefile b/src/lib/libssl/src/crypto/evp/Makefile index 0fe1b96bff..0447b442bc 100644 --- a/src/lib/libssl/src/crypto/evp/Makefile +++ b/src/lib/libssl/src/crypto/evp/Makefile | |||
@@ -67,7 +67,7 @@ files: | |||
67 | links: | 67 | links: |
68 | @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER) | 68 | @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER) |
69 | @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST) | 69 | @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST) |
70 | cp $(TESTDATA) ../../test | 70 | @[ -f $(TESTDATA) ] && cp $(TESTDATA) ../../test && echo "$(TESTDATA) -> ../../test/$(TESTDATA)" |
71 | @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS) | 71 | @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS) |
72 | 72 | ||
73 | install: | 73 | install: |
@@ -356,6 +356,20 @@ evp_acnf.o: ../../include/openssl/opensslconf.h | |||
356 | evp_acnf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h | 356 | evp_acnf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h |
357 | evp_acnf.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h | 357 | evp_acnf.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h |
358 | evp_acnf.o: ../../include/openssl/symhacks.h ../cryptlib.h evp_acnf.c | 358 | evp_acnf.o: ../../include/openssl/symhacks.h ../cryptlib.h evp_acnf.c |
359 | evp_cnf.o: ../../e_os.h ../../include/openssl/asn1.h | ||
360 | evp_cnf.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h | ||
361 | evp_cnf.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h | ||
362 | evp_cnf.o: ../../include/openssl/dso.h ../../include/openssl/e_os2.h | ||
363 | evp_cnf.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h | ||
364 | evp_cnf.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h | ||
365 | evp_cnf.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h | ||
366 | evp_cnf.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h | ||
367 | evp_cnf.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h | ||
368 | evp_cnf.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h | ||
369 | evp_cnf.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h | ||
370 | evp_cnf.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h | ||
371 | evp_cnf.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h | ||
372 | evp_cnf.o: ../../include/openssl/x509v3.h ../cryptlib.h evp_cnf.c | ||
359 | evp_enc.o: ../../e_os.h ../../include/openssl/asn1.h | 373 | evp_enc.o: ../../e_os.h ../../include/openssl/asn1.h |
360 | evp_enc.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h | 374 | evp_enc.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h |
361 | evp_enc.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h | 375 | evp_enc.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h |
@@ -437,28 +451,22 @@ evp_pkey.o: ../asn1/asn1_locl.h ../cryptlib.h evp_pkey.c | |||
437 | m_dss.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h | 451 | m_dss.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h |
438 | m_dss.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h | 452 | m_dss.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h |
439 | m_dss.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h | 453 | m_dss.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h |
440 | m_dss.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h | 454 | m_dss.o: ../../include/openssl/err.h ../../include/openssl/evp.h |
441 | m_dss.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h | 455 | m_dss.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h |
442 | m_dss.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h | 456 | m_dss.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h |
443 | m_dss.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h | 457 | m_dss.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h |
444 | m_dss.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h | ||
445 | m_dss.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h | ||
446 | m_dss.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h | 458 | m_dss.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h |
447 | m_dss.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h | 459 | m_dss.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h |
448 | m_dss.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h | ||
449 | m_dss.o: ../cryptlib.h m_dss.c | 460 | m_dss.o: ../cryptlib.h m_dss.c |
450 | m_dss1.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h | 461 | m_dss1.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h |
451 | m_dss1.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h | 462 | m_dss1.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h |
452 | m_dss1.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h | 463 | m_dss1.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h |
453 | m_dss1.o: ../../include/openssl/ec.h ../../include/openssl/ecdh.h | 464 | m_dss1.o: ../../include/openssl/err.h ../../include/openssl/evp.h |
454 | m_dss1.o: ../../include/openssl/ecdsa.h ../../include/openssl/err.h | 465 | m_dss1.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h |
455 | m_dss1.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h | 466 | m_dss1.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h |
456 | m_dss1.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h | 467 | m_dss1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h |
457 | m_dss1.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h | ||
458 | m_dss1.o: ../../include/openssl/ossl_typ.h ../../include/openssl/pkcs7.h | ||
459 | m_dss1.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h | 468 | m_dss1.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h |
460 | m_dss1.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h | 469 | m_dss1.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h |
461 | m_dss1.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h | ||
462 | m_dss1.o: ../cryptlib.h m_dss1.c | 470 | m_dss1.o: ../cryptlib.h m_dss1.c |
463 | m_ecdsa.o: ../../e_os.h ../../include/openssl/asn1.h | 471 | m_ecdsa.o: ../../e_os.h ../../include/openssl/asn1.h |
464 | m_ecdsa.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h | 472 | m_ecdsa.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h |
@@ -563,16 +571,13 @@ m_sha.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h | |||
563 | m_sha.o: ../cryptlib.h evp_locl.h m_sha.c | 571 | m_sha.o: ../cryptlib.h evp_locl.h m_sha.c |
564 | m_sha1.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h | 572 | m_sha1.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h |
565 | m_sha1.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h | 573 | m_sha1.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h |
566 | m_sha1.o: ../../include/openssl/e_os2.h ../../include/openssl/ec.h | 574 | m_sha1.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h |
567 | m_sha1.o: ../../include/openssl/ecdh.h ../../include/openssl/ecdsa.h | 575 | m_sha1.o: ../../include/openssl/evp.h ../../include/openssl/lhash.h |
568 | m_sha1.o: ../../include/openssl/err.h ../../include/openssl/evp.h | 576 | m_sha1.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h |
569 | m_sha1.o: ../../include/openssl/lhash.h ../../include/openssl/obj_mac.h | 577 | m_sha1.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h |
570 | m_sha1.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h | 578 | m_sha1.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rsa.h |
571 | m_sha1.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h | ||
572 | m_sha1.o: ../../include/openssl/pkcs7.h ../../include/openssl/rsa.h | ||
573 | m_sha1.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h | 579 | m_sha1.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h |
574 | m_sha1.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h | 580 | m_sha1.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h |
575 | m_sha1.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h | ||
576 | m_sha1.o: ../cryptlib.h m_sha1.c | 581 | m_sha1.o: ../cryptlib.h m_sha1.c |
577 | m_sigver.o: ../../e_os.h ../../include/openssl/asn1.h | 582 | m_sigver.o: ../../e_os.h ../../include/openssl/asn1.h |
578 | m_sigver.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h | 583 | m_sigver.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h |
diff --git a/src/lib/libssl/src/crypto/evp/bio_b64.c b/src/lib/libssl/src/crypto/evp/bio_b64.c index 72a2a67277..ac6d441aad 100644 --- a/src/lib/libssl/src/crypto/evp/bio_b64.c +++ b/src/lib/libssl/src/crypto/evp/bio_b64.c | |||
@@ -264,7 +264,7 @@ static int b64_read(BIO *b, char *out, int outl) | |||
264 | } | 264 | } |
265 | 265 | ||
266 | /* we fell off the end without starting */ | 266 | /* we fell off the end without starting */ |
267 | if (j == i) | 267 | if ((j == i) && (num == 0)) |
268 | { | 268 | { |
269 | /* Is this is one long chunk?, if so, keep on | 269 | /* Is this is one long chunk?, if so, keep on |
270 | * reading until a new line. */ | 270 | * reading until a new line. */ |
diff --git a/src/lib/libssl/src/crypto/evp/digest.c b/src/lib/libssl/src/crypto/evp/digest.c index 467e6b5ae9..d14e8e48d5 100644 --- a/src/lib/libssl/src/crypto/evp/digest.c +++ b/src/lib/libssl/src/crypto/evp/digest.c | |||
@@ -267,6 +267,7 @@ int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *size) | |||
267 | return FIPS_digestfinal(ctx, md, size); | 267 | return FIPS_digestfinal(ctx, md, size); |
268 | #else | 268 | #else |
269 | int ret; | 269 | int ret; |
270 | |||
270 | OPENSSL_assert(ctx->digest->md_size <= EVP_MAX_MD_SIZE); | 271 | OPENSSL_assert(ctx->digest->md_size <= EVP_MAX_MD_SIZE); |
271 | ret=ctx->digest->final(ctx,md); | 272 | ret=ctx->digest->final(ctx,md); |
272 | if (size != NULL) | 273 | if (size != NULL) |
@@ -365,8 +366,11 @@ int EVP_Digest(const void *data, size_t count, | |||
365 | 366 | ||
366 | void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx) | 367 | void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx) |
367 | { | 368 | { |
368 | EVP_MD_CTX_cleanup(ctx); | 369 | if (ctx) |
369 | OPENSSL_free(ctx); | 370 | { |
371 | EVP_MD_CTX_cleanup(ctx); | ||
372 | OPENSSL_free(ctx); | ||
373 | } | ||
370 | } | 374 | } |
371 | 375 | ||
372 | /* This call frees resources associated with the context */ | 376 | /* This call frees resources associated with the context */ |
diff --git a/src/lib/libssl/src/crypto/evp/e_aes.c b/src/lib/libssl/src/crypto/evp/e_aes.c index 1e4af0cb75..c7869b69ef 100644 --- a/src/lib/libssl/src/crypto/evp/e_aes.c +++ b/src/lib/libssl/src/crypto/evp/e_aes.c | |||
@@ -842,7 +842,10 @@ static int aes_gcm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, | |||
842 | gctx->ctr = NULL; | 842 | gctx->ctr = NULL; |
843 | break; | 843 | break; |
844 | } | 844 | } |
845 | else | ||
845 | #endif | 846 | #endif |
847 | (void)0; /* terminate potentially open 'else' */ | ||
848 | |||
846 | AES_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks); | 849 | AES_set_encrypt_key(key, ctx->key_len * 8, &gctx->ks); |
847 | CRYPTO_gcm128_init(&gctx->gcm, &gctx->ks, (block128_f)AES_encrypt); | 850 | CRYPTO_gcm128_init(&gctx->gcm, &gctx->ks, (block128_f)AES_encrypt); |
848 | #ifdef AES_CTR_ASM | 851 | #ifdef AES_CTR_ASM |
@@ -969,8 +972,6 @@ static int aes_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, | |||
969 | 972 | ||
970 | if (!gctx->iv_set) | 973 | if (!gctx->iv_set) |
971 | return -1; | 974 | return -1; |
972 | if (!ctx->encrypt && gctx->taglen < 0) | ||
973 | return -1; | ||
974 | if (in) | 975 | if (in) |
975 | { | 976 | { |
976 | if (out == NULL) | 977 | if (out == NULL) |
@@ -1012,6 +1013,8 @@ static int aes_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, | |||
1012 | { | 1013 | { |
1013 | if (!ctx->encrypt) | 1014 | if (!ctx->encrypt) |
1014 | { | 1015 | { |
1016 | if (gctx->taglen < 0) | ||
1017 | return -1; | ||
1015 | if (CRYPTO_gcm128_finish(&gctx->gcm, | 1018 | if (CRYPTO_gcm128_finish(&gctx->gcm, |
1016 | ctx->buf, gctx->taglen) != 0) | 1019 | ctx->buf, gctx->taglen) != 0) |
1017 | return -1; | 1020 | return -1; |
@@ -1083,14 +1086,17 @@ static int aes_xts_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, | |||
1083 | xctx->xts.block1 = (block128_f)vpaes_decrypt; | 1086 | xctx->xts.block1 = (block128_f)vpaes_decrypt; |
1084 | } | 1087 | } |
1085 | 1088 | ||
1086 | vpaes_set_encrypt_key(key + ctx->key_len/2, | 1089 | vpaes_set_encrypt_key(key + ctx->key_len/2, |
1087 | ctx->key_len * 4, &xctx->ks2); | 1090 | ctx->key_len * 4, &xctx->ks2); |
1088 | xctx->xts.block2 = (block128_f)vpaes_encrypt; | 1091 | xctx->xts.block2 = (block128_f)vpaes_encrypt; |
1089 | 1092 | ||
1090 | xctx->xts.key1 = &xctx->ks1; | 1093 | xctx->xts.key1 = &xctx->ks1; |
1091 | break; | 1094 | break; |
1092 | } | 1095 | } |
1096 | else | ||
1093 | #endif | 1097 | #endif |
1098 | (void)0; /* terminate potentially open 'else' */ | ||
1099 | |||
1094 | if (enc) | 1100 | if (enc) |
1095 | { | 1101 | { |
1096 | AES_set_encrypt_key(key, ctx->key_len * 4, &xctx->ks1); | 1102 | AES_set_encrypt_key(key, ctx->key_len * 4, &xctx->ks1); |
@@ -1217,6 +1223,7 @@ static int aes_ccm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key, | |||
1217 | vpaes_set_encrypt_key(key, ctx->key_len*8, &cctx->ks); | 1223 | vpaes_set_encrypt_key(key, ctx->key_len*8, &cctx->ks); |
1218 | CRYPTO_ccm128_init(&cctx->ccm, cctx->M, cctx->L, | 1224 | CRYPTO_ccm128_init(&cctx->ccm, cctx->M, cctx->L, |
1219 | &cctx->ks, (block128_f)vpaes_encrypt); | 1225 | &cctx->ks, (block128_f)vpaes_encrypt); |
1226 | cctx->str = NULL; | ||
1220 | cctx->key_set = 1; | 1227 | cctx->key_set = 1; |
1221 | break; | 1228 | break; |
1222 | } | 1229 | } |
diff --git a/src/lib/libssl/src/crypto/evp/e_aes_cbc_hmac_sha1.c b/src/lib/libssl/src/crypto/evp/e_aes_cbc_hmac_sha1.c index 483e04b605..fb2c884a78 100644 --- a/src/lib/libssl/src/crypto/evp/e_aes_cbc_hmac_sha1.c +++ b/src/lib/libssl/src/crypto/evp/e_aes_cbc_hmac_sha1.c | |||
@@ -328,10 +328,11 @@ static int aesni_cbc_hmac_sha1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, | |||
328 | 328 | ||
329 | if (res!=SHA_CBLOCK) continue; | 329 | if (res!=SHA_CBLOCK) continue; |
330 | 330 | ||
331 | mask = 0-((inp_len+8-j)>>(sizeof(j)*8-1)); | 331 | /* j is not incremented yet */ |
332 | mask = 0-((inp_len+7-j)>>(sizeof(j)*8-1)); | ||
332 | data->u[SHA_LBLOCK-1] |= bitlen&mask; | 333 | data->u[SHA_LBLOCK-1] |= bitlen&mask; |
333 | sha1_block_data_order(&key->md,data,1); | 334 | sha1_block_data_order(&key->md,data,1); |
334 | mask &= 0-((j-inp_len-73)>>(sizeof(j)*8-1)); | 335 | mask &= 0-((j-inp_len-72)>>(sizeof(j)*8-1)); |
335 | pmac->u[0] |= key->md.h0 & mask; | 336 | pmac->u[0] |= key->md.h0 & mask; |
336 | pmac->u[1] |= key->md.h1 & mask; | 337 | pmac->u[1] |= key->md.h1 & mask; |
337 | pmac->u[2] |= key->md.h2 & mask; | 338 | pmac->u[2] |= key->md.h2 & mask; |
diff --git a/src/lib/libssl/src/crypto/evp/e_des3.c b/src/lib/libssl/src/crypto/evp/e_des3.c index 1e69972662..8d7b7de292 100644 --- a/src/lib/libssl/src/crypto/evp/e_des3.c +++ b/src/lib/libssl/src/crypto/evp/e_des3.c | |||
@@ -101,7 +101,7 @@ static int des_ede_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, | |||
101 | static int des_ede_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, | 101 | static int des_ede_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, |
102 | const unsigned char *in, size_t inl) | 102 | const unsigned char *in, size_t inl) |
103 | { | 103 | { |
104 | if (inl>=EVP_MAXCHUNK) | 104 | while (inl>=EVP_MAXCHUNK) |
105 | { | 105 | { |
106 | DES_ede3_ofb64_encrypt(in, out, (long)EVP_MAXCHUNK, | 106 | DES_ede3_ofb64_encrypt(in, out, (long)EVP_MAXCHUNK, |
107 | &data(ctx)->ks1, &data(ctx)->ks2, &data(ctx)->ks3, | 107 | &data(ctx)->ks1, &data(ctx)->ks2, &data(ctx)->ks3, |
@@ -132,7 +132,7 @@ static int des_ede_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, | |||
132 | printf("\n"); | 132 | printf("\n"); |
133 | } | 133 | } |
134 | #endif /* KSSL_DEBUG */ | 134 | #endif /* KSSL_DEBUG */ |
135 | if (inl>=EVP_MAXCHUNK) | 135 | while (inl>=EVP_MAXCHUNK) |
136 | { | 136 | { |
137 | DES_ede3_cbc_encrypt(in, out, (long)EVP_MAXCHUNK, | 137 | DES_ede3_cbc_encrypt(in, out, (long)EVP_MAXCHUNK, |
138 | &data(ctx)->ks1, &data(ctx)->ks2, &data(ctx)->ks3, | 138 | &data(ctx)->ks1, &data(ctx)->ks2, &data(ctx)->ks3, |
@@ -151,7 +151,7 @@ static int des_ede_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, | |||
151 | static int des_ede_cfb64_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, | 151 | static int des_ede_cfb64_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, |
152 | const unsigned char *in, size_t inl) | 152 | const unsigned char *in, size_t inl) |
153 | { | 153 | { |
154 | if (inl>=EVP_MAXCHUNK) | 154 | while (inl>=EVP_MAXCHUNK) |
155 | { | 155 | { |
156 | DES_ede3_cfb64_encrypt(in, out, (long)EVP_MAXCHUNK, | 156 | DES_ede3_cfb64_encrypt(in, out, (long)EVP_MAXCHUNK, |
157 | &data(ctx)->ks1, &data(ctx)->ks2, &data(ctx)->ks3, | 157 | &data(ctx)->ks1, &data(ctx)->ks2, &data(ctx)->ks3, |
diff --git a/src/lib/libssl/src/crypto/evp/evp.h b/src/lib/libssl/src/crypto/evp/evp.h index 3b1fa87576..faeb3c24e6 100644 --- a/src/lib/libssl/src/crypto/evp/evp.h +++ b/src/lib/libssl/src/crypto/evp/evp.h | |||
@@ -788,8 +788,8 @@ const EVP_CIPHER *EVP_aes_128_cfb128(void); | |||
788 | # define EVP_aes_128_cfb EVP_aes_128_cfb128 | 788 | # define EVP_aes_128_cfb EVP_aes_128_cfb128 |
789 | const EVP_CIPHER *EVP_aes_128_ofb(void); | 789 | const EVP_CIPHER *EVP_aes_128_ofb(void); |
790 | const EVP_CIPHER *EVP_aes_128_ctr(void); | 790 | const EVP_CIPHER *EVP_aes_128_ctr(void); |
791 | const EVP_CIPHER *EVP_aes_128_gcm(void); | ||
792 | const EVP_CIPHER *EVP_aes_128_ccm(void); | 791 | const EVP_CIPHER *EVP_aes_128_ccm(void); |
792 | const EVP_CIPHER *EVP_aes_128_gcm(void); | ||
793 | const EVP_CIPHER *EVP_aes_128_xts(void); | 793 | const EVP_CIPHER *EVP_aes_128_xts(void); |
794 | const EVP_CIPHER *EVP_aes_192_ecb(void); | 794 | const EVP_CIPHER *EVP_aes_192_ecb(void); |
795 | const EVP_CIPHER *EVP_aes_192_cbc(void); | 795 | const EVP_CIPHER *EVP_aes_192_cbc(void); |
@@ -799,8 +799,8 @@ const EVP_CIPHER *EVP_aes_192_cfb128(void); | |||
799 | # define EVP_aes_192_cfb EVP_aes_192_cfb128 | 799 | # define EVP_aes_192_cfb EVP_aes_192_cfb128 |
800 | const EVP_CIPHER *EVP_aes_192_ofb(void); | 800 | const EVP_CIPHER *EVP_aes_192_ofb(void); |
801 | const EVP_CIPHER *EVP_aes_192_ctr(void); | 801 | const EVP_CIPHER *EVP_aes_192_ctr(void); |
802 | const EVP_CIPHER *EVP_aes_192_gcm(void); | ||
803 | const EVP_CIPHER *EVP_aes_192_ccm(void); | 802 | const EVP_CIPHER *EVP_aes_192_ccm(void); |
803 | const EVP_CIPHER *EVP_aes_192_gcm(void); | ||
804 | const EVP_CIPHER *EVP_aes_256_ecb(void); | 804 | const EVP_CIPHER *EVP_aes_256_ecb(void); |
805 | const EVP_CIPHER *EVP_aes_256_cbc(void); | 805 | const EVP_CIPHER *EVP_aes_256_cbc(void); |
806 | const EVP_CIPHER *EVP_aes_256_cfb1(void); | 806 | const EVP_CIPHER *EVP_aes_256_cfb1(void); |
@@ -809,8 +809,8 @@ const EVP_CIPHER *EVP_aes_256_cfb128(void); | |||
809 | # define EVP_aes_256_cfb EVP_aes_256_cfb128 | 809 | # define EVP_aes_256_cfb EVP_aes_256_cfb128 |
810 | const EVP_CIPHER *EVP_aes_256_ofb(void); | 810 | const EVP_CIPHER *EVP_aes_256_ofb(void); |
811 | const EVP_CIPHER *EVP_aes_256_ctr(void); | 811 | const EVP_CIPHER *EVP_aes_256_ctr(void); |
812 | const EVP_CIPHER *EVP_aes_256_gcm(void); | ||
813 | const EVP_CIPHER *EVP_aes_256_ccm(void); | 812 | const EVP_CIPHER *EVP_aes_256_ccm(void); |
813 | const EVP_CIPHER *EVP_aes_256_gcm(void); | ||
814 | const EVP_CIPHER *EVP_aes_256_xts(void); | 814 | const EVP_CIPHER *EVP_aes_256_xts(void); |
815 | #if !defined(OPENSSL_NO_SHA) && !defined(OPENSSL_NO_SHA1) | 815 | #if !defined(OPENSSL_NO_SHA) && !defined(OPENSSL_NO_SHA1) |
816 | const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha1(void); | 816 | const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha1(void); |
@@ -1242,6 +1242,8 @@ void EVP_PKEY_meth_set_ctrl(EVP_PKEY_METHOD *pmeth, | |||
1242 | int (*ctrl_str)(EVP_PKEY_CTX *ctx, | 1242 | int (*ctrl_str)(EVP_PKEY_CTX *ctx, |
1243 | const char *type, const char *value)); | 1243 | const char *type, const char *value)); |
1244 | 1244 | ||
1245 | void EVP_add_alg_module(void); | ||
1246 | |||
1245 | /* BEGIN ERROR CODES */ | 1247 | /* BEGIN ERROR CODES */ |
1246 | /* The following lines are auto generated by the script mkerr.pl. Any changes | 1248 | /* The following lines are auto generated by the script mkerr.pl. Any changes |
1247 | * made after this point may be overwritten when the script is next run. | 1249 | * made after this point may be overwritten when the script is next run. |
@@ -1256,6 +1258,7 @@ void ERR_load_EVP_strings(void); | |||
1256 | #define EVP_F_AES_INIT_KEY 133 | 1258 | #define EVP_F_AES_INIT_KEY 133 |
1257 | #define EVP_F_AES_XTS 172 | 1259 | #define EVP_F_AES_XTS 172 |
1258 | #define EVP_F_AES_XTS_CIPHER 175 | 1260 | #define EVP_F_AES_XTS_CIPHER 175 |
1261 | #define EVP_F_ALG_MODULE_INIT 177 | ||
1259 | #define EVP_F_CAMELLIA_INIT_KEY 159 | 1262 | #define EVP_F_CAMELLIA_INIT_KEY 159 |
1260 | #define EVP_F_CMAC_INIT 173 | 1263 | #define EVP_F_CMAC_INIT 173 |
1261 | #define EVP_F_D2I_PKEY 100 | 1264 | #define EVP_F_D2I_PKEY 100 |
@@ -1349,15 +1352,19 @@ void ERR_load_EVP_strings(void); | |||
1349 | #define EVP_R_DIFFERENT_PARAMETERS 153 | 1352 | #define EVP_R_DIFFERENT_PARAMETERS 153 |
1350 | #define EVP_R_DISABLED_FOR_FIPS 163 | 1353 | #define EVP_R_DISABLED_FOR_FIPS 163 |
1351 | #define EVP_R_ENCODE_ERROR 115 | 1354 | #define EVP_R_ENCODE_ERROR 115 |
1355 | #define EVP_R_ERROR_LOADING_SECTION 165 | ||
1356 | #define EVP_R_ERROR_SETTING_FIPS_MODE 166 | ||
1352 | #define EVP_R_EVP_PBE_CIPHERINIT_ERROR 119 | 1357 | #define EVP_R_EVP_PBE_CIPHERINIT_ERROR 119 |
1353 | #define EVP_R_EXPECTING_AN_RSA_KEY 127 | 1358 | #define EVP_R_EXPECTING_AN_RSA_KEY 127 |
1354 | #define EVP_R_EXPECTING_A_DH_KEY 128 | 1359 | #define EVP_R_EXPECTING_A_DH_KEY 128 |
1355 | #define EVP_R_EXPECTING_A_DSA_KEY 129 | 1360 | #define EVP_R_EXPECTING_A_DSA_KEY 129 |
1356 | #define EVP_R_EXPECTING_A_ECDSA_KEY 141 | 1361 | #define EVP_R_EXPECTING_A_ECDSA_KEY 141 |
1357 | #define EVP_R_EXPECTING_A_EC_KEY 142 | 1362 | #define EVP_R_EXPECTING_A_EC_KEY 142 |
1363 | #define EVP_R_FIPS_MODE_NOT_SUPPORTED 167 | ||
1358 | #define EVP_R_INITIALIZATION_ERROR 134 | 1364 | #define EVP_R_INITIALIZATION_ERROR 134 |
1359 | #define EVP_R_INPUT_NOT_INITIALIZED 111 | 1365 | #define EVP_R_INPUT_NOT_INITIALIZED 111 |
1360 | #define EVP_R_INVALID_DIGEST 152 | 1366 | #define EVP_R_INVALID_DIGEST 152 |
1367 | #define EVP_R_INVALID_FIPS_MODE 168 | ||
1361 | #define EVP_R_INVALID_KEY_LENGTH 130 | 1368 | #define EVP_R_INVALID_KEY_LENGTH 130 |
1362 | #define EVP_R_INVALID_OPERATION 148 | 1369 | #define EVP_R_INVALID_OPERATION 148 |
1363 | #define EVP_R_IV_TOO_LARGE 102 | 1370 | #define EVP_R_IV_TOO_LARGE 102 |
@@ -1382,6 +1389,7 @@ void ERR_load_EVP_strings(void); | |||
1382 | #define EVP_R_TOO_LARGE 164 | 1389 | #define EVP_R_TOO_LARGE 164 |
1383 | #define EVP_R_UNKNOWN_CIPHER 160 | 1390 | #define EVP_R_UNKNOWN_CIPHER 160 |
1384 | #define EVP_R_UNKNOWN_DIGEST 161 | 1391 | #define EVP_R_UNKNOWN_DIGEST 161 |
1392 | #define EVP_R_UNKNOWN_OPTION 169 | ||
1385 | #define EVP_R_UNKNOWN_PBE_ALGORITHM 121 | 1393 | #define EVP_R_UNKNOWN_PBE_ALGORITHM 121 |
1386 | #define EVP_R_UNSUPORTED_NUMBER_OF_ROUNDS 135 | 1394 | #define EVP_R_UNSUPORTED_NUMBER_OF_ROUNDS 135 |
1387 | #define EVP_R_UNSUPPORTED_ALGORITHM 156 | 1395 | #define EVP_R_UNSUPPORTED_ALGORITHM 156 |
diff --git a/src/lib/libssl/src/crypto/evp/evp_err.c b/src/lib/libssl/src/crypto/evp/evp_err.c index db0f76d59b..08eab9882f 100644 --- a/src/lib/libssl/src/crypto/evp/evp_err.c +++ b/src/lib/libssl/src/crypto/evp/evp_err.c | |||
@@ -75,6 +75,7 @@ static ERR_STRING_DATA EVP_str_functs[]= | |||
75 | {ERR_FUNC(EVP_F_AES_INIT_KEY), "AES_INIT_KEY"}, | 75 | {ERR_FUNC(EVP_F_AES_INIT_KEY), "AES_INIT_KEY"}, |
76 | {ERR_FUNC(EVP_F_AES_XTS), "AES_XTS"}, | 76 | {ERR_FUNC(EVP_F_AES_XTS), "AES_XTS"}, |
77 | {ERR_FUNC(EVP_F_AES_XTS_CIPHER), "AES_XTS_CIPHER"}, | 77 | {ERR_FUNC(EVP_F_AES_XTS_CIPHER), "AES_XTS_CIPHER"}, |
78 | {ERR_FUNC(EVP_F_ALG_MODULE_INIT), "ALG_MODULE_INIT"}, | ||
78 | {ERR_FUNC(EVP_F_CAMELLIA_INIT_KEY), "CAMELLIA_INIT_KEY"}, | 79 | {ERR_FUNC(EVP_F_CAMELLIA_INIT_KEY), "CAMELLIA_INIT_KEY"}, |
79 | {ERR_FUNC(EVP_F_CMAC_INIT), "CMAC_INIT"}, | 80 | {ERR_FUNC(EVP_F_CMAC_INIT), "CMAC_INIT"}, |
80 | {ERR_FUNC(EVP_F_D2I_PKEY), "D2I_PKEY"}, | 81 | {ERR_FUNC(EVP_F_D2I_PKEY), "D2I_PKEY"}, |
@@ -171,15 +172,19 @@ static ERR_STRING_DATA EVP_str_reasons[]= | |||
171 | {ERR_REASON(EVP_R_DIFFERENT_PARAMETERS) ,"different parameters"}, | 172 | {ERR_REASON(EVP_R_DIFFERENT_PARAMETERS) ,"different parameters"}, |
172 | {ERR_REASON(EVP_R_DISABLED_FOR_FIPS) ,"disabled for fips"}, | 173 | {ERR_REASON(EVP_R_DISABLED_FOR_FIPS) ,"disabled for fips"}, |
173 | {ERR_REASON(EVP_R_ENCODE_ERROR) ,"encode error"}, | 174 | {ERR_REASON(EVP_R_ENCODE_ERROR) ,"encode error"}, |
175 | {ERR_REASON(EVP_R_ERROR_LOADING_SECTION) ,"error loading section"}, | ||
176 | {ERR_REASON(EVP_R_ERROR_SETTING_FIPS_MODE),"error setting fips mode"}, | ||
174 | {ERR_REASON(EVP_R_EVP_PBE_CIPHERINIT_ERROR),"evp pbe cipherinit error"}, | 177 | {ERR_REASON(EVP_R_EVP_PBE_CIPHERINIT_ERROR),"evp pbe cipherinit error"}, |
175 | {ERR_REASON(EVP_R_EXPECTING_AN_RSA_KEY) ,"expecting an rsa key"}, | 178 | {ERR_REASON(EVP_R_EXPECTING_AN_RSA_KEY) ,"expecting an rsa key"}, |
176 | {ERR_REASON(EVP_R_EXPECTING_A_DH_KEY) ,"expecting a dh key"}, | 179 | {ERR_REASON(EVP_R_EXPECTING_A_DH_KEY) ,"expecting a dh key"}, |
177 | {ERR_REASON(EVP_R_EXPECTING_A_DSA_KEY) ,"expecting a dsa key"}, | 180 | {ERR_REASON(EVP_R_EXPECTING_A_DSA_KEY) ,"expecting a dsa key"}, |
178 | {ERR_REASON(EVP_R_EXPECTING_A_ECDSA_KEY) ,"expecting a ecdsa key"}, | 181 | {ERR_REASON(EVP_R_EXPECTING_A_ECDSA_KEY) ,"expecting a ecdsa key"}, |
179 | {ERR_REASON(EVP_R_EXPECTING_A_EC_KEY) ,"expecting a ec key"}, | 182 | {ERR_REASON(EVP_R_EXPECTING_A_EC_KEY) ,"expecting a ec key"}, |
183 | {ERR_REASON(EVP_R_FIPS_MODE_NOT_SUPPORTED),"fips mode not supported"}, | ||
180 | {ERR_REASON(EVP_R_INITIALIZATION_ERROR) ,"initialization error"}, | 184 | {ERR_REASON(EVP_R_INITIALIZATION_ERROR) ,"initialization error"}, |
181 | {ERR_REASON(EVP_R_INPUT_NOT_INITIALIZED) ,"input not initialized"}, | 185 | {ERR_REASON(EVP_R_INPUT_NOT_INITIALIZED) ,"input not initialized"}, |
182 | {ERR_REASON(EVP_R_INVALID_DIGEST) ,"invalid digest"}, | 186 | {ERR_REASON(EVP_R_INVALID_DIGEST) ,"invalid digest"}, |
187 | {ERR_REASON(EVP_R_INVALID_FIPS_MODE) ,"invalid fips mode"}, | ||
183 | {ERR_REASON(EVP_R_INVALID_KEY_LENGTH) ,"invalid key length"}, | 188 | {ERR_REASON(EVP_R_INVALID_KEY_LENGTH) ,"invalid key length"}, |
184 | {ERR_REASON(EVP_R_INVALID_OPERATION) ,"invalid operation"}, | 189 | {ERR_REASON(EVP_R_INVALID_OPERATION) ,"invalid operation"}, |
185 | {ERR_REASON(EVP_R_IV_TOO_LARGE) ,"iv too large"}, | 190 | {ERR_REASON(EVP_R_IV_TOO_LARGE) ,"iv too large"}, |
@@ -204,6 +209,7 @@ static ERR_STRING_DATA EVP_str_reasons[]= | |||
204 | {ERR_REASON(EVP_R_TOO_LARGE) ,"too large"}, | 209 | {ERR_REASON(EVP_R_TOO_LARGE) ,"too large"}, |
205 | {ERR_REASON(EVP_R_UNKNOWN_CIPHER) ,"unknown cipher"}, | 210 | {ERR_REASON(EVP_R_UNKNOWN_CIPHER) ,"unknown cipher"}, |
206 | {ERR_REASON(EVP_R_UNKNOWN_DIGEST) ,"unknown digest"}, | 211 | {ERR_REASON(EVP_R_UNKNOWN_DIGEST) ,"unknown digest"}, |
212 | {ERR_REASON(EVP_R_UNKNOWN_OPTION) ,"unknown option"}, | ||
207 | {ERR_REASON(EVP_R_UNKNOWN_PBE_ALGORITHM) ,"unknown pbe algorithm"}, | 213 | {ERR_REASON(EVP_R_UNKNOWN_PBE_ALGORITHM) ,"unknown pbe algorithm"}, |
208 | {ERR_REASON(EVP_R_UNSUPORTED_NUMBER_OF_ROUNDS),"unsuported number of rounds"}, | 214 | {ERR_REASON(EVP_R_UNSUPORTED_NUMBER_OF_ROUNDS),"unsuported number of rounds"}, |
209 | {ERR_REASON(EVP_R_UNSUPPORTED_ALGORITHM) ,"unsupported algorithm"}, | 215 | {ERR_REASON(EVP_R_UNSUPPORTED_ALGORITHM) ,"unsupported algorithm"}, |
diff --git a/src/lib/libssl/src/crypto/evp/m_dss.c b/src/lib/libssl/src/crypto/evp/m_dss.c index 4ad63ada6f..6fb7e9a861 100644 --- a/src/lib/libssl/src/crypto/evp/m_dss.c +++ b/src/lib/libssl/src/crypto/evp/m_dss.c | |||
@@ -60,7 +60,7 @@ | |||
60 | #include "cryptlib.h" | 60 | #include "cryptlib.h" |
61 | #include <openssl/evp.h> | 61 | #include <openssl/evp.h> |
62 | #include <openssl/objects.h> | 62 | #include <openssl/objects.h> |
63 | #include <openssl/x509.h> | 63 | #include <openssl/sha.h> |
64 | #ifndef OPENSSL_NO_DSA | 64 | #ifndef OPENSSL_NO_DSA |
65 | #include <openssl/dsa.h> | 65 | #include <openssl/dsa.h> |
66 | #endif | 66 | #endif |
diff --git a/src/lib/libssl/src/crypto/evp/m_dss1.c b/src/lib/libssl/src/crypto/evp/m_dss1.c index f80170efeb..2df362a670 100644 --- a/src/lib/libssl/src/crypto/evp/m_dss1.c +++ b/src/lib/libssl/src/crypto/evp/m_dss1.c | |||
@@ -63,7 +63,7 @@ | |||
63 | 63 | ||
64 | #include <openssl/evp.h> | 64 | #include <openssl/evp.h> |
65 | #include <openssl/objects.h> | 65 | #include <openssl/objects.h> |
66 | #include <openssl/x509.h> | 66 | #include <openssl/sha.h> |
67 | #ifndef OPENSSL_NO_DSA | 67 | #ifndef OPENSSL_NO_DSA |
68 | #include <openssl/dsa.h> | 68 | #include <openssl/dsa.h> |
69 | #endif | 69 | #endif |
diff --git a/src/lib/libssl/src/crypto/evp/m_sha1.c b/src/lib/libssl/src/crypto/evp/m_sha1.c index 3cb11f1ebb..bd0c01ad3c 100644 --- a/src/lib/libssl/src/crypto/evp/m_sha1.c +++ b/src/lib/libssl/src/crypto/evp/m_sha1.c | |||
@@ -65,7 +65,7 @@ | |||
65 | 65 | ||
66 | #include <openssl/evp.h> | 66 | #include <openssl/evp.h> |
67 | #include <openssl/objects.h> | 67 | #include <openssl/objects.h> |
68 | #include <openssl/x509.h> | 68 | #include <openssl/sha.h> |
69 | #ifndef OPENSSL_NO_RSA | 69 | #ifndef OPENSSL_NO_RSA |
70 | #include <openssl/rsa.h> | 70 | #include <openssl/rsa.h> |
71 | #endif | 71 | #endif |
diff --git a/src/lib/libssl/src/crypto/evp/p5_crpt2.c b/src/lib/libssl/src/crypto/evp/p5_crpt2.c index 975d004df4..fe3c6c8813 100644 --- a/src/lib/libssl/src/crypto/evp/p5_crpt2.c +++ b/src/lib/libssl/src/crypto/evp/p5_crpt2.c | |||
@@ -85,19 +85,24 @@ int PKCS5_PBKDF2_HMAC(const char *pass, int passlen, | |||
85 | unsigned char digtmp[EVP_MAX_MD_SIZE], *p, itmp[4]; | 85 | unsigned char digtmp[EVP_MAX_MD_SIZE], *p, itmp[4]; |
86 | int cplen, j, k, tkeylen, mdlen; | 86 | int cplen, j, k, tkeylen, mdlen; |
87 | unsigned long i = 1; | 87 | unsigned long i = 1; |
88 | HMAC_CTX hctx; | 88 | HMAC_CTX hctx_tpl, hctx; |
89 | 89 | ||
90 | mdlen = EVP_MD_size(digest); | 90 | mdlen = EVP_MD_size(digest); |
91 | if (mdlen < 0) | 91 | if (mdlen < 0) |
92 | return 0; | 92 | return 0; |
93 | 93 | ||
94 | HMAC_CTX_init(&hctx); | 94 | HMAC_CTX_init(&hctx_tpl); |
95 | p = out; | 95 | p = out; |
96 | tkeylen = keylen; | 96 | tkeylen = keylen; |
97 | if(!pass) | 97 | if(!pass) |
98 | passlen = 0; | 98 | passlen = 0; |
99 | else if(passlen == -1) | 99 | else if(passlen == -1) |
100 | passlen = strlen(pass); | 100 | passlen = strlen(pass); |
101 | if (!HMAC_Init_ex(&hctx_tpl, pass, passlen, digest, NULL)) | ||
102 | { | ||
103 | HMAC_CTX_cleanup(&hctx_tpl); | ||
104 | return 0; | ||
105 | } | ||
101 | while(tkeylen) | 106 | while(tkeylen) |
102 | { | 107 | { |
103 | if(tkeylen > mdlen) | 108 | if(tkeylen > mdlen) |
@@ -111,19 +116,36 @@ int PKCS5_PBKDF2_HMAC(const char *pass, int passlen, | |||
111 | itmp[1] = (unsigned char)((i >> 16) & 0xff); | 116 | itmp[1] = (unsigned char)((i >> 16) & 0xff); |
112 | itmp[2] = (unsigned char)((i >> 8) & 0xff); | 117 | itmp[2] = (unsigned char)((i >> 8) & 0xff); |
113 | itmp[3] = (unsigned char)(i & 0xff); | 118 | itmp[3] = (unsigned char)(i & 0xff); |
114 | if (!HMAC_Init_ex(&hctx, pass, passlen, digest, NULL) | 119 | if (!HMAC_CTX_copy(&hctx, &hctx_tpl)) |
115 | || !HMAC_Update(&hctx, salt, saltlen) | ||
116 | || !HMAC_Update(&hctx, itmp, 4) | ||
117 | || !HMAC_Final(&hctx, digtmp, NULL)) | ||
118 | { | 120 | { |
121 | HMAC_CTX_cleanup(&hctx_tpl); | ||
122 | return 0; | ||
123 | } | ||
124 | if (!HMAC_Update(&hctx, salt, saltlen) | ||
125 | || !HMAC_Update(&hctx, itmp, 4) | ||
126 | || !HMAC_Final(&hctx, digtmp, NULL)) | ||
127 | { | ||
128 | HMAC_CTX_cleanup(&hctx_tpl); | ||
119 | HMAC_CTX_cleanup(&hctx); | 129 | HMAC_CTX_cleanup(&hctx); |
120 | return 0; | 130 | return 0; |
121 | } | 131 | } |
132 | HMAC_CTX_cleanup(&hctx); | ||
122 | memcpy(p, digtmp, cplen); | 133 | memcpy(p, digtmp, cplen); |
123 | for(j = 1; j < iter; j++) | 134 | for(j = 1; j < iter; j++) |
124 | { | 135 | { |
125 | HMAC(digest, pass, passlen, | 136 | if (!HMAC_CTX_copy(&hctx, &hctx_tpl)) |
126 | digtmp, mdlen, digtmp, NULL); | 137 | { |
138 | HMAC_CTX_cleanup(&hctx_tpl); | ||
139 | return 0; | ||
140 | } | ||
141 | if (!HMAC_Update(&hctx, digtmp, mdlen) | ||
142 | || !HMAC_Final(&hctx, digtmp, NULL)) | ||
143 | { | ||
144 | HMAC_CTX_cleanup(&hctx_tpl); | ||
145 | HMAC_CTX_cleanup(&hctx); | ||
146 | return 0; | ||
147 | } | ||
148 | HMAC_CTX_cleanup(&hctx); | ||
127 | for(k = 0; k < cplen; k++) | 149 | for(k = 0; k < cplen; k++) |
128 | p[k] ^= digtmp[k]; | 150 | p[k] ^= digtmp[k]; |
129 | } | 151 | } |
@@ -131,7 +153,7 @@ int PKCS5_PBKDF2_HMAC(const char *pass, int passlen, | |||
131 | i++; | 153 | i++; |
132 | p+= cplen; | 154 | p+= cplen; |
133 | } | 155 | } |
134 | HMAC_CTX_cleanup(&hctx); | 156 | HMAC_CTX_cleanup(&hctx_tpl); |
135 | #ifdef DEBUG_PKCS5V2 | 157 | #ifdef DEBUG_PKCS5V2 |
136 | fprintf(stderr, "Password:\n"); | 158 | fprintf(stderr, "Password:\n"); |
137 | h__dump (pass, passlen); | 159 | h__dump (pass, passlen); |
diff --git a/src/lib/libssl/src/crypto/evp/p_sign.c b/src/lib/libssl/src/crypto/evp/p_sign.c index dfa48c157c..8afb664306 100644 --- a/src/lib/libssl/src/crypto/evp/p_sign.c +++ b/src/lib/libssl/src/crypto/evp/p_sign.c | |||
@@ -80,7 +80,7 @@ int EVP_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, unsigned int *siglen, | |||
80 | { | 80 | { |
81 | unsigned char m[EVP_MAX_MD_SIZE]; | 81 | unsigned char m[EVP_MAX_MD_SIZE]; |
82 | unsigned int m_len; | 82 | unsigned int m_len; |
83 | int i=0,ok=0,v; | 83 | int i = 0,ok = 0,v; |
84 | EVP_MD_CTX tmp_ctx; | 84 | EVP_MD_CTX tmp_ctx; |
85 | EVP_PKEY_CTX *pkctx = NULL; | 85 | EVP_PKEY_CTX *pkctx = NULL; |
86 | 86 | ||
diff --git a/src/lib/libssl/src/crypto/evp/p_verify.c b/src/lib/libssl/src/crypto/evp/p_verify.c index 5f5c409f45..c66d63ccf8 100644 --- a/src/lib/libssl/src/crypto/evp/p_verify.c +++ b/src/lib/libssl/src/crypto/evp/p_verify.c | |||
@@ -67,7 +67,7 @@ int EVP_VerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sigbuf, | |||
67 | { | 67 | { |
68 | unsigned char m[EVP_MAX_MD_SIZE]; | 68 | unsigned char m[EVP_MAX_MD_SIZE]; |
69 | unsigned int m_len; | 69 | unsigned int m_len; |
70 | int i=-1,ok=0,v; | 70 | int i = 0,ok = 0,v; |
71 | EVP_MD_CTX tmp_ctx; | 71 | EVP_MD_CTX tmp_ctx; |
72 | EVP_PKEY_CTX *pkctx = NULL; | 72 | EVP_PKEY_CTX *pkctx = NULL; |
73 | 73 | ||
diff --git a/src/lib/libssl/src/crypto/install-crypto.com b/src/lib/libssl/src/crypto/install-crypto.com deleted file mode 100755 index 85b3d583cf..0000000000 --- a/src/lib/libssl/src/crypto/install-crypto.com +++ /dev/null | |||
@@ -1,196 +0,0 @@ | |||
1 | $! INSTALL.COM -- Installs the files in a given directory tree | ||
2 | $! | ||
3 | $! Author: Richard Levitte <richard@levitte.org> | ||
4 | $! Time of creation: 22-MAY-1998 10:13 | ||
5 | $! | ||
6 | $! Changes by Zoltan Arpadffy <zoli@polarhome.com> | ||
7 | $! | ||
8 | $! P1 root of the directory tree | ||
9 | $! P2 "64" for 64-bit pointers. | ||
10 | $! | ||
11 | $! | ||
12 | $! Announce/identify. | ||
13 | $! | ||
14 | $ proc = f$environment( "procedure") | ||
15 | $ write sys$output "@@@ "+ - | ||
16 | f$parse( proc, , , "name")+ f$parse( proc, , , "type") | ||
17 | $! | ||
18 | $ on error then goto tidy | ||
19 | $ on control_c then goto tidy | ||
20 | $! | ||
21 | $ if (p1 .eqs. "") | ||
22 | $ then | ||
23 | $ write sys$output "First argument missing." | ||
24 | $ write sys$output - | ||
25 | "It should be the directory where you want things installed." | ||
26 | $ exit | ||
27 | $ endif | ||
28 | $! | ||
29 | $ if (f$getsyi( "cpu") .lt. 128) | ||
30 | $ then | ||
31 | $ arch = "VAX" | ||
32 | $ else | ||
33 | $ arch = f$edit( f$getsyi( "arch_name"), "upcase") | ||
34 | $ if (arch .eqs. "") then arch = "UNK" | ||
35 | $ endif | ||
36 | $! | ||
37 | $ archd = arch | ||
38 | $ lib32 = "32" | ||
39 | $ shr = "_SHR32" | ||
40 | $! | ||
41 | $ if (p2 .nes. "") | ||
42 | $ then | ||
43 | $ if (p2 .eqs. "64") | ||
44 | $ then | ||
45 | $ archd = arch+ "_64" | ||
46 | $ lib32 = "" | ||
47 | $ shr = "_SHR" | ||
48 | $ else | ||
49 | $ if (p2 .nes. "32") | ||
50 | $ then | ||
51 | $ write sys$output "Second argument invalid." | ||
52 | $ write sys$output "It should be "32", "64", or nothing." | ||
53 | $ exit | ||
54 | $ endif | ||
55 | $ endif | ||
56 | $ endif | ||
57 | $! | ||
58 | $ root = f$parse( p1, "[]A.;0", , , "syntax_only, no_conceal") - "A.;0" | ||
59 | $ root_dev = f$parse( root, , , "device", "syntax_only") | ||
60 | $ root_dir = f$parse( root, , , "directory", "syntax_only") - - | ||
61 | "[000000." - "][" - "[" - "]" | ||
62 | $ root = root_dev + "[" + root_dir | ||
63 | $! | ||
64 | $ define /nolog wrk_sslroot 'root'.] /trans=conc | ||
65 | $ define /nolog wrk_sslinclude wrk_sslroot:[include] | ||
66 | $ define /nolog wrk_sslxlib wrk_sslroot:['arch'_lib] | ||
67 | $! | ||
68 | $ if f$parse("wrk_sslroot:[000000]") .eqs. "" then - | ||
69 | create /directory /log wrk_sslroot:[000000] | ||
70 | $ if f$parse("wrk_sslinclude:") .eqs. "" then - | ||
71 | create /directory /log wrk_sslinclude: | ||
72 | $ if f$parse("wrk_sslxlib:") .eqs. "" then - | ||
73 | create /directory /log wrk_sslxlib: | ||
74 | $! | ||
75 | $ sdirs := , - | ||
76 | 'archd', - | ||
77 | objects, - | ||
78 | md2, md4, md5, sha, mdc2, hmac, ripemd, whrlpool, - | ||
79 | des, aes, rc2, rc4, rc5, idea, bf, cast, camellia, seed, - | ||
80 | bn, ec, rsa, dsa, ecdsa, dh, ecdh, dso, engine, - | ||
81 | buffer, bio, stack, lhash, rand, err, - | ||
82 | evp, asn1, pem, x509, x509v3, conf, txt_db, pkcs7, pkcs12, comp, ocsp, - | ||
83 | ui, krb5, - | ||
84 | store, cms, pqueue, ts, jpake | ||
85 | $! | ||
86 | $ exheader_ := crypto.h, opensslv.h, ebcdic.h, symhacks.h, ossl_typ.h | ||
87 | $ exheader_'archd' := opensslconf.h | ||
88 | $ exheader_objects := objects.h, obj_mac.h | ||
89 | $ exheader_md2 := md2.h | ||
90 | $ exheader_md4 := md4.h | ||
91 | $ exheader_md5 := md5.h | ||
92 | $ exheader_sha := sha.h | ||
93 | $ exheader_mdc2 := mdc2.h | ||
94 | $ exheader_hmac := hmac.h | ||
95 | $ exheader_ripemd := ripemd.h | ||
96 | $ exheader_whrlpool := whrlpool.h | ||
97 | $ exheader_des := des.h, des_old.h | ||
98 | $ exheader_aes := aes.h | ||
99 | $ exheader_rc2 := rc2.h | ||
100 | $ exheader_rc4 := rc4.h | ||
101 | $ exheader_rc5 := rc5.h | ||
102 | $ exheader_idea := idea.h | ||
103 | $ exheader_bf := blowfish.h | ||
104 | $ exheader_cast := cast.h | ||
105 | $ exheader_camellia := camellia.h | ||
106 | $ exheader_seed := seed.h | ||
107 | $ exheader_modes := modes.h | ||
108 | $ exheader_bn := bn.h | ||
109 | $ exheader_ec := ec.h | ||
110 | $ exheader_rsa := rsa.h | ||
111 | $ exheader_dsa := dsa.h | ||
112 | $ exheader_ecdsa := ecdsa.h | ||
113 | $ exheader_dh := dh.h | ||
114 | $ exheader_ecdh := ecdh.h | ||
115 | $ exheader_dso := dso.h | ||
116 | $ exheader_engine := engine.h | ||
117 | $ exheader_buffer := buffer.h | ||
118 | $ exheader_bio := bio.h | ||
119 | $ exheader_stack := stack.h, safestack.h | ||
120 | $ exheader_lhash := lhash.h | ||
121 | $ exheader_rand := rand.h | ||
122 | $ exheader_err := err.h | ||
123 | $ exheader_evp := evp.h | ||
124 | $ exheader_asn1 := asn1.h, asn1_mac.h, asn1t.h | ||
125 | $ exheader_pem := pem.h, pem2.h | ||
126 | $ exheader_x509 := x509.h, x509_vfy.h | ||
127 | $ exheader_x509v3 := x509v3.h | ||
128 | $ exheader_conf := conf.h, conf_api.h | ||
129 | $ exheader_txt_db := txt_db.h | ||
130 | $ exheader_pkcs7 := pkcs7.h | ||
131 | $ exheader_pkcs12 := pkcs12.h | ||
132 | $ exheader_comp := comp.h | ||
133 | $ exheader_ocsp := ocsp.h | ||
134 | $ exheader_ui := ui.h, ui_compat.h | ||
135 | $ exheader_krb5 := krb5_asn.h | ||
136 | $! exheader_store := store.h, str_compat.h | ||
137 | $ exheader_store := store.h | ||
138 | $ exheader_cms := cms.h | ||
139 | $ exheader_pqueue := pqueue.h | ||
140 | $ exheader_ts := ts.h | ||
141 | $ exheader_jpake := jpake.h | ||
142 | $ libs := ssl_libcrypto | ||
143 | $! | ||
144 | $ exe_dir := [-.'archd'.exe.crypto] | ||
145 | $! | ||
146 | $! Header files. | ||
147 | $! | ||
148 | $ i = 0 | ||
149 | $ loop_sdirs: | ||
150 | $ d = f$edit( f$element( i, ",", sdirs), "trim") | ||
151 | $ i = i + 1 | ||
152 | $ if d .eqs. "," then goto loop_sdirs_end | ||
153 | $ tmp = exheader_'d' | ||
154 | $ if (d .nes. "") then d = "."+ d | ||
155 | $ copy /protection = w:re ['d']'tmp' wrk_sslinclude: /log | ||
156 | $ goto loop_sdirs | ||
157 | $ loop_sdirs_end: | ||
158 | $! | ||
159 | $! Object libraries, shareable images. | ||
160 | $! | ||
161 | $ i = 0 | ||
162 | $ loop_lib: | ||
163 | $ e = f$edit( f$element( i, ",", libs), "trim") | ||
164 | $ i = i + 1 | ||
165 | $ if e .eqs. "," then goto loop_lib_end | ||
166 | $ set noon | ||
167 | $ file = exe_dir+ e+ lib32+ ".olb" | ||
168 | $ if f$search( file) .nes. "" | ||
169 | $ then | ||
170 | $ copy /protection = w:re 'file' wrk_sslxlib: /log | ||
171 | $ endif | ||
172 | $! | ||
173 | $ file = exe_dir+ e+ shr+ ".exe" | ||
174 | $ if f$search( file) .nes. "" | ||
175 | $ then | ||
176 | $ copy /protection = w:re 'file' wrk_sslxlib: /log | ||
177 | $ endif | ||
178 | $ set on | ||
179 | $ goto loop_lib | ||
180 | $ loop_lib_end: | ||
181 | $! | ||
182 | $ tidy: | ||
183 | $! | ||
184 | $ call deass wrk_sslroot | ||
185 | $ call deass wrk_sslinclude | ||
186 | $ call deass wrk_sslxlib | ||
187 | $! | ||
188 | $ exit | ||
189 | $! | ||
190 | $ deass: subroutine | ||
191 | $ if (f$trnlnm( p1, "LNM$PROCESS") .nes. "") | ||
192 | $ then | ||
193 | $ deassign /process 'p1' | ||
194 | $ endif | ||
195 | $ endsubroutine | ||
196 | $! | ||
diff --git a/src/lib/libssl/src/crypto/install.com b/src/lib/libssl/src/crypto/install.com deleted file mode 100644 index ad3e4d48c7..0000000000 --- a/src/lib/libssl/src/crypto/install.com +++ /dev/null | |||
@@ -1,155 +0,0 @@ | |||
1 | $! INSTALL.COM -- Installs the files in a given directory tree | ||
2 | $! | ||
3 | $! Author: Richard Levitte <richard@levitte.org> | ||
4 | $! Time of creation: 22-MAY-1998 10:13 | ||
5 | $! | ||
6 | $! Changes by Zoltan Arpadffy <zoli@polarhome.com> | ||
7 | $! | ||
8 | $! P1 root of the directory tree | ||
9 | $! | ||
10 | $ IF P1 .EQS. "" | ||
11 | $ THEN | ||
12 | $ WRITE SYS$OUTPUT "First argument missing." | ||
13 | $ WRITE SYS$OUTPUT - | ||
14 | "It should be the directory where you want things installed." | ||
15 | $ EXIT | ||
16 | $ ENDIF | ||
17 | $ | ||
18 | $ IF (F$GETSYI("CPU").LT.128) | ||
19 | $ THEN | ||
20 | $ ARCH := VAX | ||
21 | $ ELSE | ||
22 | $ ARCH = F$EDIT( F$GETSYI( "ARCH_NAME"), "UPCASE") | ||
23 | $ IF (ARCH .EQS. "") THEN ARCH = "UNK" | ||
24 | $ ENDIF | ||
25 | $ | ||
26 | $ ROOT = F$PARSE(P1,"[]A.;0",,,"SYNTAX_ONLY,NO_CONCEAL") - "A.;0" | ||
27 | $ ROOT_DEV = F$PARSE(ROOT,,,"DEVICE","SYNTAX_ONLY") | ||
28 | $ ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") - | ||
29 | - "[000000." - "][" - "[" - "]" | ||
30 | $ ROOT = ROOT_DEV + "[" + ROOT_DIR | ||
31 | $ | ||
32 | $ DEFINE/NOLOG WRK_SSLROOT 'ROOT'.] /TRANS=CONC | ||
33 | $ DEFINE/NOLOG WRK_SSLLIB WRK_SSLROOT:['ARCH'_LIB] | ||
34 | $ DEFINE/NOLOG WRK_SSLINCLUDE WRK_SSLROOT:[INCLUDE] | ||
35 | $ | ||
36 | $ IF F$PARSE("WRK_SSLROOT:[000000]") .EQS. "" THEN - | ||
37 | CREATE/DIR/LOG WRK_SSLROOT:[000000] | ||
38 | $ IF F$PARSE("WRK_SSLLIB:") .EQS. "" THEN - | ||
39 | CREATE/DIR/LOG WRK_SSLLIB: | ||
40 | $ IF F$PARSE("WRK_SSLINCLUDE:") .EQS. "" THEN - | ||
41 | CREATE/DIR/LOG WRK_SSLINCLUDE: | ||
42 | $ | ||
43 | $ SDIRS := ,- | ||
44 | _'ARCH',- | ||
45 | OBJECTS,- | ||
46 | MD2,MD4,MD5,SHA,MDC2,HMAC,RIPEMD,WHRLPOOL,- | ||
47 | DES,AES,RC2,RC4,RC5,IDEA,BF,CAST,CAMELLIA,SEED,- | ||
48 | BN,EC,RSA,DSA,ECDSA,DH,ECDH,DSO,ENGINE,- | ||
49 | BUFFER,BIO,STACK,LHASH,RAND,ERR,- | ||
50 | EVP,ASN1,PEM,X509,X509V3,CONF,TXT_DB,PKCS7,PKCS12,COMP,OCSP,- | ||
51 | UI,KRB5,- | ||
52 | STORE,CMS,PQUEUE,TS,JPAKE | ||
53 | $ EXHEADER_ := crypto.h,opensslv.h,ebcdic.h,symhacks.h,ossl_typ.h | ||
54 | $ EXHEADER__'ARCH' := opensslconf.h | ||
55 | $ EXHEADER_OBJECTS := objects.h,obj_mac.h | ||
56 | $ EXHEADER_MD2 := md2.h | ||
57 | $ EXHEADER_MD4 := md4.h | ||
58 | $ EXHEADER_MD5 := md5.h | ||
59 | $ EXHEADER_SHA := sha.h | ||
60 | $ EXHEADER_MDC2 := mdc2.h | ||
61 | $ EXHEADER_HMAC := hmac.h | ||
62 | $ EXHEADER_RIPEMD := ripemd.h | ||
63 | $ EXHEADER_WHRLPOOL := whrlpool.h | ||
64 | $ EXHEADER_DES := des.h,des_old.h | ||
65 | $ EXHEADER_AES := aes.h | ||
66 | $ EXHEADER_RC2 := rc2.h | ||
67 | $ EXHEADER_RC4 := rc4.h | ||
68 | $ EXHEADER_RC5 := rc5.h | ||
69 | $ EXHEADER_IDEA := idea.h | ||
70 | $ EXHEADER_BF := blowfish.h | ||
71 | $ EXHEADER_CAST := cast.h | ||
72 | $ EXHEADER_CAMELLIA := camellia.h | ||
73 | $ EXHEADER_SEED := seed.h | ||
74 | $ EXHEADER_MODES := modes.h | ||
75 | $ EXHEADER_BN := bn.h | ||
76 | $ EXHEADER_EC := ec.h | ||
77 | $ EXHEADER_RSA := rsa.h | ||
78 | $ EXHEADER_DSA := dsa.h | ||
79 | $ EXHEADER_ECDSA := ecdsa.h | ||
80 | $ EXHEADER_DH := dh.h | ||
81 | $ EXHEADER_ECDH := ecdh.h | ||
82 | $ EXHEADER_DSO := dso.h | ||
83 | $ EXHEADER_ENGINE := engine.h | ||
84 | $ EXHEADER_BUFFER := buffer.h | ||
85 | $ EXHEADER_BIO := bio.h | ||
86 | $ EXHEADER_STACK := stack.h,safestack.h | ||
87 | $ EXHEADER_LHASH := lhash.h | ||
88 | $ EXHEADER_RAND := rand.h | ||
89 | $ EXHEADER_ERR := err.h | ||
90 | $ EXHEADER_EVP := evp.h | ||
91 | $ EXHEADER_ASN1 := asn1.h,asn1_mac.h,asn1t.h | ||
92 | $ EXHEADER_PEM := pem.h,pem2.h | ||
93 | $ EXHEADER_X509 := x509.h,x509_vfy.h | ||
94 | $ EXHEADER_X509V3 := x509v3.h | ||
95 | $ EXHEADER_CONF := conf.h,conf_api.h | ||
96 | $ EXHEADER_TXT_DB := txt_db.h | ||
97 | $ EXHEADER_PKCS7 := pkcs7.h | ||
98 | $ EXHEADER_PKCS12 := pkcs12.h | ||
99 | $ EXHEADER_COMP := comp.h | ||
100 | $ EXHEADER_OCSP := ocsp.h | ||
101 | $ EXHEADER_UI := ui.h,ui_compat.h | ||
102 | $ EXHEADER_KRB5 := krb5_asn.h | ||
103 | $! EXHEADER_STORE := store.h,str_compat.h | ||
104 | $ EXHEADER_STORE := store.h | ||
105 | $ EXHEADER_CMS := cms.h | ||
106 | $ EXHEADER_PQUEUE := pqueue.h | ||
107 | $ EXHEADER_TS := ts.h | ||
108 | $ EXHEADER_JPAKE := jpake.h | ||
109 | $ LIBS := LIBCRYPTO | ||
110 | $ | ||
111 | $ EXE_DIR := [-.'ARCH'.EXE.CRYPTO] | ||
112 | $ | ||
113 | $ I = 0 | ||
114 | $ LOOP_SDIRS: | ||
115 | $ D = F$EDIT(F$ELEMENT(I, ",", SDIRS),"TRIM") | ||
116 | $ I = I + 1 | ||
117 | $ IF D .EQS. "," THEN GOTO LOOP_SDIRS_END | ||
118 | $ tmp = EXHEADER_'D' | ||
119 | $ IF D .EQS. "" | ||
120 | $ THEN | ||
121 | $ COPY 'tmp' WRK_SSLINCLUDE: /LOG | ||
122 | $ ELSE | ||
123 | $ IF D .EQS. "_''ARCH'" | ||
124 | $ THEN | ||
125 | $ COPY [-.'ARCH'.CRYPTO]'tmp' WRK_SSLINCLUDE: /LOG | ||
126 | $ ELSE | ||
127 | $ COPY [.'D']'tmp' WRK_SSLINCLUDE: /LOG | ||
128 | $ ENDIF | ||
129 | $ ENDIF | ||
130 | $ SET FILE/PROT=WORLD:RE WRK_SSLINCLUDE:'tmp' | ||
131 | $ GOTO LOOP_SDIRS | ||
132 | $ LOOP_SDIRS_END: | ||
133 | $ | ||
134 | $ I = 0 | ||
135 | $ LOOP_LIB: | ||
136 | $ E = F$EDIT(F$ELEMENT(I, ",", LIBS),"TRIM") | ||
137 | $ I = I + 1 | ||
138 | $ IF E .EQS. "," THEN GOTO LOOP_LIB_END | ||
139 | $ SET NOON | ||
140 | $ IF F$SEARCH(EXE_DIR+E+".OLB") .NES. "" | ||
141 | $ THEN | ||
142 | $ COPY 'EXE_DIR''E'.OLB WRK_SSLLIB:'E'.OLB/log | ||
143 | $ SET FILE/PROT=W:RE WRK_SSLLIB:'E'.OLB | ||
144 | $ ENDIF | ||
145 | $ ! Preparing for the time when we have shareable images | ||
146 | $ IF F$SEARCH(EXE_DIR+E+".EXE") .NES. "" | ||
147 | $ THEN | ||
148 | $ COPY 'EXE_DIR''E'.EXE WRK_SSLLIB:'E'.EXE/log | ||
149 | $ SET FILE/PROT=W:RE WRK_SSLLIB:'E'.EXE | ||
150 | $ ENDIF | ||
151 | $ SET ON | ||
152 | $ GOTO LOOP_LIB | ||
153 | $ LOOP_LIB_END: | ||
154 | $ | ||
155 | $ EXIT | ||
diff --git a/src/lib/libssl/src/crypto/md4/md4_dgst.c b/src/lib/libssl/src/crypto/md4/md4_dgst.c index 82c2cb2d98..b5b165b052 100644 --- a/src/lib/libssl/src/crypto/md4/md4_dgst.c +++ b/src/lib/libssl/src/crypto/md4/md4_dgst.c | |||
@@ -106,22 +106,23 @@ void md4_block_data_order (MD4_CTX *c, const void *data_, size_t num) | |||
106 | 106 | ||
107 | for (;num--;) | 107 | for (;num--;) |
108 | { | 108 | { |
109 | HOST_c2l(data,l); X( 0)=l; HOST_c2l(data,l); X( 1)=l; | 109 | (void)HOST_c2l(data,l); X( 0)=l; |
110 | (void)HOST_c2l(data,l); X( 1)=l; | ||
110 | /* Round 0 */ | 111 | /* Round 0 */ |
111 | R0(A,B,C,D,X( 0), 3,0); HOST_c2l(data,l); X( 2)=l; | 112 | R0(A,B,C,D,X( 0), 3,0); (void)HOST_c2l(data,l); X( 2)=l; |
112 | R0(D,A,B,C,X( 1), 7,0); HOST_c2l(data,l); X( 3)=l; | 113 | R0(D,A,B,C,X( 1), 7,0); (void)HOST_c2l(data,l); X( 3)=l; |
113 | R0(C,D,A,B,X( 2),11,0); HOST_c2l(data,l); X( 4)=l; | 114 | R0(C,D,A,B,X( 2),11,0); (void)HOST_c2l(data,l); X( 4)=l; |
114 | R0(B,C,D,A,X( 3),19,0); HOST_c2l(data,l); X( 5)=l; | 115 | R0(B,C,D,A,X( 3),19,0); (void)HOST_c2l(data,l); X( 5)=l; |
115 | R0(A,B,C,D,X( 4), 3,0); HOST_c2l(data,l); X( 6)=l; | 116 | R0(A,B,C,D,X( 4), 3,0); (void)HOST_c2l(data,l); X( 6)=l; |
116 | R0(D,A,B,C,X( 5), 7,0); HOST_c2l(data,l); X( 7)=l; | 117 | R0(D,A,B,C,X( 5), 7,0); (void)HOST_c2l(data,l); X( 7)=l; |
117 | R0(C,D,A,B,X( 6),11,0); HOST_c2l(data,l); X( 8)=l; | 118 | R0(C,D,A,B,X( 6),11,0); (void)HOST_c2l(data,l); X( 8)=l; |
118 | R0(B,C,D,A,X( 7),19,0); HOST_c2l(data,l); X( 9)=l; | 119 | R0(B,C,D,A,X( 7),19,0); (void)HOST_c2l(data,l); X( 9)=l; |
119 | R0(A,B,C,D,X( 8), 3,0); HOST_c2l(data,l); X(10)=l; | 120 | R0(A,B,C,D,X( 8), 3,0); (void)HOST_c2l(data,l); X(10)=l; |
120 | R0(D,A,B,C,X( 9), 7,0); HOST_c2l(data,l); X(11)=l; | 121 | R0(D,A,B,C,X( 9), 7,0); (void)HOST_c2l(data,l); X(11)=l; |
121 | R0(C,D,A,B,X(10),11,0); HOST_c2l(data,l); X(12)=l; | 122 | R0(C,D,A,B,X(10),11,0); (void)HOST_c2l(data,l); X(12)=l; |
122 | R0(B,C,D,A,X(11),19,0); HOST_c2l(data,l); X(13)=l; | 123 | R0(B,C,D,A,X(11),19,0); (void)HOST_c2l(data,l); X(13)=l; |
123 | R0(A,B,C,D,X(12), 3,0); HOST_c2l(data,l); X(14)=l; | 124 | R0(A,B,C,D,X(12), 3,0); (void)HOST_c2l(data,l); X(14)=l; |
124 | R0(D,A,B,C,X(13), 7,0); HOST_c2l(data,l); X(15)=l; | 125 | R0(D,A,B,C,X(13), 7,0); (void)HOST_c2l(data,l); X(15)=l; |
125 | R0(C,D,A,B,X(14),11,0); | 126 | R0(C,D,A,B,X(14),11,0); |
126 | R0(B,C,D,A,X(15),19,0); | 127 | R0(B,C,D,A,X(15),19,0); |
127 | /* Round 1 */ | 128 | /* Round 1 */ |
diff --git a/src/lib/libssl/src/crypto/md4/md4_locl.h b/src/lib/libssl/src/crypto/md4/md4_locl.h index c8085b0ead..99c3e5004c 100644 --- a/src/lib/libssl/src/crypto/md4/md4_locl.h +++ b/src/lib/libssl/src/crypto/md4/md4_locl.h | |||
@@ -77,10 +77,10 @@ void md4_block_data_order (MD4_CTX *c, const void *p,size_t num); | |||
77 | #define HASH_FINAL MD4_Final | 77 | #define HASH_FINAL MD4_Final |
78 | #define HASH_MAKE_STRING(c,s) do { \ | 78 | #define HASH_MAKE_STRING(c,s) do { \ |
79 | unsigned long ll; \ | 79 | unsigned long ll; \ |
80 | ll=(c)->A; HOST_l2c(ll,(s)); \ | 80 | ll=(c)->A; (void)HOST_l2c(ll,(s)); \ |
81 | ll=(c)->B; HOST_l2c(ll,(s)); \ | 81 | ll=(c)->B; (void)HOST_l2c(ll,(s)); \ |
82 | ll=(c)->C; HOST_l2c(ll,(s)); \ | 82 | ll=(c)->C; (void)HOST_l2c(ll,(s)); \ |
83 | ll=(c)->D; HOST_l2c(ll,(s)); \ | 83 | ll=(c)->D; (void)HOST_l2c(ll,(s)); \ |
84 | } while (0) | 84 | } while (0) |
85 | #define HASH_BLOCK_DATA_ORDER md4_block_data_order | 85 | #define HASH_BLOCK_DATA_ORDER md4_block_data_order |
86 | 86 | ||
diff --git a/src/lib/libssl/src/crypto/md5/md5_locl.h b/src/lib/libssl/src/crypto/md5/md5_locl.h index 968d577995..74d63d1f9c 100644 --- a/src/lib/libssl/src/crypto/md5/md5_locl.h +++ b/src/lib/libssl/src/crypto/md5/md5_locl.h | |||
@@ -86,10 +86,10 @@ void md5_block_data_order (MD5_CTX *c, const void *p,size_t num); | |||
86 | #define HASH_FINAL MD5_Final | 86 | #define HASH_FINAL MD5_Final |
87 | #define HASH_MAKE_STRING(c,s) do { \ | 87 | #define HASH_MAKE_STRING(c,s) do { \ |
88 | unsigned long ll; \ | 88 | unsigned long ll; \ |
89 | ll=(c)->A; HOST_l2c(ll,(s)); \ | 89 | ll=(c)->A; (void)HOST_l2c(ll,(s)); \ |
90 | ll=(c)->B; HOST_l2c(ll,(s)); \ | 90 | ll=(c)->B; (void)HOST_l2c(ll,(s)); \ |
91 | ll=(c)->C; HOST_l2c(ll,(s)); \ | 91 | ll=(c)->C; (void)HOST_l2c(ll,(s)); \ |
92 | ll=(c)->D; HOST_l2c(ll,(s)); \ | 92 | ll=(c)->D; (void)HOST_l2c(ll,(s)); \ |
93 | } while (0) | 93 | } while (0) |
94 | #define HASH_BLOCK_DATA_ORDER md5_block_data_order | 94 | #define HASH_BLOCK_DATA_ORDER md5_block_data_order |
95 | 95 | ||
diff --git a/src/lib/libssl/src/crypto/mdc2/mdc2dgst.c b/src/lib/libssl/src/crypto/mdc2/mdc2dgst.c index b74bb1a759..d66ed6a1c6 100644 --- a/src/lib/libssl/src/crypto/mdc2/mdc2dgst.c +++ b/src/lib/libssl/src/crypto/mdc2/mdc2dgst.c | |||
@@ -59,9 +59,9 @@ | |||
59 | #include <stdio.h> | 59 | #include <stdio.h> |
60 | #include <stdlib.h> | 60 | #include <stdlib.h> |
61 | #include <string.h> | 61 | #include <string.h> |
62 | #include <openssl/crypto.h> | ||
62 | #include <openssl/des.h> | 63 | #include <openssl/des.h> |
63 | #include <openssl/mdc2.h> | 64 | #include <openssl/mdc2.h> |
64 | #include <openssl/crypto.h> | ||
65 | 65 | ||
66 | #undef c2l | 66 | #undef c2l |
67 | #define c2l(c,l) (l =((DES_LONG)(*((c)++))) , \ | 67 | #define c2l(c,l) (l =((DES_LONG)(*((c)++))) , \ |
diff --git a/src/lib/libssl/src/crypto/mem.c b/src/lib/libssl/src/crypto/mem.c index 24ccf729ca..55e829dc92 100644 --- a/src/lib/libssl/src/crypto/mem.c +++ b/src/lib/libssl/src/crypto/mem.c | |||
@@ -121,10 +121,10 @@ static void (*set_debug_options_func)(long) = NULL; | |||
121 | static long (*get_debug_options_func)(void) = NULL; | 121 | static long (*get_debug_options_func)(void) = NULL; |
122 | #endif | 122 | #endif |
123 | 123 | ||
124 | |||
125 | int CRYPTO_set_mem_functions(void *(*m)(size_t), void *(*r)(void *, size_t), | 124 | int CRYPTO_set_mem_functions(void *(*m)(size_t), void *(*r)(void *, size_t), |
126 | void (*f)(void *)) | 125 | void (*f)(void *)) |
127 | { | 126 | { |
127 | /* Dummy call just to ensure OPENSSL_init() gets linked in */ | ||
128 | OPENSSL_init(); | 128 | OPENSSL_init(); |
129 | if (!allow_customize) | 129 | if (!allow_customize) |
130 | return 0; | 130 | return 0; |
diff --git a/src/lib/libssl/src/crypto/modes/Makefile b/src/lib/libssl/src/crypto/modes/Makefile index 3d8bafd571..c825b12f25 100644 --- a/src/lib/libssl/src/crypto/modes/Makefile +++ b/src/lib/libssl/src/crypto/modes/Makefile | |||
@@ -53,10 +53,7 @@ ghash-x86_64.s: asm/ghash-x86_64.pl | |||
53 | ghash-sparcv9.s: asm/ghash-sparcv9.pl | 53 | ghash-sparcv9.s: asm/ghash-sparcv9.pl |
54 | $(PERL) asm/ghash-sparcv9.pl $@ $(CFLAGS) | 54 | $(PERL) asm/ghash-sparcv9.pl $@ $(CFLAGS) |
55 | ghash-alpha.s: asm/ghash-alpha.pl | 55 | ghash-alpha.s: asm/ghash-alpha.pl |
56 | (preproc=/tmp/$$$$.$@; trap "rm $$preproc" INT; \ | 56 | $(PERL) $< | $(CC) -E - | tee $@ > /dev/null |
57 | $(PERL) asm/ghash-alpha.pl > $$preproc && \ | ||
58 | $(CC) -E $$preproc > $@ && rm $$preproc) | ||
59 | |||
60 | ghash-parisc.s: asm/ghash-parisc.pl | 57 | ghash-parisc.s: asm/ghash-parisc.pl |
61 | $(PERL) asm/ghash-parisc.pl $(PERLASM_SCHEME) $@ | 58 | $(PERL) asm/ghash-parisc.pl $(PERLASM_SCHEME) $@ |
62 | 59 | ||
diff --git a/src/lib/libssl/src/crypto/objects/o_names.c b/src/lib/libssl/src/crypto/objects/o_names.c index 84380a96a9..4a548c2ed4 100644 --- a/src/lib/libssl/src/crypto/objects/o_names.c +++ b/src/lib/libssl/src/crypto/objects/o_names.c | |||
@@ -73,7 +73,7 @@ int OBJ_NAME_new_index(unsigned long (*hash_func)(const char *), | |||
73 | name_funcs_stack=sk_NAME_FUNCS_new_null(); | 73 | name_funcs_stack=sk_NAME_FUNCS_new_null(); |
74 | MemCheck_on(); | 74 | MemCheck_on(); |
75 | } | 75 | } |
76 | if ((name_funcs_stack == NULL)) | 76 | if (name_funcs_stack == NULL) |
77 | { | 77 | { |
78 | /* ERROR */ | 78 | /* ERROR */ |
79 | return(0); | 79 | return(0); |
diff --git a/src/lib/libssl/src/crypto/ocsp/ocsp_vfy.c b/src/lib/libssl/src/crypto/ocsp/ocsp_vfy.c index 91a45c9133..276718304d 100644 --- a/src/lib/libssl/src/crypto/ocsp/ocsp_vfy.c +++ b/src/lib/libssl/src/crypto/ocsp/ocsp_vfy.c | |||
@@ -111,6 +111,7 @@ int OCSP_basic_verify(OCSP_BASICRESP *bs, STACK_OF(X509) *certs, | |||
111 | init_res = X509_STORE_CTX_init(&ctx, st, signer, bs->certs); | 111 | init_res = X509_STORE_CTX_init(&ctx, st, signer, bs->certs); |
112 | if(!init_res) | 112 | if(!init_res) |
113 | { | 113 | { |
114 | ret = -1; | ||
114 | OCSPerr(OCSP_F_OCSP_BASIC_VERIFY,ERR_R_X509_LIB); | 115 | OCSPerr(OCSP_F_OCSP_BASIC_VERIFY,ERR_R_X509_LIB); |
115 | goto end; | 116 | goto end; |
116 | } | 117 | } |
diff --git a/src/lib/libssl/src/crypto/opensslv.h b/src/lib/libssl/src/crypto/opensslv.h index 71be3590af..ebe7180723 100644 --- a/src/lib/libssl/src/crypto/opensslv.h +++ b/src/lib/libssl/src/crypto/opensslv.h | |||
@@ -25,11 +25,11 @@ | |||
25 | * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for | 25 | * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for |
26 | * major minor fix final patch/beta) | 26 | * major minor fix final patch/beta) |
27 | */ | 27 | */ |
28 | #define OPENSSL_VERSION_NUMBER 0x1000103fL | 28 | #define OPENSSL_VERSION_NUMBER 0x1000107fL |
29 | #ifdef OPENSSL_FIPS | 29 | #ifdef OPENSSL_FIPS |
30 | #define OPENSSL_VERSION_TEXT "OpenSSL 1.0.1c-fips 10 May 2012" | 30 | #define OPENSSL_VERSION_TEXT "OpenSSL 1.0.1g-fips 7 Apr 2014" |
31 | #else | 31 | #else |
32 | #define OPENSSL_VERSION_TEXT "OpenSSL 1.0.1c 10 May 2012" | 32 | #define OPENSSL_VERSION_TEXT "OpenSSL 1.0.1g 7 Apr 2014" |
33 | #endif | 33 | #endif |
34 | #define OPENSSL_VERSION_PTEXT " part of " OPENSSL_VERSION_TEXT | 34 | #define OPENSSL_VERSION_PTEXT " part of " OPENSSL_VERSION_TEXT |
35 | 35 | ||
diff --git a/src/lib/libssl/src/crypto/pem/pem_all.c b/src/lib/libssl/src/crypto/pem/pem_all.c index 3e7a6093ad..eac0460e3e 100644 --- a/src/lib/libssl/src/crypto/pem/pem_all.c +++ b/src/lib/libssl/src/crypto/pem/pem_all.c | |||
@@ -193,7 +193,61 @@ RSA *PEM_read_RSAPrivateKey(FILE *fp, RSA **rsa, pem_password_cb *cb, | |||
193 | 193 | ||
194 | #endif | 194 | #endif |
195 | 195 | ||
196 | #ifdef OPENSSL_FIPS | ||
197 | |||
198 | int PEM_write_bio_RSAPrivateKey(BIO *bp, RSA *x, const EVP_CIPHER *enc, | ||
199 | unsigned char *kstr, int klen, | ||
200 | pem_password_cb *cb, void *u) | ||
201 | { | ||
202 | if (FIPS_mode()) | ||
203 | { | ||
204 | EVP_PKEY *k; | ||
205 | int ret; | ||
206 | k = EVP_PKEY_new(); | ||
207 | if (!k) | ||
208 | return 0; | ||
209 | EVP_PKEY_set1_RSA(k, x); | ||
210 | |||
211 | ret = PEM_write_bio_PrivateKey(bp, k, enc, kstr, klen, cb, u); | ||
212 | EVP_PKEY_free(k); | ||
213 | return ret; | ||
214 | } | ||
215 | else | ||
216 | return PEM_ASN1_write_bio((i2d_of_void *)i2d_RSAPrivateKey, | ||
217 | PEM_STRING_RSA,bp,x,enc,kstr,klen,cb,u); | ||
218 | } | ||
219 | |||
220 | #ifndef OPENSSL_NO_FP_API | ||
221 | int PEM_write_RSAPrivateKey(FILE *fp, RSA *x, const EVP_CIPHER *enc, | ||
222 | unsigned char *kstr, int klen, | ||
223 | pem_password_cb *cb, void *u) | ||
224 | { | ||
225 | if (FIPS_mode()) | ||
226 | { | ||
227 | EVP_PKEY *k; | ||
228 | int ret; | ||
229 | k = EVP_PKEY_new(); | ||
230 | if (!k) | ||
231 | return 0; | ||
232 | |||
233 | EVP_PKEY_set1_RSA(k, x); | ||
234 | |||
235 | ret = PEM_write_PrivateKey(fp, k, enc, kstr, klen, cb, u); | ||
236 | EVP_PKEY_free(k); | ||
237 | return ret; | ||
238 | } | ||
239 | else | ||
240 | return PEM_ASN1_write((i2d_of_void *)i2d_RSAPrivateKey, | ||
241 | PEM_STRING_RSA,fp,x,enc,kstr,klen,cb,u); | ||
242 | } | ||
243 | #endif | ||
244 | |||
245 | #else | ||
246 | |||
196 | IMPLEMENT_PEM_write_cb_const(RSAPrivateKey, RSA, PEM_STRING_RSA, RSAPrivateKey) | 247 | IMPLEMENT_PEM_write_cb_const(RSAPrivateKey, RSA, PEM_STRING_RSA, RSAPrivateKey) |
248 | |||
249 | #endif | ||
250 | |||
197 | IMPLEMENT_PEM_rw_const(RSAPublicKey, RSA, PEM_STRING_RSA_PUBLIC, RSAPublicKey) | 251 | IMPLEMENT_PEM_rw_const(RSAPublicKey, RSA, PEM_STRING_RSA_PUBLIC, RSAPublicKey) |
198 | IMPLEMENT_PEM_rw(RSA_PUBKEY, RSA, PEM_STRING_PUBLIC, RSA_PUBKEY) | 252 | IMPLEMENT_PEM_rw(RSA_PUBKEY, RSA, PEM_STRING_PUBLIC, RSA_PUBKEY) |
199 | 253 | ||
@@ -223,7 +277,59 @@ DSA *PEM_read_bio_DSAPrivateKey(BIO *bp, DSA **dsa, pem_password_cb *cb, | |||
223 | return pkey_get_dsa(pktmp, dsa); /* will free pktmp */ | 277 | return pkey_get_dsa(pktmp, dsa); /* will free pktmp */ |
224 | } | 278 | } |
225 | 279 | ||
280 | #ifdef OPENSSL_FIPS | ||
281 | |||
282 | int PEM_write_bio_DSAPrivateKey(BIO *bp, DSA *x, const EVP_CIPHER *enc, | ||
283 | unsigned char *kstr, int klen, | ||
284 | pem_password_cb *cb, void *u) | ||
285 | { | ||
286 | if (FIPS_mode()) | ||
287 | { | ||
288 | EVP_PKEY *k; | ||
289 | int ret; | ||
290 | k = EVP_PKEY_new(); | ||
291 | if (!k) | ||
292 | return 0; | ||
293 | EVP_PKEY_set1_DSA(k, x); | ||
294 | |||
295 | ret = PEM_write_bio_PrivateKey(bp, k, enc, kstr, klen, cb, u); | ||
296 | EVP_PKEY_free(k); | ||
297 | return ret; | ||
298 | } | ||
299 | else | ||
300 | return PEM_ASN1_write_bio((i2d_of_void *)i2d_DSAPrivateKey, | ||
301 | PEM_STRING_DSA,bp,x,enc,kstr,klen,cb,u); | ||
302 | } | ||
303 | |||
304 | #ifndef OPENSSL_NO_FP_API | ||
305 | int PEM_write_DSAPrivateKey(FILE *fp, DSA *x, const EVP_CIPHER *enc, | ||
306 | unsigned char *kstr, int klen, | ||
307 | pem_password_cb *cb, void *u) | ||
308 | { | ||
309 | if (FIPS_mode()) | ||
310 | { | ||
311 | EVP_PKEY *k; | ||
312 | int ret; | ||
313 | k = EVP_PKEY_new(); | ||
314 | if (!k) | ||
315 | return 0; | ||
316 | EVP_PKEY_set1_DSA(k, x); | ||
317 | ret = PEM_write_PrivateKey(fp, k, enc, kstr, klen, cb, u); | ||
318 | EVP_PKEY_free(k); | ||
319 | return ret; | ||
320 | } | ||
321 | else | ||
322 | return PEM_ASN1_write((i2d_of_void *)i2d_DSAPrivateKey, | ||
323 | PEM_STRING_DSA,fp,x,enc,kstr,klen,cb,u); | ||
324 | } | ||
325 | #endif | ||
326 | |||
327 | #else | ||
328 | |||
226 | IMPLEMENT_PEM_write_cb_const(DSAPrivateKey, DSA, PEM_STRING_DSA, DSAPrivateKey) | 329 | IMPLEMENT_PEM_write_cb_const(DSAPrivateKey, DSA, PEM_STRING_DSA, DSAPrivateKey) |
330 | |||
331 | #endif | ||
332 | |||
227 | IMPLEMENT_PEM_rw(DSA_PUBKEY, DSA, PEM_STRING_PUBLIC, DSA_PUBKEY) | 333 | IMPLEMENT_PEM_rw(DSA_PUBKEY, DSA, PEM_STRING_PUBLIC, DSA_PUBKEY) |
228 | 334 | ||
229 | #ifndef OPENSSL_NO_FP_API | 335 | #ifndef OPENSSL_NO_FP_API |
@@ -269,8 +375,63 @@ EC_KEY *PEM_read_bio_ECPrivateKey(BIO *bp, EC_KEY **key, pem_password_cb *cb, | |||
269 | 375 | ||
270 | IMPLEMENT_PEM_rw_const(ECPKParameters, EC_GROUP, PEM_STRING_ECPARAMETERS, ECPKParameters) | 376 | IMPLEMENT_PEM_rw_const(ECPKParameters, EC_GROUP, PEM_STRING_ECPARAMETERS, ECPKParameters) |
271 | 377 | ||
378 | |||
379 | |||
380 | #ifdef OPENSSL_FIPS | ||
381 | |||
382 | int PEM_write_bio_ECPrivateKey(BIO *bp, EC_KEY *x, const EVP_CIPHER *enc, | ||
383 | unsigned char *kstr, int klen, | ||
384 | pem_password_cb *cb, void *u) | ||
385 | { | ||
386 | if (FIPS_mode()) | ||
387 | { | ||
388 | EVP_PKEY *k; | ||
389 | int ret; | ||
390 | k = EVP_PKEY_new(); | ||
391 | if (!k) | ||
392 | return 0; | ||
393 | EVP_PKEY_set1_EC_KEY(k, x); | ||
394 | |||
395 | ret = PEM_write_bio_PrivateKey(bp, k, enc, kstr, klen, cb, u); | ||
396 | EVP_PKEY_free(k); | ||
397 | return ret; | ||
398 | } | ||
399 | else | ||
400 | return PEM_ASN1_write_bio((i2d_of_void *)i2d_ECPrivateKey, | ||
401 | PEM_STRING_ECPRIVATEKEY, | ||
402 | bp,x,enc,kstr,klen,cb,u); | ||
403 | } | ||
404 | |||
405 | #ifndef OPENSSL_NO_FP_API | ||
406 | int PEM_write_ECPrivateKey(FILE *fp, EC_KEY *x, const EVP_CIPHER *enc, | ||
407 | unsigned char *kstr, int klen, | ||
408 | pem_password_cb *cb, void *u) | ||
409 | { | ||
410 | if (FIPS_mode()) | ||
411 | { | ||
412 | EVP_PKEY *k; | ||
413 | int ret; | ||
414 | k = EVP_PKEY_new(); | ||
415 | if (!k) | ||
416 | return 0; | ||
417 | EVP_PKEY_set1_EC_KEY(k, x); | ||
418 | ret = PEM_write_PrivateKey(fp, k, enc, kstr, klen, cb, u); | ||
419 | EVP_PKEY_free(k); | ||
420 | return ret; | ||
421 | } | ||
422 | else | ||
423 | return PEM_ASN1_write((i2d_of_void *)i2d_ECPrivateKey, | ||
424 | PEM_STRING_ECPRIVATEKEY, | ||
425 | fp,x,enc,kstr,klen,cb,u); | ||
426 | } | ||
427 | #endif | ||
428 | |||
429 | #else | ||
430 | |||
272 | IMPLEMENT_PEM_write_cb(ECPrivateKey, EC_KEY, PEM_STRING_ECPRIVATEKEY, ECPrivateKey) | 431 | IMPLEMENT_PEM_write_cb(ECPrivateKey, EC_KEY, PEM_STRING_ECPRIVATEKEY, ECPrivateKey) |
273 | 432 | ||
433 | #endif | ||
434 | |||
274 | IMPLEMENT_PEM_rw(EC_PUBKEY, EC_KEY, PEM_STRING_PUBLIC, EC_PUBKEY) | 435 | IMPLEMENT_PEM_rw(EC_PUBKEY, EC_KEY, PEM_STRING_PUBLIC, EC_PUBKEY) |
275 | 436 | ||
276 | #ifndef OPENSSL_NO_FP_API | 437 | #ifndef OPENSSL_NO_FP_API |
diff --git a/src/lib/libssl/src/crypto/pem/pem_info.c b/src/lib/libssl/src/crypto/pem/pem_info.c index 1b2be527ed..cc7f24a9c1 100644 --- a/src/lib/libssl/src/crypto/pem/pem_info.c +++ b/src/lib/libssl/src/crypto/pem/pem_info.c | |||
@@ -167,6 +167,7 @@ start: | |||
167 | #ifndef OPENSSL_NO_RSA | 167 | #ifndef OPENSSL_NO_RSA |
168 | if (strcmp(name,PEM_STRING_RSA) == 0) | 168 | if (strcmp(name,PEM_STRING_RSA) == 0) |
169 | { | 169 | { |
170 | d2i=(D2I_OF(void))d2i_RSAPrivateKey; | ||
170 | if (xi->x_pkey != NULL) | 171 | if (xi->x_pkey != NULL) |
171 | { | 172 | { |
172 | if (!sk_X509_INFO_push(ret,xi)) goto err; | 173 | if (!sk_X509_INFO_push(ret,xi)) goto err; |
diff --git a/src/lib/libssl/src/crypto/pem/pem_lib.c b/src/lib/libssl/src/crypto/pem/pem_lib.c index cfc89a9921..5a421fc4b6 100644 --- a/src/lib/libssl/src/crypto/pem/pem_lib.c +++ b/src/lib/libssl/src/crypto/pem/pem_lib.c | |||
@@ -394,7 +394,8 @@ int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, | |||
394 | goto err; | 394 | goto err; |
395 | /* The 'iv' is used as the iv and as a salt. It is | 395 | /* The 'iv' is used as the iv and as a salt. It is |
396 | * NOT taken from the BytesToKey function */ | 396 | * NOT taken from the BytesToKey function */ |
397 | EVP_BytesToKey(enc,EVP_md5(),iv,kstr,klen,1,key,NULL); | 397 | if (!EVP_BytesToKey(enc,EVP_md5(),iv,kstr,klen,1,key,NULL)) |
398 | goto err; | ||
398 | 399 | ||
399 | if (kstr == (unsigned char *)buf) OPENSSL_cleanse(buf,PEM_BUFSIZE); | 400 | if (kstr == (unsigned char *)buf) OPENSSL_cleanse(buf,PEM_BUFSIZE); |
400 | 401 | ||
@@ -406,12 +407,15 @@ int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, | |||
406 | /* k=strlen(buf); */ | 407 | /* k=strlen(buf); */ |
407 | 408 | ||
408 | EVP_CIPHER_CTX_init(&ctx); | 409 | EVP_CIPHER_CTX_init(&ctx); |
409 | EVP_EncryptInit_ex(&ctx,enc,NULL,key,iv); | 410 | ret = 1; |
410 | EVP_EncryptUpdate(&ctx,data,&j,data,i); | 411 | if (!EVP_EncryptInit_ex(&ctx,enc,NULL,key,iv) |
411 | EVP_EncryptFinal_ex(&ctx,&(data[j]),&i); | 412 | || !EVP_EncryptUpdate(&ctx,data,&j,data,i) |
413 | || !EVP_EncryptFinal_ex(&ctx,&(data[j]),&i)) | ||
414 | ret = 0; | ||
412 | EVP_CIPHER_CTX_cleanup(&ctx); | 415 | EVP_CIPHER_CTX_cleanup(&ctx); |
416 | if (ret == 0) | ||
417 | goto err; | ||
413 | i+=j; | 418 | i+=j; |
414 | ret=1; | ||
415 | } | 419 | } |
416 | else | 420 | else |
417 | { | 421 | { |
@@ -459,14 +463,17 @@ int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *plen, | |||
459 | ebcdic2ascii(buf, buf, klen); | 463 | ebcdic2ascii(buf, buf, klen); |
460 | #endif | 464 | #endif |
461 | 465 | ||
462 | EVP_BytesToKey(cipher->cipher,EVP_md5(),&(cipher->iv[0]), | 466 | if (!EVP_BytesToKey(cipher->cipher,EVP_md5(),&(cipher->iv[0]), |
463 | (unsigned char *)buf,klen,1,key,NULL); | 467 | (unsigned char *)buf,klen,1,key,NULL)) |
468 | return 0; | ||
464 | 469 | ||
465 | j=(int)len; | 470 | j=(int)len; |
466 | EVP_CIPHER_CTX_init(&ctx); | 471 | EVP_CIPHER_CTX_init(&ctx); |
467 | EVP_DecryptInit_ex(&ctx,cipher->cipher,NULL, key,&(cipher->iv[0])); | 472 | o = EVP_DecryptInit_ex(&ctx,cipher->cipher,NULL, key,&(cipher->iv[0])); |
468 | EVP_DecryptUpdate(&ctx,data,&i,data,j); | 473 | if (o) |
469 | o=EVP_DecryptFinal_ex(&ctx,&(data[i]),&j); | 474 | o = EVP_DecryptUpdate(&ctx,data,&i,data,j); |
475 | if (o) | ||
476 | o = EVP_DecryptFinal_ex(&ctx,&(data[i]),&j); | ||
470 | EVP_CIPHER_CTX_cleanup(&ctx); | 477 | EVP_CIPHER_CTX_cleanup(&ctx); |
471 | OPENSSL_cleanse((char *)buf,sizeof(buf)); | 478 | OPENSSL_cleanse((char *)buf,sizeof(buf)); |
472 | OPENSSL_cleanse((char *)key,sizeof(key)); | 479 | OPENSSL_cleanse((char *)key,sizeof(key)); |
diff --git a/src/lib/libssl/src/crypto/pem/pem_seal.c b/src/lib/libssl/src/crypto/pem/pem_seal.c index 59690b56ae..b6b4e13498 100644 --- a/src/lib/libssl/src/crypto/pem/pem_seal.c +++ b/src/lib/libssl/src/crypto/pem/pem_seal.c | |||
@@ -96,7 +96,8 @@ int PEM_SealInit(PEM_ENCODE_SEAL_CTX *ctx, EVP_CIPHER *type, EVP_MD *md_type, | |||
96 | EVP_EncodeInit(&ctx->encode); | 96 | EVP_EncodeInit(&ctx->encode); |
97 | 97 | ||
98 | EVP_MD_CTX_init(&ctx->md); | 98 | EVP_MD_CTX_init(&ctx->md); |
99 | EVP_SignInit(&ctx->md,md_type); | 99 | if (!EVP_SignInit(&ctx->md,md_type)) |
100 | goto err; | ||
100 | 101 | ||
101 | EVP_CIPHER_CTX_init(&ctx->cipher); | 102 | EVP_CIPHER_CTX_init(&ctx->cipher); |
102 | ret=EVP_SealInit(&ctx->cipher,type,ek,ekl,iv,pubk,npubk); | 103 | ret=EVP_SealInit(&ctx->cipher,type,ek,ekl,iv,pubk,npubk); |
@@ -163,7 +164,8 @@ int PEM_SealFinal(PEM_ENCODE_SEAL_CTX *ctx, unsigned char *sig, int *sigl, | |||
163 | goto err; | 164 | goto err; |
164 | } | 165 | } |
165 | 166 | ||
166 | EVP_EncryptFinal_ex(&ctx->cipher,s,(int *)&i); | 167 | if (!EVP_EncryptFinal_ex(&ctx->cipher,s,(int *)&i)) |
168 | goto err; | ||
167 | EVP_EncodeUpdate(&ctx->encode,out,&j,s,i); | 169 | EVP_EncodeUpdate(&ctx->encode,out,&j,s,i); |
168 | *outl=j; | 170 | *outl=j; |
169 | out+=j; | 171 | out+=j; |
diff --git a/src/lib/libssl/src/crypto/perlasm/cbc.pl b/src/lib/libssl/src/crypto/perlasm/cbc.pl index 6fc2510905..24561e759a 100644 --- a/src/lib/libssl/src/crypto/perlasm/cbc.pl +++ b/src/lib/libssl/src/crypto/perlasm/cbc.pl | |||
@@ -150,7 +150,7 @@ sub cbc | |||
150 | &set_label("PIC_point"); | 150 | &set_label("PIC_point"); |
151 | &blindpop("edx"); | 151 | &blindpop("edx"); |
152 | &lea("ecx",&DWP(&label("cbc_enc_jmp_table")."-".&label("PIC_point"),"edx")); | 152 | &lea("ecx",&DWP(&label("cbc_enc_jmp_table")."-".&label("PIC_point"),"edx")); |
153 | &mov($count,&DWP(0,"ecx",$count,4)) | 153 | &mov($count,&DWP(0,"ecx",$count,4)); |
154 | &add($count,"edx"); | 154 | &add($count,"edx"); |
155 | &xor("ecx","ecx"); | 155 | &xor("ecx","ecx"); |
156 | &xor("edx","edx"); | 156 | &xor("edx","edx"); |
diff --git a/src/lib/libssl/src/crypto/pkcs12/p12_crt.c b/src/lib/libssl/src/crypto/pkcs12/p12_crt.c index 96b131defa..a34915d02d 100644 --- a/src/lib/libssl/src/crypto/pkcs12/p12_crt.c +++ b/src/lib/libssl/src/crypto/pkcs12/p12_crt.c | |||
@@ -90,7 +90,14 @@ PKCS12 *PKCS12_create(char *pass, char *name, EVP_PKEY *pkey, X509 *cert, | |||
90 | 90 | ||
91 | /* Set defaults */ | 91 | /* Set defaults */ |
92 | if (!nid_cert) | 92 | if (!nid_cert) |
93 | { | ||
94 | #ifdef OPENSSL_FIPS | ||
95 | if (FIPS_mode()) | ||
96 | nid_cert = NID_pbe_WithSHA1And3_Key_TripleDES_CBC; | ||
97 | else | ||
98 | #endif | ||
93 | nid_cert = NID_pbe_WithSHA1And40BitRC2_CBC; | 99 | nid_cert = NID_pbe_WithSHA1And40BitRC2_CBC; |
100 | } | ||
94 | if (!nid_key) | 101 | if (!nid_key) |
95 | nid_key = NID_pbe_WithSHA1And3_Key_TripleDES_CBC; | 102 | nid_key = NID_pbe_WithSHA1And3_Key_TripleDES_CBC; |
96 | if (!iter) | 103 | if (!iter) |
diff --git a/src/lib/libssl/src/crypto/pkcs12/p12_key.c b/src/lib/libssl/src/crypto/pkcs12/p12_key.c index c55c7b60b3..61d58502fd 100644 --- a/src/lib/libssl/src/crypto/pkcs12/p12_key.c +++ b/src/lib/libssl/src/crypto/pkcs12/p12_key.c | |||
@@ -176,24 +176,32 @@ int PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned char *salt, | |||
176 | out += u; | 176 | out += u; |
177 | for (j = 0; j < v; j++) B[j] = Ai[j % u]; | 177 | for (j = 0; j < v; j++) B[j] = Ai[j % u]; |
178 | /* Work out B + 1 first then can use B as tmp space */ | 178 | /* Work out B + 1 first then can use B as tmp space */ |
179 | if (!BN_bin2bn (B, v, Bpl1)) goto err; | 179 | if (!BN_bin2bn (B, v, Bpl1)) |
180 | if (!BN_add_word (Bpl1, 1)) goto err; | 180 | goto err; |
181 | if (!BN_add_word (Bpl1, 1)) | ||
182 | goto err; | ||
181 | for (j = 0; j < Ilen ; j+=v) { | 183 | for (j = 0; j < Ilen ; j+=v) { |
182 | if (!BN_bin2bn (I + j, v, Ij)) goto err; | 184 | if (!BN_bin2bn(I + j, v, Ij)) |
183 | if (!BN_add (Ij, Ij, Bpl1)) goto err; | 185 | goto err; |
184 | BN_bn2bin (Ij, B); | 186 | if (!BN_add(Ij, Ij, Bpl1)) |
187 | goto err; | ||
188 | if (!BN_bn2bin(Ij, B)) | ||
189 | goto err; | ||
185 | Ijlen = BN_num_bytes (Ij); | 190 | Ijlen = BN_num_bytes (Ij); |
186 | /* If more than 2^(v*8) - 1 cut off MSB */ | 191 | /* If more than 2^(v*8) - 1 cut off MSB */ |
187 | if (Ijlen > v) { | 192 | if (Ijlen > v) { |
188 | BN_bn2bin (Ij, B); | 193 | if (!BN_bn2bin (Ij, B)) |
194 | goto err; | ||
189 | memcpy (I + j, B + 1, v); | 195 | memcpy (I + j, B + 1, v); |
190 | #ifndef PKCS12_BROKEN_KEYGEN | 196 | #ifndef PKCS12_BROKEN_KEYGEN |
191 | /* If less than v bytes pad with zeroes */ | 197 | /* If less than v bytes pad with zeroes */ |
192 | } else if (Ijlen < v) { | 198 | } else if (Ijlen < v) { |
193 | memset(I + j, 0, v - Ijlen); | 199 | memset(I + j, 0, v - Ijlen); |
194 | BN_bn2bin(Ij, I + j + v - Ijlen); | 200 | if (!BN_bn2bin(Ij, I + j + v - Ijlen)) |
201 | goto err; | ||
195 | #endif | 202 | #endif |
196 | } else BN_bn2bin (Ij, I + j); | 203 | } else if (!BN_bn2bin (Ij, I + j)) |
204 | goto err; | ||
197 | } | 205 | } |
198 | } | 206 | } |
199 | 207 | ||
diff --git a/src/lib/libssl/src/crypto/rand/md_rand.c b/src/lib/libssl/src/crypto/rand/md_rand.c index fcdd3f2a84..aee1c30b0a 100644 --- a/src/lib/libssl/src/crypto/rand/md_rand.c +++ b/src/lib/libssl/src/crypto/rand/md_rand.c | |||
@@ -123,10 +123,10 @@ | |||
123 | 123 | ||
124 | #include "e_os.h" | 124 | #include "e_os.h" |
125 | 125 | ||
126 | #include <openssl/crypto.h> | ||
126 | #include <openssl/rand.h> | 127 | #include <openssl/rand.h> |
127 | #include "rand_lcl.h" | 128 | #include "rand_lcl.h" |
128 | 129 | ||
129 | #include <openssl/crypto.h> | ||
130 | #include <openssl/err.h> | 130 | #include <openssl/err.h> |
131 | 131 | ||
132 | #ifdef BN_DEBUG | 132 | #ifdef BN_DEBUG |
@@ -198,6 +198,9 @@ static void ssleay_rand_add(const void *buf, int num, double add) | |||
198 | EVP_MD_CTX m; | 198 | EVP_MD_CTX m; |
199 | int do_not_lock; | 199 | int do_not_lock; |
200 | 200 | ||
201 | if (!num) | ||
202 | return; | ||
203 | |||
201 | /* | 204 | /* |
202 | * (Based on the rand(3) manpage) | 205 | * (Based on the rand(3) manpage) |
203 | * | 206 | * |
@@ -380,8 +383,11 @@ static int ssleay_rand_bytes(unsigned char *buf, int num, int pseudo) | |||
380 | * are fed into the hash function and the results are kept in the | 383 | * are fed into the hash function and the results are kept in the |
381 | * global 'md'. | 384 | * global 'md'. |
382 | */ | 385 | */ |
383 | 386 | #ifdef OPENSSL_FIPS | |
384 | CRYPTO_w_lock(CRYPTO_LOCK_RAND); | 387 | /* NB: in FIPS mode we are already under a lock */ |
388 | if (!FIPS_mode()) | ||
389 | #endif | ||
390 | CRYPTO_w_lock(CRYPTO_LOCK_RAND); | ||
385 | 391 | ||
386 | /* prevent ssleay_rand_bytes() from trying to obtain the lock again */ | 392 | /* prevent ssleay_rand_bytes() from trying to obtain the lock again */ |
387 | CRYPTO_w_lock(CRYPTO_LOCK_RAND2); | 393 | CRYPTO_w_lock(CRYPTO_LOCK_RAND2); |
@@ -460,7 +466,10 @@ static int ssleay_rand_bytes(unsigned char *buf, int num, int pseudo) | |||
460 | 466 | ||
461 | /* before unlocking, we must clear 'crypto_lock_rand' */ | 467 | /* before unlocking, we must clear 'crypto_lock_rand' */ |
462 | crypto_lock_rand = 0; | 468 | crypto_lock_rand = 0; |
463 | CRYPTO_w_unlock(CRYPTO_LOCK_RAND); | 469 | #ifdef OPENSSL_FIPS |
470 | if (!FIPS_mode()) | ||
471 | #endif | ||
472 | CRYPTO_w_unlock(CRYPTO_LOCK_RAND); | ||
464 | 473 | ||
465 | while (num > 0) | 474 | while (num > 0) |
466 | { | 475 | { |
@@ -512,10 +521,16 @@ static int ssleay_rand_bytes(unsigned char *buf, int num, int pseudo) | |||
512 | MD_Init(&m); | 521 | MD_Init(&m); |
513 | MD_Update(&m,(unsigned char *)&(md_c[0]),sizeof(md_c)); | 522 | MD_Update(&m,(unsigned char *)&(md_c[0]),sizeof(md_c)); |
514 | MD_Update(&m,local_md,MD_DIGEST_LENGTH); | 523 | MD_Update(&m,local_md,MD_DIGEST_LENGTH); |
515 | CRYPTO_w_lock(CRYPTO_LOCK_RAND); | 524 | #ifdef OPENSSL_FIPS |
525 | if (!FIPS_mode()) | ||
526 | #endif | ||
527 | CRYPTO_w_lock(CRYPTO_LOCK_RAND); | ||
516 | MD_Update(&m,md,MD_DIGEST_LENGTH); | 528 | MD_Update(&m,md,MD_DIGEST_LENGTH); |
517 | MD_Final(&m,md); | 529 | MD_Final(&m,md); |
518 | CRYPTO_w_unlock(CRYPTO_LOCK_RAND); | 530 | #ifdef OPENSSL_FIPS |
531 | if (!FIPS_mode()) | ||
532 | #endif | ||
533 | CRYPTO_w_unlock(CRYPTO_LOCK_RAND); | ||
519 | 534 | ||
520 | EVP_MD_CTX_cleanup(&m); | 535 | EVP_MD_CTX_cleanup(&m); |
521 | if (ok) | 536 | if (ok) |
diff --git a/src/lib/libssl/src/crypto/rand/rand.h b/src/lib/libssl/src/crypto/rand/rand.h index dc8fcf94c5..bb5520e80a 100644 --- a/src/lib/libssl/src/crypto/rand/rand.h +++ b/src/lib/libssl/src/crypto/rand/rand.h | |||
@@ -138,6 +138,7 @@ void ERR_load_RAND_strings(void); | |||
138 | #define RAND_F_SSLEAY_RAND_BYTES 100 | 138 | #define RAND_F_SSLEAY_RAND_BYTES 100 |
139 | 139 | ||
140 | /* Reason codes. */ | 140 | /* Reason codes. */ |
141 | #define RAND_R_DUAL_EC_DRBG_DISABLED 104 | ||
141 | #define RAND_R_ERROR_INITIALISING_DRBG 102 | 142 | #define RAND_R_ERROR_INITIALISING_DRBG 102 |
142 | #define RAND_R_ERROR_INSTANTIATING_DRBG 103 | 143 | #define RAND_R_ERROR_INSTANTIATING_DRBG 103 |
143 | #define RAND_R_NO_FIPS_RANDOM_METHOD_SET 101 | 144 | #define RAND_R_NO_FIPS_RANDOM_METHOD_SET 101 |
diff --git a/src/lib/libssl/src/crypto/rand/rand_err.c b/src/lib/libssl/src/crypto/rand/rand_err.c index b8586c8f4a..c4c80fc8cc 100644 --- a/src/lib/libssl/src/crypto/rand/rand_err.c +++ b/src/lib/libssl/src/crypto/rand/rand_err.c | |||
@@ -78,6 +78,7 @@ static ERR_STRING_DATA RAND_str_functs[]= | |||
78 | 78 | ||
79 | static ERR_STRING_DATA RAND_str_reasons[]= | 79 | static ERR_STRING_DATA RAND_str_reasons[]= |
80 | { | 80 | { |
81 | {ERR_REASON(RAND_R_DUAL_EC_DRBG_DISABLED),"dual ec drbg disabled"}, | ||
81 | {ERR_REASON(RAND_R_ERROR_INITIALISING_DRBG),"error initialising drbg"}, | 82 | {ERR_REASON(RAND_R_ERROR_INITIALISING_DRBG),"error initialising drbg"}, |
82 | {ERR_REASON(RAND_R_ERROR_INSTANTIATING_DRBG),"error instantiating drbg"}, | 83 | {ERR_REASON(RAND_R_ERROR_INSTANTIATING_DRBG),"error instantiating drbg"}, |
83 | {ERR_REASON(RAND_R_NO_FIPS_RANDOM_METHOD_SET),"no fips random method set"}, | 84 | {ERR_REASON(RAND_R_NO_FIPS_RANDOM_METHOD_SET),"no fips random method set"}, |
diff --git a/src/lib/libssl/src/crypto/rand/rand_lib.c b/src/lib/libssl/src/crypto/rand/rand_lib.c index daf1dab973..5ac0e14caf 100644 --- a/src/lib/libssl/src/crypto/rand/rand_lib.c +++ b/src/lib/libssl/src/crypto/rand/rand_lib.c | |||
@@ -210,8 +210,11 @@ static size_t drbg_get_entropy(DRBG_CTX *ctx, unsigned char **pout, | |||
210 | 210 | ||
211 | static void drbg_free_entropy(DRBG_CTX *ctx, unsigned char *out, size_t olen) | 211 | static void drbg_free_entropy(DRBG_CTX *ctx, unsigned char *out, size_t olen) |
212 | { | 212 | { |
213 | OPENSSL_cleanse(out, olen); | 213 | if (out) |
214 | OPENSSL_free(out); | 214 | { |
215 | OPENSSL_cleanse(out, olen); | ||
216 | OPENSSL_free(out); | ||
217 | } | ||
215 | } | 218 | } |
216 | 219 | ||
217 | /* Set "additional input" when generating random data. This uses the | 220 | /* Set "additional input" when generating random data. This uses the |
@@ -266,6 +269,14 @@ int RAND_init_fips(void) | |||
266 | DRBG_CTX *dctx; | 269 | DRBG_CTX *dctx; |
267 | size_t plen; | 270 | size_t plen; |
268 | unsigned char pers[32], *p; | 271 | unsigned char pers[32], *p; |
272 | #ifndef OPENSSL_ALLOW_DUAL_EC_DRBG | ||
273 | if (fips_drbg_type >> 16) | ||
274 | { | ||
275 | RANDerr(RAND_F_RAND_INIT_FIPS, RAND_R_DUAL_EC_DRBG_DISABLED); | ||
276 | return 0; | ||
277 | } | ||
278 | #endif | ||
279 | |||
269 | dctx = FIPS_get_default_drbg(); | 280 | dctx = FIPS_get_default_drbg(); |
270 | if (FIPS_drbg_init(dctx, fips_drbg_type, fips_drbg_flags) <= 0) | 281 | if (FIPS_drbg_init(dctx, fips_drbg_type, fips_drbg_flags) <= 0) |
271 | { | 282 | { |
diff --git a/src/lib/libssl/src/crypto/rand/rand_win.c b/src/lib/libssl/src/crypto/rand/rand_win.c index 5d134e186b..34ffcd23f9 100644 --- a/src/lib/libssl/src/crypto/rand/rand_win.c +++ b/src/lib/libssl/src/crypto/rand/rand_win.c | |||
@@ -750,7 +750,7 @@ static void readscreen(void) | |||
750 | int y; /* y-coordinate of screen lines to grab */ | 750 | int y; /* y-coordinate of screen lines to grab */ |
751 | int n = 16; /* number of screen lines to grab at a time */ | 751 | int n = 16; /* number of screen lines to grab at a time */ |
752 | 752 | ||
753 | if (GetVersion() < 0x80000000 && OPENSSL_isservice()>0) | 753 | if (check_winnt() && OPENSSL_isservice()>0) |
754 | return; | 754 | return; |
755 | 755 | ||
756 | /* Create a screen DC and a memory DC compatible to screen DC */ | 756 | /* Create a screen DC and a memory DC compatible to screen DC */ |
diff --git a/src/lib/libssl/src/crypto/rand/randfile.c b/src/lib/libssl/src/crypto/rand/randfile.c index 030e07f418..7f1428072d 100644 --- a/src/lib/libssl/src/crypto/rand/randfile.c +++ b/src/lib/libssl/src/crypto/rand/randfile.c | |||
@@ -57,7 +57,9 @@ | |||
57 | */ | 57 | */ |
58 | 58 | ||
59 | /* We need to define this to get macros like S_IFBLK and S_IFCHR */ | 59 | /* We need to define this to get macros like S_IFBLK and S_IFCHR */ |
60 | #if !defined(OPENSSL_SYS_VXWORKS) | ||
60 | #define _XOPEN_SOURCE 500 | 61 | #define _XOPEN_SOURCE 500 |
62 | #endif | ||
61 | 63 | ||
62 | #include <errno.h> | 64 | #include <errno.h> |
63 | #include <stdio.h> | 65 | #include <stdio.h> |
diff --git a/src/lib/libssl/src/crypto/rc4/asm/rc4-x86_64.pl b/src/lib/libssl/src/crypto/rc4/asm/rc4-x86_64.pl index d6eac205e9..75750dbf33 100755 --- a/src/lib/libssl/src/crypto/rc4/asm/rc4-x86_64.pl +++ b/src/lib/libssl/src/crypto/rc4/asm/rc4-x86_64.pl | |||
@@ -112,7 +112,8 @@ $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1; | |||
112 | ( $xlate="${dir}../../perlasm/x86_64-xlate.pl" and -f $xlate) or | 112 | ( $xlate="${dir}../../perlasm/x86_64-xlate.pl" and -f $xlate) or |
113 | die "can't locate x86_64-xlate.pl"; | 113 | die "can't locate x86_64-xlate.pl"; |
114 | 114 | ||
115 | open STDOUT,"| $^X $xlate $flavour $output"; | 115 | open OUT,"| \"$^X\" $xlate $flavour $output"; |
116 | *STDOUT=*OUT; | ||
116 | 117 | ||
117 | $dat="%rdi"; # arg1 | 118 | $dat="%rdi"; # arg1 |
118 | $len="%rsi"; # arg2 | 119 | $len="%rsi"; # arg2 |
diff --git a/src/lib/libssl/src/crypto/rc4/rc4test.c b/src/lib/libssl/src/crypto/rc4/rc4test.c index 633a79e758..4312605ccb 100644 --- a/src/lib/libssl/src/crypto/rc4/rc4test.c +++ b/src/lib/libssl/src/crypto/rc4/rc4test.c | |||
@@ -120,6 +120,12 @@ int main(int argc, char *argv[]) | |||
120 | RC4_KEY key; | 120 | RC4_KEY key; |
121 | unsigned char obuf[512]; | 121 | unsigned char obuf[512]; |
122 | 122 | ||
123 | #if !defined(OPENSSL_PIC) | ||
124 | void OPENSSL_cpuid_setup(void); | ||
125 | |||
126 | OPENSSL_cpuid_setup(); | ||
127 | #endif | ||
128 | |||
123 | for (i=0; i<6; i++) | 129 | for (i=0; i<6; i++) |
124 | { | 130 | { |
125 | RC4_set_key(&key,keys[i][0],&(keys[i][1])); | 131 | RC4_set_key(&key,keys[i][0],&(keys[i][1])); |
diff --git a/src/lib/libssl/src/crypto/ripemd/rmd_dgst.c b/src/lib/libssl/src/crypto/ripemd/rmd_dgst.c index 9ff1a0705e..d8e72da51b 100644 --- a/src/lib/libssl/src/crypto/ripemd/rmd_dgst.c +++ b/src/lib/libssl/src/crypto/ripemd/rmd_dgst.c | |||
@@ -88,7 +88,7 @@ fips_md_init(RIPEMD160) | |||
88 | void ripemd160_block_data_order (RIPEMD160_CTX *ctx, const void *p, size_t num) | 88 | void ripemd160_block_data_order (RIPEMD160_CTX *ctx, const void *p, size_t num) |
89 | { | 89 | { |
90 | const unsigned char *data=p; | 90 | const unsigned char *data=p; |
91 | register volatile unsigned MD32_REG_T A,B,C,D,E; | 91 | register unsigned MD32_REG_T A,B,C,D,E; |
92 | unsigned MD32_REG_T a,b,c,d,e,l; | 92 | unsigned MD32_REG_T a,b,c,d,e,l; |
93 | #ifndef MD32_XARRAY | 93 | #ifndef MD32_XARRAY |
94 | /* See comment in crypto/sha/sha_locl.h for details. */ | 94 | /* See comment in crypto/sha/sha_locl.h for details. */ |
@@ -105,21 +105,21 @@ void ripemd160_block_data_order (RIPEMD160_CTX *ctx, const void *p, size_t num) | |||
105 | 105 | ||
106 | A=ctx->A; B=ctx->B; C=ctx->C; D=ctx->D; E=ctx->E; | 106 | A=ctx->A; B=ctx->B; C=ctx->C; D=ctx->D; E=ctx->E; |
107 | 107 | ||
108 | HOST_c2l(data,l); X( 0)=l; HOST_c2l(data,l); X( 1)=l; | 108 | (void)HOST_c2l(data,l); X( 0)=l;(void)HOST_c2l(data,l); X( 1)=l; |
109 | RIP1(A,B,C,D,E,WL00,SL00); HOST_c2l(data,l); X( 2)=l; | 109 | RIP1(A,B,C,D,E,WL00,SL00); (void)HOST_c2l(data,l); X( 2)=l; |
110 | RIP1(E,A,B,C,D,WL01,SL01); HOST_c2l(data,l); X( 3)=l; | 110 | RIP1(E,A,B,C,D,WL01,SL01); (void)HOST_c2l(data,l); X( 3)=l; |
111 | RIP1(D,E,A,B,C,WL02,SL02); HOST_c2l(data,l); X( 4)=l; | 111 | RIP1(D,E,A,B,C,WL02,SL02); (void)HOST_c2l(data,l); X( 4)=l; |
112 | RIP1(C,D,E,A,B,WL03,SL03); HOST_c2l(data,l); X( 5)=l; | 112 | RIP1(C,D,E,A,B,WL03,SL03); (void)HOST_c2l(data,l); X( 5)=l; |
113 | RIP1(B,C,D,E,A,WL04,SL04); HOST_c2l(data,l); X( 6)=l; | 113 | RIP1(B,C,D,E,A,WL04,SL04); (void)HOST_c2l(data,l); X( 6)=l; |
114 | RIP1(A,B,C,D,E,WL05,SL05); HOST_c2l(data,l); X( 7)=l; | 114 | RIP1(A,B,C,D,E,WL05,SL05); (void)HOST_c2l(data,l); X( 7)=l; |
115 | RIP1(E,A,B,C,D,WL06,SL06); HOST_c2l(data,l); X( 8)=l; | 115 | RIP1(E,A,B,C,D,WL06,SL06); (void)HOST_c2l(data,l); X( 8)=l; |
116 | RIP1(D,E,A,B,C,WL07,SL07); HOST_c2l(data,l); X( 9)=l; | 116 | RIP1(D,E,A,B,C,WL07,SL07); (void)HOST_c2l(data,l); X( 9)=l; |
117 | RIP1(C,D,E,A,B,WL08,SL08); HOST_c2l(data,l); X(10)=l; | 117 | RIP1(C,D,E,A,B,WL08,SL08); (void)HOST_c2l(data,l); X(10)=l; |
118 | RIP1(B,C,D,E,A,WL09,SL09); HOST_c2l(data,l); X(11)=l; | 118 | RIP1(B,C,D,E,A,WL09,SL09); (void)HOST_c2l(data,l); X(11)=l; |
119 | RIP1(A,B,C,D,E,WL10,SL10); HOST_c2l(data,l); X(12)=l; | 119 | RIP1(A,B,C,D,E,WL10,SL10); (void)HOST_c2l(data,l); X(12)=l; |
120 | RIP1(E,A,B,C,D,WL11,SL11); HOST_c2l(data,l); X(13)=l; | 120 | RIP1(E,A,B,C,D,WL11,SL11); (void)HOST_c2l(data,l); X(13)=l; |
121 | RIP1(D,E,A,B,C,WL12,SL12); HOST_c2l(data,l); X(14)=l; | 121 | RIP1(D,E,A,B,C,WL12,SL12); (void)HOST_c2l(data,l); X(14)=l; |
122 | RIP1(C,D,E,A,B,WL13,SL13); HOST_c2l(data,l); X(15)=l; | 122 | RIP1(C,D,E,A,B,WL13,SL13); (void)HOST_c2l(data,l); X(15)=l; |
123 | RIP1(B,C,D,E,A,WL14,SL14); | 123 | RIP1(B,C,D,E,A,WL14,SL14); |
124 | RIP1(A,B,C,D,E,WL15,SL15); | 124 | RIP1(A,B,C,D,E,WL15,SL15); |
125 | 125 | ||
diff --git a/src/lib/libssl/src/crypto/ripemd/rmd_locl.h b/src/lib/libssl/src/crypto/ripemd/rmd_locl.h index f14b346e66..2bd8957d14 100644 --- a/src/lib/libssl/src/crypto/ripemd/rmd_locl.h +++ b/src/lib/libssl/src/crypto/ripemd/rmd_locl.h | |||
@@ -88,11 +88,11 @@ void ripemd160_block_data_order (RIPEMD160_CTX *c, const void *p,size_t num); | |||
88 | #define HASH_FINAL RIPEMD160_Final | 88 | #define HASH_FINAL RIPEMD160_Final |
89 | #define HASH_MAKE_STRING(c,s) do { \ | 89 | #define HASH_MAKE_STRING(c,s) do { \ |
90 | unsigned long ll; \ | 90 | unsigned long ll; \ |
91 | ll=(c)->A; HOST_l2c(ll,(s)); \ | 91 | ll=(c)->A; (void)HOST_l2c(ll,(s)); \ |
92 | ll=(c)->B; HOST_l2c(ll,(s)); \ | 92 | ll=(c)->B; (void)HOST_l2c(ll,(s)); \ |
93 | ll=(c)->C; HOST_l2c(ll,(s)); \ | 93 | ll=(c)->C; (void)HOST_l2c(ll,(s)); \ |
94 | ll=(c)->D; HOST_l2c(ll,(s)); \ | 94 | ll=(c)->D; (void)HOST_l2c(ll,(s)); \ |
95 | ll=(c)->E; HOST_l2c(ll,(s)); \ | 95 | ll=(c)->E; (void)HOST_l2c(ll,(s)); \ |
96 | } while (0) | 96 | } while (0) |
97 | #define HASH_BLOCK_DATA_ORDER ripemd160_block_data_order | 97 | #define HASH_BLOCK_DATA_ORDER ripemd160_block_data_order |
98 | 98 | ||
diff --git a/src/lib/libssl/src/crypto/rsa/rsa.h b/src/lib/libssl/src/crypto/rsa/rsa.h index 4814a2fc15..5f269e577a 100644 --- a/src/lib/libssl/src/crypto/rsa/rsa.h +++ b/src/lib/libssl/src/crypto/rsa/rsa.h | |||
@@ -280,7 +280,7 @@ struct rsa_st | |||
280 | 280 | ||
281 | RSA * RSA_new(void); | 281 | RSA * RSA_new(void); |
282 | RSA * RSA_new_method(ENGINE *engine); | 282 | RSA * RSA_new_method(ENGINE *engine); |
283 | int RSA_size(const RSA *); | 283 | int RSA_size(const RSA *rsa); |
284 | 284 | ||
285 | /* Deprecated version */ | 285 | /* Deprecated version */ |
286 | #ifndef OPENSSL_NO_DEPRECATED | 286 | #ifndef OPENSSL_NO_DEPRECATED |
diff --git a/src/lib/libssl/src/crypto/rsa/rsa_chk.c b/src/lib/libssl/src/crypto/rsa/rsa_chk.c index 9d848db8c6..cc30e77132 100644 --- a/src/lib/libssl/src/crypto/rsa/rsa_chk.c +++ b/src/lib/libssl/src/crypto/rsa/rsa_chk.c | |||
@@ -59,6 +59,12 @@ int RSA_check_key(const RSA *key) | |||
59 | BN_CTX *ctx; | 59 | BN_CTX *ctx; |
60 | int r; | 60 | int r; |
61 | int ret=1; | 61 | int ret=1; |
62 | |||
63 | if (!key->p || !key->q || !key->n || !key->e || !key->d) | ||
64 | { | ||
65 | RSAerr(RSA_F_RSA_CHECK_KEY, RSA_R_VALUE_MISSING); | ||
66 | return 0; | ||
67 | } | ||
62 | 68 | ||
63 | i = BN_new(); | 69 | i = BN_new(); |
64 | j = BN_new(); | 70 | j = BN_new(); |
diff --git a/src/lib/libssl/src/crypto/rsa/rsa_eay.c b/src/lib/libssl/src/crypto/rsa/rsa_eay.c index 2e1ddd48d3..88ee2cb557 100644 --- a/src/lib/libssl/src/crypto/rsa/rsa_eay.c +++ b/src/lib/libssl/src/crypto/rsa/rsa_eay.c | |||
@@ -847,12 +847,12 @@ static int RSA_eay_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx) | |||
847 | if (!BN_mod(r0,pr1,rsa->p,ctx)) goto err; | 847 | if (!BN_mod(r0,pr1,rsa->p,ctx)) goto err; |
848 | 848 | ||
849 | /* If p < q it is occasionally possible for the correction of | 849 | /* If p < q it is occasionally possible for the correction of |
850 | * adding 'p' if r0 is negative above to leave the result still | 850 | * adding 'p' if r0 is negative above to leave the result still |
851 | * negative. This can break the private key operations: the following | 851 | * negative. This can break the private key operations: the following |
852 | * second correction should *always* correct this rare occurrence. | 852 | * second correction should *always* correct this rare occurrence. |
853 | * This will *never* happen with OpenSSL generated keys because | 853 | * This will *never* happen with OpenSSL generated keys because |
854 | * they ensure p > q [steve] | 854 | * they ensure p > q [steve] |
855 | */ | 855 | */ |
856 | if (BN_is_negative(r0)) | 856 | if (BN_is_negative(r0)) |
857 | if (!BN_add(r0,r0,rsa->p)) goto err; | 857 | if (!BN_add(r0,r0,rsa->p)) goto err; |
858 | if (!BN_mul(r1,r0,rsa->q,ctx)) goto err; | 858 | if (!BN_mul(r1,r0,rsa->q,ctx)) goto err; |
diff --git a/src/lib/libssl/src/crypto/rsa/rsa_oaep.c b/src/lib/libssl/src/crypto/rsa/rsa_oaep.c index e08ac151ff..af4d24a56e 100644 --- a/src/lib/libssl/src/crypto/rsa/rsa_oaep.c +++ b/src/lib/libssl/src/crypto/rsa/rsa_oaep.c | |||
@@ -149,7 +149,7 @@ int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, | |||
149 | if (!EVP_Digest((void *)param, plen, phash, NULL, EVP_sha1(), NULL)) | 149 | if (!EVP_Digest((void *)param, plen, phash, NULL, EVP_sha1(), NULL)) |
150 | return -1; | 150 | return -1; |
151 | 151 | ||
152 | if (timingsafe_bcmp(db, phash, SHA_DIGEST_LENGTH) != 0 || bad) | 152 | if (CRYPTO_memcmp(db, phash, SHA_DIGEST_LENGTH) != 0 || bad) |
153 | goto decoding_err; | 153 | goto decoding_err; |
154 | else | 154 | else |
155 | { | 155 | { |
diff --git a/src/lib/libssl/src/crypto/sha/Makefile b/src/lib/libssl/src/crypto/sha/Makefile index 2eb2b7af99..6d191d3936 100644 --- a/src/lib/libssl/src/crypto/sha/Makefile +++ b/src/lib/libssl/src/crypto/sha/Makefile | |||
@@ -60,9 +60,7 @@ sha256-armv4.S: asm/sha256-armv4.pl | |||
60 | $(PERL) $< $(PERLASM_SCHEME) $@ | 60 | $(PERL) $< $(PERLASM_SCHEME) $@ |
61 | 61 | ||
62 | sha1-alpha.s: asm/sha1-alpha.pl | 62 | sha1-alpha.s: asm/sha1-alpha.pl |
63 | (preproc=/tmp/$$$$.$@; trap "rm $$preproc" INT; \ | 63 | $(PERL) $< | $(CC) -E - | tee $@ > /dev/null |
64 | $(PERL) asm/sha1-alpha.pl > $$preproc && \ | ||
65 | $(CC) -E $$preproc > $@ && rm $$preproc) | ||
66 | 64 | ||
67 | # Solaris make has to be explicitly told | 65 | # Solaris make has to be explicitly told |
68 | sha1-x86_64.s: asm/sha1-x86_64.pl; $(PERL) asm/sha1-x86_64.pl $(PERLASM_SCHEME) > $@ | 66 | sha1-x86_64.s: asm/sha1-x86_64.pl; $(PERL) asm/sha1-x86_64.pl $(PERLASM_SCHEME) > $@ |
diff --git a/src/lib/libssl/src/crypto/sha/sha1_one.c b/src/lib/libssl/src/crypto/sha/sha1_one.c index 7c65b60276..c56ec94020 100644 --- a/src/lib/libssl/src/crypto/sha/sha1_one.c +++ b/src/lib/libssl/src/crypto/sha/sha1_one.c | |||
@@ -58,8 +58,8 @@ | |||
58 | 58 | ||
59 | #include <stdio.h> | 59 | #include <stdio.h> |
60 | #include <string.h> | 60 | #include <string.h> |
61 | #include <openssl/sha.h> | ||
62 | #include <openssl/crypto.h> | 61 | #include <openssl/crypto.h> |
62 | #include <openssl/sha.h> | ||
63 | 63 | ||
64 | #ifndef OPENSSL_NO_SHA1 | 64 | #ifndef OPENSSL_NO_SHA1 |
65 | unsigned char *SHA1(const unsigned char *d, size_t n, unsigned char *md) | 65 | unsigned char *SHA1(const unsigned char *d, size_t n, unsigned char *md) |
diff --git a/src/lib/libssl/src/crypto/sha/sha1dgst.c b/src/lib/libssl/src/crypto/sha/sha1dgst.c index 81219af088..a98690225f 100644 --- a/src/lib/libssl/src/crypto/sha/sha1dgst.c +++ b/src/lib/libssl/src/crypto/sha/sha1dgst.c | |||
@@ -56,8 +56,8 @@ | |||
56 | * [including the GNU Public Licence.] | 56 | * [including the GNU Public Licence.] |
57 | */ | 57 | */ |
58 | 58 | ||
59 | #include <openssl/opensslconf.h> | ||
60 | #include <openssl/crypto.h> | 59 | #include <openssl/crypto.h> |
60 | #include <openssl/opensslconf.h> | ||
61 | #if !defined(OPENSSL_NO_SHA1) && !defined(OPENSSL_NO_SHA) | 61 | #if !defined(OPENSSL_NO_SHA1) && !defined(OPENSSL_NO_SHA) |
62 | 62 | ||
63 | #undef SHA_0 | 63 | #undef SHA_0 |
diff --git a/src/lib/libssl/src/crypto/sha/sha_dgst.c b/src/lib/libssl/src/crypto/sha/sha_dgst.c index c946ad827d..fb63b17ff2 100644 --- a/src/lib/libssl/src/crypto/sha/sha_dgst.c +++ b/src/lib/libssl/src/crypto/sha/sha_dgst.c | |||
@@ -56,8 +56,8 @@ | |||
56 | * [including the GNU Public Licence.] | 56 | * [including the GNU Public Licence.] |
57 | */ | 57 | */ |
58 | 58 | ||
59 | #include <openssl/opensslconf.h> | ||
60 | #include <openssl/crypto.h> | 59 | #include <openssl/crypto.h> |
60 | #include <openssl/opensslconf.h> | ||
61 | #if !defined(OPENSSL_NO_SHA0) && !defined(OPENSSL_NO_SHA) | 61 | #if !defined(OPENSSL_NO_SHA0) && !defined(OPENSSL_NO_SHA) |
62 | 62 | ||
63 | #undef SHA_1 | 63 | #undef SHA_1 |
diff --git a/src/lib/libssl/src/crypto/sha/sha_locl.h b/src/lib/libssl/src/crypto/sha/sha_locl.h index 7a0c3ca8d8..d673255f78 100644 --- a/src/lib/libssl/src/crypto/sha/sha_locl.h +++ b/src/lib/libssl/src/crypto/sha/sha_locl.h | |||
@@ -69,11 +69,11 @@ | |||
69 | #define HASH_CBLOCK SHA_CBLOCK | 69 | #define HASH_CBLOCK SHA_CBLOCK |
70 | #define HASH_MAKE_STRING(c,s) do { \ | 70 | #define HASH_MAKE_STRING(c,s) do { \ |
71 | unsigned long ll; \ | 71 | unsigned long ll; \ |
72 | ll=(c)->h0; HOST_l2c(ll,(s)); \ | 72 | ll=(c)->h0; (void)HOST_l2c(ll,(s)); \ |
73 | ll=(c)->h1; HOST_l2c(ll,(s)); \ | 73 | ll=(c)->h1; (void)HOST_l2c(ll,(s)); \ |
74 | ll=(c)->h2; HOST_l2c(ll,(s)); \ | 74 | ll=(c)->h2; (void)HOST_l2c(ll,(s)); \ |
75 | ll=(c)->h3; HOST_l2c(ll,(s)); \ | 75 | ll=(c)->h3; (void)HOST_l2c(ll,(s)); \ |
76 | ll=(c)->h4; HOST_l2c(ll,(s)); \ | 76 | ll=(c)->h4; (void)HOST_l2c(ll,(s)); \ |
77 | } while (0) | 77 | } while (0) |
78 | 78 | ||
79 | #if defined(SHA_0) | 79 | #if defined(SHA_0) |
@@ -256,21 +256,21 @@ static void HASH_BLOCK_DATA_ORDER (SHA_CTX *c, const void *p, size_t num) | |||
256 | } | 256 | } |
257 | else | 257 | else |
258 | { | 258 | { |
259 | HOST_c2l(data,l); X( 0)=l; HOST_c2l(data,l); X( 1)=l; | 259 | (void)HOST_c2l(data,l); X( 0)=l; (void)HOST_c2l(data,l); X( 1)=l; |
260 | BODY_00_15( 0,A,B,C,D,E,T,X( 0)); HOST_c2l(data,l); X( 2)=l; | 260 | BODY_00_15( 0,A,B,C,D,E,T,X( 0)); (void)HOST_c2l(data,l); X( 2)=l; |
261 | BODY_00_15( 1,T,A,B,C,D,E,X( 1)); HOST_c2l(data,l); X( 3)=l; | 261 | BODY_00_15( 1,T,A,B,C,D,E,X( 1)); (void)HOST_c2l(data,l); X( 3)=l; |
262 | BODY_00_15( 2,E,T,A,B,C,D,X( 2)); HOST_c2l(data,l); X( 4)=l; | 262 | BODY_00_15( 2,E,T,A,B,C,D,X( 2)); (void)HOST_c2l(data,l); X( 4)=l; |
263 | BODY_00_15( 3,D,E,T,A,B,C,X( 3)); HOST_c2l(data,l); X( 5)=l; | 263 | BODY_00_15( 3,D,E,T,A,B,C,X( 3)); (void)HOST_c2l(data,l); X( 5)=l; |
264 | BODY_00_15( 4,C,D,E,T,A,B,X( 4)); HOST_c2l(data,l); X( 6)=l; | 264 | BODY_00_15( 4,C,D,E,T,A,B,X( 4)); (void)HOST_c2l(data,l); X( 6)=l; |
265 | BODY_00_15( 5,B,C,D,E,T,A,X( 5)); HOST_c2l(data,l); X( 7)=l; | 265 | BODY_00_15( 5,B,C,D,E,T,A,X( 5)); (void)HOST_c2l(data,l); X( 7)=l; |
266 | BODY_00_15( 6,A,B,C,D,E,T,X( 6)); HOST_c2l(data,l); X( 8)=l; | 266 | BODY_00_15( 6,A,B,C,D,E,T,X( 6)); (void)HOST_c2l(data,l); X( 8)=l; |
267 | BODY_00_15( 7,T,A,B,C,D,E,X( 7)); HOST_c2l(data,l); X( 9)=l; | 267 | BODY_00_15( 7,T,A,B,C,D,E,X( 7)); (void)HOST_c2l(data,l); X( 9)=l; |
268 | BODY_00_15( 8,E,T,A,B,C,D,X( 8)); HOST_c2l(data,l); X(10)=l; | 268 | BODY_00_15( 8,E,T,A,B,C,D,X( 8)); (void)HOST_c2l(data,l); X(10)=l; |
269 | BODY_00_15( 9,D,E,T,A,B,C,X( 9)); HOST_c2l(data,l); X(11)=l; | 269 | BODY_00_15( 9,D,E,T,A,B,C,X( 9)); (void)HOST_c2l(data,l); X(11)=l; |
270 | BODY_00_15(10,C,D,E,T,A,B,X(10)); HOST_c2l(data,l); X(12)=l; | 270 | BODY_00_15(10,C,D,E,T,A,B,X(10)); (void)HOST_c2l(data,l); X(12)=l; |
271 | BODY_00_15(11,B,C,D,E,T,A,X(11)); HOST_c2l(data,l); X(13)=l; | 271 | BODY_00_15(11,B,C,D,E,T,A,X(11)); (void)HOST_c2l(data,l); X(13)=l; |
272 | BODY_00_15(12,A,B,C,D,E,T,X(12)); HOST_c2l(data,l); X(14)=l; | 272 | BODY_00_15(12,A,B,C,D,E,T,X(12)); (void)HOST_c2l(data,l); X(14)=l; |
273 | BODY_00_15(13,T,A,B,C,D,E,X(13)); HOST_c2l(data,l); X(15)=l; | 273 | BODY_00_15(13,T,A,B,C,D,E,X(13)); (void)HOST_c2l(data,l); X(15)=l; |
274 | BODY_00_15(14,E,T,A,B,C,D,X(14)); | 274 | BODY_00_15(14,E,T,A,B,C,D,X(14)); |
275 | BODY_00_15(15,D,E,T,A,B,C,X(15)); | 275 | BODY_00_15(15,D,E,T,A,B,C,X(15)); |
276 | } | 276 | } |
diff --git a/src/lib/libssl/src/crypto/symhacks.h b/src/lib/libssl/src/crypto/symhacks.h index 403f592dcd..bd2f000d59 100644 --- a/src/lib/libssl/src/crypto/symhacks.h +++ b/src/lib/libssl/src/crypto/symhacks.h | |||
@@ -193,17 +193,23 @@ | |||
193 | #undef SSL_CTX_set_srp_username_callback | 193 | #undef SSL_CTX_set_srp_username_callback |
194 | #define SSL_CTX_set_srp_username_callback SSL_CTX_set_srp_un_cb | 194 | #define SSL_CTX_set_srp_username_callback SSL_CTX_set_srp_un_cb |
195 | #undef ssl_add_clienthello_use_srtp_ext | 195 | #undef ssl_add_clienthello_use_srtp_ext |
196 | #define ssl_add_clienthello_use_srtp_ext ssl_add_clihello_use_srtp_ext | 196 | #define ssl_add_clienthello_use_srtp_ext ssl_add_clihello_use_srtp_ext |
197 | #undef ssl_add_serverhello_use_srtp_ext | 197 | #undef ssl_add_serverhello_use_srtp_ext |
198 | #define ssl_add_serverhello_use_srtp_ext ssl_add_serhello_use_srtp_ext | 198 | #define ssl_add_serverhello_use_srtp_ext ssl_add_serhello_use_srtp_ext |
199 | #undef ssl_parse_clienthello_use_srtp_ext | 199 | #undef ssl_parse_clienthello_use_srtp_ext |
200 | #define ssl_parse_clienthello_use_srtp_ext ssl_parse_clihello_use_srtp_ext | 200 | #define ssl_parse_clienthello_use_srtp_ext ssl_parse_clihello_use_srtp_ext |
201 | #undef ssl_parse_serverhello_use_srtp_ext | 201 | #undef ssl_parse_serverhello_use_srtp_ext |
202 | #define ssl_parse_serverhello_use_srtp_ext ssl_parse_serhello_use_srtp_ext | 202 | #define ssl_parse_serverhello_use_srtp_ext ssl_parse_serhello_use_srtp_ext |
203 | #undef SSL_CTX_set_next_protos_advertised_cb | 203 | #undef SSL_CTX_set_next_protos_advertised_cb |
204 | #define SSL_CTX_set_next_protos_advertised_cb SSL_CTX_set_next_protos_adv_cb | 204 | #define SSL_CTX_set_next_protos_advertised_cb SSL_CTX_set_next_protos_adv_cb |
205 | #undef SSL_CTX_set_next_proto_select_cb | 205 | #undef SSL_CTX_set_next_proto_select_cb |
206 | #define SSL_CTX_set_next_proto_select_cb SSL_CTX_set_next_proto_sel_cb | 206 | #define SSL_CTX_set_next_proto_select_cb SSL_CTX_set_next_proto_sel_cb |
207 | #undef ssl3_cbc_record_digest_supported | ||
208 | #define ssl3_cbc_record_digest_supported ssl3_cbc_record_digest_support | ||
209 | #undef ssl_check_clienthello_tlsext_late | ||
210 | #define ssl_check_clienthello_tlsext_late ssl_check_clihello_tlsext_late | ||
211 | #undef ssl_check_clienthello_tlsext_early | ||
212 | #define ssl_check_clienthello_tlsext_early ssl_check_clihello_tlsext_early | ||
207 | 213 | ||
208 | /* Hack some long ENGINE names */ | 214 | /* Hack some long ENGINE names */ |
209 | #undef ENGINE_get_default_BN_mod_exp_crt | 215 | #undef ENGINE_get_default_BN_mod_exp_crt |
@@ -316,8 +322,6 @@ | |||
316 | #define ec_GFp_simple_point_set_to_infinity ec_GFp_simple_pt_set_to_inf | 322 | #define ec_GFp_simple_point_set_to_infinity ec_GFp_simple_pt_set_to_inf |
317 | #undef ec_GFp_simple_points_make_affine | 323 | #undef ec_GFp_simple_points_make_affine |
318 | #define ec_GFp_simple_points_make_affine ec_GFp_simple_pts_make_affine | 324 | #define ec_GFp_simple_points_make_affine ec_GFp_simple_pts_make_affine |
319 | #undef ec_GFp_simple_group_get_curve_GFp | ||
320 | #define ec_GFp_simple_group_get_curve_GFp ec_GFp_simple_grp_get_curve_GFp | ||
321 | #undef ec_GFp_simple_set_Jprojective_coordinates_GFp | 325 | #undef ec_GFp_simple_set_Jprojective_coordinates_GFp |
322 | #define ec_GFp_simple_set_Jprojective_coordinates_GFp \ | 326 | #define ec_GFp_simple_set_Jprojective_coordinates_GFp \ |
323 | ec_GFp_smp_set_Jproj_coords_GFp | 327 | ec_GFp_smp_set_Jproj_coords_GFp |
diff --git a/src/lib/libssl/src/crypto/threads/pthreads-vms.com b/src/lib/libssl/src/crypto/threads/pthreads-vms.com deleted file mode 100644 index 1cf92bdf57..0000000000 --- a/src/lib/libssl/src/crypto/threads/pthreads-vms.com +++ /dev/null | |||
@@ -1,14 +0,0 @@ | |||
1 | $! To compile mttest on VMS. | ||
2 | $! | ||
3 | $! WARNING: only tested with DEC C so far. | ||
4 | $ | ||
5 | $ if (f$getsyi("cpu").lt.128) | ||
6 | $ then | ||
7 | $ arch := VAX | ||
8 | $ else | ||
9 | $ arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") | ||
10 | $ if (arch .eqs. "") then arch = "UNK" | ||
11 | $ endif | ||
12 | $ define/user openssl [--.include.openssl] | ||
13 | $ cc/def=PTHREADS mttest.c | ||
14 | $ link mttest,[--.'arch'.exe.ssl]libssl/lib,[--.'arch'.exe.crypto]libcrypto/lib | ||
diff --git a/src/lib/libssl/src/crypto/ui/ui_openssl.c b/src/lib/libssl/src/crypto/ui/ui_openssl.c index e319faa47b..a38c7581e6 100644 --- a/src/lib/libssl/src/crypto/ui/ui_openssl.c +++ b/src/lib/libssl/src/crypto/ui/ui_openssl.c | |||
@@ -122,9 +122,15 @@ | |||
122 | * sigaction and fileno included. -pedantic would be more appropriate for | 122 | * sigaction and fileno included. -pedantic would be more appropriate for |
123 | * the intended purposes, but we can't prevent users from adding -ansi. | 123 | * the intended purposes, but we can't prevent users from adding -ansi. |
124 | */ | 124 | */ |
125 | #if defined(OPENSSL_SYSNAME_VXWORKS) | ||
126 | #include <sys/types.h> | ||
127 | #endif | ||
128 | |||
125 | #if !defined(_POSIX_C_SOURCE) && defined(OPENSSL_SYS_VMS) | 129 | #if !defined(_POSIX_C_SOURCE) && defined(OPENSSL_SYS_VMS) |
130 | #ifndef _POSIX_C_SOURCE | ||
126 | #define _POSIX_C_SOURCE 2 | 131 | #define _POSIX_C_SOURCE 2 |
127 | #endif | 132 | #endif |
133 | #endif | ||
128 | #include <signal.h> | 134 | #include <signal.h> |
129 | #include <stdio.h> | 135 | #include <stdio.h> |
130 | #include <string.h> | 136 | #include <string.h> |
@@ -398,8 +404,8 @@ static int read_till_nl(FILE *in) | |||
398 | char buf[SIZE+1]; | 404 | char buf[SIZE+1]; |
399 | 405 | ||
400 | do { | 406 | do { |
401 | if (fgets(buf,sizeof(buf),in) == NULL) | 407 | if (!fgets(buf,SIZE,in)) |
402 | break; | 408 | return 0; |
403 | } while (strchr(buf,'\n') == NULL); | 409 | } while (strchr(buf,'\n') == NULL); |
404 | return 1; | 410 | return 1; |
405 | } | 411 | } |
diff --git a/src/lib/libssl/src/crypto/x509/by_dir.c b/src/lib/libssl/src/crypto/x509/by_dir.c index 27ca5150c1..c6602dae4f 100644 --- a/src/lib/libssl/src/crypto/x509/by_dir.c +++ b/src/lib/libssl/src/crypto/x509/by_dir.c | |||
@@ -218,7 +218,7 @@ static int add_cert_dir(BY_DIR *ctx, const char *dir, int type) | |||
218 | 218 | ||
219 | s=dir; | 219 | s=dir; |
220 | p=s; | 220 | p=s; |
221 | for (;;p++) | 221 | do |
222 | { | 222 | { |
223 | if ((*p == LIST_SEPARATOR_CHAR) || (*p == '\0')) | 223 | if ((*p == LIST_SEPARATOR_CHAR) || (*p == '\0')) |
224 | { | 224 | { |
@@ -264,9 +264,7 @@ static int add_cert_dir(BY_DIR *ctx, const char *dir, int type) | |||
264 | return 0; | 264 | return 0; |
265 | } | 265 | } |
266 | } | 266 | } |
267 | if (*p == '\0') | 267 | } while (*p++ != '\0'); |
268 | break; | ||
269 | } | ||
270 | return 1; | 268 | return 1; |
271 | } | 269 | } |
272 | 270 | ||
diff --git a/src/lib/libssl/src/crypto/x509/x509_cmp.c b/src/lib/libssl/src/crypto/x509/x509_cmp.c index 7c2aaee2e9..352aa37434 100644 --- a/src/lib/libssl/src/crypto/x509/x509_cmp.c +++ b/src/lib/libssl/src/crypto/x509/x509_cmp.c | |||
@@ -86,10 +86,9 @@ unsigned long X509_issuer_and_serial_hash(X509 *a) | |||
86 | 86 | ||
87 | EVP_MD_CTX_init(&ctx); | 87 | EVP_MD_CTX_init(&ctx); |
88 | f=X509_NAME_oneline(a->cert_info->issuer,NULL,0); | 88 | f=X509_NAME_oneline(a->cert_info->issuer,NULL,0); |
89 | ret=strlen(f); | ||
90 | if (!EVP_DigestInit_ex(&ctx, EVP_md5(), NULL)) | 89 | if (!EVP_DigestInit_ex(&ctx, EVP_md5(), NULL)) |
91 | goto err; | 90 | goto err; |
92 | if (!EVP_DigestUpdate(&ctx,(unsigned char *)f,ret)) | 91 | if (!EVP_DigestUpdate(&ctx,(unsigned char *)f,strlen(f))) |
93 | goto err; | 92 | goto err; |
94 | OPENSSL_free(f); | 93 | OPENSSL_free(f); |
95 | if(!EVP_DigestUpdate(&ctx,(unsigned char *)a->cert_info->serialNumber->data, | 94 | if(!EVP_DigestUpdate(&ctx,(unsigned char *)a->cert_info->serialNumber->data, |
@@ -249,14 +248,14 @@ unsigned long X509_NAME_hash_old(X509_NAME *x) | |||
249 | i2d_X509_NAME(x,NULL); | 248 | i2d_X509_NAME(x,NULL); |
250 | EVP_MD_CTX_init(&md_ctx); | 249 | EVP_MD_CTX_init(&md_ctx); |
251 | EVP_MD_CTX_set_flags(&md_ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW); | 250 | EVP_MD_CTX_set_flags(&md_ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW); |
252 | EVP_DigestInit_ex(&md_ctx, EVP_md5(), NULL); | 251 | if (EVP_DigestInit_ex(&md_ctx, EVP_md5(), NULL) |
253 | EVP_DigestUpdate(&md_ctx, x->bytes->data, x->bytes->length); | 252 | && EVP_DigestUpdate(&md_ctx, x->bytes->data, x->bytes->length) |
254 | EVP_DigestFinal_ex(&md_ctx,md,NULL); | 253 | && EVP_DigestFinal_ex(&md_ctx,md,NULL)) |
254 | ret=(((unsigned long)md[0] )|((unsigned long)md[1]<<8L)| | ||
255 | ((unsigned long)md[2]<<16L)|((unsigned long)md[3]<<24L) | ||
256 | )&0xffffffffL; | ||
255 | EVP_MD_CTX_cleanup(&md_ctx); | 257 | EVP_MD_CTX_cleanup(&md_ctx); |
256 | 258 | ||
257 | ret=( ((unsigned long)md[0] )|((unsigned long)md[1]<<8L)| | ||
258 | ((unsigned long)md[2]<<16L)|((unsigned long)md[3]<<24L) | ||
259 | )&0xffffffffL; | ||
260 | return(ret); | 259 | return(ret); |
261 | } | 260 | } |
262 | #endif | 261 | #endif |
diff --git a/src/lib/libssl/src/crypto/x509/x509_vfy.c b/src/lib/libssl/src/crypto/x509/x509_vfy.c index b0779db023..920066aeba 100644 --- a/src/lib/libssl/src/crypto/x509/x509_vfy.c +++ b/src/lib/libssl/src/crypto/x509/x509_vfy.c | |||
@@ -694,6 +694,7 @@ static int check_cert(X509_STORE_CTX *ctx) | |||
694 | X509_CRL *crl = NULL, *dcrl = NULL; | 694 | X509_CRL *crl = NULL, *dcrl = NULL; |
695 | X509 *x; | 695 | X509 *x; |
696 | int ok, cnum; | 696 | int ok, cnum; |
697 | unsigned int last_reasons; | ||
697 | cnum = ctx->error_depth; | 698 | cnum = ctx->error_depth; |
698 | x = sk_X509_value(ctx->chain, cnum); | 699 | x = sk_X509_value(ctx->chain, cnum); |
699 | ctx->current_cert = x; | 700 | ctx->current_cert = x; |
@@ -702,6 +703,7 @@ static int check_cert(X509_STORE_CTX *ctx) | |||
702 | ctx->current_reasons = 0; | 703 | ctx->current_reasons = 0; |
703 | while (ctx->current_reasons != CRLDP_ALL_REASONS) | 704 | while (ctx->current_reasons != CRLDP_ALL_REASONS) |
704 | { | 705 | { |
706 | last_reasons = ctx->current_reasons; | ||
705 | /* Try to retrieve relevant CRL */ | 707 | /* Try to retrieve relevant CRL */ |
706 | if (ctx->get_crl) | 708 | if (ctx->get_crl) |
707 | ok = ctx->get_crl(ctx, &crl, x); | 709 | ok = ctx->get_crl(ctx, &crl, x); |
@@ -745,6 +747,15 @@ static int check_cert(X509_STORE_CTX *ctx) | |||
745 | X509_CRL_free(dcrl); | 747 | X509_CRL_free(dcrl); |
746 | crl = NULL; | 748 | crl = NULL; |
747 | dcrl = NULL; | 749 | dcrl = NULL; |
750 | /* If reasons not updated we wont get anywhere by | ||
751 | * another iteration, so exit loop. | ||
752 | */ | ||
753 | if (last_reasons == ctx->current_reasons) | ||
754 | { | ||
755 | ctx->error = X509_V_ERR_UNABLE_TO_GET_CRL; | ||
756 | ok = ctx->verify_cb(0, ctx); | ||
757 | goto err; | ||
758 | } | ||
748 | } | 759 | } |
749 | err: | 760 | err: |
750 | X509_CRL_free(crl); | 761 | X509_CRL_free(crl); |
@@ -872,7 +883,7 @@ static int crl_extension_match(X509_CRL *a, X509_CRL *b, int nid) | |||
872 | { | 883 | { |
873 | ASN1_OCTET_STRING *exta, *extb; | 884 | ASN1_OCTET_STRING *exta, *extb; |
874 | int i; | 885 | int i; |
875 | i = X509_CRL_get_ext_by_NID(a, nid, 0); | 886 | i = X509_CRL_get_ext_by_NID(a, nid, -1); |
876 | if (i >= 0) | 887 | if (i >= 0) |
877 | { | 888 | { |
878 | /* Can't have multiple occurrences */ | 889 | /* Can't have multiple occurrences */ |
@@ -883,7 +894,7 @@ static int crl_extension_match(X509_CRL *a, X509_CRL *b, int nid) | |||
883 | else | 894 | else |
884 | exta = NULL; | 895 | exta = NULL; |
885 | 896 | ||
886 | i = X509_CRL_get_ext_by_NID(b, nid, 0); | 897 | i = X509_CRL_get_ext_by_NID(b, nid, -1); |
887 | 898 | ||
888 | if (i >= 0) | 899 | if (i >= 0) |
889 | { | 900 | { |
@@ -1451,10 +1462,9 @@ static int cert_crl(X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x) | |||
1451 | * a certificate was revoked. This has since been changed since | 1462 | * a certificate was revoked. This has since been changed since |
1452 | * critical extension can change the meaning of CRL entries. | 1463 | * critical extension can change the meaning of CRL entries. |
1453 | */ | 1464 | */ |
1454 | if (crl->flags & EXFLAG_CRITICAL) | 1465 | if (!(ctx->param->flags & X509_V_FLAG_IGNORE_CRITICAL) |
1466 | && (crl->flags & EXFLAG_CRITICAL)) | ||
1455 | { | 1467 | { |
1456 | if (ctx->param->flags & X509_V_FLAG_IGNORE_CRITICAL) | ||
1457 | return 1; | ||
1458 | ctx->error = X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION; | 1468 | ctx->error = X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION; |
1459 | ok = ctx->verify_cb(0, ctx); | 1469 | ok = ctx->verify_cb(0, ctx); |
1460 | if(!ok) | 1470 | if(!ok) |
diff --git a/src/lib/libssl/src/crypto/x509/x_all.c b/src/lib/libssl/src/crypto/x509/x_all.c index b94aeeb873..e06602d65a 100644 --- a/src/lib/libssl/src/crypto/x509/x_all.c +++ b/src/lib/libssl/src/crypto/x509/x_all.c | |||
@@ -97,6 +97,7 @@ int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md) | |||
97 | 97 | ||
98 | int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx) | 98 | int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx) |
99 | { | 99 | { |
100 | x->cert_info->enc.modified = 1; | ||
100 | return ASN1_item_sign_ctx(ASN1_ITEM_rptr(X509_CINF), | 101 | return ASN1_item_sign_ctx(ASN1_ITEM_rptr(X509_CINF), |
101 | x->cert_info->signature, | 102 | x->cert_info->signature, |
102 | x->sig_alg, x->signature, x->cert_info, ctx); | 103 | x->sig_alg, x->signature, x->cert_info, ctx); |
@@ -123,6 +124,7 @@ int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md) | |||
123 | 124 | ||
124 | int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx) | 125 | int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx) |
125 | { | 126 | { |
127 | x->crl->enc.modified = 1; | ||
126 | return ASN1_item_sign_ctx(ASN1_ITEM_rptr(X509_CRL_INFO), | 128 | return ASN1_item_sign_ctx(ASN1_ITEM_rptr(X509_CRL_INFO), |
127 | x->crl->sig_alg, x->sig_alg, x->signature, x->crl, ctx); | 129 | x->crl->sig_alg, x->sig_alg, x->signature, x->crl, ctx); |
128 | } | 130 | } |
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_purp.c b/src/lib/libssl/src/crypto/x509v3/v3_purp.c index 181bd34979..ad688657e0 100644 --- a/src/lib/libssl/src/crypto/x509v3/v3_purp.c +++ b/src/lib/libssl/src/crypto/x509v3/v3_purp.c | |||
@@ -474,11 +474,11 @@ static void x509v3_cache_extensions(X509 *x) | |||
474 | for (i = 0; i < X509_get_ext_count(x); i++) | 474 | for (i = 0; i < X509_get_ext_count(x); i++) |
475 | { | 475 | { |
476 | ex = X509_get_ext(x, i); | 476 | ex = X509_get_ext(x, i); |
477 | if (!X509_EXTENSION_get_critical(ex)) | ||
478 | continue; | ||
479 | if (OBJ_obj2nid(X509_EXTENSION_get_object(ex)) | 477 | if (OBJ_obj2nid(X509_EXTENSION_get_object(ex)) |
480 | == NID_freshest_crl) | 478 | == NID_freshest_crl) |
481 | x->ex_flags |= EXFLAG_FRESHEST; | 479 | x->ex_flags |= EXFLAG_FRESHEST; |
480 | if (!X509_EXTENSION_get_critical(ex)) | ||
481 | continue; | ||
482 | if (!X509_supported_extension(ex)) | 482 | if (!X509_supported_extension(ex)) |
483 | { | 483 | { |
484 | x->ex_flags |= EXFLAG_CRITICAL; | 484 | x->ex_flags |= EXFLAG_CRITICAL; |
diff --git a/src/lib/libssl/src/crypto/x86_64cpuid.pl b/src/lib/libssl/src/crypto/x86_64cpuid.pl index 7b7b93b223..6ebfd017ea 100644 --- a/src/lib/libssl/src/crypto/x86_64cpuid.pl +++ b/src/lib/libssl/src/crypto/x86_64cpuid.pl | |||
@@ -11,7 +11,8 @@ $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1; | |||
11 | ( $xlate="${dir}perlasm/x86_64-xlate.pl" and -f $xlate) or | 11 | ( $xlate="${dir}perlasm/x86_64-xlate.pl" and -f $xlate) or |
12 | die "can't locate x86_64-xlate.pl"; | 12 | die "can't locate x86_64-xlate.pl"; |
13 | 13 | ||
14 | open STDOUT,"| $^X $xlate $flavour $output"; | 14 | open OUT,"| \"$^X\" $xlate $flavour $output"; |
15 | *STDOUT=*OUT; | ||
15 | 16 | ||
16 | ($arg1,$arg2,$arg3,$arg4)=$win64?("%rcx","%rdx","%r8", "%r9") : # Win64 order | 17 | ($arg1,$arg2,$arg3,$arg4)=$win64?("%rcx","%rdx","%r8", "%r9") : # Win64 order |
17 | ("%rdi","%rsi","%rdx","%rcx"); # Unix order | 18 | ("%rdi","%rsi","%rdx","%rcx"); # Unix order |
diff --git a/src/lib/libssl/src/demos/easy_tls/Makefile b/src/lib/libssl/src/demos/easy_tls/Makefile index f65760670c..ea457a4110 100644 --- a/src/lib/libssl/src/demos/easy_tls/Makefile +++ b/src/lib/libssl/src/demos/easy_tls/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | # Makefile for easy-tls example application (rudimentary client and server) | 1 | # Makefile for easy-tls example application (rudimentary client and server) |
2 | # $Id: Makefile,v 1.4 2010/10/01 22:58:57 djm Exp $ | 2 | # $Id: Makefile,v 1.5 2014/04/13 15:25:34 miod Exp $ |
3 | 3 | ||
4 | SOLARIS_CFLAGS=-Wall -pedantic -g -O2 | 4 | SOLARIS_CFLAGS=-Wall -pedantic -g -O2 |
5 | SOLARIS_LIBS=-lxnet | 5 | SOLARIS_LIBS=-lxnet |
diff --git a/src/lib/libssl/src/demos/easy_tls/cacerts.pem b/src/lib/libssl/src/demos/easy_tls/cacerts.pem index 2b11eb3b8a..c23d49bba7 100644 --- a/src/lib/libssl/src/demos/easy_tls/cacerts.pem +++ b/src/lib/libssl/src/demos/easy_tls/cacerts.pem | |||
@@ -1,4 +1,4 @@ | |||
1 | $Id: cacerts.pem,v 1.4 2010/10/01 22:58:57 djm Exp $ | 1 | $Id: cacerts.pem,v 1.5 2014/04/13 15:25:34 miod Exp $ |
2 | 2 | ||
3 | issuer= /C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Test PCA (1024 bit) | 3 | issuer= /C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Test PCA (1024 bit) |
4 | subject=/C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Test CA (1024 bit) | 4 | subject=/C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Test CA (1024 bit) |
diff --git a/src/lib/libssl/src/demos/easy_tls/cert.pem b/src/lib/libssl/src/demos/easy_tls/cert.pem index 0daca86ba2..6613c2df44 100644 --- a/src/lib/libssl/src/demos/easy_tls/cert.pem +++ b/src/lib/libssl/src/demos/easy_tls/cert.pem | |||
@@ -1,4 +1,4 @@ | |||
1 | $Id: cert.pem,v 1.4 2010/10/01 22:58:57 djm Exp $ | 1 | $Id: cert.pem,v 1.5 2014/04/13 15:25:34 miod Exp $ |
2 | 2 | ||
3 | Example certificate and key. | 3 | Example certificate and key. |
4 | 4 | ||
diff --git a/src/lib/libssl/src/demos/easy_tls/easy-tls.c b/src/lib/libssl/src/demos/easy_tls/easy-tls.c index cfae4b07cb..72047b3e80 100644 --- a/src/lib/libssl/src/demos/easy_tls/easy-tls.c +++ b/src/lib/libssl/src/demos/easy_tls/easy-tls.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* -*- Mode: C; c-file-style: "bsd" -*- */ | 1 | /* -*- Mode: C; c-file-style: "bsd" -*- */ |
2 | /* | 2 | /* |
3 | * easy-tls.c -- generic TLS proxy. | 3 | * easy-tls.c -- generic TLS proxy. |
4 | * $Id: easy-tls.c,v 1.5 2010/10/01 22:58:57 djm Exp $ | 4 | * $Id: easy-tls.c,v 1.6 2014/04/13 15:25:34 miod Exp $ |
5 | */ | 5 | */ |
6 | /* | 6 | /* |
7 | (c) Copyright 1999 Bodo Moeller. All rights reserved. | 7 | (c) Copyright 1999 Bodo Moeller. All rights reserved. |
@@ -73,7 +73,7 @@ | |||
73 | */ | 73 | */ |
74 | 74 | ||
75 | static char const rcsid[] = | 75 | static char const rcsid[] = |
76 | "$Id: easy-tls.c,v 1.5 2010/10/01 22:58:57 djm Exp $"; | 76 | "$Id: easy-tls.c,v 1.6 2014/04/13 15:25:34 miod Exp $"; |
77 | 77 | ||
78 | #include <assert.h> | 78 | #include <assert.h> |
79 | #include <errno.h> | 79 | #include <errno.h> |
diff --git a/src/lib/libssl/src/demos/easy_tls/easy-tls.h b/src/lib/libssl/src/demos/easy_tls/easy-tls.h index 29af27a6e7..844a5874b9 100644 --- a/src/lib/libssl/src/demos/easy_tls/easy-tls.h +++ b/src/lib/libssl/src/demos/easy_tls/easy-tls.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* -*- Mode: C; c-file-style: "bsd" -*- */ | 1 | /* -*- Mode: C; c-file-style: "bsd" -*- */ |
2 | /* | 2 | /* |
3 | * easy-tls.h -- generic TLS proxy. | 3 | * easy-tls.h -- generic TLS proxy. |
4 | * $Id: easy-tls.h,v 1.4 2010/10/01 22:58:57 djm Exp $ | 4 | * $Id: easy-tls.h,v 1.5 2014/04/13 15:25:34 miod Exp $ |
5 | */ | 5 | */ |
6 | /* | 6 | /* |
7 | * (c) Copyright 1999 Bodo Moeller. All rights reserved. | 7 | * (c) Copyright 1999 Bodo Moeller. All rights reserved. |
diff --git a/src/lib/libssl/src/demos/easy_tls/test.c b/src/lib/libssl/src/demos/easy_tls/test.c index 4e40cb91c4..4e884c4851 100644 --- a/src/lib/libssl/src/demos/easy_tls/test.c +++ b/src/lib/libssl/src/demos/easy_tls/test.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* test.c */ | 1 | /* test.c */ |
2 | /* $Id: test.c,v 1.4 2010/10/01 22:58:57 djm Exp $ */ | 2 | /* $Id: test.c,v 1.5 2014/04/13 15:25:34 miod Exp $ */ |
3 | 3 | ||
4 | #define L_PORT 9999 | 4 | #define L_PORT 9999 |
5 | #define C_PORT 443 | 5 | #define C_PORT 443 |
diff --git a/src/lib/libssl/src/demos/easy_tls/test.h b/src/lib/libssl/src/demos/easy_tls/test.h index ebee2c5db5..b88d569fe8 100644 --- a/src/lib/libssl/src/demos/easy_tls/test.h +++ b/src/lib/libssl/src/demos/easy_tls/test.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /* test.h */ | 1 | /* test.h */ |
2 | /* $Id: test.h,v 1.4 2010/10/01 22:58:57 djm Exp $ */ | 2 | /* $Id: test.h,v 1.5 2014/04/13 15:25:34 miod Exp $ */ |
3 | 3 | ||
4 | 4 | ||
5 | void test_process_init(int fd, int client_p, void *apparg); | 5 | void test_process_init(int fd, int client_p, void *apparg); |
diff --git a/src/lib/libssl/src/demos/engines/rsaref/build.com b/src/lib/libssl/src/demos/engines/rsaref/build.com deleted file mode 100644 index 72b013d45e..0000000000 --- a/src/lib/libssl/src/demos/engines/rsaref/build.com +++ /dev/null | |||
@@ -1,105 +0,0 @@ | |||
1 | $! BUILD.COM -- Building procedure for the RSAref engine | ||
2 | $ | ||
3 | $ if f$search("source.dir") .eqs. "" - | ||
4 | .or. f$search("install.dir") .eqs. "" | ||
5 | $ then | ||
6 | $ write sys$error "RSAref 2.0 hasn't been properly extracted." | ||
7 | $ exit | ||
8 | $ endif | ||
9 | $ | ||
10 | $ if (f$getsyi("cpu").lt.128) | ||
11 | $ then | ||
12 | $ arch := vax | ||
13 | $ else | ||
14 | $ arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") | ||
15 | $ if (arch .eqs. "") then arch = "UNK" | ||
16 | $ endif | ||
17 | $ | ||
18 | $ _save_default = f$environment("default") | ||
19 | $ set default [.install] | ||
20 | $ files := desc,digit,md2c,md5c,nn,prime,- | ||
21 | rsa,r_encode,r_dh,r_enhanc,r_keygen,r_random,- | ||
22 | r_stdlib | ||
23 | $ delete rsaref.olb;* | ||
24 | $ library/create/object rsaref.olb | ||
25 | $ files_i = 0 | ||
26 | $ rsaref_loop: | ||
27 | $ files_e = f$edit(f$element(files_i,",",files),"trim") | ||
28 | $ files_i = files_i + 1 | ||
29 | $ if files_e .eqs. "," then goto rsaref_loop_end | ||
30 | $ cc/include=([-.source],[])/define=PROTOTYPES=1/object=[]'files_e'.obj - | ||
31 | [-.source]'files_e'.c | ||
32 | $ library/replace/object rsaref.olb 'files_e'.obj | ||
33 | $ goto rsaref_loop | ||
34 | $ rsaref_loop_end: | ||
35 | $ | ||
36 | $ set default [-] | ||
37 | $ define/user openssl [---.include.openssl] | ||
38 | $ cc/define=ENGINE_DYNAMIC_SUPPORT rsaref.c | ||
39 | $ | ||
40 | $ if arch .eqs. "VAX" | ||
41 | $ then | ||
42 | $ macro/object=rsaref_vec.obj sys$input: | ||
43 | ; | ||
44 | ; Transfer vector for VAX shareable image | ||
45 | ; | ||
46 | .TITLE librsaref | ||
47 | ; | ||
48 | ; Define macro to assist in building transfer vector entries. Each entry | ||
49 | ; should take no more than 8 bytes. | ||
50 | ; | ||
51 | .MACRO FTRANSFER_ENTRY routine | ||
52 | .ALIGN QUAD | ||
53 | .TRANSFER routine | ||
54 | .MASK routine | ||
55 | JMP routine+2 | ||
56 | .ENDM FTRANSFER_ENTRY | ||
57 | ; | ||
58 | ; Place entries in own program section. | ||
59 | ; | ||
60 | .PSECT $$LIBRSAREF,QUAD,PIC,USR,CON,REL,LCL,SHR,EXE,RD,NOWRT | ||
61 | |||
62 | LIBRSAREF_xfer: | ||
63 | FTRANSFER_ENTRY bind_engine | ||
64 | FTRANSFER_ENTRY v_check | ||
65 | |||
66 | ; | ||
67 | ; Allocate extra storage at end of vector to allow for expansion. | ||
68 | ; | ||
69 | .BLKB 512-<.-LIBRSAREF_xfer> ; 1 page. | ||
70 | .END | ||
71 | $ link/share=librsaref.exe sys$input:/option | ||
72 | ! | ||
73 | ! Ensure transfer vector is at beginning of image | ||
74 | ! | ||
75 | CLUSTER=FIRST | ||
76 | COLLECT=FIRST,$$LIBRSAREF | ||
77 | ! | ||
78 | ! make psects nonshareable so image can be installed. | ||
79 | ! | ||
80 | PSECT_ATTR=$CHAR_STRING_CONSTANTS,NOWRT | ||
81 | []rsaref_vec.obj | ||
82 | []rsaref.obj | ||
83 | [.install]rsaref.olb/lib | ||
84 | [---.vax.exe.crypto]libcrypto.olb/lib | ||
85 | $ else | ||
86 | $ if arch_name .eqs. "ALPHA" | ||
87 | $ then | ||
88 | $ link/share=librsaref.exe sys$input:/option | ||
89 | []rsaref.obj | ||
90 | [.install]rsaref.olb/lib | ||
91 | [---.alpha.exe.crypto]libcrypto.olb/lib | ||
92 | symbol_vector=(bind_engine=procedure,v_check=procedure) | ||
93 | $ else | ||
94 | $ if arch_name .eqs. "IA64" | ||
95 | $ then | ||
96 | $ link /shareable=librsaref.exe sys$input: /options | ||
97 | []rsaref.obj | ||
98 | [.install]rsaref.olb/lib | ||
99 | [---.ia64.exe.crypto]libcrypto.olb/lib | ||
100 | symbol_vector=(bind_engine=procedure,v_check=procedure) | ||
101 | $ endif | ||
102 | $ endif | ||
103 | $ endif | ||
104 | $ | ||
105 | $ set default '_save_default' | ||
diff --git a/src/lib/libssl/src/demos/x509/mkreq.c b/src/lib/libssl/src/demos/x509/mkreq.c index d17e4ade94..d1cba9dc5a 100644 --- a/src/lib/libssl/src/demos/x509/mkreq.c +++ b/src/lib/libssl/src/demos/x509/mkreq.c | |||
@@ -7,13 +7,14 @@ | |||
7 | 7 | ||
8 | #include <openssl/pem.h> | 8 | #include <openssl/pem.h> |
9 | #include <openssl/conf.h> | 9 | #include <openssl/conf.h> |
10 | #include <openssl/x509.h> | ||
10 | #include <openssl/x509v3.h> | 11 | #include <openssl/x509v3.h> |
11 | #ifndef OPENSSL_NO_ENGINE | 12 | #ifndef OPENSSL_NO_ENGINE |
12 | #include <openssl/engine.h> | 13 | #include <openssl/engine.h> |
13 | #endif | 14 | #endif |
14 | 15 | ||
15 | int mkreq(X509_REQ **x509p, EVP_PKEY **pkeyp, int bits, int serial, int days); | 16 | int mkreq(X509_REQ **x509p, EVP_PKEY **pkeyp, int bits, int serial, int days); |
16 | int add_ext(STACK_OF(X509_REQUEST) *sk, int nid, char *value); | 17 | int add_ext(STACK_OF(X509_EXTENSION) *sk, int nid, char *value); |
17 | 18 | ||
18 | int main(int argc, char **argv) | 19 | int main(int argc, char **argv) |
19 | { | 20 | { |
@@ -148,7 +149,7 @@ err: | |||
148 | * because we wont reference any other sections. | 149 | * because we wont reference any other sections. |
149 | */ | 150 | */ |
150 | 151 | ||
151 | int add_ext(STACK_OF(X509_REQUEST) *sk, int nid, char *value) | 152 | int add_ext(STACK_OF(X509_EXTENSION) *sk, int nid, char *value) |
152 | { | 153 | { |
153 | X509_EXTENSION *ex; | 154 | X509_EXTENSION *ex; |
154 | ex = X509V3_EXT_conf_nid(NULL, NULL, nid, value); | 155 | ex = X509V3_EXT_conf_nid(NULL, NULL, nid, value); |
diff --git a/src/lib/libssl/src/doc/apps/CA.pl.pod b/src/lib/libssl/src/doc/apps/CA.pl.pod index ed69952f37..d326101cde 100644 --- a/src/lib/libssl/src/doc/apps/CA.pl.pod +++ b/src/lib/libssl/src/doc/apps/CA.pl.pod | |||
@@ -39,13 +39,13 @@ prints a usage message. | |||
39 | 39 | ||
40 | =item B<-newcert> | 40 | =item B<-newcert> |
41 | 41 | ||
42 | creates a new self signed certificate. The private key and certificate are | 42 | creates a new self signed certificate. The private key is written to the file |
43 | written to the file "newreq.pem". | 43 | "newkey.pem" and the request written to the file "newreq.pem". |
44 | 44 | ||
45 | =item B<-newreq> | 45 | =item B<-newreq> |
46 | 46 | ||
47 | creates a new certificate request. The private key and request are | 47 | creates a new certificate request. The private key is written to the file |
48 | written to the file "newreq.pem". | 48 | "newkey.pem" and the request written to the file "newreq.pem". |
49 | 49 | ||
50 | =item B<-newreq-nodes> | 50 | =item B<-newreq-nodes> |
51 | 51 | ||
diff --git a/src/lib/libssl/src/doc/apps/config.pod b/src/lib/libssl/src/doc/apps/config.pod index ace34b62bd..25c5381b9d 100644 --- a/src/lib/libssl/src/doc/apps/config.pod +++ b/src/lib/libssl/src/doc/apps/config.pod | |||
@@ -119,7 +119,7 @@ variable points to a section containing further ENGINE configuration | |||
119 | information. | 119 | information. |
120 | 120 | ||
121 | The section pointed to by B<engines> is a table of engine names (though see | 121 | The section pointed to by B<engines> is a table of engine names (though see |
122 | B<engine_id> below) and further sections containing configuration informations | 122 | B<engine_id> below) and further sections containing configuration information |
123 | specific to each ENGINE. | 123 | specific to each ENGINE. |
124 | 124 | ||
125 | Each ENGINE specific section is used to set default algorithms, load | 125 | Each ENGINE specific section is used to set default algorithms, load |
diff --git a/src/lib/libssl/src/doc/apps/crl.pod b/src/lib/libssl/src/doc/apps/crl.pod index a40c873b95..1ad76a5f8c 100644 --- a/src/lib/libssl/src/doc/apps/crl.pod +++ b/src/lib/libssl/src/doc/apps/crl.pod | |||
@@ -62,6 +62,11 @@ don't output the encoded version of the CRL. | |||
62 | output a hash of the issuer name. This can be use to lookup CRLs in | 62 | output a hash of the issuer name. This can be use to lookup CRLs in |
63 | a directory by issuer name. | 63 | a directory by issuer name. |
64 | 64 | ||
65 | =item B<-hash_old> | ||
66 | |||
67 | outputs the "hash" of the CRL issuer name using the older algorithm | ||
68 | as used by OpenSSL versions before 1.0.0. | ||
69 | |||
65 | =item B<-issuer> | 70 | =item B<-issuer> |
66 | 71 | ||
67 | output the issuer name. | 72 | output the issuer name. |
diff --git a/src/lib/libssl/src/doc/apps/pkcs12.pod b/src/lib/libssl/src/doc/apps/pkcs12.pod index f69a5c5a4c..8e0d91798a 100644 --- a/src/lib/libssl/src/doc/apps/pkcs12.pod +++ b/src/lib/libssl/src/doc/apps/pkcs12.pod | |||
@@ -67,7 +67,7 @@ by default. | |||
67 | The filename to write certificates and private keys to, standard output by | 67 | The filename to write certificates and private keys to, standard output by |
68 | default. They are all written in PEM format. | 68 | default. They are all written in PEM format. |
69 | 69 | ||
70 | =item B<-pass arg>, B<-passin arg> | 70 | =item B<-passin arg> |
71 | 71 | ||
72 | the PKCS#12 file (i.e. input file) password source. For more information about | 72 | the PKCS#12 file (i.e. input file) password source. For more information about |
73 | the format of B<arg> see the B<PASS PHRASE ARGUMENTS> section in | 73 | the format of B<arg> see the B<PASS PHRASE ARGUMENTS> section in |
@@ -75,10 +75,15 @@ L<openssl(1)|openssl(1)>. | |||
75 | 75 | ||
76 | =item B<-passout arg> | 76 | =item B<-passout arg> |
77 | 77 | ||
78 | pass phrase source to encrypt any outputed private keys with. For more | 78 | pass phrase source to encrypt any outputted private keys with. For more |
79 | information about the format of B<arg> see the B<PASS PHRASE ARGUMENTS> section | 79 | information about the format of B<arg> see the B<PASS PHRASE ARGUMENTS> section |
80 | in L<openssl(1)|openssl(1)>. | 80 | in L<openssl(1)|openssl(1)>. |
81 | 81 | ||
82 | =item B<-password arg> | ||
83 | |||
84 | With -export, -password is equivalent to -passout. | ||
85 | Otherwise, -password is equivalent to -passin. | ||
86 | |||
82 | =item B<-noout> | 87 | =item B<-noout> |
83 | 88 | ||
84 | this option inhibits output of the keys and certificates to the output file | 89 | this option inhibits output of the keys and certificates to the output file |
diff --git a/src/lib/libssl/src/doc/apps/req.pod b/src/lib/libssl/src/doc/apps/req.pod index ff48bbdf28..0730d117b3 100644 --- a/src/lib/libssl/src/doc/apps/req.pod +++ b/src/lib/libssl/src/doc/apps/req.pod | |||
@@ -303,7 +303,7 @@ Reverses effect of B<-asn1-kludge> | |||
303 | 303 | ||
304 | =item B<-newhdr> | 304 | =item B<-newhdr> |
305 | 305 | ||
306 | Adds the word B<NEW> to the PEM file header and footer lines on the outputed | 306 | Adds the word B<NEW> to the PEM file header and footer lines on the outputted |
307 | request. Some software (Netscape certificate server) and some CAs need this. | 307 | request. Some software (Netscape certificate server) and some CAs need this. |
308 | 308 | ||
309 | =item B<-batch> | 309 | =item B<-batch> |
diff --git a/src/lib/libssl/src/doc/apps/rsa.pod b/src/lib/libssl/src/doc/apps/rsa.pod index 69b2bef82c..d7d784d52b 100644 --- a/src/lib/libssl/src/doc/apps/rsa.pod +++ b/src/lib/libssl/src/doc/apps/rsa.pod | |||
@@ -24,6 +24,8 @@ B<openssl> B<rsa> | |||
24 | [B<-check>] | 24 | [B<-check>] |
25 | [B<-pubin>] | 25 | [B<-pubin>] |
26 | [B<-pubout>] | 26 | [B<-pubout>] |
27 | [B<-RSAPublicKey_in>] | ||
28 | [B<-RSAPublicKey_out>] | ||
27 | [B<-engine id>] | 29 | [B<-engine id>] |
28 | 30 | ||
29 | =head1 DESCRIPTION | 31 | =head1 DESCRIPTION |
@@ -118,6 +120,10 @@ by default a private key is output: with this option a public | |||
118 | key will be output instead. This option is automatically set if | 120 | key will be output instead. This option is automatically set if |
119 | the input is a public key. | 121 | the input is a public key. |
120 | 122 | ||
123 | =item B<-RSAPublicKey_in>, B<-RSAPublicKey_out> | ||
124 | |||
125 | like B<-pubin> and B<-pubout> except B<RSAPublicKey> format is used instead. | ||
126 | |||
121 | =item B<-engine id> | 127 | =item B<-engine id> |
122 | 128 | ||
123 | specifying an engine (by its unique B<id> string) will cause B<rsa> | 129 | specifying an engine (by its unique B<id> string) will cause B<rsa> |
@@ -139,6 +145,11 @@ The PEM public key format uses the header and footer lines: | |||
139 | -----BEGIN PUBLIC KEY----- | 145 | -----BEGIN PUBLIC KEY----- |
140 | -----END PUBLIC KEY----- | 146 | -----END PUBLIC KEY----- |
141 | 147 | ||
148 | The PEM B<RSAPublicKey> format uses the header and footer lines: | ||
149 | |||
150 | -----BEGIN RSA PUBLIC KEY----- | ||
151 | -----END RSA PUBLIC KEY----- | ||
152 | |||
142 | The B<NET> form is a format compatible with older Netscape servers | 153 | The B<NET> form is a format compatible with older Netscape servers |
143 | and Microsoft IIS .key files, this uses unsalted RC4 for its encryption. | 154 | and Microsoft IIS .key files, this uses unsalted RC4 for its encryption. |
144 | It is not very secure and so should only be used when necessary. | 155 | It is not very secure and so should only be used when necessary. |
@@ -173,6 +184,10 @@ To just output the public part of a private key: | |||
173 | 184 | ||
174 | openssl rsa -in key.pem -pubout -out pubkey.pem | 185 | openssl rsa -in key.pem -pubout -out pubkey.pem |
175 | 186 | ||
187 | Output the public part of a private key in B<RSAPublicKey> format: | ||
188 | |||
189 | openssl rsa -in key.pem -RSAPublicKey_out -out pubkey.pem | ||
190 | |||
176 | =head1 BUGS | 191 | =head1 BUGS |
177 | 192 | ||
178 | The command line password arguments don't currently work with | 193 | The command line password arguments don't currently work with |
diff --git a/src/lib/libssl/src/doc/apps/s_client.pod b/src/lib/libssl/src/doc/apps/s_client.pod index 4ebf7b5854..3215b2e8c9 100644 --- a/src/lib/libssl/src/doc/apps/s_client.pod +++ b/src/lib/libssl/src/doc/apps/s_client.pod | |||
@@ -10,6 +10,7 @@ s_client - SSL/TLS client program | |||
10 | B<openssl> B<s_client> | 10 | B<openssl> B<s_client> |
11 | [B<-connect host:port>] | 11 | [B<-connect host:port>] |
12 | [B<-verify depth>] | 12 | [B<-verify depth>] |
13 | [B<-verify_return_error>] | ||
13 | [B<-cert filename>] | 14 | [B<-cert filename>] |
14 | [B<-certform DER|PEM>] | 15 | [B<-certform DER|PEM>] |
15 | [B<-key filename>] | 16 | [B<-key filename>] |
@@ -90,6 +91,11 @@ Currently the verify operation continues after errors so all the problems | |||
90 | with a certificate chain can be seen. As a side effect the connection | 91 | with a certificate chain can be seen. As a side effect the connection |
91 | will never fail due to a server certificate verify failure. | 92 | will never fail due to a server certificate verify failure. |
92 | 93 | ||
94 | =item B<-verify_return_error> | ||
95 | |||
96 | Return verification errors instead of continuing. This will typically | ||
97 | abort the handshake with a fatal error. | ||
98 | |||
93 | =item B<-CApath directory> | 99 | =item B<-CApath directory> |
94 | 100 | ||
95 | The directory to use for server certificate verification. This directory | 101 | The directory to use for server certificate verification. This directory |
@@ -286,6 +292,13 @@ Since the SSLv23 client hello cannot include compression methods or extensions | |||
286 | these will only be supported if its use is disabled, for example by using the | 292 | these will only be supported if its use is disabled, for example by using the |
287 | B<-no_sslv2> option. | 293 | B<-no_sslv2> option. |
288 | 294 | ||
295 | The B<s_client> utility is a test tool and is designed to continue the | ||
296 | handshake after any certificate verification errors. As a result it will | ||
297 | accept any certificate chain (trusted or not) sent by the peer. None test | ||
298 | applications should B<not> do this as it makes them vulnerable to a MITM | ||
299 | attack. This behaviour can be changed by with the B<-verify_return_error> | ||
300 | option: any verify errors are then returned aborting the handshake. | ||
301 | |||
289 | =head1 BUGS | 302 | =head1 BUGS |
290 | 303 | ||
291 | Because this program has a lot of options and also because some of | 304 | Because this program has a lot of options and also because some of |
@@ -293,9 +306,6 @@ the techniques used are rather old, the C source of s_client is rather | |||
293 | hard to read and not a model of how things should be done. A typical | 306 | hard to read and not a model of how things should be done. A typical |
294 | SSL client program would be much simpler. | 307 | SSL client program would be much simpler. |
295 | 308 | ||
296 | The B<-verify> option should really exit if the server verification | ||
297 | fails. | ||
298 | |||
299 | The B<-prexit> option is a bit of a hack. We should really report | 309 | The B<-prexit> option is a bit of a hack. We should really report |
300 | information whenever a session is renegotiated. | 310 | information whenever a session is renegotiated. |
301 | 311 | ||
diff --git a/src/lib/libssl/src/doc/apps/s_server.pod b/src/lib/libssl/src/doc/apps/s_server.pod index 3e503e17e1..6758ba3080 100644 --- a/src/lib/libssl/src/doc/apps/s_server.pod +++ b/src/lib/libssl/src/doc/apps/s_server.pod | |||
@@ -111,7 +111,7 @@ by using an appropriate certificate. | |||
111 | 111 | ||
112 | =item B<-dcertform format>, B<-dkeyform format>, B<-dpass arg> | 112 | =item B<-dcertform format>, B<-dkeyform format>, B<-dpass arg> |
113 | 113 | ||
114 | addtional certificate and private key format and passphrase respectively. | 114 | additional certificate and private key format and passphrase respectively. |
115 | 115 | ||
116 | =item B<-nocert> | 116 | =item B<-nocert> |
117 | 117 | ||
diff --git a/src/lib/libssl/src/doc/apps/verify.pod b/src/lib/libssl/src/doc/apps/verify.pod index 336098f1e3..da683004bd 100644 --- a/src/lib/libssl/src/doc/apps/verify.pod +++ b/src/lib/libssl/src/doc/apps/verify.pod | |||
@@ -54,35 +54,37 @@ in PEM format concatenated together. | |||
54 | =item B<-untrusted file> | 54 | =item B<-untrusted file> |
55 | 55 | ||
56 | A file of untrusted certificates. The file should contain multiple certificates | 56 | A file of untrusted certificates. The file should contain multiple certificates |
57 | in PEM format concatenated together. | ||
57 | 58 | ||
58 | =item B<-purpose purpose> | 59 | =item B<-purpose purpose> |
59 | 60 | ||
60 | the intended use for the certificate. Without this option no chain verification | 61 | The intended use for the certificate. If this option is not specified, |
61 | will be done. Currently accepted uses are B<sslclient>, B<sslserver>, | 62 | B<verify> will not consider certificate purpose during chain verification. |
62 | B<nssslserver>, B<smimesign>, B<smimeencrypt>. See the B<VERIFY OPERATION> | 63 | Currently accepted uses are B<sslclient>, B<sslserver>, B<nssslserver>, |
63 | section for more information. | 64 | B<smimesign>, B<smimeencrypt>. See the B<VERIFY OPERATION> section for more |
65 | information. | ||
64 | 66 | ||
65 | =item B<-help> | 67 | =item B<-help> |
66 | 68 | ||
67 | prints out a usage message. | 69 | Print out a usage message. |
68 | 70 | ||
69 | =item B<-verbose> | 71 | =item B<-verbose> |
70 | 72 | ||
71 | print extra information about the operations being performed. | 73 | Print extra information about the operations being performed. |
72 | 74 | ||
73 | =item B<-issuer_checks> | 75 | =item B<-issuer_checks> |
74 | 76 | ||
75 | print out diagnostics relating to searches for the issuer certificate | 77 | Print out diagnostics relating to searches for the issuer certificate of the |
76 | of the current certificate. This shows why each candidate issuer | 78 | current certificate. This shows why each candidate issuer certificate was |
77 | certificate was rejected. However the presence of rejection messages | 79 | rejected. The presence of rejection messages does not itself imply that |
78 | does not itself imply that anything is wrong: during the normal | 80 | anything is wrong; during the normal verification process, several |
79 | verify process several rejections may take place. | 81 | rejections may take place. |
80 | 82 | ||
81 | =item B<-policy arg> | 83 | =item B<-policy arg> |
82 | 84 | ||
83 | Enable policy processing and add B<arg> to the user-initial-policy-set | 85 | Enable policy processing and add B<arg> to the user-initial-policy-set (see |
84 | (see RFC3280 et al). The policy B<arg> can be an object name an OID in numeric | 86 | RFC5280). The policy B<arg> can be an object name an OID in numeric form. |
85 | form. This argument can appear more than once. | 87 | This argument can appear more than once. |
86 | 88 | ||
87 | =item B<-policy_check> | 89 | =item B<-policy_check> |
88 | 90 | ||
@@ -90,41 +92,40 @@ Enables certificate policy processing. | |||
90 | 92 | ||
91 | =item B<-explicit_policy> | 93 | =item B<-explicit_policy> |
92 | 94 | ||
93 | Set policy variable require-explicit-policy (see RFC3280 et al). | 95 | Set policy variable require-explicit-policy (see RFC5280). |
94 | 96 | ||
95 | =item B<-inhibit_any> | 97 | =item B<-inhibit_any> |
96 | 98 | ||
97 | Set policy variable inhibit-any-policy (see RFC3280 et al). | 99 | Set policy variable inhibit-any-policy (see RFC5280). |
98 | 100 | ||
99 | =item B<-inhibit_map> | 101 | =item B<-inhibit_map> |
100 | 102 | ||
101 | Set policy variable inhibit-policy-mapping (see RFC3280 et al). | 103 | Set policy variable inhibit-policy-mapping (see RFC5280). |
102 | 104 | ||
103 | =item B<-policy_print> | 105 | =item B<-policy_print> |
104 | 106 | ||
105 | Print out diagnostics, related to policy checking | 107 | Print out diagnostics related to policy processing. |
106 | 108 | ||
107 | =item B<-crl_check> | 109 | =item B<-crl_check> |
108 | 110 | ||
109 | Checks end entity certificate validity by attempting to lookup a valid CRL. | 111 | Checks end entity certificate validity by attempting to look up a valid CRL. |
110 | If a valid CRL cannot be found an error occurs. | 112 | If a valid CRL cannot be found an error occurs. |
111 | 113 | ||
112 | =item B<-crl_check_all> | 114 | =item B<-crl_check_all> |
113 | 115 | ||
114 | Checks the validity of B<all> certificates in the chain by attempting | 116 | Checks the validity of B<all> certificates in the chain by attempting |
115 | to lookup valid CRLs. | 117 | to look up valid CRLs. |
116 | 118 | ||
117 | =item B<-ignore_critical> | 119 | =item B<-ignore_critical> |
118 | 120 | ||
119 | Normally if an unhandled critical extension is present which is not | 121 | Normally if an unhandled critical extension is present which is not |
120 | supported by OpenSSL the certificate is rejected (as required by | 122 | supported by OpenSSL the certificate is rejected (as required by RFC5280). |
121 | RFC3280 et al). If this option is set critical extensions are | 123 | If this option is set critical extensions are ignored. |
122 | ignored. | ||
123 | 124 | ||
124 | =item B<-x509_strict> | 125 | =item B<-x509_strict> |
125 | 126 | ||
126 | Disable workarounds for broken certificates which have to be disabled | 127 | For strict X.509 compliance, disable non-compliant workarounds for broken |
127 | for strict X.509 compliance. | 128 | certificates. |
128 | 129 | ||
129 | =item B<-extended_crl> | 130 | =item B<-extended_crl> |
130 | 131 | ||
@@ -142,16 +143,15 @@ because it doesn't add any security. | |||
142 | 143 | ||
143 | =item B<-> | 144 | =item B<-> |
144 | 145 | ||
145 | marks the last option. All arguments following this are assumed to be | 146 | Indicates the last option. All arguments following this are assumed to be |
146 | certificate files. This is useful if the first certificate filename begins | 147 | certificate files. This is useful if the first certificate filename begins |
147 | with a B<->. | 148 | with a B<->. |
148 | 149 | ||
149 | =item B<certificates> | 150 | =item B<certificates> |
150 | 151 | ||
151 | one or more certificates to verify. If no certificate filenames are included | 152 | One or more certificates to verify. If no certificates are given, B<verify> |
152 | then an attempt is made to read a certificate from standard input. They should | 153 | will attempt to read a certificate from standard input. Certificates must be |
153 | all be in PEM format. | 154 | in PEM format. |
154 | |||
155 | 155 | ||
156 | =back | 156 | =back |
157 | 157 | ||
diff --git a/src/lib/libssl/src/doc/apps/x509.pod b/src/lib/libssl/src/doc/apps/x509.pod index 3002b08123..d2d9eb812a 100644 --- a/src/lib/libssl/src/doc/apps/x509.pod +++ b/src/lib/libssl/src/doc/apps/x509.pod | |||
@@ -29,6 +29,7 @@ B<openssl> B<x509> | |||
29 | [B<-purpose>] | 29 | [B<-purpose>] |
30 | [B<-dates>] | 30 | [B<-dates>] |
31 | [B<-modulus>] | 31 | [B<-modulus>] |
32 | [B<-pubkey>] | ||
32 | [B<-fingerprint>] | 33 | [B<-fingerprint>] |
33 | [B<-alias>] | 34 | [B<-alias>] |
34 | [B<-noout>] | 35 | [B<-noout>] |
@@ -135,6 +136,10 @@ section for more information. | |||
135 | 136 | ||
136 | this option prevents output of the encoded version of the request. | 137 | this option prevents output of the encoded version of the request. |
137 | 138 | ||
139 | =item B<-pubkey> | ||
140 | |||
141 | outputs the the certificate's SubjectPublicKeyInfo block in PEM format. | ||
142 | |||
138 | =item B<-modulus> | 143 | =item B<-modulus> |
139 | 144 | ||
140 | this option prints out the value of the modulus of the public key | 145 | this option prints out the value of the modulus of the public key |
diff --git a/src/lib/libssl/src/doc/crypto/ERR_get_error.pod b/src/lib/libssl/src/doc/crypto/ERR_get_error.pod index 34443045fc..828ecf529b 100644 --- a/src/lib/libssl/src/doc/crypto/ERR_get_error.pod +++ b/src/lib/libssl/src/doc/crypto/ERR_get_error.pod | |||
@@ -52,8 +52,11 @@ ERR_get_error_line_data(), ERR_peek_error_line_data() and | |||
52 | ERR_get_last_error_line_data() store additional data and flags | 52 | ERR_get_last_error_line_data() store additional data and flags |
53 | associated with the error code in *B<data> | 53 | associated with the error code in *B<data> |
54 | and *B<flags>, unless these are B<NULL>. *B<data> contains a string | 54 | and *B<flags>, unless these are B<NULL>. *B<data> contains a string |
55 | if *B<flags>&B<ERR_TXT_STRING>. If it has been allocated by OPENSSL_malloc(), | 55 | if *B<flags>&B<ERR_TXT_STRING> is true. |
56 | *B<flags>&B<ERR_TXT_MALLOCED> is true. | 56 | |
57 | An application B<MUST NOT> free the *B<data> pointer (or any other pointers | ||
58 | returned by these functions) with OPENSSL_free() as freeing is handled | ||
59 | automatically by the error library. | ||
57 | 60 | ||
58 | =head1 RETURN VALUES | 61 | =head1 RETURN VALUES |
59 | 62 | ||
diff --git a/src/lib/libssl/src/doc/crypto/EVP_BytesToKey.pod b/src/lib/libssl/src/doc/crypto/EVP_BytesToKey.pod index d375c46e03..0ea7d55c0f 100644 --- a/src/lib/libssl/src/doc/crypto/EVP_BytesToKey.pod +++ b/src/lib/libssl/src/doc/crypto/EVP_BytesToKey.pod | |||
@@ -17,7 +17,7 @@ EVP_BytesToKey - password based encryption routine | |||
17 | 17 | ||
18 | EVP_BytesToKey() derives a key and IV from various parameters. B<type> is | 18 | EVP_BytesToKey() derives a key and IV from various parameters. B<type> is |
19 | the cipher to derive the key and IV for. B<md> is the message digest to use. | 19 | the cipher to derive the key and IV for. B<md> is the message digest to use. |
20 | The B<salt> paramter is used as a salt in the derivation: it should point to | 20 | The B<salt> parameter is used as a salt in the derivation: it should point to |
21 | an 8 byte buffer or NULL if no salt is used. B<data> is a buffer containing | 21 | an 8 byte buffer or NULL if no salt is used. B<data> is a buffer containing |
22 | B<datal> bytes which is used to derive the keying data. B<count> is the | 22 | B<datal> bytes which is used to derive the keying data. B<count> is the |
23 | iteration count to use. The derived key and IV will be written to B<key> | 23 | iteration count to use. The derived key and IV will be written to B<key> |
diff --git a/src/lib/libssl/src/doc/crypto/EVP_DigestInit.pod b/src/lib/libssl/src/doc/crypto/EVP_DigestInit.pod index 1aa15acb61..367691cc7a 100644 --- a/src/lib/libssl/src/doc/crypto/EVP_DigestInit.pod +++ b/src/lib/libssl/src/doc/crypto/EVP_DigestInit.pod | |||
@@ -252,9 +252,9 @@ digest name passed on the command line. | |||
252 | 252 | ||
253 | =head1 SEE ALSO | 253 | =head1 SEE ALSO |
254 | 254 | ||
255 | L<evp(3)|evp(3)>, L<HMAC(3)|HMAC(3)>, L<MD2(3)|MD2(3)>, | 255 | L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>, |
256 | L<MD5(3)|MD5(3)>, L<MDC2(3)|MDC2(3)>, L<RIPEMD160(3)|RIPEMD160(3)>, | 256 | L<md5(3)|md5(3)>, L<mdc2(3)|mdc2(3)>, L<ripemd(3)|ripemd(3)>, |
257 | L<SHA1(3)|SHA1(3)> | 257 | L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)> |
258 | 258 | ||
259 | =head1 HISTORY | 259 | =head1 HISTORY |
260 | 260 | ||
diff --git a/src/lib/libssl/src/doc/crypto/EVP_EncryptInit.pod b/src/lib/libssl/src/doc/crypto/EVP_EncryptInit.pod index 8271d3dfc4..1c4bf184a1 100644 --- a/src/lib/libssl/src/doc/crypto/EVP_EncryptInit.pod +++ b/src/lib/libssl/src/doc/crypto/EVP_EncryptInit.pod | |||
@@ -152,7 +152,7 @@ does not remain in memory. | |||
152 | 152 | ||
153 | EVP_EncryptInit(), EVP_DecryptInit() and EVP_CipherInit() behave in a | 153 | EVP_EncryptInit(), EVP_DecryptInit() and EVP_CipherInit() behave in a |
154 | similar way to EVP_EncryptInit_ex(), EVP_DecryptInit_ex and | 154 | similar way to EVP_EncryptInit_ex(), EVP_DecryptInit_ex and |
155 | EVP_CipherInit_ex() except the B<ctx> paramter does not need to be | 155 | EVP_CipherInit_ex() except the B<ctx> parameter does not need to be |
156 | initialized and they always use the default cipher implementation. | 156 | initialized and they always use the default cipher implementation. |
157 | 157 | ||
158 | EVP_EncryptFinal(), EVP_DecryptFinal() and EVP_CipherFinal() behave in a | 158 | EVP_EncryptFinal(), EVP_DecryptFinal() and EVP_CipherFinal() behave in a |
diff --git a/src/lib/libssl/src/doc/crypto/EVP_PKEY_verifyrecover.pod b/src/lib/libssl/src/doc/crypto/EVP_PKEY_verifyrecover.pod deleted file mode 100644 index f3605eb826..0000000000 --- a/src/lib/libssl/src/doc/crypto/EVP_PKEY_verifyrecover.pod +++ /dev/null | |||
@@ -1,103 +0,0 @@ | |||
1 | =pod | ||
2 | |||
3 | =head1 NAME | ||
4 | |||
5 | EVP_PKEY_verifyrecover_init, EVP_PKEY_verifyrecover - recover signature using a public key algorithm | ||
6 | |||
7 | =head1 SYNOPSIS | ||
8 | |||
9 | #include <openssl/evp.h> | ||
10 | |||
11 | int EVP_PKEY_verifyrecover_init(EVP_PKEY_CTX *ctx); | ||
12 | int EVP_PKEY_verifyrecover(EVP_PKEY_CTX *ctx, | ||
13 | unsigned char *rout, size_t *routlen, | ||
14 | const unsigned char *sig, size_t siglen); | ||
15 | |||
16 | =head1 DESCRIPTION | ||
17 | |||
18 | The EVP_PKEY_verifyrecover_init() function initializes a public key algorithm | ||
19 | context using key B<pkey> for a verify recover operation. | ||
20 | |||
21 | The EVP_PKEY_verifyrecover() function recovers signed data | ||
22 | using B<ctx>. The signature is specified using the B<sig> and | ||
23 | B<siglen> parameters. If B<rout> is B<NULL> then the maximum size of the output | ||
24 | buffer is written to the B<routlen> parameter. If B<rout> is not B<NULL> then | ||
25 | before the call the B<routlen> parameter should contain the length of the | ||
26 | B<rout> buffer, if the call is successful recovered data is written to | ||
27 | B<rout> and the amount of data written to B<routlen>. | ||
28 | |||
29 | =head1 NOTES | ||
30 | |||
31 | Normally an application is only interested in whether a signature verification | ||
32 | operation is successful in those cases the EVP_verify() function should be | ||
33 | used. | ||
34 | |||
35 | Sometimes however it is useful to obtain the data originally signed using a | ||
36 | signing operation. Only certain public key algorithms can recover a signature | ||
37 | in this way (for example RSA in PKCS padding mode). | ||
38 | |||
39 | After the call to EVP_PKEY_verifyrecover_init() algorithm specific control | ||
40 | operations can be performed to set any appropriate parameters for the | ||
41 | operation. | ||
42 | |||
43 | The function EVP_PKEY_verifyrecover() can be called more than once on the same | ||
44 | context if several operations are performed using the same parameters. | ||
45 | |||
46 | =head1 RETURN VALUES | ||
47 | |||
48 | EVP_PKEY_verifyrecover_init() and EVP_PKEY_verifyrecover() return 1 for success | ||
49 | and 0 or a negative value for failure. In particular a return value of -2 | ||
50 | indicates the operation is not supported by the public key algorithm. | ||
51 | |||
52 | =head1 EXAMPLE | ||
53 | |||
54 | Recover digest originally signed using PKCS#1 and SHA256 digest: | ||
55 | |||
56 | #include <openssl/evp.h> | ||
57 | #include <openssl/rsa.h> | ||
58 | |||
59 | EVP_PKEY_CTX *ctx; | ||
60 | unsigned char *rout, *sig; | ||
61 | size_t routlen, siglen; | ||
62 | EVP_PKEY *verify_key; | ||
63 | /* NB: assumes verify_key, sig and siglen are already set up | ||
64 | * and that verify_key is an RSA public key | ||
65 | */ | ||
66 | ctx = EVP_PKEY_CTX_new(verify_key); | ||
67 | if (!ctx) | ||
68 | /* Error occurred */ | ||
69 | if (EVP_PKEY_verifyrecover_init(ctx) <= 0) | ||
70 | /* Error */ | ||
71 | if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PADDING) <= 0) | ||
72 | /* Error */ | ||
73 | if (EVP_PKEY_CTX_set_signature_md(ctx, EVP_sha256()) <= 0) | ||
74 | /* Error */ | ||
75 | |||
76 | /* Determine buffer length */ | ||
77 | if (EVP_PKEY_verifyrecover(ctx, NULL, &routlen, sig, siglen) <= 0) | ||
78 | /* Error */ | ||
79 | |||
80 | rout = OPENSSL_malloc(routlen); | ||
81 | |||
82 | if (!rout) | ||
83 | /* malloc failure */ | ||
84 | |||
85 | if (EVP_PKEY_verifyrecover(ctx, rout, &routlen, sig, siglen) <= 0) | ||
86 | /* Error */ | ||
87 | |||
88 | /* Recovered data is routlen bytes written to buffer rout */ | ||
89 | |||
90 | =head1 SEE ALSO | ||
91 | |||
92 | L<EVP_PKEY_CTX_new(3)|EVP_PKEY_CTX_new(3)>, | ||
93 | L<EVP_PKEY_encrypt(3)|EVP_PKEY_encrypt(3)>, | ||
94 | L<EVP_PKEY_decrypt(3)|EVP_PKEY_decrypt(3)>, | ||
95 | L<EVP_PKEY_sign(3)|EVP_PKEY_sign(3)>, | ||
96 | L<EVP_PKEY_verify(3)|EVP_PKEY_verify(3)>, | ||
97 | L<EVP_PKEY_derive(3)|EVP_PKEY_derive(3)> | ||
98 | |||
99 | =head1 HISTORY | ||
100 | |||
101 | These functions were first added to OpenSSL 1.0.0. | ||
102 | |||
103 | =cut | ||
diff --git a/src/lib/libssl/src/doc/crypto/EVP_SignInit.pod b/src/lib/libssl/src/doc/crypto/EVP_SignInit.pod index 781d43e401..620a623ab6 100644 --- a/src/lib/libssl/src/doc/crypto/EVP_SignInit.pod +++ b/src/lib/libssl/src/doc/crypto/EVP_SignInit.pod | |||
@@ -89,10 +89,10 @@ The previous two bugs are fixed in the newer EVP_SignDigest*() function. | |||
89 | =head1 SEE ALSO | 89 | =head1 SEE ALSO |
90 | 90 | ||
91 | L<EVP_VerifyInit(3)|EVP_VerifyInit(3)>, | 91 | L<EVP_VerifyInit(3)|EVP_VerifyInit(3)>, |
92 | L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, | 92 | L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>, |
93 | L<evp(3)|evp(3)>, L<HMAC(3)|HMAC(3)>, L<MD2(3)|MD2(3)>, | 93 | L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>, |
94 | L<MD5(3)|MD5(3)>, L<MDC2(3)|MDC2(3)>, L<RIPEMD(3)|RIPEMD(3)>, | 94 | L<md5(3)|md5(3)>, L<mdc2(3)|mdc2(3)>, L<ripemd(3)|ripemd(3)>, |
95 | L<SHA1(3)|SHA1(3)>, L<digest(1)|digest(1)> | 95 | L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)> |
96 | 96 | ||
97 | =head1 HISTORY | 97 | =head1 HISTORY |
98 | 98 | ||
diff --git a/src/lib/libssl/src/doc/crypto/des_modes.pod b/src/lib/libssl/src/doc/crypto/des_modes.pod index 0ad01eafe2..e883ca8fde 100644 --- a/src/lib/libssl/src/doc/crypto/des_modes.pod +++ b/src/lib/libssl/src/doc/crypto/des_modes.pod | |||
@@ -248,7 +248,8 @@ it to: | |||
248 | 248 | ||
249 | =head1 SEE ALSO | 249 | =head1 SEE ALSO |
250 | 250 | ||
251 | L<blowfish(3)|blowfish(3)> | 251 | L<blowfish(3)|blowfish(3)>, L<des(3)|des(3)>, L<idea(3)|idea(3)>, |
252 | L<rc2(3)|rc2(3)> | ||
252 | 253 | ||
253 | =cut | 254 | =cut |
254 | 255 | ||
diff --git a/src/lib/libssl/src/doc/crypto/dsa.pod b/src/lib/libssl/src/doc/crypto/dsa.pod index ae2e5d81f9..da07d2b930 100644 --- a/src/lib/libssl/src/doc/crypto/dsa.pod +++ b/src/lib/libssl/src/doc/crypto/dsa.pod | |||
@@ -101,7 +101,8 @@ Standard, DSS), ANSI X9.30 | |||
101 | =head1 SEE ALSO | 101 | =head1 SEE ALSO |
102 | 102 | ||
103 | L<bn(3)|bn(3)>, L<dh(3)|dh(3)>, L<err(3)|err(3)>, L<rand(3)|rand(3)>, | 103 | L<bn(3)|bn(3)>, L<dh(3)|dh(3)>, L<err(3)|err(3)>, L<rand(3)|rand(3)>, |
104 | L<rsa(3)|rsa(3)>, L<SHA1(3)|SHA1(3)>, L<DSA_new(3)|DSA_new(3)>, | 104 | L<rsa(3)|rsa(3)>, L<sha(3)|sha(3)>, L<engine(3)|engine(3)>, |
105 | L<DSA_new(3)|DSA_new(3)>, | ||
105 | L<DSA_size(3)|DSA_size(3)>, | 106 | L<DSA_size(3)|DSA_size(3)>, |
106 | L<DSA_generate_parameters(3)|DSA_generate_parameters(3)>, | 107 | L<DSA_generate_parameters(3)|DSA_generate_parameters(3)>, |
107 | L<DSA_dup_DH(3)|DSA_dup_DH(3)>, | 108 | L<DSA_dup_DH(3)|DSA_dup_DH(3)>, |
diff --git a/src/lib/libssl/src/doc/crypto/hmac.pod b/src/lib/libssl/src/doc/crypto/hmac.pod index 5e3921a0d8..d92138d273 100644 --- a/src/lib/libssl/src/doc/crypto/hmac.pod +++ b/src/lib/libssl/src/doc/crypto/hmac.pod | |||
@@ -90,7 +90,7 @@ RFC 2104 | |||
90 | 90 | ||
91 | =head1 SEE ALSO | 91 | =head1 SEE ALSO |
92 | 92 | ||
93 | L<SHA1(3)|SHA1(3)>, L<EVP_DigestInit(3)|EVP_DigestInit(3)> | 93 | L<sha(3)|sha(3)>, L<evp(3)|evp(3)> |
94 | 94 | ||
95 | =head1 HISTORY | 95 | =head1 HISTORY |
96 | 96 | ||
diff --git a/src/lib/libssl/src/doc/crypto/mdc2.pod b/src/lib/libssl/src/doc/crypto/mdc2.pod index 2fab9a9871..41f648af36 100644 --- a/src/lib/libssl/src/doc/crypto/mdc2.pod +++ b/src/lib/libssl/src/doc/crypto/mdc2.pod | |||
@@ -54,7 +54,7 @@ ISO/IEC 10118-2, with DES | |||
54 | 54 | ||
55 | =head1 SEE ALSO | 55 | =head1 SEE ALSO |
56 | 56 | ||
57 | L<SHA1(3)|SHA1(3)>, L<EVP_DigestInit(3)|EVP_DigestInit(3)> | 57 | L<sha(3)|sha(3)>, L<EVP_DigestInit(3)|EVP_DigestInit(3)> |
58 | 58 | ||
59 | =head1 HISTORY | 59 | =head1 HISTORY |
60 | 60 | ||
diff --git a/src/lib/libssl/src/doc/crypto/pem.pod b/src/lib/libssl/src/doc/crypto/pem.pod index d5b1896119..54414a3f6f 100644 --- a/src/lib/libssl/src/doc/crypto/pem.pod +++ b/src/lib/libssl/src/doc/crypto/pem.pod | |||
@@ -201,7 +201,7 @@ handle PKCS#8 format encrypted and unencrypted keys too. | |||
201 | PEM_write_bio_PKCS8PrivateKey() and PEM_write_PKCS8PrivateKey() | 201 | PEM_write_bio_PKCS8PrivateKey() and PEM_write_PKCS8PrivateKey() |
202 | write a private key in an EVP_PKEY structure in PKCS#8 | 202 | write a private key in an EVP_PKEY structure in PKCS#8 |
203 | EncryptedPrivateKeyInfo format using PKCS#5 v2.0 password based encryption | 203 | EncryptedPrivateKeyInfo format using PKCS#5 v2.0 password based encryption |
204 | algorithms. The B<cipher> argument specifies the encryption algoritm to | 204 | algorithms. The B<cipher> argument specifies the encryption algorithm to |
205 | use: unlike all other PEM routines the encryption is applied at the | 205 | use: unlike all other PEM routines the encryption is applied at the |
206 | PKCS#8 level and not in the PEM headers. If B<cipher> is NULL then no | 206 | PKCS#8 level and not in the PEM headers. If B<cipher> is NULL then no |
207 | encryption is used and a PKCS#8 PrivateKeyInfo structure is used instead. | 207 | encryption is used and a PKCS#8 PrivateKeyInfo structure is used instead. |
diff --git a/src/lib/libssl/src/doc/crypto/ripemd.pod b/src/lib/libssl/src/doc/crypto/ripemd.pod index 348ef7c961..264bb99ae7 100644 --- a/src/lib/libssl/src/doc/crypto/ripemd.pod +++ b/src/lib/libssl/src/doc/crypto/ripemd.pod | |||
@@ -56,7 +56,7 @@ ISO/IEC 10118-3 (draft) (??) | |||
56 | 56 | ||
57 | =head1 SEE ALSO | 57 | =head1 SEE ALSO |
58 | 58 | ||
59 | L<SHA1(3)|SHA1(3)>, L<HMAC(3)|HMAC(3)>, L<EVP_DigestInit(3)|EVP_DigestInit(3)> | 59 | L<sha(3)|sha(3)>, L<hmac(3)|hmac(3)>, L<EVP_DigestInit(3)|EVP_DigestInit(3)> |
60 | 60 | ||
61 | =head1 HISTORY | 61 | =head1 HISTORY |
62 | 62 | ||
diff --git a/src/lib/libssl/src/doc/crypto/sha.pod b/src/lib/libssl/src/doc/crypto/sha.pod index d7a56accd3..94ab7bc724 100644 --- a/src/lib/libssl/src/doc/crypto/sha.pod +++ b/src/lib/libssl/src/doc/crypto/sha.pod | |||
@@ -60,7 +60,7 @@ ANSI X9.30 | |||
60 | 60 | ||
61 | =head1 SEE ALSO | 61 | =head1 SEE ALSO |
62 | 62 | ||
63 | L<RIPEMD160(3)|RIPEMD160(3)>, L<HMAC(3)|HMAC(3)>, L<EVP_DigestInit(3)|EVP_DigestInit(3)> | 63 | L<ripemd(3)|ripemd(3)>, L<hmac(3)|hmac(3)>, L<EVP_DigestInit(3)|EVP_DigestInit(3)> |
64 | 64 | ||
65 | =head1 HISTORY | 65 | =head1 HISTORY |
66 | 66 | ||
diff --git a/src/lib/libssl/src/doc/ssl/SSL_CTX_set_client_CA_list.pod b/src/lib/libssl/src/doc/ssl/SSL_CTX_set_client_CA_list.pod index 04d0a3c9a8..bcf35dc85b 100644 --- a/src/lib/libssl/src/doc/ssl/SSL_CTX_set_client_CA_list.pod +++ b/src/lib/libssl/src/doc/ssl/SSL_CTX_set_client_CA_list.pod | |||
@@ -66,16 +66,16 @@ values: | |||
66 | 66 | ||
67 | =over 4 | 67 | =over 4 |
68 | 68 | ||
69 | =item C<1> | ||
70 | |||
71 | The operation succeeded. | ||
72 | |||
73 | =item C<0> | 69 | =item C<0> |
74 | 70 | ||
75 | A failure while manipulating the STACK_OF(X509_NAME) object occurred or | 71 | A failure while manipulating the STACK_OF(X509_NAME) object occurred or |
76 | the X509_NAME could not be extracted from B<cacert>. Check the error stack | 72 | the X509_NAME could not be extracted from B<cacert>. Check the error stack |
77 | to find out the reason. | 73 | to find out the reason. |
78 | 74 | ||
75 | =item C<1> | ||
76 | |||
77 | The operation succeeded. | ||
78 | |||
79 | =back | 79 | =back |
80 | 80 | ||
81 | =head1 EXAMPLES | 81 | =head1 EXAMPLES |
diff --git a/src/lib/libssl/src/doc/ssl/SSL_CTX_set_options.pod b/src/lib/libssl/src/doc/ssl/SSL_CTX_set_options.pod index cc588f3a78..fded0601b5 100644 --- a/src/lib/libssl/src/doc/ssl/SSL_CTX_set_options.pod +++ b/src/lib/libssl/src/doc/ssl/SSL_CTX_set_options.pod | |||
@@ -88,9 +88,10 @@ As of OpenSSL 0.9.8q and 1.0.0c, this option has no effect. | |||
88 | 88 | ||
89 | ... | 89 | ... |
90 | 90 | ||
91 | =item SSL_OP_MSIE_SSLV2_RSA_PADDING | 91 | =item SSL_OP_SAFARI_ECDHE_ECDSA_BUG |
92 | 92 | ||
93 | As of OpenSSL 0.9.7h and 0.9.8a, this option has no effect. | 93 | Don't prefer ECDHE-ECDSA ciphers when the client appears to be Safari on OS X. |
94 | OS X 10.8..10.8.3 has broken support for ECDHE-ECDSA ciphers. | ||
94 | 95 | ||
95 | =item SSL_OP_SSLEAY_080_CLIENT_DH_BUG | 96 | =item SSL_OP_SSLEAY_080_CLIENT_DH_BUG |
96 | 97 | ||
diff --git a/src/lib/libssl/src/doc/ssl/SSL_CTX_set_verify.pod b/src/lib/libssl/src/doc/ssl/SSL_CTX_set_verify.pod index 81566839d3..6fd6c03215 100644 --- a/src/lib/libssl/src/doc/ssl/SSL_CTX_set_verify.pod +++ b/src/lib/libssl/src/doc/ssl/SSL_CTX_set_verify.pod | |||
@@ -169,8 +169,8 @@ that will always continue the TLS/SSL handshake regardless of verification | |||
169 | failure, if wished. The callback realizes a verification depth limit with | 169 | failure, if wished. The callback realizes a verification depth limit with |
170 | more informational output. | 170 | more informational output. |
171 | 171 | ||
172 | All verification errors are printed, informations about the certificate chain | 172 | All verification errors are printed; information about the certificate chain |
173 | are printed on request. | 173 | is printed on request. |
174 | The example is realized for a server that does allow but not require client | 174 | The example is realized for a server that does allow but not require client |
175 | certificates. | 175 | certificates. |
176 | 176 | ||
diff --git a/src/lib/libssl/src/doc/ssl/SSL_accept.pod b/src/lib/libssl/src/doc/ssl/SSL_accept.pod index 17f504b89b..288203f8af 100644 --- a/src/lib/libssl/src/doc/ssl/SSL_accept.pod +++ b/src/lib/libssl/src/doc/ssl/SSL_accept.pod | |||
@@ -44,18 +44,18 @@ The following return values can occur: | |||
44 | 44 | ||
45 | =over 4 | 45 | =over 4 |
46 | 46 | ||
47 | =item C<1> | ||
48 | |||
49 | The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been | ||
50 | established. | ||
51 | |||
52 | =item C<0> | 47 | =item C<0> |
53 | 48 | ||
54 | The TLS/SSL handshake was not successful but was shut down controlled and | 49 | The TLS/SSL handshake was not successful but was shut down controlled and |
55 | by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the | 50 | by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the |
56 | return value B<ret> to find out the reason. | 51 | return value B<ret> to find out the reason. |
57 | 52 | ||
58 | =item C<E<lt>0> | 53 | =item C<1> |
54 | |||
55 | The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been | ||
56 | established. | ||
57 | |||
58 | =item E<lt>0 | ||
59 | 59 | ||
60 | The TLS/SSL handshake was not successful because a fatal error occurred either | 60 | The TLS/SSL handshake was not successful because a fatal error occurred either |
61 | at the protocol level or a connection failure occurred. The shutdown was | 61 | at the protocol level or a connection failure occurred. The shutdown was |
diff --git a/src/lib/libssl/src/doc/ssl/SSL_connect.pod b/src/lib/libssl/src/doc/ssl/SSL_connect.pod index 413af361e1..0087f6b3e1 100644 --- a/src/lib/libssl/src/doc/ssl/SSL_connect.pod +++ b/src/lib/libssl/src/doc/ssl/SSL_connect.pod | |||
@@ -41,17 +41,17 @@ The following return values can occur: | |||
41 | 41 | ||
42 | =over 4 | 42 | =over 4 |
43 | 43 | ||
44 | =item C<1> | ||
45 | |||
46 | The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been | ||
47 | established. | ||
48 | |||
49 | =item C<0> | 44 | =item C<0> |
50 | 45 | ||
51 | The TLS/SSL handshake was not successful but was shut down controlled and | 46 | The TLS/SSL handshake was not successful but was shut down controlled and |
52 | by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the | 47 | by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the |
53 | return value B<ret> to find out the reason. | 48 | return value B<ret> to find out the reason. |
54 | 49 | ||
50 | =item C<1> | ||
51 | |||
52 | The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been | ||
53 | established. | ||
54 | |||
55 | =item C<E<lt>0> | 55 | =item C<E<lt>0> |
56 | 56 | ||
57 | The TLS/SSL handshake was not successful, because a fatal error occurred either | 57 | The TLS/SSL handshake was not successful, because a fatal error occurred either |
diff --git a/src/lib/libssl/src/doc/ssl/SSL_do_handshake.pod b/src/lib/libssl/src/doc/ssl/SSL_do_handshake.pod index e9d4119c72..1ca18d4723 100644 --- a/src/lib/libssl/src/doc/ssl/SSL_do_handshake.pod +++ b/src/lib/libssl/src/doc/ssl/SSL_do_handshake.pod | |||
@@ -45,17 +45,17 @@ The following return values can occur: | |||
45 | 45 | ||
46 | =over 4 | 46 | =over 4 |
47 | 47 | ||
48 | =item C<1> | ||
49 | |||
50 | The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been | ||
51 | established. | ||
52 | |||
53 | =item C<0> | 48 | =item C<0> |
54 | 49 | ||
55 | The TLS/SSL handshake was not successful but was shut down controlled and | 50 | The TLS/SSL handshake was not successful but was shut down controlled and |
56 | by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the | 51 | by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the |
57 | return value B<ret> to find out the reason. | 52 | return value B<ret> to find out the reason. |
58 | 53 | ||
54 | =item C<1> | ||
55 | |||
56 | The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been | ||
57 | established. | ||
58 | |||
59 | =item C<E<lt>0> | 59 | =item C<E<lt>0> |
60 | 60 | ||
61 | The TLS/SSL handshake was not successful because a fatal error occurred either | 61 | The TLS/SSL handshake was not successful because a fatal error occurred either |
diff --git a/src/lib/libssl/src/doc/ssl/SSL_set_shutdown.pod b/src/lib/libssl/src/doc/ssl/SSL_set_shutdown.pod index 011a022a12..fe013085d3 100644 --- a/src/lib/libssl/src/doc/ssl/SSL_set_shutdown.pod +++ b/src/lib/libssl/src/doc/ssl/SSL_set_shutdown.pod | |||
@@ -24,7 +24,7 @@ The shutdown state of an ssl connection is a bitmask of: | |||
24 | 24 | ||
25 | =over 4 | 25 | =over 4 |
26 | 26 | ||
27 | =item 0 | 27 | =item Z<>0 |
28 | 28 | ||
29 | No shutdown setting, yet. | 29 | No shutdown setting, yet. |
30 | 30 | ||
diff --git a/src/lib/libssl/src/doc/ssl/SSL_shutdown.pod b/src/lib/libssl/src/doc/ssl/SSL_shutdown.pod index 69ad31e80b..d86ac7cb13 100644 --- a/src/lib/libssl/src/doc/ssl/SSL_shutdown.pod +++ b/src/lib/libssl/src/doc/ssl/SSL_shutdown.pod | |||
@@ -92,11 +92,6 @@ The following return values can occur: | |||
92 | 92 | ||
93 | =over 4 | 93 | =over 4 |
94 | 94 | ||
95 | =item C<1> | ||
96 | |||
97 | The shutdown was successfully completed. The "close notify" alert was sent | ||
98 | and the peer's "close notify" alert was received. | ||
99 | |||
100 | =item C<0> | 95 | =item C<0> |
101 | 96 | ||
102 | The shutdown is not yet finished. Call SSL_shutdown() for a second time, | 97 | The shutdown is not yet finished. Call SSL_shutdown() for a second time, |
@@ -104,6 +99,11 @@ if a bidirectional shutdown shall be performed. | |||
104 | The output of L<SSL_get_error(3)|SSL_get_error(3)> may be misleading, as an | 99 | The output of L<SSL_get_error(3)|SSL_get_error(3)> may be misleading, as an |
105 | erroneous SSL_ERROR_SYSCALL may be flagged even though no error occurred. | 100 | erroneous SSL_ERROR_SYSCALL may be flagged even though no error occurred. |
106 | 101 | ||
102 | =item C<1> | ||
103 | |||
104 | The shutdown was successfully completed. The "close notify" alert was sent | ||
105 | and the peer's "close notify" alert was received. | ||
106 | |||
107 | =item C<-1> | 107 | =item C<-1> |
108 | 108 | ||
109 | The shutdown was not successful because a fatal error occurred either | 109 | The shutdown was not successful because a fatal error occurred either |
diff --git a/src/lib/libssl/src/doc/ssl/ssl.pod b/src/lib/libssl/src/doc/ssl/ssl.pod index 88aaebf3f6..6d3ee24e4e 100644 --- a/src/lib/libssl/src/doc/ssl/ssl.pod +++ b/src/lib/libssl/src/doc/ssl/ssl.pod | |||
@@ -3,7 +3,7 @@ | |||
3 | 3 | ||
4 | =head1 NAME | 4 | =head1 NAME |
5 | 5 | ||
6 | ssl - OpenSSL SSL/TLS library | 6 | SSL - OpenSSL SSL/TLS library |
7 | 7 | ||
8 | =head1 SYNOPSIS | 8 | =head1 SYNOPSIS |
9 | 9 | ||
diff --git a/src/lib/libssl/src/e_os.h b/src/lib/libssl/src/e_os.h index 79c1392573..6a0aad1de7 100644 --- a/src/lib/libssl/src/e_os.h +++ b/src/lib/libssl/src/e_os.h | |||
@@ -368,6 +368,13 @@ static unsigned int _strlen31(const char *str) | |||
368 | # define DEFAULT_HOME "C:" | 368 | # define DEFAULT_HOME "C:" |
369 | # endif | 369 | # endif |
370 | 370 | ||
371 | /* Avoid Windows 8 SDK GetVersion deprecated problems */ | ||
372 | #if defined(_MSC_VER) && _MSC_VER>=1800 | ||
373 | # define check_winnt() (1) | ||
374 | #else | ||
375 | # define check_winnt() (GetVersion() < 0x80000000) | ||
376 | #endif | ||
377 | |||
371 | #else /* The non-microsoft world */ | 378 | #else /* The non-microsoft world */ |
372 | 379 | ||
373 | # ifdef OPENSSL_SYS_VMS | 380 | # ifdef OPENSSL_SYS_VMS |
diff --git a/src/lib/libssl/src/engines/e_capi.c b/src/lib/libssl/src/engines/e_capi.c index bfedde0eb0..c1085b56cd 100644 --- a/src/lib/libssl/src/engines/e_capi.c +++ b/src/lib/libssl/src/engines/e_capi.c | |||
@@ -1432,10 +1432,13 @@ static PCCERT_CONTEXT capi_find_cert(CAPI_CTX *ctx, const char *id, HCERTSTORE h | |||
1432 | static CAPI_KEY *capi_get_key(CAPI_CTX *ctx, const char *contname, char *provname, DWORD ptype, DWORD keyspec) | 1432 | static CAPI_KEY *capi_get_key(CAPI_CTX *ctx, const char *contname, char *provname, DWORD ptype, DWORD keyspec) |
1433 | { | 1433 | { |
1434 | CAPI_KEY *key; | 1434 | CAPI_KEY *key; |
1435 | DWORD dwFlags = 0; | ||
1435 | key = OPENSSL_malloc(sizeof(CAPI_KEY)); | 1436 | key = OPENSSL_malloc(sizeof(CAPI_KEY)); |
1436 | CAPI_trace(ctx, "capi_get_key, contname=%s, provname=%s, type=%d\n", | 1437 | CAPI_trace(ctx, "capi_get_key, contname=%s, provname=%s, type=%d\n", |
1437 | contname, provname, ptype); | 1438 | contname, provname, ptype); |
1438 | if (!CryptAcquireContextA(&key->hprov, contname, provname, ptype, 0)) | 1439 | if(ctx->store_flags & CERT_SYSTEM_STORE_LOCAL_MACHINE) |
1440 | dwFlags = CRYPT_MACHINE_KEYSET; | ||
1441 | if (!CryptAcquireContextA(&key->hprov, contname, provname, ptype, dwFlags)) | ||
1439 | { | 1442 | { |
1440 | CAPIerr(CAPI_F_CAPI_GET_KEY, CAPI_R_CRYPTACQUIRECONTEXT_ERROR); | 1443 | CAPIerr(CAPI_F_CAPI_GET_KEY, CAPI_R_CRYPTACQUIRECONTEXT_ERROR); |
1441 | capi_addlasterror(); | 1444 | capi_addlasterror(); |
diff --git a/src/lib/libssl/src/engines/makeengines.com b/src/lib/libssl/src/engines/makeengines.com deleted file mode 100644 index 6329fbbf03..0000000000 --- a/src/lib/libssl/src/engines/makeengines.com +++ /dev/null | |||
@@ -1,1125 +0,0 @@ | |||
1 | $! | ||
2 | $! MAKEENGINES.COM | ||
3 | $! Written By: Richard Levitte | ||
4 | $! richard@levitte.org | ||
5 | $! | ||
6 | $! This command file compiles and creates the various engines in form | ||
7 | $! of shared images. They are placed in [.xxx.EXE.ENGINES], where "xxx" | ||
8 | $! is ALPHA, IA64 or VAX, depending on your hardware. | ||
9 | $! | ||
10 | $! P1 if this is ENGINES or ALL, the engines will build, otherwise not. | ||
11 | $! | ||
12 | $! P2 DEBUG or NODEBUG to compile with or without debugger information. | ||
13 | $! | ||
14 | $! P3 VAXC for VAX C | ||
15 | $! DECC for DEC C | ||
16 | $! GNUC for GNU C (untested) | ||
17 | $! | ||
18 | $! P4 if defined, sets the TCP/IP libraries to use. UCX or TCPIP is | ||
19 | $! used by default since most other implementations come with a | ||
20 | $! compatibility library. The value must be one of the following: | ||
21 | $! | ||
22 | $! UCX for UCX | ||
23 | $! SOCKETSHR for SOCKETSHR+NETLIB | ||
24 | $! TCPIP for TCPIP (post UCX) | ||
25 | $! | ||
26 | $! P5 if defined, tells the compiler not to use special threads. | ||
27 | $! | ||
28 | $! P6 if defined, denotes which engines to build. If not defined, | ||
29 | $! all available engines are built. | ||
30 | $! | ||
31 | $! P7, if defined, specifies the C pointer size. Ignored on VAX. | ||
32 | $! ("64=ARGV" gives more efficient code with HP C V7.3 or newer.) | ||
33 | $! Supported values are: | ||
34 | $! | ||
35 | $! "" Compile with default (/NOPOINTER_SIZE) | ||
36 | $! 32 Compile with /POINTER_SIZE=32 (SHORT) | ||
37 | $! 64 Compile with /POINTER_SIZE=64[=ARGV] (LONG[=ARGV]) | ||
38 | $! (Automatically select ARGV if compiler supports it.) | ||
39 | $! 64= Compile with /POINTER_SIZE=64 (LONG). | ||
40 | $! 64=ARGV Compile with /POINTER_SIZE=64=ARGV (LONG=ARGV). | ||
41 | $! | ||
42 | $! P8, if defined, specifies a directory where ZLIB files (zlib.h, | ||
43 | $! libz.olb) may be found. Optionally, a non-default object library | ||
44 | $! name may be included ("dev:[dir]libz_64.olb", for example). | ||
45 | $! | ||
46 | $!----------------------------------------------------------------------------- | ||
47 | $! | ||
48 | $! Announce/identify. | ||
49 | $! | ||
50 | $ proc = f$environment( "procedure") | ||
51 | $ write sys$output "@@@ "+ - | ||
52 | f$parse( proc, , , "name")+ f$parse( proc, , , "type") | ||
53 | $! | ||
54 | $ on control_c then goto exit | ||
55 | $! | ||
56 | $! Set the default TCP/IP library to link against if needed | ||
57 | $! | ||
58 | $ TCPIP_LIB = "" | ||
59 | $ ZLIB_LIB = "" | ||
60 | $! | ||
61 | $! Check What Architecture We Are Using. | ||
62 | $! | ||
63 | $ IF (F$GETSYI("CPU").LT.128) | ||
64 | $ THEN | ||
65 | $! | ||
66 | $! The Architecture Is VAX. | ||
67 | $! | ||
68 | $ ARCH = "VAX" | ||
69 | $! | ||
70 | $! Else... | ||
71 | $! | ||
72 | $ ELSE | ||
73 | $! | ||
74 | $! The Architecture Is Alpha, IA64 or whatever comes in the future. | ||
75 | $! | ||
76 | $ ARCH = F$EDIT( F$GETSYI( "ARCH_NAME"), "UPCASE") | ||
77 | $ IF (ARCH .EQS. "") THEN ARCH = "UNK" | ||
78 | $! | ||
79 | $! End The Architecture Check. | ||
80 | $! | ||
81 | $ ENDIF | ||
82 | $! | ||
83 | $ ARCHD = ARCH | ||
84 | $ LIB32 = "32" | ||
85 | $ OPT_FILE = "" | ||
86 | $ POINTER_SIZE = "" | ||
87 | $! | ||
88 | $! Set the names of the engines we want to build | ||
89 | $! NOTE: Some might think this list ugly. However, it's made this way to | ||
90 | $! reflect the LIBNAMES variable in Makefile as closely as possible, | ||
91 | $! thereby making it fairly easy to verify that the lists are the same. | ||
92 | $! NOTE: gmp isn't built, as it's mostly a test engine and brings in another | ||
93 | $! library that isn't necessarely ported to VMS. | ||
94 | $! | ||
95 | $ ENGINES = "," + P6 | ||
96 | $ IF ENGINES .EQS. "," THEN - | ||
97 | ENGINES = ",4758cca,aep,atalla,cswift,chil,nuron,sureware,ubsec,padlock," | ||
98 | $! | ||
99 | $! GOST requires a 64-bit integer type, unavailable on VAX. | ||
100 | $! | ||
101 | $ IF (ARCH .NES. "VAX") THEN - | ||
102 | ENGINES = ENGINES+ ",ccgost" | ||
103 | $! | ||
104 | $! Check options. | ||
105 | $! | ||
106 | $ OPT_PHASE = P1 | ||
107 | $ ACCEPT_PHASE = "ALL,ENGINES" | ||
108 | $ OPT_DEBUG = P2 | ||
109 | $ OPT_COMPILER = P3 | ||
110 | $ OPT_TCPIP_LIB = P4 | ||
111 | $ OPT_SPECIAL_THREADS = P5 | ||
112 | $ OPT_POINTER_SIZE = P7 | ||
113 | $ ZLIB = P8 | ||
114 | $ | ||
115 | $ GOSUB CHECK_OPTIONS | ||
116 | $! | ||
117 | $! Set the goal directories, and create them if necessary | ||
118 | $! | ||
119 | $ OBJ_DIR := SYS$DISK:[-.'ARCHD'.OBJ.ENGINES] | ||
120 | $ EXE_DIR := SYS$DISK:[-.'ARCHD'.EXE.ENGINES] | ||
121 | $ IF F$PARSE(OBJ_DIR) .EQS. "" THEN CREATE/DIRECTORY 'OBJ_DIR' | ||
122 | $ IF F$PARSE(EXE_DIR) .EQS. "" THEN CREATE/DIRECTORY 'EXE_DIR' | ||
123 | $! | ||
124 | $! Set the goal files, and create them if necessary | ||
125 | $! | ||
126 | $ CRYPTO_LIB := SYS$DISK:[-.'ARCHD'.EXE.CRYPTO]SSL_LIBCRYPTO'LIB32'.OLB | ||
127 | $ IF F$SEARCH(CRYPTO_LIB) .EQS. "" THEN LIBRARY/CREATE/OBJECT 'CRYPTO_LIB' | ||
128 | $! | ||
129 | $! Specify the destination directory in any /MAP option. | ||
130 | $! | ||
131 | $ if (LINKMAP .eqs. "MAP") | ||
132 | $ then | ||
133 | $ LINKMAP = LINKMAP+ "=''EXE_DIR'" | ||
134 | $ endif | ||
135 | $! | ||
136 | $! Add the location prefix to the linker options file name. | ||
137 | $! | ||
138 | $ if (OPT_FILE .nes. "") | ||
139 | $ then | ||
140 | $ OPT_FILE = EXE_DIR+ OPT_FILE | ||
141 | $ endif | ||
142 | $! | ||
143 | $! Initialise. | ||
144 | $! | ||
145 | $ GOSUB INITIALISE | ||
146 | $ GOSUB CHECK_OPT_FILE | ||
147 | $! | ||
148 | $! Define what goes into each engine. VAX includes a transfer vector. | ||
149 | $! | ||
150 | $ ENGINE_ = "" | ||
151 | $ TV_OBJ = "" | ||
152 | $ IF ARCH .EQS. "VAX" | ||
153 | $ THEN | ||
154 | $ ENGINE_ = "engine_vector.mar" | ||
155 | $ TV_OBJ_NAME = OBJ_DIR + F$PARSE(ENGINE_,,,"NAME","SYNTAX_ONLY") + ".OBJ" | ||
156 | $ TV_OBJ = ",''TV_OBJ_NAME'" | ||
157 | $ ENDIF | ||
158 | $ ENGINE_4758CCA = "e_4758cca" | ||
159 | $ ENGINE_aep = "e_aep" | ||
160 | $ ENGINE_atalla = "e_atalla" | ||
161 | $ ENGINE_cswift = "e_cswift" | ||
162 | $ ENGINE_chil = "e_chil" | ||
163 | $ ENGINE_nuron = "e_nuron" | ||
164 | $ ENGINE_sureware = "e_sureware" | ||
165 | $ ENGINE_ubsec = "e_ubsec" | ||
166 | $ ENGINE_padlock = "e_padlock" | ||
167 | $ | ||
168 | $ ENGINE_ccgost_SUBDIR = "ccgost" | ||
169 | $ ENGINE_ccgost = "e_gost_err,gost2001_keyx,gost2001,gost89,gost94_keyx,"+ - | ||
170 | "gost_ameth,gost_asn1,gost_crypt,gost_ctl,gost_eng,"+ - | ||
171 | "gosthash,gost_keywrap,gost_md,gost_params,gost_pmeth,"+ - | ||
172 | "gost_sign" | ||
173 | $! | ||
174 | $! Define which programs need to be linked with a TCP/IP library | ||
175 | $! | ||
176 | $ TCPIP_ENGINES = ",," | ||
177 | $ IF COMPILER .EQS. "VAXC" THEN - | ||
178 | TCPIP_ENGINES = ",," | ||
179 | $! | ||
180 | $! Set up two loops, one that keeps track of the engines, | ||
181 | $! and one that keeps track of all the files going into | ||
182 | $! the current engine. | ||
183 | $! | ||
184 | $! Here's the start of the engine loop. | ||
185 | $! | ||
186 | $ ENGINE_COUNTER = 0 | ||
187 | $ ENGINE_NEXT: | ||
188 | $! | ||
189 | $! Extract the current engine name, and if we've reached the end, stop | ||
190 | $! | ||
191 | $ ENGINE_NAME = F$ELEMENT(ENGINE_COUNTER,",",ENGINES) | ||
192 | $ IF (ENGINE_NAME.EQS.",") THEN GOTO ENGINE_DONE | ||
193 | $! | ||
194 | $ ENGINE_COUNTER = ENGINE_COUNTER + 1 | ||
195 | $! | ||
196 | $! Set up the engine library names. | ||
197 | $! | ||
198 | $ LIB_ENGINE = "ENGINE_" + ENGINE_NAME | ||
199 | $! | ||
200 | $! Check if the library module name actually is defined | ||
201 | $! | ||
202 | $ IF F$TYPE('LIB_ENGINE') .EQS. "" | ||
203 | $ THEN | ||
204 | $ WRITE SYS$ERROR "" | ||
205 | $ WRITE SYS$ERROR "The module ",ENGINE_NAME," does not exist. Continuing..." | ||
206 | $ WRITE SYS$ERROR "" | ||
207 | $ GOTO ENGINE_NEXT | ||
208 | $ ENDIF | ||
209 | $! | ||
210 | $! Talk to the user | ||
211 | $! | ||
212 | $ IF ENGINE_NAME .NES. "" | ||
213 | $ THEN | ||
214 | $ WRITE SYS$OUTPUT "Compiling The ",ENGINE_NAME," Library Files. (",BUILDALL,")" | ||
215 | $ ELSE | ||
216 | $ WRITE SYS$OUTPUT "Compiling Support Files. (",BUILDALL,")" | ||
217 | $ ENDIF | ||
218 | $! | ||
219 | $! Create a .OPT file for the object files (for a real engine name). | ||
220 | $! | ||
221 | $ IF ENGINE_NAME .NES. "" | ||
222 | $ THEN | ||
223 | $ OPEN /WRITE OBJECTS 'EXE_DIR''ENGINE_NAME'.OPT | ||
224 | $ ENDIF | ||
225 | $! | ||
226 | $! Here's the start of per-engine module loop. | ||
227 | $! | ||
228 | $ FILE_COUNTER = 0 | ||
229 | $ FILE_NEXT: | ||
230 | $! | ||
231 | $! Extract the file name from the file list, and if we've reached the end, stop | ||
232 | $! | ||
233 | $ FILE_NAME = F$ELEMENT(FILE_COUNTER,",",'LIB_ENGINE') | ||
234 | $ IF (FILE_NAME.EQS.",") THEN GOTO FILE_DONE | ||
235 | $! | ||
236 | $ FILE_COUNTER = FILE_COUNTER + 1 | ||
237 | $! | ||
238 | $ IF FILE_NAME .EQS. "" THEN GOTO FILE_NEXT | ||
239 | $! | ||
240 | $! Set up the source and object reference | ||
241 | $! | ||
242 | $ IF F$TYPE('LIB_ENGINE'_SUBDIR) .EQS. "" | ||
243 | $ THEN | ||
244 | $ SOURCE_FILE = F$PARSE(FILE_NAME,"SYS$DISK:[].C",,,"SYNTAX_ONLY") | ||
245 | $ ELSE | ||
246 | $ SOURCE_FILE = F$PARSE(FILE_NAME,"SYS$DISK:[."+'LIB_ENGINE'_SUBDIR+"].C",,,"SYNTAX_ONLY") | ||
247 | $ ENDIF | ||
248 | $ OBJECT_FILE = OBJ_DIR + F$PARSE(FILE_NAME,,,"NAME","SYNTAX_ONLY") + ".OBJ" | ||
249 | $! | ||
250 | $! If we get some problem, we just go on trying to build the next module. | ||
251 | $ ON WARNING THEN GOTO FILE_NEXT | ||
252 | $! | ||
253 | $! Check if the module we want to compile is actually there. | ||
254 | $! | ||
255 | $ IF F$SEARCH(SOURCE_FILE) .EQS. "" | ||
256 | $ THEN | ||
257 | $ WRITE SYS$OUTPUT "" | ||
258 | $ WRITE SYS$OUTPUT "The File ",SOURCE_FILE," Doesn't Exist." | ||
259 | $ WRITE SYS$OUTPUT "" | ||
260 | $ GOTO EXIT | ||
261 | $ ENDIF | ||
262 | $! | ||
263 | $! Talk to the user. | ||
264 | $! | ||
265 | $ WRITE SYS$OUTPUT " ",FILE_NAME,"" | ||
266 | $! | ||
267 | $! Do the dirty work. | ||
268 | $! | ||
269 | $ ON ERROR THEN GOTO FILE_NEXT | ||
270 | $ IF F$EDIT(F$PARSE(SOURCE_FILE,,,"TYPE","SYNTAX_ONLY"),"UPCASE") .EQS. ".MAR" | ||
271 | $ THEN | ||
272 | $ MACRO/OBJECT='OBJECT_FILE' 'SOURCE_FILE' | ||
273 | $ ELSE | ||
274 | $ CC/OBJECT='OBJECT_FILE' 'SOURCE_FILE' | ||
275 | $ ENDIF | ||
276 | $! | ||
277 | $! Write the entry to the .OPT file (for a real engine name). | ||
278 | $! | ||
279 | $ IF ENGINE_NAME .NES. "" | ||
280 | $ THEN | ||
281 | $ WRITE OBJECTS OBJECT_FILE | ||
282 | $ ENDIF | ||
283 | $! | ||
284 | $! Next file | ||
285 | $! | ||
286 | $ GOTO FILE_NEXT | ||
287 | $! | ||
288 | $ FILE_DONE: | ||
289 | $! | ||
290 | $! Do not link the support files. | ||
291 | $! | ||
292 | $ IF ENGINE_NAME .EQS. "" THEN GOTO ENGINE_NEXT | ||
293 | $! | ||
294 | $! Close the linker options file (for a real engine name). | ||
295 | $! | ||
296 | $ CLOSE OBJECTS | ||
297 | $! | ||
298 | $! Now, there are two ways to handle this. We can either build | ||
299 | $! shareable images or stick the engine object file into libcrypto. | ||
300 | $! For now, the latter is NOT supported. | ||
301 | $! | ||
302 | $!!!!! LIBRARY/REPLACE 'CRYPTO_LIB' 'OBJECT_FILE' | ||
303 | $! | ||
304 | $! For shareable libraries, we need to do things a little differently | ||
305 | $! depending on if we link with a TCP/IP library or not. | ||
306 | $! | ||
307 | $ ENGINE_OPT := SYS$DISK:[]'ARCH'.OPT | ||
308 | $ LINK /'DEBUGGER' /'LINKMAP' /'TRACEBACK' /SHARE='EXE_DIR''ENGINE_NAME'.EXE - | ||
309 | 'EXE_DIR''ENGINE_NAME'.OPT /OPTIONS - | ||
310 | 'TV_OBJ', - | ||
311 | 'CRYPTO_LIB' /LIBRARY, - | ||
312 | 'ENGINE_OPT' /OPTIONS - | ||
313 | 'TCPIP_LIB' - | ||
314 | 'ZLIB_LIB' - | ||
315 | ,'OPT_FILE' /OPTIONS | ||
316 | $! | ||
317 | $! Next engine | ||
318 | $! | ||
319 | $ GOTO ENGINE_NEXT | ||
320 | $! | ||
321 | $ ENGINE_DONE: | ||
322 | $! | ||
323 | $! Talk to the user | ||
324 | $! | ||
325 | $ WRITE SYS$OUTPUT "All Done..." | ||
326 | $ EXIT: | ||
327 | $ GOSUB CLEANUP | ||
328 | $ EXIT | ||
329 | $! | ||
330 | $! Check For The Link Option FIle. | ||
331 | $! | ||
332 | $ CHECK_OPT_FILE: | ||
333 | $! | ||
334 | $! Check To See If We Need To Make A VAX C Option File. | ||
335 | $! | ||
336 | $ IF (COMPILER.EQS."VAXC") | ||
337 | $ THEN | ||
338 | $! | ||
339 | $! Check To See If We Already Have A VAX C Linker Option File. | ||
340 | $! | ||
341 | $ IF (F$SEARCH(OPT_FILE).EQS."") | ||
342 | $ THEN | ||
343 | $! | ||
344 | $! We Need A VAX C Linker Option File. | ||
345 | $! | ||
346 | $ CREATE 'OPT_FILE' | ||
347 | $DECK | ||
348 | ! | ||
349 | ! Default System Options File To Link Against | ||
350 | ! The Sharable VAX C Runtime Library. | ||
351 | ! | ||
352 | SYS$SHARE:VAXCRTL.EXE/SHARE | ||
353 | $EOD | ||
354 | $! | ||
355 | $! End The Option File Check. | ||
356 | $! | ||
357 | $ ENDIF | ||
358 | $! | ||
359 | $! End The VAXC Check. | ||
360 | $! | ||
361 | $ ENDIF | ||
362 | $! | ||
363 | $! Check To See If We Need A GNU C Option File. | ||
364 | $! | ||
365 | $ IF (COMPILER.EQS."GNUC") | ||
366 | $ THEN | ||
367 | $! | ||
368 | $! Check To See If We Already Have A GNU C Linker Option File. | ||
369 | $! | ||
370 | $ IF (F$SEARCH(OPT_FILE).EQS."") | ||
371 | $ THEN | ||
372 | $! | ||
373 | $! We Need A GNU C Linker Option File. | ||
374 | $! | ||
375 | $ CREATE 'OPT_FILE' | ||
376 | $DECK | ||
377 | ! | ||
378 | ! Default System Options File To Link Against | ||
379 | ! The Sharable C Runtime Library. | ||
380 | ! | ||
381 | GNU_CC:[000000]GCCLIB/LIBRARY | ||
382 | SYS$SHARE:VAXCRTL/SHARE | ||
383 | $EOD | ||
384 | $! | ||
385 | $! End The Option File Check. | ||
386 | $! | ||
387 | $ ENDIF | ||
388 | $! | ||
389 | $! End The GNU C Check. | ||
390 | $! | ||
391 | $ ENDIF | ||
392 | $! | ||
393 | $! Check To See If We Need A DEC C Option File. | ||
394 | $! | ||
395 | $ IF (COMPILER.EQS."DECC") | ||
396 | $ THEN | ||
397 | $! | ||
398 | $! Check To See If We Already Have A DEC C Linker Option File. | ||
399 | $! | ||
400 | $ IF (F$SEARCH(OPT_FILE).EQS."") | ||
401 | $ THEN | ||
402 | $! | ||
403 | $! Figure Out If We Need A non-VAX Or A VAX Linker Option File. | ||
404 | $! | ||
405 | $ IF ARCH .EQS. "VAX" | ||
406 | $ THEN | ||
407 | $! | ||
408 | $! We Need A DEC C Linker Option File For VAX. | ||
409 | $! | ||
410 | $ CREATE 'OPT_FILE' | ||
411 | $DECK | ||
412 | ! | ||
413 | ! Default System Options File To Link Against | ||
414 | ! The Sharable DEC C Runtime Library. | ||
415 | ! | ||
416 | SYS$SHARE:DECC$SHR.EXE/SHARE | ||
417 | $EOD | ||
418 | $! | ||
419 | $! Else... | ||
420 | $! | ||
421 | $ ELSE | ||
422 | $! | ||
423 | $! Create The non-VAX Linker Option File. | ||
424 | $! | ||
425 | $ CREATE 'OPT_FILE' | ||
426 | $DECK | ||
427 | ! | ||
428 | ! Default System Options File For non-VAX To Link Against | ||
429 | ! The Sharable C Runtime Library. | ||
430 | ! | ||
431 | SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE | ||
432 | SYS$SHARE:CMA$OPEN_RTL/SHARE | ||
433 | $EOD | ||
434 | $! | ||
435 | $! End The DEC C Option File Check. | ||
436 | $! | ||
437 | $ ENDIF | ||
438 | $! | ||
439 | $! End The Option File Search. | ||
440 | $! | ||
441 | $ ENDIF | ||
442 | $! | ||
443 | $! End The DEC C Check. | ||
444 | $! | ||
445 | $ ENDIF | ||
446 | $! | ||
447 | $! Tell The User What Linker Option File We Are Using. | ||
448 | $! | ||
449 | $ WRITE SYS$OUTPUT "Using Linker Option File ",OPT_FILE,"." | ||
450 | $! | ||
451 | $! Time To RETURN. | ||
452 | $! | ||
453 | $ RETURN | ||
454 | $! | ||
455 | $! Check The User's Options. | ||
456 | $! | ||
457 | $ CHECK_OPTIONS: | ||
458 | $! | ||
459 | $! Check To See If OPT_PHASE Is Blank. | ||
460 | $! | ||
461 | $ IF (OPT_PHASE.EQS."ALL") | ||
462 | $ THEN | ||
463 | $! | ||
464 | $! OPT_PHASE Is Blank, So Build Everything. | ||
465 | $! | ||
466 | $ BUILDALL = "ALL" | ||
467 | $! | ||
468 | $! Else... | ||
469 | $! | ||
470 | $ ELSE | ||
471 | $! | ||
472 | $! Else, Check To See If OPT_PHASE Has A Valid Argument. | ||
473 | $! | ||
474 | $ IF ("," + ACCEPT_PHASE + ",") - ("," + OPT_PHASE + ",") - | ||
475 | .NES. ("," + ACCEPT_PHASE + ",") | ||
476 | $ THEN | ||
477 | $! | ||
478 | $! A Valid Argument. | ||
479 | $! | ||
480 | $ BUILDALL = OPT_PHASE | ||
481 | $! | ||
482 | $! Else... | ||
483 | $! | ||
484 | $ ELSE | ||
485 | $! | ||
486 | $! Tell The User We Don't Know What They Want. | ||
487 | $! | ||
488 | $ WRITE SYS$OUTPUT "" | ||
489 | $ WRITE SYS$OUTPUT "The option ",OPT_PHASE," is invalid. The valid options are:" | ||
490 | $ WRITE SYS$OUTPUT "" | ||
491 | $ IF ("," + ACCEPT_PHASE + ",") - ",ALL," - | ||
492 | .NES. ("," + ACCEPT_PHASE + ",") THEN - | ||
493 | WRITE SYS$OUTPUT " ALL : just build everything." | ||
494 | $ IF ("," + ACCEPT_PHASE + ",") - ",ENGINES," - | ||
495 | .NES. ("," + ACCEPT_PHASE + ",") THEN - | ||
496 | WRITE SYS$OUTPUT " ENGINES : to compile just the [.xxx.EXE.ENGINES]*.EXE hareable images." | ||
497 | $ WRITE SYS$OUTPUT "" | ||
498 | $ WRITE SYS$OUTPUT " where 'xxx' stands for:" | ||
499 | $ WRITE SYS$OUTPUT "" | ||
500 | $ WRITE SYS$OUTPUT " ALPHA[64]: Alpha architecture." | ||
501 | $ WRITE SYS$OUTPUT " IA64[64] : IA64 architecture." | ||
502 | $ WRITE SYS$OUTPUT " VAX : VAX architecture." | ||
503 | $ WRITE SYS$OUTPUT "" | ||
504 | $! | ||
505 | $! Time To EXIT. | ||
506 | $! | ||
507 | $ EXIT | ||
508 | $! | ||
509 | $! End The Valid Argument Check. | ||
510 | $! | ||
511 | $ ENDIF | ||
512 | $! | ||
513 | $! End The OPT_PHASE Check. | ||
514 | $! | ||
515 | $ ENDIF | ||
516 | $! | ||
517 | $! Check To See If OPT_DEBUG Is Blank. | ||
518 | $! | ||
519 | $ IF (OPT_DEBUG.EQS."NODEBUG") | ||
520 | $ THEN | ||
521 | $! | ||
522 | $! OPT_DEBUG Is NODEBUG, So Compile Without The Debugger Information. | ||
523 | $! | ||
524 | $ DEBUGGER = "NODEBUG" | ||
525 | $ LINKMAP = "NOMAP" | ||
526 | $ TRACEBACK = "NOTRACEBACK" | ||
527 | $ GCC_OPTIMIZE = "OPTIMIZE" | ||
528 | $ CC_OPTIMIZE = "OPTIMIZE" | ||
529 | $ MACRO_OPTIMIZE = "OPTIMIZE" | ||
530 | $ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile." | ||
531 | $ WRITE SYS$OUTPUT "Compiling With Compiler Optimization." | ||
532 | $ ELSE | ||
533 | $! | ||
534 | $! Check To See If We Are To Compile With Debugger Information. | ||
535 | $! | ||
536 | $ IF (OPT_DEBUG.EQS."DEBUG") | ||
537 | $ THEN | ||
538 | $! | ||
539 | $! Compile With Debugger Information. | ||
540 | $! | ||
541 | $ DEBUGGER = "DEBUG" | ||
542 | $ LINKMAP = "MAP" | ||
543 | $ TRACEBACK = "TRACEBACK" | ||
544 | $ GCC_OPTIMIZE = "NOOPTIMIZE" | ||
545 | $ CC_OPTIMIZE = "NOOPTIMIZE" | ||
546 | $ MACRO_OPTIMIZE = "NOOPTIMIZE" | ||
547 | $ WRITE SYS$OUTPUT "Debugger Information Will Be Produced During Compile." | ||
548 | $ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization." | ||
549 | $ ELSE | ||
550 | $! | ||
551 | $! They Entered An Invalid Option. | ||
552 | $! | ||
553 | $ WRITE SYS$OUTPUT "" | ||
554 | $ WRITE SYS$OUTPUT "The Option ",OPT_DEBUG," Is Invalid. The Valid Options Are:" | ||
555 | $ WRITE SYS$OUTPUT "" | ||
556 | $ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information." | ||
557 | $ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information." | ||
558 | $ WRITE SYS$OUTPUT "" | ||
559 | $! | ||
560 | $! Time To EXIT. | ||
561 | $! | ||
562 | $ EXIT | ||
563 | $! | ||
564 | $! End The Valid Argument Check. | ||
565 | $! | ||
566 | $ ENDIF | ||
567 | $! | ||
568 | $! End The OPT_DEBUG Check. | ||
569 | $! | ||
570 | $ ENDIF | ||
571 | $! | ||
572 | $! Special Threads For OpenVMS v7.1 Or Later | ||
573 | $! | ||
574 | $! Written By: Richard Levitte | ||
575 | $! richard@levitte.org | ||
576 | $! | ||
577 | $! | ||
578 | $! Check To See If We Have A Option For OPT_SPECIAL_THREADS. | ||
579 | $! | ||
580 | $ IF (OPT_SPECIAL_THREADS.EQS."") | ||
581 | $ THEN | ||
582 | $! | ||
583 | $! Get The Version Of VMS We Are Using. | ||
584 | $! | ||
585 | $ ISSEVEN := | ||
586 | $ TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION"))) | ||
587 | $ TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP)) | ||
588 | $! | ||
589 | $! Check To See If The VMS Version Is v7.1 Or Later. | ||
590 | $! | ||
591 | $ IF (TMP.GE.71) | ||
592 | $ THEN | ||
593 | $! | ||
594 | $! We Have OpenVMS v7.1 Or Later, So Use The Special Threads. | ||
595 | $! | ||
596 | $ ISSEVEN := ,PTHREAD_USE_D4 | ||
597 | $! | ||
598 | $! End The VMS Version Check. | ||
599 | $! | ||
600 | $ ENDIF | ||
601 | $! | ||
602 | $! End The OPT_SPECIAL_THREADS Check. | ||
603 | $! | ||
604 | $ ENDIF | ||
605 | $! | ||
606 | $! Check OPT_POINTER_SIZE (P7). | ||
607 | $! | ||
608 | $ IF (OPT_POINTER_SIZE .NES. "") .AND. (ARCH .NES. "VAX") | ||
609 | $ THEN | ||
610 | $! | ||
611 | $ IF (OPT_POINTER_SIZE .EQS. "32") | ||
612 | $ THEN | ||
613 | $ POINTER_SIZE = " /POINTER_SIZE=32" | ||
614 | $ ELSE | ||
615 | $ POINTER_SIZE = F$EDIT( OPT_POINTER_SIZE, "COLLAPSE, UPCASE") | ||
616 | $ IF ((POINTER_SIZE .EQS. "64") .OR. - | ||
617 | (POINTER_SIZE .EQS. "64=") .OR. - | ||
618 | (POINTER_SIZE .EQS. "64=ARGV")) | ||
619 | $ THEN | ||
620 | $ ARCHD = ARCH+ "_64" | ||
621 | $ LIB32 = "" | ||
622 | $ POINTER_SIZE = " /POINTER_SIZE=64" | ||
623 | $ ELSE | ||
624 | $! | ||
625 | $! Tell The User Entered An Invalid Option. | ||
626 | $! | ||
627 | $ WRITE SYS$OUTPUT "" | ||
628 | $ WRITE SYS$OUTPUT "The Option ", OPT_POINTER_SIZE, - | ||
629 | " Is Invalid. The Valid Options Are:" | ||
630 | $ WRITE SYS$OUTPUT "" | ||
631 | $ WRITE SYS$OUTPUT - | ||
632 | " """" : Compile with default (short) pointers." | ||
633 | $ WRITE SYS$OUTPUT - | ||
634 | " 32 : Compile with 32-bit (short) pointers." | ||
635 | $ WRITE SYS$OUTPUT - | ||
636 | " 64 : Compile with 64-bit (long) pointers (auto ARGV)." | ||
637 | $ WRITE SYS$OUTPUT - | ||
638 | " 64= : Compile with 64-bit (long) pointers (no ARGV)." | ||
639 | $ WRITE SYS$OUTPUT - | ||
640 | " 64=ARGV : Compile with 64-bit (long) pointers (ARGV)." | ||
641 | $ WRITE SYS$OUTPUT "" | ||
642 | $! | ||
643 | $! Time To EXIT. | ||
644 | $! | ||
645 | $ EXIT | ||
646 | $! | ||
647 | $ ENDIF | ||
648 | $! | ||
649 | $ ENDIF | ||
650 | $! | ||
651 | $! End The OPT_POINTER_SIZE Check. | ||
652 | $! | ||
653 | $ ENDIF | ||
654 | $! | ||
655 | $! Set basic C compiler /INCLUDE directories. | ||
656 | $! | ||
657 | $ CC_INCLUDES = "SYS$DISK:[],SYS$DISK:[.VENDOR_DEFNS]" | ||
658 | $! | ||
659 | $! Check To See If OPT_COMPILER Is Blank. | ||
660 | $! | ||
661 | $ IF (OPT_COMPILER.EQS."") | ||
662 | $ THEN | ||
663 | $! | ||
664 | $! O.K., The User Didn't Specify A Compiler, Let's Try To | ||
665 | $! Find Out Which One To Use. | ||
666 | $! | ||
667 | $! Check To See If We Have GNU C. | ||
668 | $! | ||
669 | $ IF (F$TRNLNM("GNU_CC").NES."") | ||
670 | $ THEN | ||
671 | $! | ||
672 | $! Looks Like GNUC, Set To Use GNUC. | ||
673 | $! | ||
674 | $ OPT_COMPILER = "GNUC" | ||
675 | $! | ||
676 | $! Else... | ||
677 | $! | ||
678 | $ ELSE | ||
679 | $! | ||
680 | $! Check To See If We Have VAXC Or DECC. | ||
681 | $! | ||
682 | $ IF (ARCH.NES."VAX").OR.(F$TRNLNM("DECC$CC_DEFAULT").NES."") | ||
683 | $ THEN | ||
684 | $! | ||
685 | $! Looks Like DECC, Set To Use DECC. | ||
686 | $! | ||
687 | $ OPT_COMPILER = "DECC" | ||
688 | $! | ||
689 | $! Else... | ||
690 | $! | ||
691 | $ ELSE | ||
692 | $! | ||
693 | $! Looks Like VAXC, Set To Use VAXC. | ||
694 | $! | ||
695 | $ OPT_COMPILER = "VAXC" | ||
696 | $! | ||
697 | $! End The VAXC Compiler Check. | ||
698 | $! | ||
699 | $ ENDIF | ||
700 | $! | ||
701 | $! End The DECC & VAXC Compiler Check. | ||
702 | $! | ||
703 | $ ENDIF | ||
704 | $! | ||
705 | $! End The Compiler Check. | ||
706 | $! | ||
707 | $ ENDIF | ||
708 | $! | ||
709 | $! Check To See If We Have A Option For OPT_TCPIP_LIB. | ||
710 | $! | ||
711 | $ IF (OPT_TCPIP_LIB.EQS."") | ||
712 | $ THEN | ||
713 | $! | ||
714 | $! Find out what socket library we have available | ||
715 | $! | ||
716 | $ IF F$PARSE("SOCKETSHR:") .NES. "" | ||
717 | $ THEN | ||
718 | $! | ||
719 | $! We have SOCKETSHR, and it is my opinion that it's the best to use. | ||
720 | $! | ||
721 | $ OPT_TCPIP_LIB = "SOCKETSHR" | ||
722 | $! | ||
723 | $! Tell the user | ||
724 | $! | ||
725 | $ WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP" | ||
726 | $! | ||
727 | $! Else, let's look for something else | ||
728 | $! | ||
729 | $ ELSE | ||
730 | $! | ||
731 | $! Like UCX (the reason to do this before Multinet is that the UCX | ||
732 | $! emulation is easier to use...) | ||
733 | $! | ||
734 | $ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" - | ||
735 | .OR. F$PARSE("SYS$SHARE:UCX$IPC_SHR.EXE") .NES. "" - | ||
736 | .OR. F$PARSE("SYS$LIBRARY:UCX$IPC.OLB") .NES. "" | ||
737 | $ THEN | ||
738 | $! | ||
739 | $! Last resort: a UCX or UCX-compatible library | ||
740 | $! | ||
741 | $ OPT_TCPIP_LIB = "UCX" | ||
742 | $! | ||
743 | $! Tell the user | ||
744 | $! | ||
745 | $ WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP" | ||
746 | $! | ||
747 | $! That was all... | ||
748 | $! | ||
749 | $ ENDIF | ||
750 | $ ENDIF | ||
751 | $ ENDIF | ||
752 | $! | ||
753 | $! Set Up Initial CC Definitions, Possibly With User Ones | ||
754 | $! | ||
755 | $ CCDEFS = "TCPIP_TYPE_''OPT_TCPIP_LIB',DSO_VMS" | ||
756 | $ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS | ||
757 | $ CCEXTRAFLAGS = "" | ||
758 | $ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS | ||
759 | $ CCDISABLEWARNINGS = "" !!! "LONGLONGTYPE,LONGLONGSUFX" | ||
760 | $ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN - | ||
761 | CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS | ||
762 | $! | ||
763 | $! Check To See If We Have A ZLIB Option. | ||
764 | $! | ||
765 | $ IF (ZLIB .NES. "") | ||
766 | $ THEN | ||
767 | $! | ||
768 | $! Check for expected ZLIB files. | ||
769 | $! | ||
770 | $ err = 0 | ||
771 | $ file1 = f$parse( "zlib.h", ZLIB, , , "SYNTAX_ONLY") | ||
772 | $ if (f$search( file1) .eqs. "") | ||
773 | $ then | ||
774 | $ WRITE SYS$OUTPUT "" | ||
775 | $ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid." | ||
776 | $ WRITE SYS$OUTPUT " Can't find header: ''file1'" | ||
777 | $ err = 1 | ||
778 | $ endif | ||
779 | $ file1 = f$parse( "A.;", ZLIB)- "A.;" | ||
780 | $! | ||
781 | $ file2 = f$parse( ZLIB, "libz.olb", , , "SYNTAX_ONLY") | ||
782 | $ if (f$search( file2) .eqs. "") | ||
783 | $ then | ||
784 | $ if (err .eq. 0) | ||
785 | $ then | ||
786 | $ WRITE SYS$OUTPUT "" | ||
787 | $ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid." | ||
788 | $ endif | ||
789 | $ WRITE SYS$OUTPUT " Can't find library: ''file2'" | ||
790 | $ WRITE SYS$OUTPUT "" | ||
791 | $ err = err+ 2 | ||
792 | $ endif | ||
793 | $ if (err .eq. 1) | ||
794 | $ then | ||
795 | $ WRITE SYS$OUTPUT "" | ||
796 | $ endif | ||
797 | $! | ||
798 | $ if (err .ne. 0) | ||
799 | $ then | ||
800 | $ EXIT | ||
801 | $ endif | ||
802 | $! | ||
803 | $ CCDEFS = """ZLIB=1"", "+ CCDEFS | ||
804 | $ CC_INCLUDES = CC_INCLUDES+ ", "+ file1 | ||
805 | $ ZLIB_LIB = ", ''file2' /library" | ||
806 | $! | ||
807 | $! Print info | ||
808 | $! | ||
809 | $ WRITE SYS$OUTPUT "ZLIB library spec: ", file2 | ||
810 | $! | ||
811 | $! End The ZLIB Check. | ||
812 | $! | ||
813 | $ ENDIF | ||
814 | $! | ||
815 | $! Check To See If The User Entered A Valid Parameter. | ||
816 | $! | ||
817 | $ IF (OPT_COMPILER.EQS."VAXC").OR.(OPT_COMPILER.EQS."DECC").OR.(OPT_COMPILER.EQS."GNUC") | ||
818 | $ THEN | ||
819 | $! | ||
820 | $! Check To See If The User Wanted DECC. | ||
821 | $! | ||
822 | $ IF (OPT_COMPILER.EQS."DECC") | ||
823 | $ THEN | ||
824 | $! | ||
825 | $! Looks Like DECC, Set To Use DECC. | ||
826 | $! | ||
827 | $ COMPILER = "DECC" | ||
828 | $! | ||
829 | $! Tell The User We Are Using DECC. | ||
830 | $! | ||
831 | $ WRITE SYS$OUTPUT "Using DECC 'C' Compiler." | ||
832 | $! | ||
833 | $! Use DECC... | ||
834 | $! | ||
835 | $ CC = "CC" | ||
836 | $ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" - | ||
837 | THEN CC = "CC/DECC" | ||
838 | $ CC = CC + " /''CC_OPTIMIZE' /''DEBUGGER' /STANDARD=RELAXED"+ - | ||
839 | "''POINTER_SIZE' /NOLIST /PREFIX=ALL" + - | ||
840 | " /INCLUDE=(''CC_INCLUDES') " + - | ||
841 | CCEXTRAFLAGS | ||
842 | $! | ||
843 | $! Define The Linker Options File Name. | ||
844 | $! | ||
845 | $ OPT_FILE = "VAX_DECC_OPTIONS.OPT" | ||
846 | $! | ||
847 | $! End DECC Check. | ||
848 | $! | ||
849 | $ ENDIF | ||
850 | $! | ||
851 | $! Check To See If We Are To Use VAXC. | ||
852 | $! | ||
853 | $ IF (OPT_COMPILER.EQS."VAXC") | ||
854 | $ THEN | ||
855 | $! | ||
856 | $! Looks Like VAXC, Set To Use VAXC. | ||
857 | $! | ||
858 | $ COMPILER = "VAXC" | ||
859 | $! | ||
860 | $! Tell The User We Are Using VAX C. | ||
861 | $! | ||
862 | $ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler." | ||
863 | $! | ||
864 | $! Compile Using VAXC. | ||
865 | $! | ||
866 | $ CC = "CC" | ||
867 | $ IF ARCH.NES."VAX" | ||
868 | $ THEN | ||
869 | $ WRITE SYS$OUTPUT "There is no VAX C on Alpha!" | ||
870 | $ EXIT | ||
871 | $ ENDIF | ||
872 | $ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC" | ||
873 | $ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + - | ||
874 | "/INCLUDE=(''CC_INCLUDES')" + - | ||
875 | CCEXTRAFLAGS | ||
876 | $ CCDEFS = """VAXC""," + CCDEFS | ||
877 | $! | ||
878 | $! Define <sys> As SYS$COMMON:[SYSLIB] | ||
879 | $! | ||
880 | $ DEFINE/NOLOG SYS SYS$COMMON:[SYSLIB] | ||
881 | $! | ||
882 | $! Define The Linker Options File Name. | ||
883 | $! | ||
884 | $ OPT_FILE = "VAX_VAXC_OPTIONS.OPT" | ||
885 | $! | ||
886 | $! End VAXC Check | ||
887 | $! | ||
888 | $ ENDIF | ||
889 | $! | ||
890 | $! Check To See If We Are To Use GNU C. | ||
891 | $! | ||
892 | $ IF (OPT_COMPILER.EQS."GNUC") | ||
893 | $ THEN | ||
894 | $! | ||
895 | $! Looks Like GNUC, Set To Use GNUC. | ||
896 | $! | ||
897 | $ COMPILER = "GNUC" | ||
898 | $! | ||
899 | $! Tell The User We Are Using GNUC. | ||
900 | $! | ||
901 | $ WRITE SYS$OUTPUT "Using GNU 'C' Compiler." | ||
902 | $! | ||
903 | $! Use GNU C... | ||
904 | $! | ||
905 | $ CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + - | ||
906 | "/INCLUDE=(''CC_INCLUDES')" + - | ||
907 | CCEXTRAFLAGS | ||
908 | $! | ||
909 | $! Define The Linker Options File Name. | ||
910 | $! | ||
911 | $ OPT_FILE = "VAX_GNUC_OPTIONS.OPT" | ||
912 | $! | ||
913 | $! End The GNU C Check. | ||
914 | $! | ||
915 | $ ENDIF | ||
916 | $! | ||
917 | $! Set up default defines | ||
918 | $! | ||
919 | $ CCDEFS = """FLAT_INC=1""," + CCDEFS | ||
920 | $! | ||
921 | $! Finish up the definition of CC. | ||
922 | $! | ||
923 | $ IF COMPILER .EQS. "DECC" | ||
924 | $ THEN | ||
925 | $ IF CCDISABLEWARNINGS .NES. "" | ||
926 | $ THEN | ||
927 | $ CCDISABLEWARNINGS = " /WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))" | ||
928 | $ ENDIF | ||
929 | $ ELSE | ||
930 | $ CCDISABLEWARNINGS = "" | ||
931 | $ ENDIF | ||
932 | $ CC = CC + " /DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS | ||
933 | $! | ||
934 | $! Show user the result | ||
935 | $! | ||
936 | $ WRITE/SYMBOL SYS$OUTPUT "Main C Compiling Command: ",CC | ||
937 | $! | ||
938 | $! Else The User Entered An Invalid Argument. | ||
939 | $! | ||
940 | $ ELSE | ||
941 | $! | ||
942 | $! Tell The User We Don't Know What They Want. | ||
943 | $! | ||
944 | $ WRITE SYS$OUTPUT "" | ||
945 | $ WRITE SYS$OUTPUT "The Option ",OPT_COMPILER," Is Invalid. The Valid Options Are:" | ||
946 | $ WRITE SYS$OUTPUT "" | ||
947 | $ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C." | ||
948 | $ WRITE SYS$OUTPUT " DECC : To Compile With DEC C." | ||
949 | $ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C." | ||
950 | $ WRITE SYS$OUTPUT "" | ||
951 | $! | ||
952 | $! Time To EXIT. | ||
953 | $! | ||
954 | $ EXIT | ||
955 | $! | ||
956 | $! End The Valid Argument Check. | ||
957 | $! | ||
958 | $ ENDIF | ||
959 | $! | ||
960 | $! Build a MACRO command for the architecture at hand | ||
961 | $! | ||
962 | $ IF ARCH .EQS. "VAX" | ||
963 | $ THEN | ||
964 | $ MACRO = "MACRO/''DEBUGGER'" | ||
965 | $ ELSE | ||
966 | $ MACRO = "MACRO/MIGRATION/''DEBUGGER'/''MACRO_OPTIMIZE'" | ||
967 | $ ENDIF | ||
968 | $! | ||
969 | $! Show user the result | ||
970 | $! | ||
971 | $ WRITE/SYMBOL SYS$OUTPUT "Main MACRO Compiling Command: ",MACRO | ||
972 | $! | ||
973 | $! Time to check the contents, and to make sure we get the correct library. | ||
974 | $! | ||
975 | $ IF OPT_TCPIP_LIB.EQS."SOCKETSHR" .OR. OPT_TCPIP_LIB.EQS."MULTINET" - | ||
976 | .OR. OPT_TCPIP_LIB.EQS."UCX" .OR. OPT_TCPIP_LIB.EQS."TCPIP" - | ||
977 | .OR. OPT_TCPIP_LIB.EQS."NONE" | ||
978 | $ THEN | ||
979 | $! | ||
980 | $! Check to see if SOCKETSHR was chosen | ||
981 | $! | ||
982 | $ IF OPT_TCPIP_LIB.EQS."SOCKETSHR" | ||
983 | $ THEN | ||
984 | $! | ||
985 | $! Set the library to use SOCKETSHR | ||
986 | $! | ||
987 | $ TCPIP_LIB = ",SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT /OPTIONS" | ||
988 | $! | ||
989 | $! Done with SOCKETSHR | ||
990 | $! | ||
991 | $ ENDIF | ||
992 | $! | ||
993 | $! Check to see if MULTINET was chosen | ||
994 | $! | ||
995 | $ IF OPT_TCPIP_LIB.EQS."MULTINET" | ||
996 | $ THEN | ||
997 | $! | ||
998 | $! Set the library to use UCX emulation. | ||
999 | $! | ||
1000 | $ OPT_TCPIP_LIB = "UCX" | ||
1001 | $! | ||
1002 | $! Done with MULTINET | ||
1003 | $! | ||
1004 | $ ENDIF | ||
1005 | $! | ||
1006 | $! Check to see if UCX was chosen | ||
1007 | $! | ||
1008 | $ IF OPT_TCPIP_LIB.EQS."UCX" | ||
1009 | $ THEN | ||
1010 | $! | ||
1011 | $! Set the library to use UCX. | ||
1012 | $! | ||
1013 | $ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT /OPTIONS" | ||
1014 | $ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" | ||
1015 | $ THEN | ||
1016 | $ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT /OPTIONS" | ||
1017 | $ ELSE | ||
1018 | $ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN - | ||
1019 | TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT /OPTIONS" | ||
1020 | $ ENDIF | ||
1021 | $! | ||
1022 | $! Done with UCX | ||
1023 | $! | ||
1024 | $ ENDIF | ||
1025 | $! | ||
1026 | $! Check to see if TCPIP was chosen | ||
1027 | $! | ||
1028 | $ IF OPT_TCPIP_LIB.EQS."TCPIP" | ||
1029 | $ THEN | ||
1030 | $! | ||
1031 | $! Set the library to use TCPIP (post UCX). | ||
1032 | $! | ||
1033 | $ TCPIP_LIB = ",SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT /OPTIONS" | ||
1034 | $! | ||
1035 | $! Done with TCPIP | ||
1036 | $! | ||
1037 | $ ENDIF | ||
1038 | $! | ||
1039 | $! Check to see if NONE was chosen | ||
1040 | $! | ||
1041 | $ IF OPT_TCPIP_LIB.EQS."NONE" | ||
1042 | $ THEN | ||
1043 | $! | ||
1044 | $! Do not use a TCPIP library. | ||
1045 | $! | ||
1046 | $ TCPIP_LIB = "" | ||
1047 | $! | ||
1048 | $! Done with TCPIP | ||
1049 | $! | ||
1050 | $ ENDIF | ||
1051 | $! | ||
1052 | $! Print info | ||
1053 | $! | ||
1054 | $ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB- "," | ||
1055 | $! | ||
1056 | $! Else The User Entered An Invalid Argument. | ||
1057 | $! | ||
1058 | $ ELSE | ||
1059 | $! | ||
1060 | $! Tell The User We Don't Know What They Want. | ||
1061 | $! | ||
1062 | $ WRITE SYS$OUTPUT "" | ||
1063 | $ WRITE SYS$OUTPUT "The Option ",OPT_TCPIP_LIB," Is Invalid. The Valid Options Are:" | ||
1064 | $ WRITE SYS$OUTPUT "" | ||
1065 | $ WRITE SYS$OUTPUT " SOCKETSHR : To link with SOCKETSHR TCP/IP library." | ||
1066 | $ WRITE SYS$OUTPUT " UCX : To link with UCX TCP/IP library." | ||
1067 | $ WRITE SYS$OUTPUT " TCPIP : To link with TCPIP (post UCX) TCP/IP library." | ||
1068 | $ WRITE SYS$OUTPUT "" | ||
1069 | $! | ||
1070 | $! Time To EXIT. | ||
1071 | $! | ||
1072 | $ EXIT | ||
1073 | $! | ||
1074 | $! Done with TCP/IP libraries | ||
1075 | $! | ||
1076 | $ ENDIF | ||
1077 | $! | ||
1078 | $! Time To RETURN... | ||
1079 | $! | ||
1080 | $ RETURN | ||
1081 | $! | ||
1082 | $ INITIALISE: | ||
1083 | $! | ||
1084 | $! Save old value of the logical name OPENSSL | ||
1085 | $! | ||
1086 | $ __SAVE_OPENSSL = F$TRNLNM("OPENSSL","LNM$PROCESS_TABLE") | ||
1087 | $! | ||
1088 | $! Save directory information | ||
1089 | $! | ||
1090 | $ __HERE = F$PARSE(F$PARSE("A.;",F$ENVIRONMENT("PROCEDURE"))-"A.;","[]A.;") - "A.;" | ||
1091 | $ __HERE = F$EDIT(__HERE,"UPCASE") | ||
1092 | $ __TOP = __HERE - "ENGINES]" | ||
1093 | $ __INCLUDE = __TOP + "INCLUDE.OPENSSL]" | ||
1094 | $! | ||
1095 | $! Set up the logical name OPENSSL to point at the include directory | ||
1096 | $! | ||
1097 | $ DEFINE OPENSSL /NOLOG '__INCLUDE' | ||
1098 | $! | ||
1099 | $! Done | ||
1100 | $! | ||
1101 | $ RETURN | ||
1102 | $! | ||
1103 | $ CLEANUP: | ||
1104 | $! | ||
1105 | $! Restore the saved logical name OPENSSL, if it had a value. | ||
1106 | $! | ||
1107 | $ if (f$type( __SAVE_OPENSSL) .nes. "") | ||
1108 | $ then | ||
1109 | $ IF __SAVE_OPENSSL .EQS. "" | ||
1110 | $ THEN | ||
1111 | $ DEASSIGN OPENSSL | ||
1112 | $ ELSE | ||
1113 | $ DEFINE /NOLOG OPENSSL '__SAVE_OPENSSL' | ||
1114 | $ ENDIF | ||
1115 | $ endif | ||
1116 | $! | ||
1117 | $! Close any open files. | ||
1118 | $! | ||
1119 | $ if (f$trnlnm( "objects", "LNM$PROCESS", 0, "SUPERVISOR") .nes. "") then - | ||
1120 | close objects | ||
1121 | $! | ||
1122 | $! Done | ||
1123 | $! | ||
1124 | $ RETURN | ||
1125 | $! | ||
diff --git a/src/lib/libssl/src/engines/vendor_defns/hwcryptohook.h b/src/lib/libssl/src/engines/vendor_defns/hwcryptohook.h index e62d1fb066..3e8dc7e2eb 100644 --- a/src/lib/libssl/src/engines/vendor_defns/hwcryptohook.h +++ b/src/lib/libssl/src/engines/vendor_defns/hwcryptohook.h | |||
@@ -65,7 +65,7 @@ | |||
65 | * please contact nCipher. | 65 | * please contact nCipher. |
66 | * | 66 | * |
67 | * | 67 | * |
68 | * $Id: hwcryptohook.h,v 1.2 2010/10/01 22:58:58 djm Exp $ | 68 | * $Id: hwcryptohook.h,v 1.3 2014/04/13 15:25:34 miod Exp $ |
69 | */ | 69 | */ |
70 | 70 | ||
71 | #ifndef HWCRYPTOHOOK_H | 71 | #ifndef HWCRYPTOHOOK_H |
diff --git a/src/lib/libssl/src/install.com b/src/lib/libssl/src/install.com deleted file mode 100644 index 6a0ea2d4de..0000000000 --- a/src/lib/libssl/src/install.com +++ /dev/null | |||
@@ -1,136 +0,0 @@ | |||
1 | $! INSTALL.COM -- Installs the files in a given directory tree | ||
2 | $! | ||
3 | $! Author: Richard Levitte <richard@levitte.org> | ||
4 | $! Time of creation: 22-MAY-1998 10:13 | ||
5 | $! | ||
6 | $! P1 root of the directory tree | ||
7 | $! P2 "64" for 64-bit pointers. | ||
8 | $! | ||
9 | $! | ||
10 | $! Announce/identify. | ||
11 | $! | ||
12 | $ proc = f$environment( "procedure") | ||
13 | $ write sys$output "@@@ "+ - | ||
14 | f$parse( proc, , , "name")+ f$parse( proc, , , "type") | ||
15 | $! | ||
16 | $ def_orig = f$environment( "default") | ||
17 | $ on error then goto tidy | ||
18 | $ on control_c then goto tidy | ||
19 | $! | ||
20 | $ if (p1 .eqs. "") | ||
21 | $ then | ||
22 | $ write sys$output "First argument missing." | ||
23 | $ write sys$output - | ||
24 | "It should be the directory where you want things installed." | ||
25 | $ exit | ||
26 | $ endif | ||
27 | $! | ||
28 | $ if (f$getsyi("cpu") .lt. 128) | ||
29 | $ then | ||
30 | $ arch = "VAX" | ||
31 | $ else | ||
32 | $ arch = f$edit( f$getsyi( "arch_name"), "upcase") | ||
33 | $ if (arch .eqs. "") then arch = "UNK" | ||
34 | $ endif | ||
35 | $! | ||
36 | $ archd = arch | ||
37 | $! | ||
38 | $ if (p2 .nes. "") | ||
39 | $ then | ||
40 | $ if (p2 .eqs. "64") | ||
41 | $ then | ||
42 | $ archd = arch+ "_64" | ||
43 | $ else | ||
44 | $ if (p2 .nes. "32") | ||
45 | $ then | ||
46 | $ write sys$output "Second argument invalid." | ||
47 | $ write sys$output "It should be "32", "64", or nothing." | ||
48 | $ exit | ||
49 | $ endif | ||
50 | $ endif | ||
51 | $ endif | ||
52 | $! | ||
53 | $ root = f$parse( p1, "[]A.;0", , , "syntax_only, no_conceal") - "A.;0" | ||
54 | $ root_dev = f$parse( root, , , "device", "syntax_only") | ||
55 | $ root_dir = f$parse( root, , , "directory", "syntax_only") - | ||
56 | - ".][000000" - "[000000." - "][" - "[" - "]" | ||
57 | $ root = root_dev + "[" + root_dir | ||
58 | $! | ||
59 | $ define /nolog wrk_sslroot 'root'.] /trans=conc | ||
60 | $ define /nolog wrk_sslcerts wrk_sslroot:[certs] | ||
61 | $ define /nolog wrk_sslinclude wrk_sslroot:[include] | ||
62 | $ define /nolog wrk_ssllib wrk_sslroot:[lib] | ||
63 | $ define /nolog wrk_sslprivate wrk_sslroot:[private] | ||
64 | $ define /nolog wrk_sslxexe wrk_sslroot:['archd'_exe] | ||
65 | $ define /nolog wrk_sslxlib wrk_sslroot:['arch'_lib] | ||
66 | $! | ||
67 | $! Exhibit the destination directory. | ||
68 | $! | ||
69 | $ write sys$output " Installing to (WRK_SSLROOT) =" | ||
70 | $ write sys$output " ''f$trnlnm( "wrk_sslroot")'" | ||
71 | $ write sys$output "" | ||
72 | $! | ||
73 | $ if f$parse("wrk_sslroot:[000000]") .eqs. "" then - | ||
74 | create /directory /log wrk_sslroot:[000000] | ||
75 | $ if f$parse("wrk_sslxexe:") .eqs. "" then - | ||
76 | create /directory /log wrk_sslxexe: | ||
77 | $ if f$parse("wrk_sslxlib:") .eqs. "" then - | ||
78 | create /directory /log wrk_sslxlib: | ||
79 | $ if f$parse("wrk_ssllib:") .eqs. "" then - | ||
80 | create /directory /log wrk_ssllib: | ||
81 | $ if f$parse("wrk_sslinclude:") .eqs. "" then - | ||
82 | create /directory /log wrk_sslinclude: | ||
83 | $ if f$parse("wrk_sslcerts:") .eqs. "" then - | ||
84 | create /directory /log wrk_sslcerts: | ||
85 | $ if f$parse("wrk_sslprivate:") .eqs. "" then - | ||
86 | create /directory /log wrk_sslprivate: | ||
87 | $ if f$parse("wrk_sslroot:[VMS]") .EQS. "" THEN - | ||
88 | create /directory /log wrk_sslroot:[VMS] | ||
89 | $! | ||
90 | $ sdirs := CRYPTO, SSL, APPS, VMS !!!, RSAREF, TEST, TOOLS | ||
91 | $ exheader := e_os2.h | ||
92 | $! | ||
93 | $ copy /protection = w:re 'exheader' wrk_sslinclude: /log | ||
94 | $! | ||
95 | $ i = 0 | ||
96 | $ loop_sdirs: | ||
97 | $ d = f$edit( f$element(i, ",", sdirs), "trim") | ||
98 | $ i = i + 1 | ||
99 | $ if d .eqs. "," then goto loop_sdirs_end | ||
100 | $ write sys$output "Installing ", d, " files." | ||
101 | $ set default [.'d'] | ||
102 | $ @ install-'d'.com 'root'] 'p2' | ||
103 | $ set default 'def_orig' | ||
104 | $ goto loop_sdirs | ||
105 | $ loop_sdirs_end: | ||
106 | $! | ||
107 | $ write sys$output "" | ||
108 | $ write sys$output " Installation done!" | ||
109 | $ write sys$output "" | ||
110 | $ if (f$search( root+ "...]*.*;-1") .nes. "") | ||
111 | $ then | ||
112 | $ write sys$output " You might want to purge ", root, "...]" | ||
113 | $ write sys$output "" | ||
114 | $ endif | ||
115 | $! | ||
116 | $ tidy: | ||
117 | $! | ||
118 | $ set default 'def_orig' | ||
119 | $! | ||
120 | $ call deass wrk_sslroot | ||
121 | $ call deass wrk_sslcerts | ||
122 | $ call deass wrk_sslinclude | ||
123 | $ call deass wrk_ssllib | ||
124 | $ call deass wrk_sslprivate | ||
125 | $ call deass wrk_sslxexe | ||
126 | $ call deass wrk_sslxlib | ||
127 | $! | ||
128 | $ exit | ||
129 | $! | ||
130 | $ deass: subroutine | ||
131 | $ if (f$trnlnm( p1, "LNM$PROCESS") .nes. "") | ||
132 | $ then | ||
133 | $ deassign /process 'p1' | ||
134 | $ endif | ||
135 | $ endsubroutine | ||
136 | $! | ||
diff --git a/src/lib/libssl/src/makevms.com b/src/lib/libssl/src/makevms.com deleted file mode 100644 index de1dbd9058..0000000000 --- a/src/lib/libssl/src/makevms.com +++ /dev/null | |||
@@ -1,1543 +0,0 @@ | |||
1 | $! | ||
2 | $! MAKEVMS.COM | ||
3 | $! Original Author: UNKNOWN | ||
4 | $! Rewritten By: Robert Byer | ||
5 | $! Vice-President | ||
6 | $! A-Com Computing, Inc. | ||
7 | $! byer@mail.all-net.net | ||
8 | $! | ||
9 | $! Changes by Richard Levitte <richard@levitte.org> | ||
10 | $! Zoltan Arpadffy <zoli@polarhome.com> | ||
11 | $! | ||
12 | $! This procedure creates the SSL libraries of "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" | ||
13 | $! "[.xxx.EXE.SSL]LIBSSL.OLB" | ||
14 | $! The "xxx" denotes the machine architecture of ALPHA, IA64 or VAX. | ||
15 | $! | ||
16 | $! This procedures accepts two command line options listed below. | ||
17 | $! | ||
18 | $! P1 specifies one of the following build options: | ||
19 | $! | ||
20 | $! ALL Just build "everything". | ||
21 | $! CONFIG Just build the "[.CRYPTO._xxx]OPENSSLCONF.H" file. | ||
22 | $! BUILDINF Just build the "[.CRYPTO._xxx]BUILDINF.H" file. | ||
23 | $! SOFTLINKS Just fix the Unix soft links. | ||
24 | $! BUILDALL Same as ALL, except CONFIG, BUILDINF and SOFTILNKS aren't done. | ||
25 | $! CRYPTO Just build the "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" library. | ||
26 | $! CRYPTO/x Just build the x part of the | ||
27 | $! "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" library. | ||
28 | $! SSL Just build the "[.xxx.EXE.SSL]LIBSSL.OLB" library. | ||
29 | $! SSL_TASK Just build the "[.xxx.EXE.SSL]SSL_TASK.EXE" program. | ||
30 | $! TEST Just build the "[.xxx.EXE.TEST]" test programs for OpenSSL. | ||
31 | $! APPS Just build the "[.xxx.EXE.APPS]" application programs for OpenSSL. | ||
32 | $! ENGINES Just build the "[.xxx.EXE.ENGINES]" application programs for OpenSSL. | ||
33 | $! | ||
34 | $! P2, if defined, specifies the C pointer size. Ignored on VAX. | ||
35 | $! ("64=ARGV" gives more efficient code with HP C V7.3 or newer.) | ||
36 | $! Supported values are: | ||
37 | $! | ||
38 | $! "" Compile with default (/NOPOINTER_SIZE). | ||
39 | $! 32 Compile with /POINTER_SIZE=32 (SHORT). | ||
40 | $! 64 Compile with /POINTER_SIZE=64[=ARGV] (LONG[=ARGV]). | ||
41 | $! (Automatically select ARGV if compiler supports it.) | ||
42 | $! 64= Compile with /POINTER_SIZE=64 (LONG). | ||
43 | $! 64=ARGV Compile with /POINTER_SIZE=64=ARGV (LONG=ARGV). | ||
44 | $! | ||
45 | $! P3 specifies DEBUG or NODEBUG, to compile with or without debugging | ||
46 | $! information. | ||
47 | $! | ||
48 | $! P4 specifies which compiler to try to compile under. | ||
49 | $! | ||
50 | $! VAXC For VAX C. | ||
51 | $! DECC For DEC C. | ||
52 | $! GNUC For GNU C. | ||
53 | $! LINK To only link the programs from existing object files. | ||
54 | $! (not yet implemented) | ||
55 | $! | ||
56 | $! If you don't specify a compiler, it will try to determine which | ||
57 | $! "C" compiler to use. | ||
58 | $! | ||
59 | $! P5, if defined, sets a TCP/IP library to use, through one of the following | ||
60 | $! keywords: | ||
61 | $! | ||
62 | $! UCX for UCX or UCX emulation | ||
63 | $! TCPIP for TCP/IP Services or TCP/IP Services emulation | ||
64 | $! (this is prefered over UCX) | ||
65 | $! SOCKETSHR for SOCKETSHR+NETLIB | ||
66 | $! NONE to avoid specifying which TCP/IP implementation to | ||
67 | $! use at build time (this works with DEC C). This is | ||
68 | $! the default. | ||
69 | $! | ||
70 | $! P6, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up). | ||
71 | $! | ||
72 | $! P7, if defined, specifies a directory where ZLIB files (zlib.h, | ||
73 | $! libz.olb) may be found. Optionally, a non-default object library | ||
74 | $! name may be included ("dev:[dir]libz_64.olb", for example). | ||
75 | $! | ||
76 | $! | ||
77 | $! Announce/identify. | ||
78 | $! | ||
79 | $ proc = f$environment( "procedure") | ||
80 | $ write sys$output "@@@ "+ - | ||
81 | f$parse( proc, , , "name")+ f$parse( proc, , , "type") | ||
82 | $! | ||
83 | $ DEF_ORIG = F$ENVIRONMENT( "DEFAULT") | ||
84 | $ ON ERROR THEN GOTO TIDY | ||
85 | $ ON CONTROL_C THEN GOTO TIDY | ||
86 | $! | ||
87 | $! Check if we're in a batch job, and make sure we get to | ||
88 | $! the directory this script is in | ||
89 | $! | ||
90 | $ IF F$MODE() .EQS. "BATCH" | ||
91 | $ THEN | ||
92 | $ COMNAME=F$ENVIRONMENT("PROCEDURE") | ||
93 | $ COMPATH=F$PARSE("A.;",COMNAME) - "A.;" | ||
94 | $ SET DEF 'COMPATH' | ||
95 | $ ENDIF | ||
96 | $! | ||
97 | $! Check What Architecture We Are Using. | ||
98 | $! | ||
99 | $ IF (F$GETSYI("CPU").LT.128) | ||
100 | $ THEN | ||
101 | $! | ||
102 | $! The Architecture Is VAX. | ||
103 | $! | ||
104 | $ ARCH = "VAX" | ||
105 | $! | ||
106 | $! Else... | ||
107 | $! | ||
108 | $ ELSE | ||
109 | $! | ||
110 | $! The Architecture Is Alpha, IA64 or whatever comes in the future. | ||
111 | $! | ||
112 | $ ARCH = F$EDIT( F$GETSYI( "ARCH_NAME"), "UPCASE") | ||
113 | $ IF (ARCH .EQS. "") THEN ARCH = "UNK" | ||
114 | $! | ||
115 | $! End The Architecture Check. | ||
116 | $! | ||
117 | $ ENDIF | ||
118 | $! | ||
119 | $ ARCHD = ARCH | ||
120 | $ LIB32 = "32" | ||
121 | $ POINTER_SIZE = "" | ||
122 | $! | ||
123 | $! Get VMS version. | ||
124 | $! | ||
125 | $ VMS_VERSION = f$edit( f$getsyi( "VERSION"), "TRIM") | ||
126 | $! | ||
127 | $! Check To Make Sure We Have Valid Command Line Parameters. | ||
128 | $! | ||
129 | $ GOSUB CHECK_OPTIONS | ||
130 | $! | ||
131 | $! Check To See What We Are To Do. | ||
132 | $! | ||
133 | $ IF (BUILDCOMMAND.EQS."ALL") | ||
134 | $ THEN | ||
135 | $! | ||
136 | $! Start with building the OpenSSL configuration file. | ||
137 | $! | ||
138 | $ GOSUB CONFIG | ||
139 | $! | ||
140 | $! Create The "BUILDINF.H" Include File. | ||
141 | $! | ||
142 | $ GOSUB BUILDINF | ||
143 | $! | ||
144 | $! Fix The Unix Softlinks. | ||
145 | $! | ||
146 | $ GOSUB SOFTLINKS | ||
147 | $! | ||
148 | $ ENDIF | ||
149 | $! | ||
150 | $ IF (BUILDCOMMAND.EQS."ALL".OR.BUILDCOMMAND.EQS."BUILDALL") | ||
151 | $ THEN | ||
152 | $! | ||
153 | $! Build The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library. | ||
154 | $! | ||
155 | $ GOSUB CRYPTO | ||
156 | $! | ||
157 | $! Build The [.xxx.EXE.SSL]LIBSSL.OLB Library. | ||
158 | $! | ||
159 | $ GOSUB SSL | ||
160 | $! | ||
161 | $! Build The [.xxx.EXE.SSL]SSL_TASK.EXE DECNet SSL Engine. | ||
162 | $! | ||
163 | $ GOSUB SSL_TASK | ||
164 | $! | ||
165 | $! Build The [.xxx.EXE.TEST] OpenSSL Test Utilities. | ||
166 | $! | ||
167 | $ GOSUB TEST | ||
168 | $! | ||
169 | $! Build The [.xxx.EXE.APPS] OpenSSL Application Utilities. | ||
170 | $! | ||
171 | $ GOSUB APPS | ||
172 | $! | ||
173 | $! Build The [.xxx.EXE.ENGINES] OpenSSL Shareable Engines. | ||
174 | $! | ||
175 | $ GOSUB ENGINES | ||
176 | $! | ||
177 | $! Else... | ||
178 | $! | ||
179 | $ ELSE | ||
180 | $! | ||
181 | $! Build Just What The User Wants Us To Build. | ||
182 | $! | ||
183 | $ GOSUB 'BUILDCOMMAND' | ||
184 | $! | ||
185 | $ ENDIF | ||
186 | $! | ||
187 | $! Time To EXIT. | ||
188 | $! | ||
189 | $ GOTO TIDY | ||
190 | $! | ||
191 | $! Rebuild The [.CRYPTO._xxx]OPENSSLCONF.H" file. | ||
192 | $! | ||
193 | $ CONFIG: | ||
194 | $! | ||
195 | $! Tell The User We Are Creating The [.CRYPTO._xxx]OPENSSLCONF.H File. | ||
196 | $! | ||
197 | $ WRITE SYS$OUTPUT "Creating [.CRYPTO.''ARCHD']OPENSSLCONF.H Include File." | ||
198 | $! | ||
199 | $! First, make sure the directory exists. | ||
200 | $! | ||
201 | $ IF F$PARSE("SYS$DISK:[.CRYPTO.''ARCHD']") .EQS. "" THEN - | ||
202 | CREATE/DIRECTORY SYS$DISK:[.CRYPTO.'ARCHD'] | ||
203 | $! | ||
204 | $! Different tar/UnZip versions/option may have named the file differently | ||
205 | $ IF F$SEARCH("[.crypto]opensslconf.h_in") .NES. "" | ||
206 | $ THEN | ||
207 | $ OPENSSLCONF_H_IN = "[.crypto]opensslconf.h_in" | ||
208 | $ ELSE | ||
209 | $ IF F$SEARCH( "[.crypto]opensslconf_h.in") .NES. "" | ||
210 | $ THEN | ||
211 | $ OPENSSLCONF_H_IN = "[.crypto]opensslconf_h.in" | ||
212 | $ ELSE | ||
213 | $ ! For ODS-5 | ||
214 | $ IF F$SEARCH( "[.crypto]opensslconf.h.in") .NES. "" | ||
215 | $ THEN | ||
216 | $ OPENSSLCONF_H_IN = "[.crypto]opensslconf.h.in" | ||
217 | $ ELSE | ||
218 | $ WRITE SYS$ERROR "Couldn't find a [.crypto]opensslconf.h.in. Exiting!" | ||
219 | $ $STATUS = %X00018294 ! "%RMS-F-FNF, file not found". | ||
220 | $ GOTO TIDY | ||
221 | $ ENDIF | ||
222 | $ ENDIF | ||
223 | $ ENDIF | ||
224 | $! | ||
225 | $! Create The [.CRYPTO._xxx]OPENSSLCONF.H File. | ||
226 | $! Make sure it has the right format. | ||
227 | $! | ||
228 | $ OSCH_NAME = "SYS$DISK:[.CRYPTO.''ARCHD']OPENSSLCONF.H" | ||
229 | $ CREATE /FDL=SYS$INPUT: 'OSCH_NAME' | ||
230 | RECORD | ||
231 | FORMAT stream_lf | ||
232 | $ OPEN /APPEND H_FILE 'OSCH_NAME' | ||
233 | $! | ||
234 | $! Write The [.CRYPTO._xxx]OPENSSLCONF.H File. | ||
235 | $! | ||
236 | $ WRITE H_FILE "/* This file was automatically built using makevms.com */" | ||
237 | $ WRITE H_FILE "/* and ''OPENSSLCONF_H_IN' */" | ||
238 | $! | ||
239 | $! Write a few macros that indicate how this system was built. | ||
240 | $! | ||
241 | $ WRITE H_FILE "" | ||
242 | $ WRITE H_FILE "#ifndef OPENSSL_SYS_VMS" | ||
243 | $ WRITE H_FILE "# define OPENSSL_SYS_VMS" | ||
244 | $ WRITE H_FILE "#endif" | ||
245 | $ | ||
246 | $! One of the best way to figure out what the list should be is to do | ||
247 | $! the following on a Unix system: | ||
248 | $! grep OPENSSL_NO_ crypto/*/*.h ssl/*.h engines/*.h engines/*/*.h|grep ':# *if'|sed -e 's/^.*def //'|sort|uniq | ||
249 | $! For that reason, the list will also always end up in alphabetical order | ||
250 | $ CONFIG_LOGICALS := AES,- | ||
251 | ASM,INLINE_ASM,- | ||
252 | BF,- | ||
253 | BIO,- | ||
254 | BUFFER,- | ||
255 | BUF_FREELISTS,- | ||
256 | CAMELLIA,- | ||
257 | CAST,- | ||
258 | CMS,- | ||
259 | COMP,- | ||
260 | DEPRECATED,- | ||
261 | DES,- | ||
262 | DGRAM,- | ||
263 | DH,- | ||
264 | DSA,- | ||
265 | EC,- | ||
266 | EC2M,- | ||
267 | ECDH,- | ||
268 | ECDSA,- | ||
269 | EC_NISTP_64_GCC_128,- | ||
270 | ENGINE,- | ||
271 | ERR,- | ||
272 | EVP,- | ||
273 | FP_API,- | ||
274 | GMP,- | ||
275 | GOST,- | ||
276 | HASH_COMP,- | ||
277 | HMAC,- | ||
278 | IDEA,- | ||
279 | JPAKE,- | ||
280 | KRB5,- | ||
281 | LHASH,- | ||
282 | MD2,- | ||
283 | MD4,- | ||
284 | MD5,- | ||
285 | MDC2,- | ||
286 | OCSP,- | ||
287 | PSK,- | ||
288 | RC2,- | ||
289 | RC4,- | ||
290 | RC5,- | ||
291 | RFC3779,- | ||
292 | RIPEMD,- | ||
293 | RSA,- | ||
294 | SEED,- | ||
295 | SHA,- | ||
296 | SHA0,- | ||
297 | SHA1,- | ||
298 | SHA256,- | ||
299 | SHA512,- | ||
300 | SOCK,- | ||
301 | SRP,- | ||
302 | SSL2,- | ||
303 | SSL_INTERN,- | ||
304 | STACK,- | ||
305 | STATIC_ENGINE,- | ||
306 | STDIO,- | ||
307 | STORE,- | ||
308 | TLSEXT,- | ||
309 | WHIRLPOOL,- | ||
310 | X509 | ||
311 | $! Add a few that we know about | ||
312 | $ CONFIG_LOGICALS := 'CONFIG_LOGICALS',- | ||
313 | THREADS | ||
314 | $! The following rules, which dictate how some algorithm choices affect | ||
315 | $! others, are picked from Configure. | ||
316 | $! Quick syntax: | ||
317 | $! list = item[ ; list] | ||
318 | $! item = algos / dependents | ||
319 | $! algos = algo [, algos] | ||
320 | $! dependents = dependent [, dependents] | ||
321 | $! When a list of algos is specified in one item, it means that they must | ||
322 | $! all be disabled for the rule to apply. | ||
323 | $! When a list of dependents is specified in one item, it means that they | ||
324 | $! will all be disabled if the rule applies. | ||
325 | $! Rules are checked sequentially. If a rule disables an algorithm, it will | ||
326 | $! affect all following rules that depend on that algorithm being disabled. | ||
327 | $! To force something to be enabled or disabled, have no algorithms in the | ||
328 | $! algos part. | ||
329 | $ CONFIG_DISABLE_RULES := RIJNDAEL/AES;- | ||
330 | DES/MDC2;- | ||
331 | EC/ECDSA,ECDH;- | ||
332 | MD5/SSL2,SSL3,TLS1;- | ||
333 | SHA/SSL3,TLS1;- | ||
334 | RSA/SSL2;- | ||
335 | RSA,DSA/SSL2;- | ||
336 | DH/SSL3,TLS1;- | ||
337 | TLS1/TLSEXT;- | ||
338 | EC/GOST;- | ||
339 | DSA/GOST;- | ||
340 | DH/GOST;- | ||
341 | /STATIC_ENGINE;- | ||
342 | /KRB5;- | ||
343 | /EC_NISTP_64_GCC_128 | ||
344 | $ CONFIG_ENABLE_RULES := ZLIB_DYNAMIC/ZLIB;- | ||
345 | /THREADS | ||
346 | $ | ||
347 | $! Architecture specific rule addtions | ||
348 | $ IF ARCH .EQS. "VAX" | ||
349 | $ THEN | ||
350 | $ ! Disable algorithms that require 64-bit integers in C | ||
351 | $ CONFIG_DISABLE_RULES = CONFIG_DISABLE_RULES + - | ||
352 | ";/GOST" + - | ||
353 | ";/WHIRLPOOL" | ||
354 | $ ENDIF | ||
355 | $ | ||
356 | $ CONFIG_LOG_I = 0 | ||
357 | $ CONFIG_LOG_LOOP1: | ||
358 | $ CONFIG_LOG_E = F$EDIT(F$ELEMENT(CONFIG_LOG_I,",",CONFIG_LOGICALS),"TRIM") | ||
359 | $ CONFIG_LOG_I = CONFIG_LOG_I + 1 | ||
360 | $ IF CONFIG_LOG_E .EQS. "" THEN GOTO CONFIG_LOG_LOOP1 | ||
361 | $ IF CONFIG_LOG_E .EQS. "," THEN GOTO CONFIG_LOG_LOOP1_END | ||
362 | $ IF F$TRNLNM("OPENSSL_NO_"+CONFIG_LOG_E) | ||
363 | $ THEN | ||
364 | $ CONFIG_DISABLED_'CONFIG_LOG_E' := YES | ||
365 | $ CONFIG_ENABLED_'CONFIG_LOG_E' := NO | ||
366 | $ CONFIG_CHANGED_'CONFIG_LOG_E' := YES | ||
367 | $ ELSE | ||
368 | $ CONFIG_DISABLED_'CONFIG_LOG_E' := NO | ||
369 | $ CONFIG_ENABLED_'CONFIG_LOG_E' := YES | ||
370 | $ ! Because all algorithms are assumed enabled by default | ||
371 | $ CONFIG_CHANGED_'CONFIG_LOG_E' := NO | ||
372 | $ ENDIF | ||
373 | $ GOTO CONFIG_LOG_LOOP1 | ||
374 | $ CONFIG_LOG_LOOP1_END: | ||
375 | $ | ||
376 | $! Apply cascading disable rules | ||
377 | $ CONFIG_DISABLE_I = 0 | ||
378 | $ CONFIG_DISABLE_LOOP0: | ||
379 | $ CONFIG_DISABLE_E = F$EDIT(F$ELEMENT(CONFIG_DISABLE_I,";", - | ||
380 | CONFIG_DISABLE_RULES),"TRIM") | ||
381 | $ CONFIG_DISABLE_I = CONFIG_DISABLE_I + 1 | ||
382 | $ IF CONFIG_DISABLE_E .EQS. "" THEN GOTO CONFIG_DISABLE_LOOP0 | ||
383 | $ IF CONFIG_DISABLE_E .EQS. ";" THEN GOTO CONFIG_DISABLE_LOOP0_END | ||
384 | $ | ||
385 | $ CONFIG_DISABLE_ALGOS = F$EDIT(F$ELEMENT(0,"/",CONFIG_DISABLE_E),"TRIM") | ||
386 | $ CONFIG_DISABLE_DEPENDENTS = F$EDIT(F$ELEMENT(1,"/",CONFIG_DISABLE_E),"TRIM") | ||
387 | $ TO_DISABLE := YES | ||
388 | $ CONFIG_ALGO_I = 0 | ||
389 | $ CONFIG_DISABLE_LOOP1: | ||
390 | $ CONFIG_ALGO_E = F$EDIT(F$ELEMENT(CONFIG_ALGO_I,",", - | ||
391 | CONFIG_DISABLE_ALGOS),"TRIM") | ||
392 | $ CONFIG_ALGO_I = CONFIG_ALGO_I + 1 | ||
393 | $ IF CONFIG_ALGO_E .EQS. "" THEN GOTO CONFIG_DISABLE_LOOP1 | ||
394 | $ IF CONFIG_ALGO_E .EQS. "," THEN GOTO CONFIG_DISABLE_LOOP1_END | ||
395 | $ IF F$TYPE(CONFIG_DISABLED_'CONFIG_ALGO_E') .EQS. "" | ||
396 | $ THEN | ||
397 | $ TO_DISABLE := NO | ||
398 | $ ELSE | ||
399 | $ IF .NOT. CONFIG_DISABLED_'CONFIG_ALGO_E' THEN TO_DISABLE := NO | ||
400 | $ ENDIF | ||
401 | $ GOTO CONFIG_DISABLE_LOOP1 | ||
402 | $ CONFIG_DISABLE_LOOP1_END: | ||
403 | $ | ||
404 | $ IF TO_DISABLE | ||
405 | $ THEN | ||
406 | $ CONFIG_DEPENDENT_I = 0 | ||
407 | $ CONFIG_DISABLE_LOOP2: | ||
408 | $ CONFIG_DEPENDENT_E = F$EDIT(F$ELEMENT(CONFIG_DEPENDENT_I,",", - | ||
409 | CONFIG_DISABLE_DEPENDENTS),"TRIM") | ||
410 | $ CONFIG_DEPENDENT_I = CONFIG_DEPENDENT_I + 1 | ||
411 | $ IF CONFIG_DEPENDENT_E .EQS. "" THEN GOTO CONFIG_DISABLE_LOOP2 | ||
412 | $ IF CONFIG_DEPENDENT_E .EQS. "," THEN GOTO CONFIG_DISABLE_LOOP2_END | ||
413 | $ CONFIG_DISABLED_'CONFIG_DEPENDENT_E' := YES | ||
414 | $ CONFIG_ENABLED_'CONFIG_DEPENDENT_E' := NO | ||
415 | $ ! Better not to assume defaults at this point... | ||
416 | $ CONFIG_CHANGED_'CONFIG_DEPENDENT_E' := YES | ||
417 | $ WRITE SYS$ERROR - | ||
418 | "''CONFIG_DEPENDENT_E' disabled by rule ''CONFIG_DISABLE_E'" | ||
419 | $ GOTO CONFIG_DISABLE_LOOP2 | ||
420 | $ CONFIG_DISABLE_LOOP2_END: | ||
421 | $ ENDIF | ||
422 | $ GOTO CONFIG_DISABLE_LOOP0 | ||
423 | $ CONFIG_DISABLE_LOOP0_END: | ||
424 | $ | ||
425 | $! Apply cascading enable rules | ||
426 | $ CONFIG_ENABLE_I = 0 | ||
427 | $ CONFIG_ENABLE_LOOP0: | ||
428 | $ CONFIG_ENABLE_E = F$EDIT(F$ELEMENT(CONFIG_ENABLE_I,";", - | ||
429 | CONFIG_ENABLE_RULES),"TRIM") | ||
430 | $ CONFIG_ENABLE_I = CONFIG_ENABLE_I + 1 | ||
431 | $ IF CONFIG_ENABLE_E .EQS. "" THEN GOTO CONFIG_ENABLE_LOOP0 | ||
432 | $ IF CONFIG_ENABLE_E .EQS. ";" THEN GOTO CONFIG_ENABLE_LOOP0_END | ||
433 | $ | ||
434 | $ CONFIG_ENABLE_ALGOS = F$EDIT(F$ELEMENT(0,"/",CONFIG_ENABLE_E),"TRIM") | ||
435 | $ CONFIG_ENABLE_DEPENDENTS = F$EDIT(F$ELEMENT(1,"/",CONFIG_ENABLE_E),"TRIM") | ||
436 | $ TO_ENABLE := YES | ||
437 | $ CONFIG_ALGO_I = 0 | ||
438 | $ CONFIG_ENABLE_LOOP1: | ||
439 | $ CONFIG_ALGO_E = F$EDIT(F$ELEMENT(CONFIG_ALGO_I,",", - | ||
440 | CONFIG_ENABLE_ALGOS),"TRIM") | ||
441 | $ CONFIG_ALGO_I = CONFIG_ALGO_I + 1 | ||
442 | $ IF CONFIG_ALGO_E .EQS. "" THEN GOTO CONFIG_ENABLE_LOOP1 | ||
443 | $ IF CONFIG_ALGO_E .EQS. "," THEN GOTO CONFIG_ENABLE_LOOP1_END | ||
444 | $ IF F$TYPE(CONFIG_ENABLED_'CONFIG_ALGO_E') .EQS. "" | ||
445 | $ THEN | ||
446 | $ TO_ENABLE := NO | ||
447 | $ ELSE | ||
448 | $ IF .NOT. CONFIG_ENABLED_'CONFIG_ALGO_E' THEN TO_ENABLE := NO | ||
449 | $ ENDIF | ||
450 | $ GOTO CONFIG_ENABLE_LOOP1 | ||
451 | $ CONFIG_ENABLE_LOOP1_END: | ||
452 | $ | ||
453 | $ IF TO_ENABLE | ||
454 | $ THEN | ||
455 | $ CONFIG_DEPENDENT_I = 0 | ||
456 | $ CONFIG_ENABLE_LOOP2: | ||
457 | $ CONFIG_DEPENDENT_E = F$EDIT(F$ELEMENT(CONFIG_DEPENDENT_I,",", - | ||
458 | CONFIG_ENABLE_DEPENDENTS),"TRIM") | ||
459 | $ CONFIG_DEPENDENT_I = CONFIG_DEPENDENT_I + 1 | ||
460 | $ IF CONFIG_DEPENDENT_E .EQS. "" THEN GOTO CONFIG_ENABLE_LOOP2 | ||
461 | $ IF CONFIG_DEPENDENT_E .EQS. "," THEN GOTO CONFIG_ENABLE_LOOP2_END | ||
462 | $ CONFIG_DISABLED_'CONFIG_DEPENDENT_E' := NO | ||
463 | $ CONFIG_ENABLED_'CONFIG_DEPENDENT_E' := YES | ||
464 | $ ! Better not to assume defaults at this point... | ||
465 | $ CONFIG_CHANGED_'CONFIG_DEPENDENT_E' := YES | ||
466 | $ WRITE SYS$ERROR - | ||
467 | "''CONFIG_DEPENDENT_E' enabled by rule ''CONFIG_ENABLE_E'" | ||
468 | $ GOTO CONFIG_ENABLE_LOOP2 | ||
469 | $ CONFIG_ENABLE_LOOP2_END: | ||
470 | $ ENDIF | ||
471 | $ GOTO CONFIG_ENABLE_LOOP0 | ||
472 | $ CONFIG_ENABLE_LOOP0_END: | ||
473 | $ | ||
474 | $! Write to the configuration | ||
475 | $ CONFIG_LOG_I = 0 | ||
476 | $ CONFIG_LOG_LOOP2: | ||
477 | $ CONFIG_LOG_E = F$EDIT(F$ELEMENT(CONFIG_LOG_I,",",CONFIG_LOGICALS),"TRIM") | ||
478 | $ CONFIG_LOG_I = CONFIG_LOG_I + 1 | ||
479 | $ IF CONFIG_LOG_E .EQS. "" THEN GOTO CONFIG_LOG_LOOP2 | ||
480 | $ IF CONFIG_LOG_E .EQS. "," THEN GOTO CONFIG_LOG_LOOP2_END | ||
481 | $ IF CONFIG_CHANGED_'CONFIG_LOG_E' | ||
482 | $ THEN | ||
483 | $ IF CONFIG_DISABLED_'CONFIG_LOG_E' | ||
484 | $ THEN | ||
485 | $ WRITE H_FILE "#ifndef OPENSSL_NO_",CONFIG_LOG_E | ||
486 | $ WRITE H_FILE "# define OPENSSL_NO_",CONFIG_LOG_E | ||
487 | $ WRITE H_FILE "#endif" | ||
488 | $ ELSE | ||
489 | $ WRITE H_FILE "#ifndef OPENSSL_",CONFIG_LOG_E | ||
490 | $ WRITE H_FILE "# define OPENSSL_",CONFIG_LOG_E | ||
491 | $ WRITE H_FILE "#endif" | ||
492 | $ ENDIF | ||
493 | $ ENDIF | ||
494 | $ GOTO CONFIG_LOG_LOOP2 | ||
495 | $ CONFIG_LOG_LOOP2_END: | ||
496 | $! | ||
497 | $ WRITE H_FILE "" | ||
498 | $ WRITE H_FILE "/* 2011-02-23 SMS." | ||
499 | $ WRITE H_FILE " * On VMS (V8.3), setvbuf() doesn't support a 64-bit" | ||
500 | $ WRITE H_FILE " * ""in"" pointer, and the help says:" | ||
501 | $ WRITE H_FILE " * Please note that the previously documented" | ||
502 | $ WRITE H_FILE " * value _IONBF is not supported." | ||
503 | $ WRITE H_FILE " * So, skip it on VMS." | ||
504 | $ WRITE H_FILE " */" | ||
505 | $ WRITE H_FILE "#define OPENSSL_NO_SETVBUF_IONBF" | ||
506 | $ WRITE H_FILE "/* STCP support comes with TCPIP 5.7 ECO 2 " | ||
507 | $ WRITE H_FILE " * enable on newer systems / 2012-02-24 arpadffy */" | ||
508 | $ WRITE H_FILE "#define OPENSSL_NO_SCTP" | ||
509 | $ WRITE H_FILE "" | ||
510 | $! | ||
511 | $! Add in the common "crypto/opensslconf.h.in". | ||
512 | $! | ||
513 | $ TYPE 'OPENSSLCONF_H_IN' /OUTPUT=H_FILE: | ||
514 | $! | ||
515 | $ IF ARCH .NES. "VAX" | ||
516 | $ THEN | ||
517 | $! | ||
518 | $! Write the non-VAX specific data | ||
519 | $! | ||
520 | $ WRITE H_FILE "#if defined(HEADER_RC4_H)" | ||
521 | $ WRITE H_FILE "#undef RC4_INT" | ||
522 | $ WRITE H_FILE "#define RC4_INT unsigned int" | ||
523 | $ WRITE H_FILE "#undef RC4_CHUNK" | ||
524 | $ WRITE H_FILE "#define RC4_CHUNK unsigned long long" | ||
525 | $ WRITE H_FILE "#endif" | ||
526 | $! | ||
527 | $ WRITE H_FILE "#if defined(HEADER_DES_LOCL_H)" | ||
528 | $ WRITE H_FILE "#undef DES_LONG" | ||
529 | $ WRITE H_FILE "#define DES_LONG unsigned int" | ||
530 | $ WRITE H_FILE "#undef DES_PTR" | ||
531 | $ WRITE H_FILE "#define DES_PTR" | ||
532 | $ WRITE H_FILE "#undef DES_RISC1" | ||
533 | $ WRITE H_FILE "#undef DES_RISC2" | ||
534 | $ WRITE H_FILE "#define DES_RISC1" | ||
535 | $ WRITE H_FILE "#undef DES_UNROLL" | ||
536 | $ WRITE H_FILE "#define DES_UNROLL" | ||
537 | $ WRITE H_FILE "#endif" | ||
538 | $! | ||
539 | $ WRITE H_FILE "#if defined(HEADER_BN_H)" | ||
540 | $ WRITE H_FILE "#undef BN_LLONG" ! Never define with SIXTY_FOUR_BIT | ||
541 | $ WRITE H_FILE "#undef SIXTY_FOUR_BIT_LONG" | ||
542 | $ WRITE H_FILE "#undef SIXTY_FOUR_BIT" | ||
543 | $ WRITE H_FILE "#define SIXTY_FOUR_BIT" | ||
544 | $ WRITE H_FILE "#undef THIRTY_TWO_BIT" | ||
545 | $ WRITE H_FILE "#undef SIXTEEN_BIT" | ||
546 | $ WRITE H_FILE "#undef EIGHT_BIT" | ||
547 | $ WRITE H_FILE "#endif" | ||
548 | $ | ||
549 | $ WRITE H_FILE "#undef OPENSSL_EXPORT_VAR_AS_FUNCTION" | ||
550 | $! | ||
551 | $! Else... | ||
552 | $! | ||
553 | $ ELSE | ||
554 | $! | ||
555 | $! Write the VAX specific data | ||
556 | $! | ||
557 | $ WRITE H_FILE "#if defined(HEADER_RC4_H)" | ||
558 | $ WRITE H_FILE "#undef RC4_INT" | ||
559 | $ WRITE H_FILE "#define RC4_INT unsigned char" | ||
560 | $ WRITE H_FILE "#undef RC4_CHUNK" | ||
561 | $ WRITE H_FILE "#define RC4_CHUNK unsigned long" | ||
562 | $ WRITE H_FILE "#endif" | ||
563 | $! | ||
564 | $ WRITE H_FILE "#if defined(HEADER_DES_LOCL_H)" | ||
565 | $ WRITE H_FILE "#undef DES_LONG" | ||
566 | $ WRITE H_FILE "#define DES_LONG unsigned long" | ||
567 | $ WRITE H_FILE "#undef DES_PTR" | ||
568 | $ WRITE H_FILE "#define DES_PTR" | ||
569 | $ WRITE H_FILE "#undef DES_RISC1" | ||
570 | $ WRITE H_FILE "#undef DES_RISC2" | ||
571 | $ WRITE H_FILE "#undef DES_UNROLL" | ||
572 | $ WRITE H_FILE "#endif" | ||
573 | $! | ||
574 | $ WRITE H_FILE "#if defined(HEADER_BN_H)" | ||
575 | $ WRITE H_FILE "#undef BN_LLONG" ! VAX C/DEC C doesn't have long long | ||
576 | $ WRITE H_FILE "#undef SIXTY_FOUR_BIT_LONG" | ||
577 | $ WRITE H_FILE "#undef SIXTY_FOUR_BIT" | ||
578 | $ WRITE H_FILE "#undef THIRTY_TWO_BIT" | ||
579 | $ WRITE H_FILE "#define THIRTY_TWO_BIT" | ||
580 | $ WRITE H_FILE "#undef SIXTEEN_BIT" | ||
581 | $ WRITE H_FILE "#undef EIGHT_BIT" | ||
582 | $ WRITE H_FILE "#endif" | ||
583 | $! | ||
584 | $! Oddly enough, the following symbol is tested in crypto/sha/sha512.c | ||
585 | $! before sha.h gets included (and HEADER_SHA_H defined), so we will not | ||
586 | $! protect this one... | ||
587 | $ WRITE H_FILE "#undef OPENSSL_NO_SHA512" | ||
588 | $ WRITE H_FILE "#define OPENSSL_NO_SHA512" | ||
589 | $! | ||
590 | $ WRITE H_FILE "#undef OPENSSL_EXPORT_VAR_AS_FUNCTION" | ||
591 | $ WRITE H_FILE "#define OPENSSL_EXPORT_VAR_AS_FUNCTION" | ||
592 | $! | ||
593 | $! End | ||
594 | $! | ||
595 | $ ENDIF | ||
596 | $! | ||
597 | $! Close the [.CRYPTO._xxx]OPENSSLCONF.H file | ||
598 | $! | ||
599 | $ CLOSE H_FILE | ||
600 | $! | ||
601 | $! Purge The [.CRYPTO._xxx]OPENSSLCONF.H file | ||
602 | $! | ||
603 | $ PURGE SYS$DISK:[.CRYPTO.'ARCHD']OPENSSLCONF.H | ||
604 | $! | ||
605 | $! That's All, Time To RETURN. | ||
606 | $! | ||
607 | $ RETURN | ||
608 | $! | ||
609 | $! Rebuild The "[.CRYPTO._xxx]BUILDINF.H" file. | ||
610 | $! | ||
611 | $ BUILDINF: | ||
612 | $! | ||
613 | $! Tell The User We Are Creating The [.CRYPTO._xxx]BUILDINF.H File. | ||
614 | $! | ||
615 | $ WRITE SYS$OUTPUT "Creating [.CRYPTO.''ARCHD']BUILDINF.H Include File." | ||
616 | $! | ||
617 | $! Create The [.CRYPTO._xxx]BUILDINF.H File. | ||
618 | $! | ||
619 | $ BIH_NAME = "SYS$DISK:[.CRYPTO.''ARCHD']BUILDINF.H" | ||
620 | $ CREATE /FDL=SYS$INPUT: 'BIH_NAME' | ||
621 | RECORD | ||
622 | FORMAT stream_lf | ||
623 | $! | ||
624 | $ OPEN /APPEND H_FILE 'bih_name' | ||
625 | $! | ||
626 | $! Get The Current Date & Time. | ||
627 | $! | ||
628 | $ TIME = F$TIME() | ||
629 | $! | ||
630 | $! Write The [.CRYPTO._xxx]BUILDINF.H File. | ||
631 | $! | ||
632 | $ CFLAGS = "" | ||
633 | $ if (POINTER_SIZE .nes. "") | ||
634 | $ then | ||
635 | $ CFLAGS = CFLAGS+ "/POINTER_SIZE=''POINTER_SIZE'" | ||
636 | $ endif | ||
637 | $ if (ZLIB .nes. "") | ||
638 | $ then | ||
639 | $ if (CFLAGS .nes. "") then CFLAGS = CFLAGS+ " " | ||
640 | $ CFLAGS = CFLAGS+ "/DEFINE=ZLIB" | ||
641 | $ endif | ||
642 | $! | ||
643 | $ WRITE H_FILE "#define CFLAGS ""''CFLAGS'""" | ||
644 | $ WRITE H_FILE "#define PLATFORM ""VMS ''ARCHD' ''VMS_VERSION'""" | ||
645 | $ WRITE H_FILE "#define DATE ""''TIME'"" " | ||
646 | $! | ||
647 | $! Close The [.CRYPTO._xxx]BUILDINF.H File. | ||
648 | $! | ||
649 | $ CLOSE H_FILE | ||
650 | $! | ||
651 | $! Purge The [.CRYPTO._xxx]BUILDINF.H File. | ||
652 | $! | ||
653 | $ PURGE SYS$DISK:[.CRYPTO.'ARCHD']BUILDINF.H | ||
654 | $! | ||
655 | $! Delete [.CRYPTO]BUILDINF.H File, as there might be some residue from Unix. | ||
656 | $! | ||
657 | $ IF F$SEARCH("[.CRYPTO]BUILDINF.H") .NES. "" THEN - | ||
658 | DELETE SYS$DISK:[.CRYPTO]BUILDINF.H;* | ||
659 | $! | ||
660 | $! That's All, Time To RETURN. | ||
661 | $! | ||
662 | $ RETURN | ||
663 | $! | ||
664 | $! Copy a lot of files around. | ||
665 | $! | ||
666 | $ SOFTLINKS: | ||
667 | $! | ||
668 | $!!!! Tell The User We Are Partly Rebuilding The [.APPS] Directory. | ||
669 | $!!!! | ||
670 | $!!! WRITE SYS$OUTPUT "Rebuilding The '[.APPS]MD4.C' File." | ||
671 | $!!!! | ||
672 | $!!! DELETE SYS$DISK:[.APPS]MD4.C;* | ||
673 | $!!!! | ||
674 | $!!!! Copy MD4.C from [.CRYPTO.MD4] into [.APPS] | ||
675 | $!!!! | ||
676 | $!!! COPY SYS$DISK:[.CRYPTO.MD4]MD4.C SYS$DISK:[.APPS] | ||
677 | $! | ||
678 | $! Ensure that the [.include.openssl] directory contains a full set of | ||
679 | $! real header files. The distribution kit may have left real or fake | ||
680 | $! symlinks there. Rather than think about what's there, simply delete | ||
681 | $! the destination files (fake or real symlinks) before copying the real | ||
682 | $! header files in. (Copying a real header file onto a real symlink | ||
683 | $! merely duplicates the real header file at its source.) | ||
684 | $! | ||
685 | $! Tell The User We Are Rebuilding The [.include.openssl] Directory. | ||
686 | $! | ||
687 | $ WRITE SYS$OUTPUT "Rebuilding The '[.include.openssl]' Directory." | ||
688 | $! | ||
689 | $! First, make sure the directory exists. If it did exist, delete all | ||
690 | $! the existing header files (or fake or real symlinks). | ||
691 | $! | ||
692 | $ if f$parse( "sys$disk:[.include.openssl]") .eqs. "" | ||
693 | $ then | ||
694 | $ create /directory sys$disk:[.include.openssl] | ||
695 | $ else | ||
696 | $ delete sys$disk:[.include.openssl]*.h;* | ||
697 | $ endif | ||
698 | $! | ||
699 | $! Copy All The ".H" Files From The Main Directory. | ||
700 | $! | ||
701 | $ EXHEADER := e_os2.h | ||
702 | $ copy 'exheader' sys$disk:[.include.openssl] | ||
703 | $! | ||
704 | $! Copy All The ".H" Files From The [.CRYPTO] Directory Tree. | ||
705 | $! | ||
706 | $ SDIRS := , - | ||
707 | 'ARCHD', - | ||
708 | OBJECTS, - | ||
709 | MD2, MD4, MD5, SHA, MDC2, HMAC, RIPEMD, WHRLPOOL, - | ||
710 | DES, AES, RC2, RC4, RC5, IDEA, BF, CAST, CAMELLIA, SEED, MODES, - | ||
711 | BN, EC, RSA, DSA, ECDSA, DH, ECDH, DSO, ENGINE, - | ||
712 | BUFFER, BIO, STACK, LHASH, RAND, ERR, - | ||
713 | EVP, ASN1, PEM, X509, X509V3, CONF, TXT_DB, PKCS7, PKCS12, - | ||
714 | COMP, OCSP, UI, KRB5, - | ||
715 | CMS, PQUEUE, TS, JPAKE, SRP, STORE, CMAC | ||
716 | $! | ||
717 | $ EXHEADER_ := crypto.h, opensslv.h, ebcdic.h, symhacks.h, ossl_typ.h | ||
718 | $ EXHEADER_'ARCHD' := opensslconf.h | ||
719 | $ EXHEADER_OBJECTS := objects.h, obj_mac.h | ||
720 | $ EXHEADER_MD2 := md2.h | ||
721 | $ EXHEADER_MD4 := md4.h | ||
722 | $ EXHEADER_MD5 := md5.h | ||
723 | $ EXHEADER_SHA := sha.h | ||
724 | $ EXHEADER_MDC2 := mdc2.h | ||
725 | $ EXHEADER_HMAC := hmac.h | ||
726 | $ EXHEADER_RIPEMD := ripemd.h | ||
727 | $ EXHEADER_WHRLPOOL := whrlpool.h | ||
728 | $ EXHEADER_DES := des.h, des_old.h | ||
729 | $ EXHEADER_AES := aes.h | ||
730 | $ EXHEADER_RC2 := rc2.h | ||
731 | $ EXHEADER_RC4 := rc4.h | ||
732 | $ EXHEADER_RC5 := rc5.h | ||
733 | $ EXHEADER_IDEA := idea.h | ||
734 | $ EXHEADER_BF := blowfish.h | ||
735 | $ EXHEADER_CAST := cast.h | ||
736 | $ EXHEADER_CAMELLIA := camellia.h | ||
737 | $ EXHEADER_SEED := seed.h | ||
738 | $ EXHEADER_MODES := modes.h | ||
739 | $ EXHEADER_BN := bn.h | ||
740 | $ EXHEADER_EC := ec.h | ||
741 | $ EXHEADER_RSA := rsa.h | ||
742 | $ EXHEADER_DSA := dsa.h | ||
743 | $ EXHEADER_ECDSA := ecdsa.h | ||
744 | $ EXHEADER_DH := dh.h | ||
745 | $ EXHEADER_ECDH := ecdh.h | ||
746 | $ EXHEADER_DSO := dso.h | ||
747 | $ EXHEADER_ENGINE := engine.h | ||
748 | $ EXHEADER_BUFFER := buffer.h | ||
749 | $ EXHEADER_BIO := bio.h | ||
750 | $ EXHEADER_STACK := stack.h, safestack.h | ||
751 | $ EXHEADER_LHASH := lhash.h | ||
752 | $ EXHEADER_RAND := rand.h | ||
753 | $ EXHEADER_ERR := err.h | ||
754 | $ EXHEADER_EVP := evp.h | ||
755 | $ EXHEADER_ASN1 := asn1.h, asn1_mac.h, asn1t.h | ||
756 | $ EXHEADER_PEM := pem.h, pem2.h | ||
757 | $ EXHEADER_X509 := x509.h, x509_vfy.h | ||
758 | $ EXHEADER_X509V3 := x509v3.h | ||
759 | $ EXHEADER_CONF := conf.h, conf_api.h | ||
760 | $ EXHEADER_TXT_DB := txt_db.h | ||
761 | $ EXHEADER_PKCS7 := pkcs7.h | ||
762 | $ EXHEADER_PKCS12 := pkcs12.h | ||
763 | $ EXHEADER_COMP := comp.h | ||
764 | $ EXHEADER_OCSP := ocsp.h | ||
765 | $ EXHEADER_UI := ui.h, ui_compat.h | ||
766 | $ EXHEADER_KRB5 := krb5_asn.h | ||
767 | $ EXHEADER_CMS := cms.h | ||
768 | $ EXHEADER_PQUEUE := pqueue.h | ||
769 | $ EXHEADER_TS := ts.h | ||
770 | $ EXHEADER_JPAKE := jpake.h | ||
771 | $ EXHEADER_SRP := srp.h | ||
772 | $!!! EXHEADER_STORE := store.h, str_compat.h | ||
773 | $ EXHEADER_STORE := store.h | ||
774 | $ EXHEADER_CMAC := cmac.h | ||
775 | $! | ||
776 | $ i = 0 | ||
777 | $ loop_sdirs: | ||
778 | $ sdir = f$edit( f$element( i, ",", sdirs), "trim") | ||
779 | $ i = i + 1 | ||
780 | $ if (sdir .eqs. ",") then goto loop_sdirs_end | ||
781 | $ hdr_list = exheader_'sdir' | ||
782 | $ if (sdir .nes. "") then sdir = "."+ sdir | ||
783 | $ copy [.crypto'sdir']'hdr_list' sys$disk:[.include.openssl] | ||
784 | $ goto loop_sdirs | ||
785 | $ loop_sdirs_end: | ||
786 | $! | ||
787 | $! Copy All The ".H" Files From The [.SSL] Directory. | ||
788 | $! | ||
789 | $! (keep these in the same order as ssl/Makefile) | ||
790 | $ EXHEADER := ssl.h, ssl2.h, ssl3.h, ssl23.h, tls1.h, dtls1.h, kssl.h, srtp.h | ||
791 | $ copy sys$disk:[.ssl]'exheader' sys$disk:[.include.openssl] | ||
792 | $! | ||
793 | $! Purge the [.include.openssl] header files. | ||
794 | $! | ||
795 | $ purge sys$disk:[.include.openssl]*.h | ||
796 | $! | ||
797 | $! That's All, Time To RETURN. | ||
798 | $! | ||
799 | $ RETURN | ||
800 | $! | ||
801 | $! Build The "[.xxx.EXE.CRYPTO]SSL_LIBCRYPTO''LIB32'.OLB" Library. | ||
802 | $! | ||
803 | $ CRYPTO: | ||
804 | $! | ||
805 | $! Tell The User What We Are Doing. | ||
806 | $! | ||
807 | $ WRITE SYS$OUTPUT "" | ||
808 | $ WRITE SYS$OUTPUT - | ||
809 | "Building The [.",ARCHD,".EXE.CRYPTO]SSL_LIBCRYPTO''LIB32'.OLB Library." | ||
810 | $! | ||
811 | $! Go To The [.CRYPTO] Directory. | ||
812 | $! | ||
813 | $ SET DEFAULT SYS$DISK:[.CRYPTO] | ||
814 | $! | ||
815 | $! Build The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library. | ||
816 | $! | ||
817 | $ @CRYPTO-LIB LIBRARY 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" - | ||
818 | "''ISSEVEN'" "''BUILDPART'" "''POINTER_SIZE'" "''ZLIB'" | ||
819 | $! | ||
820 | $! Build The [.xxx.EXE.CRYPTO]*.EXE Test Applications. | ||
821 | $! | ||
822 | $ @CRYPTO-LIB APPS 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" - | ||
823 | "''ISSEVEN'" "''BUILDPART'" "''POINTER_SIZE'" "''ZLIB'" | ||
824 | $! | ||
825 | $! Go Back To The Main Directory. | ||
826 | $! | ||
827 | $ SET DEFAULT [-] | ||
828 | $! | ||
829 | $! Time To RETURN. | ||
830 | $! | ||
831 | $ RETURN | ||
832 | $! | ||
833 | $! Build The "[.xxx.EXE.SSL]SSL_LIBSSL''LIB32'.OLB" Library. | ||
834 | $! | ||
835 | $ SSL: | ||
836 | $! | ||
837 | $! Tell The User What We Are Doing. | ||
838 | $! | ||
839 | $ WRITE SYS$OUTPUT "" | ||
840 | $ WRITE SYS$OUTPUT - | ||
841 | "Building The [.",ARCHD,".EXE.SSL]SSL_LIBSSL''LIB32'.OLB Library." | ||
842 | $! | ||
843 | $! Go To The [.SSL] Directory. | ||
844 | $! | ||
845 | $ SET DEFAULT SYS$DISK:[.SSL] | ||
846 | $! | ||
847 | $! Build The [.xxx.EXE.SSL]LIBSSL.OLB Library. | ||
848 | $! | ||
849 | $ @SSL-LIB LIBRARY 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" - | ||
850 | "''ISSEVEN'" "''POINTER_SIZE'" "''ZLIB'" | ||
851 | $! | ||
852 | $! Go Back To The Main Directory. | ||
853 | $! | ||
854 | $ SET DEFAULT [-] | ||
855 | $! | ||
856 | $! Time To Return. | ||
857 | $! | ||
858 | $ RETURN | ||
859 | $! | ||
860 | $! Build The "[.xxx.EXE.SSL]SSL_TASK.EXE" Program. | ||
861 | $! | ||
862 | $ SSL_TASK: | ||
863 | $! | ||
864 | $! Tell The User What We Are Doing. | ||
865 | $! | ||
866 | $ WRITE SYS$OUTPUT "" | ||
867 | $ WRITE SYS$OUTPUT - | ||
868 | "Building DECNet Based SSL Engine, [.",ARCHD,".EXE.SSL]SSL_TASK.EXE" | ||
869 | $! | ||
870 | $! Go To The [.SSL] Directory. | ||
871 | $! | ||
872 | $ SET DEFAULT SYS$DISK:[.SSL] | ||
873 | $! | ||
874 | $! Build The [.xxx.EXE.SSL]SSL_TASK.EXE | ||
875 | $! | ||
876 | $ @SSL-LIB SSL_TASK 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" - | ||
877 | "''ISSEVEN'" "''POINTER_SIZE'" "''ZLIB'" | ||
878 | $! | ||
879 | $! Go Back To The Main Directory. | ||
880 | $! | ||
881 | $ SET DEFAULT [-] | ||
882 | $! | ||
883 | $! That's All, Time To RETURN. | ||
884 | $! | ||
885 | $ RETURN | ||
886 | $! | ||
887 | $! Build The OpenSSL Test Programs. | ||
888 | $! | ||
889 | $ TEST: | ||
890 | $! | ||
891 | $! Tell The User What We Are Doing. | ||
892 | $! | ||
893 | $ WRITE SYS$OUTPUT "" | ||
894 | $ WRITE SYS$OUTPUT "Building The OpenSSL [.",ARCHD,".EXE.TEST] Test Utilities." | ||
895 | $! | ||
896 | $! Go To The [.TEST] Directory. | ||
897 | $! | ||
898 | $ SET DEFAULT SYS$DISK:[.TEST] | ||
899 | $! | ||
900 | $! Build The Test Programs. | ||
901 | $! | ||
902 | $ @MAKETESTS 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" "''ISSEVEN'" - | ||
903 | "''POINTER_SIZE'" "''ZLIB'" | ||
904 | $! | ||
905 | $! Go Back To The Main Directory. | ||
906 | $! | ||
907 | $ SET DEFAULT [-] | ||
908 | $! | ||
909 | $! That's All, Time To RETURN. | ||
910 | $! | ||
911 | $ RETURN | ||
912 | $! | ||
913 | $! Build The OpenSSL Application Programs. | ||
914 | $! | ||
915 | $ APPS: | ||
916 | $! | ||
917 | $! Tell The User What We Are Doing. | ||
918 | $! | ||
919 | $ WRITE SYS$OUTPUT "" | ||
920 | $ WRITE SYS$OUTPUT "Building OpenSSL [.",ARCHD,".EXE.APPS] Applications." | ||
921 | $! | ||
922 | $! Go To The [.APPS] Directory. | ||
923 | $! | ||
924 | $ SET DEFAULT SYS$DISK:[.APPS] | ||
925 | $! | ||
926 | $! Build The Application Programs. | ||
927 | $! | ||
928 | $ @MAKEAPPS 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" "''ISSEVEN'" - | ||
929 | "" "''POINTER_SIZE'" "''ZLIB'" | ||
930 | $! | ||
931 | $! Go Back To The Main Directory. | ||
932 | $! | ||
933 | $ SET DEFAULT [-] | ||
934 | $! | ||
935 | $! That's All, Time To RETURN. | ||
936 | $! | ||
937 | $ RETURN | ||
938 | $! | ||
939 | $! Build The OpenSSL Application Programs. | ||
940 | $! | ||
941 | $ ENGINES: | ||
942 | $! | ||
943 | $! Tell The User What We Are Doing. | ||
944 | $! | ||
945 | $ WRITE SYS$OUTPUT "" | ||
946 | $ WRITE SYS$OUTPUT "Building OpenSSL [.",ARCHD,".EXE.ENGINES] Engines." | ||
947 | $! | ||
948 | $! Go To The [.ENGINES] Directory. | ||
949 | $! | ||
950 | $ SET DEFAULT SYS$DISK:[.ENGINES] | ||
951 | $! | ||
952 | $! Build The Application Programs. | ||
953 | $! | ||
954 | $ @MAKEENGINES ENGINES 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" - | ||
955 | "''ISSEVEN'" "''BUILDPART'" "''POINTER_SIZE'" "''ZLIB'" | ||
956 | $! | ||
957 | $! Go Back To The Main Directory. | ||
958 | $! | ||
959 | $ SET DEFAULT [-] | ||
960 | $! | ||
961 | $! That's All, Time To RETURN. | ||
962 | $! | ||
963 | $ RETURN | ||
964 | $! | ||
965 | $! Check The User's Options. | ||
966 | $! | ||
967 | $ CHECK_OPTIONS: | ||
968 | $! | ||
969 | $! Check if there's a "part", and separate it out | ||
970 | $! | ||
971 | $ BUILDPART = F$ELEMENT(1,"/",P1) | ||
972 | $ IF BUILDPART .EQS. "/" | ||
973 | $ THEN | ||
974 | $ BUILDPART = "" | ||
975 | $ ELSE | ||
976 | $ P1 = F$EXTRACT(0,F$LENGTH(P1) - F$LENGTH(BUILDPART) - 1, P1) | ||
977 | $ ENDIF | ||
978 | $! | ||
979 | $! Check To See If P1 Is Blank. | ||
980 | $! | ||
981 | $ IF (P1.EQS."ALL") | ||
982 | $ THEN | ||
983 | $! | ||
984 | $! P1 Is ALL, So Build Everything. | ||
985 | $! | ||
986 | $ BUILDCOMMAND = "ALL" | ||
987 | $! | ||
988 | $! Else... | ||
989 | $! | ||
990 | $ ELSE | ||
991 | $! | ||
992 | $! Else, Check To See If P1 Has A Valid Argument. | ||
993 | $! | ||
994 | $ IF (P1.EQS."CONFIG").OR.(P1.EQS."BUILDINF").OR.(P1.EQS."SOFTLINKS") - | ||
995 | .OR.(P1.EQS."BUILDALL") - | ||
996 | .OR.(P1.EQS."CRYPTO").OR.(P1.EQS."SSL") - | ||
997 | .OR.(P1.EQS."SSL_TASK").OR.(P1.EQS."TEST").OR.(P1.EQS."APPS") - | ||
998 | .OR.(P1.EQS."ENGINES") | ||
999 | $ THEN | ||
1000 | $! | ||
1001 | $! A Valid Argument. | ||
1002 | $! | ||
1003 | $ BUILDCOMMAND = P1 | ||
1004 | $! | ||
1005 | $! Else... | ||
1006 | $! | ||
1007 | $ ELSE | ||
1008 | $! | ||
1009 | $! Tell The User We Don't Know What They Want. | ||
1010 | $! | ||
1011 | $ WRITE SYS$OUTPUT "" | ||
1012 | $ WRITE SYS$OUTPUT "USAGE: @MAKEVMS.COM [Target] [Pointer size] [Debug option] <Compiler>" | ||
1013 | $ WRITE SYS$OUTPUT "" | ||
1014 | $ WRITE SYS$OUTPUT "Example: @MAKEVMS.COM ALL """" NODEBUG " | ||
1015 | $ WRITE SYS$OUTPUT "" | ||
1016 | $ WRITE SYS$OUTPUT "The Target ",P1," Is Invalid. The Valid Target Options Are:" | ||
1017 | $ WRITE SYS$OUTPUT "" | ||
1018 | $ WRITE SYS$OUTPUT " ALL : Just Build Everything." | ||
1019 | $ WRITE SYS$OUTPUT " CONFIG : Just build the [.CRYPTO._xxx]OPENSSLCONF.H file." | ||
1020 | $ WRITE SYS$OUTPUT " BUILDINF : Just build the [.CRYPTO._xxx]BUILDINF.H file." | ||
1021 | $ WRITE SYS$OUTPUT " SOFTLINKS: Just Fix The Unix soft links." | ||
1022 | $ WRITE SYS$OUTPUT " BUILDALL : Same as ALL, except CONFIG, BUILDINF and SOFTILNKS aren't done." | ||
1023 | $ WRITE SYS$OUTPUT " CRYPTO : To Build Just The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library." | ||
1024 | $ WRITE SYS$OUTPUT " CRYPTO/x : To Build Just The x Part Of The" | ||
1025 | $ WRITE SYS$OUTPUT " [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library." | ||
1026 | $ WRITE SYS$OUTPUT " SSL : To Build Just The [.xxx.EXE.SSL]LIBSSL.OLB Library." | ||
1027 | $ WRITE SYS$OUTPUT " SSL_TASK : To Build Just The [.xxx.EXE.SSL]SSL_TASK.EXE Program." | ||
1028 | $ WRITE SYS$OUTPUT " TEST : To Build Just The OpenSSL Test Programs." | ||
1029 | $ WRITE SYS$OUTPUT " APPS : To Build Just The OpenSSL Application Programs." | ||
1030 | $ WRITE SYS$OUTPUT " ENGINES : To Build Just The ENGINES" | ||
1031 | $ WRITE SYS$OUTPUT "" | ||
1032 | $ WRITE SYS$OUTPUT " Where 'xxx' Stands For:" | ||
1033 | $ WRITE SYS$OUTPUT "" | ||
1034 | $ WRITE SYS$OUTPUT " ALPHA[64]: Alpha Architecture." | ||
1035 | $ WRITE SYS$OUTPUT " IA64[64] : IA64 Architecture." | ||
1036 | $ WRITE SYS$OUTPUT " VAX : VAX Architecture." | ||
1037 | $ WRITE SYS$OUTPUT "" | ||
1038 | $! | ||
1039 | $! Time To EXIT. | ||
1040 | $! | ||
1041 | $ GOTO TIDY | ||
1042 | $! | ||
1043 | $! End The Valid Argument Check. | ||
1044 | $! | ||
1045 | $ ENDIF | ||
1046 | $! | ||
1047 | $! End The P1 Check. | ||
1048 | $! | ||
1049 | $ ENDIF | ||
1050 | $! | ||
1051 | $! Check P2 (POINTER_SIZE). | ||
1052 | $! | ||
1053 | $ IF (P2 .NES. "") .AND. (ARCH .NES. "VAX") | ||
1054 | $ THEN | ||
1055 | $! | ||
1056 | $ IF (P2 .EQS. "32") | ||
1057 | $ THEN | ||
1058 | $ POINTER_SIZE = "32" | ||
1059 | $ ELSE | ||
1060 | $ POINTER_SIZE = F$EDIT( P2, "COLLAPSE, UPCASE") | ||
1061 | $ IF ((POINTER_SIZE .EQS. "64") .OR. - | ||
1062 | (POINTER_SIZE .EQS. "64=") .OR. - | ||
1063 | (POINTER_SIZE .EQS. "64=ARGV")) | ||
1064 | $ THEN | ||
1065 | $ ARCHD = ARCH+ "_64" | ||
1066 | $ LIB32 = "" | ||
1067 | $ ELSE | ||
1068 | $! | ||
1069 | $! Tell The User Entered An Invalid Option. | ||
1070 | $! | ||
1071 | $ WRITE SYS$OUTPUT "" | ||
1072 | $ WRITE SYS$OUTPUT "The Option ", P2, - | ||
1073 | " Is Invalid. The Valid Options Are:" | ||
1074 | $ WRITE SYS$OUTPUT "" | ||
1075 | $ WRITE SYS$OUTPUT - | ||
1076 | " """" : Compile with default (short) pointers." | ||
1077 | $ WRITE SYS$OUTPUT - | ||
1078 | " 32 : Compile with 32-bit (short) pointers." | ||
1079 | $ WRITE SYS$OUTPUT - | ||
1080 | " 64 : Compile with 64-bit (long) pointers (auto ARGV)." | ||
1081 | $ WRITE SYS$OUTPUT - | ||
1082 | " 64= : Compile with 64-bit (long) pointers (no ARGV)." | ||
1083 | $ WRITE SYS$OUTPUT - | ||
1084 | " 64=ARGV : Compile with 64-bit (long) pointers (ARGV)." | ||
1085 | $ WRITE SYS$OUTPUT "" | ||
1086 | $! | ||
1087 | $! Time To EXIT. | ||
1088 | $! | ||
1089 | $ GOTO TIDY | ||
1090 | $! | ||
1091 | $ ENDIF | ||
1092 | $! | ||
1093 | $ ENDIF | ||
1094 | $! | ||
1095 | $! End The P2 (POINTER_SIZE) Check. | ||
1096 | $! | ||
1097 | $ ENDIF | ||
1098 | $! | ||
1099 | $! Check To See If P3 Is Blank. | ||
1100 | $! | ||
1101 | $ IF (P3.EQS."NODEBUG") | ||
1102 | $ THEN | ||
1103 | $! | ||
1104 | $! P3 Is NODEBUG, So Compile Without Debugger Information. | ||
1105 | $! | ||
1106 | $ DEBUGGER = "NODEBUG" | ||
1107 | $! | ||
1108 | $! Else... | ||
1109 | $! | ||
1110 | $ ELSE | ||
1111 | $! | ||
1112 | $! Check To See If We Are To Compile With Debugger Information. | ||
1113 | $! | ||
1114 | $ IF (P3.EQS."DEBUG") | ||
1115 | $ THEN | ||
1116 | $! | ||
1117 | $! Compile With Debugger Information. | ||
1118 | $! | ||
1119 | $ DEBUGGER = "DEBUG" | ||
1120 | $! | ||
1121 | $! Else... | ||
1122 | $! | ||
1123 | $ ELSE | ||
1124 | $! | ||
1125 | $! Tell The User Entered An Invalid Option. | ||
1126 | $! | ||
1127 | $ WRITE SYS$OUTPUT "" | ||
1128 | $ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:" | ||
1129 | $ WRITE SYS$OUTPUT "" | ||
1130 | $ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information." | ||
1131 | $ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information." | ||
1132 | $ WRITE SYS$OUTPUT "" | ||
1133 | $! | ||
1134 | $! Time To EXIT. | ||
1135 | $! | ||
1136 | $ GOTO TIDY | ||
1137 | $! | ||
1138 | $! End The Valid Argument Check. | ||
1139 | $! | ||
1140 | $ ENDIF | ||
1141 | $! | ||
1142 | $! End The P3 Check. | ||
1143 | $! | ||
1144 | $ ENDIF | ||
1145 | $! | ||
1146 | $! Check To See If P4 Is Blank. | ||
1147 | $! | ||
1148 | $ IF (P4.EQS."") | ||
1149 | $ THEN | ||
1150 | $! | ||
1151 | $! O.K., The User Didn't Specify A Compiler, Let's Try To | ||
1152 | $! Find Out Which One To Use. | ||
1153 | $! | ||
1154 | $! Check To See If We Have GNU C. | ||
1155 | $! | ||
1156 | $ IF (F$TRNLNM("GNU_CC").NES."") | ||
1157 | $ THEN | ||
1158 | $! | ||
1159 | $! Looks Like GNUC, Set To Use GNUC. | ||
1160 | $! | ||
1161 | $ COMPILER = "GNUC" | ||
1162 | $! | ||
1163 | $! Tell The User We Are Using GNUC. | ||
1164 | $! | ||
1165 | $ WRITE SYS$OUTPUT "Using GNU 'C' Compiler." | ||
1166 | $! | ||
1167 | $! End The GNU C Compiler Check. | ||
1168 | $! | ||
1169 | $ ENDIF | ||
1170 | $! | ||
1171 | $! Check To See If We Have VAXC Or DECC. | ||
1172 | $! | ||
1173 | $ IF (F$GETSYI("CPU").GE.128).OR.(F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC") | ||
1174 | $ THEN | ||
1175 | $! | ||
1176 | $! Looks Like DECC, Set To Use DECC. | ||
1177 | $! | ||
1178 | $ COMPILER = "DECC" | ||
1179 | $! | ||
1180 | $! Tell The User We Are Using DECC. | ||
1181 | $! | ||
1182 | $ WRITE SYS$OUTPUT "Using DECC 'C' Compiler." | ||
1183 | $! | ||
1184 | $! Else... | ||
1185 | $! | ||
1186 | $ ELSE | ||
1187 | $! | ||
1188 | $! Looks Like VAXC, Set To Use VAXC. | ||
1189 | $! | ||
1190 | $ COMPILER = "VAXC" | ||
1191 | $! | ||
1192 | $! Tell The User We Are Using VAX C. | ||
1193 | $! | ||
1194 | $ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler." | ||
1195 | $! | ||
1196 | $! End The DECC & VAXC Compiler Check. | ||
1197 | $! | ||
1198 | $ ENDIF | ||
1199 | $! | ||
1200 | $! Else... | ||
1201 | $! | ||
1202 | $ ELSE | ||
1203 | $! | ||
1204 | $! Check To See If The User Entered A Valid Parameter. | ||
1205 | $! | ||
1206 | $ IF (P4.EQS."VAXC").OR.(P4.EQS."DECC").OR.(P4.EQS."GNUC")!.OR.(P4.EQS."LINK") | ||
1207 | $ THEN | ||
1208 | $! | ||
1209 | $! Check To See If The User Wanted To Just LINK. | ||
1210 | $! | ||
1211 | $ IF (P4.EQS."LINK") | ||
1212 | $ THEN | ||
1213 | $! | ||
1214 | $! Looks Like LINK-only | ||
1215 | $! | ||
1216 | $ COMPILER = "LINK" | ||
1217 | $! | ||
1218 | $! Tell The User We Are Only Linking. | ||
1219 | $! | ||
1220 | $ WRITE SYS$OUTPUT "LINK Only. This actually NOT YET SUPPORTED!" | ||
1221 | $! | ||
1222 | $! End LINK Check. | ||
1223 | $! | ||
1224 | $ ENDIF | ||
1225 | $! | ||
1226 | $! Check To See If The User Wanted DECC. | ||
1227 | $! | ||
1228 | $ IF (P4.EQS."DECC") | ||
1229 | $ THEN | ||
1230 | $! | ||
1231 | $! Looks Like DECC, Set To Use DECC. | ||
1232 | $! | ||
1233 | $ COMPILER = "DECC" | ||
1234 | $! | ||
1235 | $! Tell The User We Are Using DECC. | ||
1236 | $! | ||
1237 | $ WRITE SYS$OUTPUT "Using DECC 'C' Compiler." | ||
1238 | $! | ||
1239 | $! End DECC Check. | ||
1240 | $! | ||
1241 | $ ENDIF | ||
1242 | $! | ||
1243 | $! Check To See If We Are To Use VAXC. | ||
1244 | $! | ||
1245 | $ IF (P4.EQS."VAXC") | ||
1246 | $ THEN | ||
1247 | $! | ||
1248 | $! Looks Like VAXC, Set To Use VAXC. | ||
1249 | $! | ||
1250 | $ COMPILER = "VAXC" | ||
1251 | $! | ||
1252 | $! Tell The User We Are Using VAX C. | ||
1253 | $! | ||
1254 | $ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler." | ||
1255 | $! | ||
1256 | $! End VAXC Check | ||
1257 | $! | ||
1258 | $ ENDIF | ||
1259 | $! | ||
1260 | $! Check To See If We Are To Use GNU C. | ||
1261 | $! | ||
1262 | $ IF (P4.EQS."GNUC") | ||
1263 | $ THEN | ||
1264 | $! | ||
1265 | $! Looks Like GNUC, Set To Use GNUC. | ||
1266 | $! | ||
1267 | $ COMPILER = "GNUC" | ||
1268 | $! | ||
1269 | $! Tell The User We Are Using GNUC. | ||
1270 | $! | ||
1271 | $ WRITE SYS$OUTPUT "Using GNU 'C' Compiler." | ||
1272 | $! | ||
1273 | $! End The GNU C Check. | ||
1274 | $! | ||
1275 | $ ENDIF | ||
1276 | $! | ||
1277 | $! Else The User Entered An Invalid Argument. | ||
1278 | $! | ||
1279 | $ ELSE | ||
1280 | $! | ||
1281 | $! Tell The User We Don't Know What They Want. | ||
1282 | $! | ||
1283 | $ WRITE SYS$OUTPUT "" | ||
1284 | $ WRITE SYS$OUTPUT "The Option ",P4," Is Invalid. The Valid Options Are:" | ||
1285 | $ WRITE SYS$OUTPUT "" | ||
1286 | $ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C." | ||
1287 | $ WRITE SYS$OUTPUT " DECC : To Compile With DEC C." | ||
1288 | $ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C." | ||
1289 | $ WRITE SYS$OUTPUT "" | ||
1290 | $! | ||
1291 | $! Time To EXIT. | ||
1292 | $! | ||
1293 | $ GOTO TIDY | ||
1294 | $! | ||
1295 | $! End The Valid Argument Check. | ||
1296 | $! | ||
1297 | $ ENDIF | ||
1298 | $! | ||
1299 | $! End The P4 Check. | ||
1300 | $! | ||
1301 | $ ENDIF | ||
1302 | $! | ||
1303 | $! Time to check the contents of P5, and to make sure we get the correct | ||
1304 | $! library. | ||
1305 | $! | ||
1306 | $ IF P5.EQS."SOCKETSHR" .OR. P5.EQS."MULTINET" .OR. P5.EQS."UCX" - | ||
1307 | .OR. P5.EQS."TCPIP" .OR. P5.EQS."NONE" | ||
1308 | $ THEN | ||
1309 | $! | ||
1310 | $! Check to see if SOCKETSHR was chosen | ||
1311 | $! | ||
1312 | $ IF P5.EQS."SOCKETSHR" | ||
1313 | $ THEN | ||
1314 | $! | ||
1315 | $! Set the library to use SOCKETSHR | ||
1316 | $! | ||
1317 | $ TCPIP_LIB = "SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT /OPTIONS" | ||
1318 | $! | ||
1319 | $! Tell the user | ||
1320 | $! | ||
1321 | $ WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP" | ||
1322 | $! | ||
1323 | $! Done with SOCKETSHR | ||
1324 | $! | ||
1325 | $ ENDIF | ||
1326 | $! | ||
1327 | $! Check to see if MULTINET was chosen | ||
1328 | $! | ||
1329 | $ IF P5.EQS."MULTINET" | ||
1330 | $ THEN | ||
1331 | $! | ||
1332 | $! Set the library to use UCX emulation. | ||
1333 | $! | ||
1334 | $ P5 = "UCX" | ||
1335 | $! | ||
1336 | $! Tell the user | ||
1337 | $! | ||
1338 | $ WRITE SYS$OUTPUT "Using MultiNet via UCX emulation for TCP/IP" | ||
1339 | $! | ||
1340 | $! Done with MULTINET | ||
1341 | $! | ||
1342 | $ ENDIF | ||
1343 | $! | ||
1344 | $! Check to see if UCX was chosen | ||
1345 | $! | ||
1346 | $ IF P5.EQS."UCX" | ||
1347 | $ THEN | ||
1348 | $! | ||
1349 | $! Set the library to use UCX. | ||
1350 | $! | ||
1351 | $ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT /OPTIONS" | ||
1352 | $! | ||
1353 | $! Tell the user | ||
1354 | $! | ||
1355 | $ WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP" | ||
1356 | $! | ||
1357 | $! Done with UCX | ||
1358 | $! | ||
1359 | $ ENDIF | ||
1360 | $! | ||
1361 | $! Check to see if TCPIP was chosen | ||
1362 | $! | ||
1363 | $ IF P5.EQS."TCPIP" | ||
1364 | $ THEN | ||
1365 | $! | ||
1366 | $! Set the library to use TCPIP (post UCX). | ||
1367 | $! | ||
1368 | $ TCPIP_LIB = "SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT /OPTIONS" | ||
1369 | $! | ||
1370 | $! Tell the user | ||
1371 | $! | ||
1372 | $ WRITE SYS$OUTPUT "Using TCPIP (post UCX) for TCP/IP" | ||
1373 | $! | ||
1374 | $! Done with TCPIP | ||
1375 | $! | ||
1376 | $ ENDIF | ||
1377 | $! | ||
1378 | $! Check to see if NONE was chosen | ||
1379 | $! | ||
1380 | $ IF P5.EQS."NONE" | ||
1381 | $ THEN | ||
1382 | $! | ||
1383 | $! Do not use a TCPIP library. | ||
1384 | $! | ||
1385 | $ TCPIP_LIB = "" | ||
1386 | $! | ||
1387 | $! Tell the user | ||
1388 | $! | ||
1389 | $ WRITE SYS$OUTPUT "A specific TCPIP library will not be used." | ||
1390 | $! | ||
1391 | $! Done with NONE. | ||
1392 | $! | ||
1393 | $ ENDIF | ||
1394 | $! | ||
1395 | $! Set the TCPIP_TYPE symbol | ||
1396 | $! | ||
1397 | $ TCPIP_TYPE = P5 | ||
1398 | $! | ||
1399 | $! Print info | ||
1400 | $! | ||
1401 | $ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB | ||
1402 | $! | ||
1403 | $! Else The User Entered An Invalid Argument. | ||
1404 | $! | ||
1405 | $ ELSE | ||
1406 | $ IF P5 .NES. "" | ||
1407 | $ THEN | ||
1408 | $! | ||
1409 | $! Tell The User We Don't Know What They Want. | ||
1410 | $! | ||
1411 | $ WRITE SYS$OUTPUT "" | ||
1412 | $ WRITE SYS$OUTPUT "The Option ",P5," Is Invalid. The Valid Options Are:" | ||
1413 | $ WRITE SYS$OUTPUT "" | ||
1414 | $ WRITE SYS$OUTPUT " SOCKETSHR : To link with SOCKETSHR TCP/IP library." | ||
1415 | $ WRITE SYS$OUTPUT " UCX : To link with UCX TCP/IP library." | ||
1416 | $ WRITE SYS$OUTPUT " TCPIP : To link with TCPIP TCP/IP (post UCX) library." | ||
1417 | $ WRITE SYS$OUTPUT " NONE : To not link with a specific TCP/IP library." | ||
1418 | $ WRITE SYS$OUTPUT "" | ||
1419 | $! | ||
1420 | $! Time To EXIT. | ||
1421 | $! | ||
1422 | $ GOTO TIDY | ||
1423 | $ ELSE | ||
1424 | $! | ||
1425 | $! If TCPIP is not defined, then hardcode it to make | ||
1426 | $! it clear that no TCPIP is desired. | ||
1427 | $! | ||
1428 | $ IF P5 .EQS. "" | ||
1429 | $ THEN | ||
1430 | $ TCPIP_LIB = "" | ||
1431 | $ TCPIP_TYPE = "NONE" | ||
1432 | $ ELSE | ||
1433 | $! | ||
1434 | $! Set the TCPIP_TYPE symbol | ||
1435 | $! | ||
1436 | $ TCPIP_TYPE = P5 | ||
1437 | $ ENDIF | ||
1438 | $ ENDIF | ||
1439 | $! | ||
1440 | $! Done with TCP/IP libraries | ||
1441 | $! | ||
1442 | $ ENDIF | ||
1443 | $! | ||
1444 | $! Special Threads For OpenVMS v7.1 Or Later | ||
1445 | $! | ||
1446 | $! Written By: Richard Levitte | ||
1447 | $! richard@levitte.org | ||
1448 | $! | ||
1449 | $! | ||
1450 | $! Check To See If We Have A Option For P6. | ||
1451 | $! | ||
1452 | $ IF (P6.EQS."") | ||
1453 | $ THEN | ||
1454 | $! | ||
1455 | $! Get The Version Of VMS We Are Using. | ||
1456 | $! | ||
1457 | $ ISSEVEN := | ||
1458 | $ TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,VMS_VERSION)) | ||
1459 | $ TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP)) | ||
1460 | $! | ||
1461 | $! Check To See If The VMS Version Is v7.1 Or Later. | ||
1462 | $! | ||
1463 | $ IF (TMP.GE.71) | ||
1464 | $ THEN | ||
1465 | $! | ||
1466 | $! We Have OpenVMS v7.1 Or Later, So Use The Special Threads. | ||
1467 | $! | ||
1468 | $ ISSEVEN := ,PTHREAD_USE_D4 | ||
1469 | $! | ||
1470 | $! End The VMS Version Check. | ||
1471 | $! | ||
1472 | $ ENDIF | ||
1473 | $! | ||
1474 | $! End The P6 Check. | ||
1475 | $! | ||
1476 | $ ENDIF | ||
1477 | $! | ||
1478 | $! | ||
1479 | $! Check To See If We Have A ZLIB Option. | ||
1480 | $! | ||
1481 | $ ZLIB = P7 | ||
1482 | $ IF (ZLIB .NES. "") | ||
1483 | $ THEN | ||
1484 | $! | ||
1485 | $! Check for expected ZLIB files. | ||
1486 | $! | ||
1487 | $ err = 0 | ||
1488 | $ file1 = f$parse( "zlib.h", ZLIB, , , "SYNTAX_ONLY") | ||
1489 | $ if (f$search( file1) .eqs. "") | ||
1490 | $ then | ||
1491 | $ WRITE SYS$OUTPUT "" | ||
1492 | $ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid." | ||
1493 | $ WRITE SYS$OUTPUT " Can't find header: ''file1'" | ||
1494 | $ err = 1 | ||
1495 | $ endif | ||
1496 | $! | ||
1497 | $ file2 = f$parse( ZLIB, "libz.olb", , , "SYNTAX_ONLY") | ||
1498 | $ if (f$search( file2) .eqs. "") | ||
1499 | $ then | ||
1500 | $ if (err .eq. 0) | ||
1501 | $ then | ||
1502 | $ WRITE SYS$OUTPUT "" | ||
1503 | $ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid." | ||
1504 | $ endif | ||
1505 | $ WRITE SYS$OUTPUT " Can't find library: ''file2'" | ||
1506 | $ WRITE SYS$OUTPUT "" | ||
1507 | $ err = err+ 2 | ||
1508 | $ endif | ||
1509 | $ if (err .eq. 1) | ||
1510 | $ then | ||
1511 | $ WRITE SYS$OUTPUT "" | ||
1512 | $ endif | ||
1513 | $! | ||
1514 | $ if (err .ne. 0) | ||
1515 | $ then | ||
1516 | $ GOTO TIDY | ||
1517 | $ endif | ||
1518 | $! | ||
1519 | $! Print info | ||
1520 | $! | ||
1521 | $ WRITE SYS$OUTPUT "ZLIB library spec: ", file2 | ||
1522 | $! | ||
1523 | $! End The ZLIB Check. | ||
1524 | $! | ||
1525 | $ ENDIF | ||
1526 | $! | ||
1527 | $! Time To RETURN... | ||
1528 | $! | ||
1529 | $ RETURN | ||
1530 | $! | ||
1531 | $ TIDY: | ||
1532 | $! | ||
1533 | $! Close any open files. | ||
1534 | $! | ||
1535 | $ if (f$trnlnm( "h_file", "LNM$PROCESS", 0, "SUPERVISOR") .nes. "") then - | ||
1536 | close h_file | ||
1537 | $! | ||
1538 | $! Restore the original default device:[directory]. | ||
1539 | $! | ||
1540 | $ SET DEFAULT 'DEF_ORIG' | ||
1541 | $! | ||
1542 | $ EXIT | ||
1543 | $! | ||
diff --git a/src/lib/libssl/src/ms/32all.bat b/src/lib/libssl/src/ms/32all.bat deleted file mode 100644 index aaab9b0c9d..0000000000 --- a/src/lib/libssl/src/ms/32all.bat +++ /dev/null | |||
@@ -1,20 +0,0 @@ | |||
1 | set OPTS=no-asm | ||
2 | |||
3 | perl Configure VC-WIN32 | ||
4 | perl util\mkfiles.pl >MINFO | ||
5 | perl util\mk1mf.pl %OPTS% debug VC-WIN32 >d32.mak | ||
6 | perl util\mk1mf.pl %OPTS% VC-WIN32 >32.mak | ||
7 | perl util\mk1mf.pl %OPTS% debug dll VC-WIN32 >d32dll.mak | ||
8 | perl util\mk1mf.pl %OPTS% dll VC-WIN32 >32dll.mak | ||
9 | perl util\mkdef.pl 32 libeay > ms\libeay32.def | ||
10 | perl util\mkdef.pl 32 ssleay > ms\ssleay32.def | ||
11 | |||
12 | nmake -f d32.mak | ||
13 | @if errorlevel 1 goto end | ||
14 | nmake -f 32.mak | ||
15 | @if errorlevel 1 goto end | ||
16 | nmake -f d32dll.mak | ||
17 | @if errorlevel 1 goto end | ||
18 | nmake -f 32dll.mak | ||
19 | |||
20 | :end | ||
diff --git a/src/lib/libssl/src/ms/README b/src/lib/libssl/src/ms/README deleted file mode 100644 index 07f1925d5f..0000000000 --- a/src/lib/libssl/src/ms/README +++ /dev/null | |||
@@ -1,13 +0,0 @@ | |||
1 | Run these makefiles from the top level as in | ||
2 | nmake -f ms\makefilename | ||
3 | to build with visual C++ 4.[01]. | ||
4 | |||
5 | The results will be in the out directory. | ||
6 | |||
7 | These makefiles and def files were generated by typing | ||
8 | |||
9 | perl util\mk1mf.pl VC-NT >ms/nt.mak | ||
10 | perl util\mk1mf.pl VC-NT dll >ms/ntdll.mak | ||
11 | |||
12 | perl util\mkdef.pl 32 crypto > ms/crypto32.def | ||
13 | perl util\mkdef.pl 32 ssl > ms/ssl32.def | ||
diff --git a/src/lib/libssl/src/ms/applink.c b/src/lib/libssl/src/ms/applink.c deleted file mode 100644 index 54a0a64262..0000000000 --- a/src/lib/libssl/src/ms/applink.c +++ /dev/null | |||
@@ -1,94 +0,0 @@ | |||
1 | #define APPLINK_STDIN 1 | ||
2 | #define APPLINK_STDOUT 2 | ||
3 | #define APPLINK_STDERR 3 | ||
4 | #define APPLINK_FPRINTF 4 | ||
5 | #define APPLINK_FGETS 5 | ||
6 | #define APPLINK_FREAD 6 | ||
7 | #define APPLINK_FWRITE 7 | ||
8 | #define APPLINK_FSETMOD 8 | ||
9 | #define APPLINK_FEOF 9 | ||
10 | #define APPLINK_FCLOSE 10 /* should not be used */ | ||
11 | |||
12 | #define APPLINK_FOPEN 11 /* solely for completeness */ | ||
13 | #define APPLINK_FSEEK 12 | ||
14 | #define APPLINK_FTELL 13 | ||
15 | #define APPLINK_FFLUSH 14 | ||
16 | #define APPLINK_FERROR 15 | ||
17 | #define APPLINK_CLEARERR 16 | ||
18 | #define APPLINK_FILENO 17 /* to be used with below */ | ||
19 | |||
20 | #define APPLINK_OPEN 18 /* formally can't be used, as flags can vary */ | ||
21 | #define APPLINK_READ 19 | ||
22 | #define APPLINK_WRITE 20 | ||
23 | #define APPLINK_LSEEK 21 | ||
24 | #define APPLINK_CLOSE 22 | ||
25 | #define APPLINK_MAX 22 /* always same as last macro */ | ||
26 | |||
27 | #ifndef APPMACROS_ONLY | ||
28 | #include <stdio.h> | ||
29 | #include <io.h> | ||
30 | #include <fcntl.h> | ||
31 | |||
32 | static void *app_stdin(void) { return stdin; } | ||
33 | static void *app_stdout(void) { return stdout; } | ||
34 | static void *app_stderr(void) { return stderr; } | ||
35 | static int app_feof(FILE *fp) { return feof(fp); } | ||
36 | static int app_ferror(FILE *fp) { return ferror(fp); } | ||
37 | static void app_clearerr(FILE *fp) { clearerr(fp); } | ||
38 | static int app_fileno(FILE *fp) { return _fileno(fp); } | ||
39 | static int app_fsetmod(FILE *fp,char mod) | ||
40 | { return _setmode (_fileno(fp),mod=='b'?_O_BINARY:_O_TEXT); } | ||
41 | |||
42 | #ifdef __cplusplus | ||
43 | extern "C" { | ||
44 | #endif | ||
45 | |||
46 | __declspec(dllexport) | ||
47 | void ** | ||
48 | #if defined(__BORLANDC__) | ||
49 | __stdcall /* __stdcall appears to be the only way to get the name | ||
50 | * decoration right with Borland C. Otherwise it works | ||
51 | * purely incidentally, as we pass no parameters. */ | ||
52 | #else | ||
53 | __cdecl | ||
54 | #endif | ||
55 | OPENSSL_Applink(void) | ||
56 | { static int once=1; | ||
57 | static void *OPENSSL_ApplinkTable[APPLINK_MAX+1]={(void *)APPLINK_MAX}; | ||
58 | |||
59 | if (once) | ||
60 | { OPENSSL_ApplinkTable[APPLINK_STDIN] = app_stdin; | ||
61 | OPENSSL_ApplinkTable[APPLINK_STDOUT] = app_stdout; | ||
62 | OPENSSL_ApplinkTable[APPLINK_STDERR] = app_stderr; | ||
63 | OPENSSL_ApplinkTable[APPLINK_FPRINTF] = fprintf; | ||
64 | OPENSSL_ApplinkTable[APPLINK_FGETS] = fgets; | ||
65 | OPENSSL_ApplinkTable[APPLINK_FREAD] = fread; | ||
66 | OPENSSL_ApplinkTable[APPLINK_FWRITE] = fwrite; | ||
67 | OPENSSL_ApplinkTable[APPLINK_FSETMOD] = app_fsetmod; | ||
68 | OPENSSL_ApplinkTable[APPLINK_FEOF] = app_feof; | ||
69 | OPENSSL_ApplinkTable[APPLINK_FCLOSE] = fclose; | ||
70 | |||
71 | OPENSSL_ApplinkTable[APPLINK_FOPEN] = fopen; | ||
72 | OPENSSL_ApplinkTable[APPLINK_FSEEK] = fseek; | ||
73 | OPENSSL_ApplinkTable[APPLINK_FTELL] = ftell; | ||
74 | OPENSSL_ApplinkTable[APPLINK_FFLUSH] = fflush; | ||
75 | OPENSSL_ApplinkTable[APPLINK_FERROR] = app_ferror; | ||
76 | OPENSSL_ApplinkTable[APPLINK_CLEARERR] = app_clearerr; | ||
77 | OPENSSL_ApplinkTable[APPLINK_FILENO] = app_fileno; | ||
78 | |||
79 | OPENSSL_ApplinkTable[APPLINK_OPEN] = _open; | ||
80 | OPENSSL_ApplinkTable[APPLINK_READ] = _read; | ||
81 | OPENSSL_ApplinkTable[APPLINK_WRITE] = _write; | ||
82 | OPENSSL_ApplinkTable[APPLINK_LSEEK] = _lseek; | ||
83 | OPENSSL_ApplinkTable[APPLINK_CLOSE] = _close; | ||
84 | |||
85 | once = 0; | ||
86 | } | ||
87 | |||
88 | return OPENSSL_ApplinkTable; | ||
89 | } | ||
90 | |||
91 | #ifdef __cplusplus | ||
92 | } | ||
93 | #endif | ||
94 | #endif | ||
diff --git a/src/lib/libssl/src/ms/bcb4.bat b/src/lib/libssl/src/ms/bcb4.bat deleted file mode 100644 index 00fb9e8459..0000000000 --- a/src/lib/libssl/src/ms/bcb4.bat +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | perl Configure BC-32 | ||
2 | perl util\mkfiles.pl > MINFO | ||
3 | |||
4 | @rem create make file | ||
5 | perl util\mk1mf.pl no-asm BC-NT > bcb.mak | ||
6 | |||
diff --git a/src/lib/libssl/src/ms/certCA.srl b/src/lib/libssl/src/ms/certCA.srl deleted file mode 100644 index 2cfaa3ba20..0000000000 --- a/src/lib/libssl/src/ms/certCA.srl +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | 1D | ||
diff --git a/src/lib/libssl/src/ms/certCA.ss b/src/lib/libssl/src/ms/certCA.ss deleted file mode 100644 index b48c657ae0..0000000000 --- a/src/lib/libssl/src/ms/certCA.ss +++ /dev/null | |||
@@ -1,10 +0,0 @@ | |||
1 | -----BEGIN CERTIFICATE----- | ||
2 | MIIBXDCCAQYCAQAwDQYJKoZIhvcNAQEEBQAwOTELMAkGA1UEBhMCQVUxFzAVBgNV | ||
3 | BAoTDkRvZGd5IEJyb3RoZXJzMREwDwYDVQQDEwhEb2RneSBDQTAeFw05ODA3MjEw | ||
4 | NjUwMTZaFw05ODA4MjAwNjUwMTZaMDkxCzAJBgNVBAYTAkFVMRcwFQYDVQQKEw5E | ||
5 | b2RneSBCcm90aGVyczERMA8GA1UEAxMIRG9kZ3kgQ0EwXDANBgkqhkiG9w0BAQEF | ||
6 | AANLADBIAkEA0DQLenM/ncK6CwSEJhOO1WfZUPUEi4pvos9fHW459jh3rRDADgi3 | ||
7 | fiCYxoRVSQhvB47kDZ3ViNg5yrDhy7F9ywIDAQABMA0GCSqGSIb3DQEBBAUAA0EA | ||
8 | S564l3SBxJ+QcIXthGGDyP5zkxTf/1fHfelW9LNgu6lZTdy9Dlp/NecPekzRmZEM | ||
9 | WiGXGkKNeuo8PsnGJHP9Qg== | ||
10 | -----END CERTIFICATE----- | ||
diff --git a/src/lib/libssl/src/ms/certU.ss b/src/lib/libssl/src/ms/certU.ss deleted file mode 100644 index 095ea14330..0000000000 --- a/src/lib/libssl/src/ms/certU.ss +++ /dev/null | |||
@@ -1,10 +0,0 @@ | |||
1 | -----BEGIN CERTIFICATE----- | ||
2 | MIIBcTCCARsCARwwDQYJKoZIhvcNAQEEBQAwOTELMAkGA1UEBhMCQVUxFzAVBgNV | ||
3 | BAoTDkRvZGd5IEJyb3RoZXJzMREwDwYDVQQDEwhEb2RneSBDQTAeFw05ODA3MjEw | ||
4 | NjUwMjdaFw05ODA4MjAwNjUwMjdaME4xCzAJBgNVBAYTAkFVMRcwFQYDVQQKEw5E | ||
5 | b2RneSBCcm90aGVyczESMBAGA1UEAxMJQnJvdGhlciAxMRIwEAYDVQQDEwlCcm90 | ||
6 | aGVyIDIwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA0e4qorOr/zuLB9NvRaXhJVaI | ||
7 | HaGGasa7eMAjVPitWAXkN+DxXiGH1CnMgQraKiYzsEVP15xtxkevEvK5jJpOwwID | ||
8 | AQABMA0GCSqGSIb3DQEBBAUAA0EAZhcPV+SWwaszFuDTYc6fUurcV9OeXUqoxSQy | ||
9 | MnLZPTyWubHbbkUr9fUfdf7Cc7dFqGzag05VHkNQUS9VjMzjIQ== | ||
10 | -----END CERTIFICATE----- | ||
diff --git a/src/lib/libssl/src/ms/cmp.pl b/src/lib/libssl/src/ms/cmp.pl deleted file mode 100644 index 95b257fe4c..0000000000 --- a/src/lib/libssl/src/ms/cmp.pl +++ /dev/null | |||
@@ -1,47 +0,0 @@ | |||
1 | #!/usr/local/bin/perl | ||
2 | |||
3 | ($#ARGV == 1) || die "usage: cmp.pl <file1> <file2>\n"; | ||
4 | |||
5 | open(IN0,"<$ARGV[0]") || die "unable to open $ARGV[0]\n"; | ||
6 | open(IN1,"<$ARGV[1]") || die "unable to open $ARGV[1]\n"; | ||
7 | binmode IN0; | ||
8 | binmode IN1; | ||
9 | |||
10 | $tot=0; | ||
11 | $ret=1; | ||
12 | for (;;) | ||
13 | { | ||
14 | $n1=sysread(IN0,$b1,4096); | ||
15 | $n2=sysread(IN1,$b2,4096); | ||
16 | |||
17 | last if ($n1 != $n2); | ||
18 | last if ($b1 ne $b2); | ||
19 | last if ($n1 < 0); | ||
20 | if ($n1 == 0) | ||
21 | { | ||
22 | $ret=0; | ||
23 | last; | ||
24 | } | ||
25 | $tot+=$n1; | ||
26 | } | ||
27 | |||
28 | close(IN0); | ||
29 | close(IN1); | ||
30 | if ($ret) | ||
31 | { | ||
32 | printf STDERR "$ARGV[0] and $ARGV[1] are different\n"; | ||
33 | @a1=unpack("C*",$b1); | ||
34 | @a2=unpack("C*",$b2); | ||
35 | for ($i=0; $i<=$#a1; $i++) | ||
36 | { | ||
37 | if ($a1[$i] ne $a2[$i]) | ||
38 | { | ||
39 | printf "%02X %02X <<\n",$a1[$i],$a2[$i]; | ||
40 | last; | ||
41 | } | ||
42 | } | ||
43 | $nm=$tot+$n1; | ||
44 | $tot+=$i+1; | ||
45 | printf STDERR "diff at char $tot of $nm\n"; | ||
46 | } | ||
47 | exit($ret); | ||
diff --git a/src/lib/libssl/src/ms/do_ms.bat b/src/lib/libssl/src/ms/do_ms.bat deleted file mode 100644 index 55014d3fc3..0000000000 --- a/src/lib/libssl/src/ms/do_ms.bat +++ /dev/null | |||
@@ -1,11 +0,0 @@ | |||
1 | |||
2 | perl util\mkfiles.pl >MINFO | ||
3 | perl util\mk1mf.pl no-asm VC-WIN32 >ms\nt.mak | ||
4 | perl util\mk1mf.pl dll no-asm VC-WIN32 >ms\ntdll.mak | ||
5 | if x%OSVERSION% == x goto skipce | ||
6 | perl util\mk1mf.pl no-asm VC-CE >ms\ce.mak | ||
7 | perl util\mk1mf.pl dll no-asm VC-CE >ms\cedll.mak | ||
8 | :skipce | ||
9 | |||
10 | perl util\mkdef.pl 32 libeay > ms\libeay32.def | ||
11 | perl util\mkdef.pl 32 ssleay > ms\ssleay32.def | ||
diff --git a/src/lib/libssl/src/ms/do_nasm.bat b/src/lib/libssl/src/ms/do_nasm.bat deleted file mode 100644 index 7b3f3edbf0..0000000000 --- a/src/lib/libssl/src/ms/do_nasm.bat +++ /dev/null | |||
@@ -1,8 +0,0 @@ | |||
1 | |||
2 | perl util\mkfiles.pl >MINFO | ||
3 | perl util\mk1mf.pl nasm VC-WIN32 >ms\nt.mak | ||
4 | perl util\mk1mf.pl dll nasm VC-WIN32 >ms\ntdll.mak | ||
5 | perl util\mk1mf.pl nasm BC-NT >ms\bcb.mak | ||
6 | |||
7 | perl util\mkdef.pl 32 libeay > ms\libeay32.def | ||
8 | perl util\mkdef.pl 32 ssleay > ms\ssleay32.def | ||
diff --git a/src/lib/libssl/src/ms/do_nt.bat b/src/lib/libssl/src/ms/do_nt.bat deleted file mode 100644 index e2d525e05d..0000000000 --- a/src/lib/libssl/src/ms/do_nt.bat +++ /dev/null | |||
@@ -1,7 +0,0 @@ | |||
1 | |||
2 | perl util\mkfiles.pl >MINFO | ||
3 | perl util\mk1mf.pl no-asm VC-NT >ms\nt.mak | ||
4 | perl util\mk1mf.pl dll no-asm VC-NT >ms\ntdll.mak | ||
5 | |||
6 | perl util\mkdef.pl libeay NT > ms\libeay32.def | ||
7 | perl util\mkdef.pl ssleay NT > ms\ssleay32.def | ||
diff --git a/src/lib/libssl/src/ms/do_win64a.bat b/src/lib/libssl/src/ms/do_win64a.bat deleted file mode 100755 index ff8b19ccfd..0000000000 --- a/src/lib/libssl/src/ms/do_win64a.bat +++ /dev/null | |||
@@ -1,19 +0,0 @@ | |||
1 | perl util\mkfiles.pl >MINFO | ||
2 | |||
3 | cmd /c "nasm -f win64 -v" >NUL: 2>&1 | ||
4 | if %errorlevel% neq 0 goto ml64 | ||
5 | |||
6 | perl ms\uplink-x86_64.pl nasm > ms\uptable.asm | ||
7 | nasm -f win64 -o ms\uptable.obj ms\uptable.asm | ||
8 | goto proceed | ||
9 | |||
10 | :ml64 | ||
11 | perl ms\uplink-x86_64.pl masm > ms\uptable.asm | ||
12 | ml64 -c -Foms\uptable.obj ms\uptable.asm | ||
13 | |||
14 | :proceed | ||
15 | perl util\mk1mf.pl VC-WIN64A >ms\nt.mak | ||
16 | perl util\mk1mf.pl dll VC-WIN64A >ms\ntdll.mak | ||
17 | |||
18 | perl util\mkdef.pl 32 libeay > ms\libeay32.def | ||
19 | perl util\mkdef.pl 32 ssleay > ms\ssleay32.def | ||
diff --git a/src/lib/libssl/src/ms/do_win64i.bat b/src/lib/libssl/src/ms/do_win64i.bat deleted file mode 100755 index 088f5e1d0a..0000000000 --- a/src/lib/libssl/src/ms/do_win64i.bat +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | |||
2 | perl util\mkfiles.pl >MINFO | ||
3 | perl ms\uplink-ia64.pl > ms\uptable.asm | ||
4 | ias -o ms\uptable.obj ms\uptable.asm | ||
5 | perl util\mk1mf.pl VC-WIN64I >ms\nt.mak | ||
6 | perl util\mk1mf.pl dll VC-WIN64I >ms\ntdll.mak | ||
7 | |||
8 | perl util\mkdef.pl 32 libeay > ms\libeay32.def | ||
9 | perl util\mkdef.pl 32 ssleay > ms\ssleay32.def | ||
diff --git a/src/lib/libssl/src/ms/keyCA.ss b/src/lib/libssl/src/ms/keyCA.ss deleted file mode 100644 index 933c2cd6ed..0000000000 --- a/src/lib/libssl/src/ms/keyCA.ss +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | -----BEGIN RSA PRIVATE KEY----- | ||
2 | MIIBOwIBAAJBANA0C3pzP53CugsEhCYTjtVn2VD1BIuKb6LPXx1uOfY4d60QwA4I | ||
3 | t34gmMaEVUkIbweO5A2d1YjYOcqw4cuxfcsCAwEAAQJAOT9WOKEfyN0WEpl3TJDs | ||
4 | ITmgw2XbjhLOh1HFsW3xegWlaOuhL/wGamz7n7zzL/RQF3JP/VvpGk2F8VD9JhwT | ||
5 | wQIhAPmqM3fLttBoCQuwQRdIPfB7Ps3THqx6N8AJ04z3I1ejAiEA1XyDd7bLpWrw | ||
6 | /oA8CmR4b/KCGfvRwAL/Qej/rQliw7kCIQCYRzSvO8ScpuflhjKdZcXJuRJcbgnG | ||
7 | f6Ejc5rh3xdiawIhALMmLdzEFNjXiSzIx5mg/kBTLUJIw5dx7GqO8B9xBORhAiA5 | ||
8 | oTN/hgvvrkkmRsHQpNBmzAEGBzhMEEq9lD6ZWrTSRg== | ||
9 | -----END RSA PRIVATE KEY----- | ||
diff --git a/src/lib/libssl/src/ms/keyU.ss b/src/lib/libssl/src/ms/keyU.ss deleted file mode 100644 index 05d356e7a5..0000000000 --- a/src/lib/libssl/src/ms/keyU.ss +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | -----BEGIN RSA PRIVATE KEY----- | ||
2 | MIIBPAIBAAJBANHuKqKzq/87iwfTb0Wl4SVWiB2hhmrGu3jAI1T4rVgF5Dfg8V4h | ||
3 | h9QpzIEK2iomM7BFT9ecbcZHrxLyuYyaTsMCAwEAAQJBAIxtM6n4ZCJscxj+D13Y | ||
4 | k13Fn3Gqvd6pJ3ijlj7dxh6tRBBQ3W9qmQflyvEc81giI2XtbVYBOEJKtJ1cWWZm | ||
5 | gAkCIQDpEoOuc4KCI5ti6aMJvtxlXWNHbkXCxtbeIjH4+FnH9QIhAOaU3XVeWWOK | ||
6 | PnnO87KniDjHQqWLnooivDGRK+FUKeDXAiEA2MjEvFVqFVvDIsxHPkBNROcI+Z6i | ||
7 | ulkx76kErBtrfqUCIHN5uBLQZmngUPuFtiwRlLoCqJDphENfs+oK7vPQx4xPAiEA | ||
8 | hnY2Ulrpld83IG6bUs95Loc8Fk81hez5YwmhsFEXVtk= | ||
9 | -----END RSA PRIVATE KEY----- | ||
diff --git a/src/lib/libssl/src/ms/mingw32.bat b/src/lib/libssl/src/ms/mingw32.bat deleted file mode 100644 index 06b5733878..0000000000 --- a/src/lib/libssl/src/ms/mingw32.bat +++ /dev/null | |||
@@ -1,90 +0,0 @@ | |||
1 | @rem OpenSSL with Mingw32+GNU as | ||
2 | @rem --------------------------- | ||
3 | |||
4 | perl Configure mingw %1 %2 %3 %4 %5 %6 %7 %8 | ||
5 | |||
6 | @echo off | ||
7 | |||
8 | perl -e "exit 1 if '%1' eq 'no-asm'" | ||
9 | if errorlevel 1 goto noasm | ||
10 | |||
11 | echo Generating x86 for GNU assember | ||
12 | |||
13 | echo Bignum | ||
14 | cd crypto\bn\asm | ||
15 | perl bn-586.pl gaswin > bn-win32.s | ||
16 | perl co-586.pl gaswin > co-win32.s | ||
17 | cd ..\..\.. | ||
18 | |||
19 | echo DES | ||
20 | cd crypto\des\asm | ||
21 | perl des-586.pl gaswin > d-win32.s | ||
22 | cd ..\..\.. | ||
23 | |||
24 | echo crypt | ||
25 | cd crypto\des\asm | ||
26 | perl crypt586.pl gaswin > y-win32.s | ||
27 | cd ..\..\.. | ||
28 | |||
29 | echo Blowfish | ||
30 | cd crypto\bf\asm | ||
31 | perl bf-586.pl gaswin > b-win32.s | ||
32 | cd ..\..\.. | ||
33 | |||
34 | echo CAST5 | ||
35 | cd crypto\cast\asm | ||
36 | perl cast-586.pl gaswin > c-win32.s | ||
37 | cd ..\..\.. | ||
38 | |||
39 | echo RC4 | ||
40 | cd crypto\rc4\asm | ||
41 | perl rc4-586.pl gaswin > r4-win32.s | ||
42 | cd ..\..\.. | ||
43 | |||
44 | echo MD5 | ||
45 | cd crypto\md5\asm | ||
46 | perl md5-586.pl gaswin > m5-win32.s | ||
47 | cd ..\..\.. | ||
48 | |||
49 | echo SHA1 | ||
50 | cd crypto\sha\asm | ||
51 | perl sha1-586.pl gaswin > s1-win32.s | ||
52 | cd ..\..\.. | ||
53 | |||
54 | echo RIPEMD160 | ||
55 | cd crypto\ripemd\asm | ||
56 | perl rmd-586.pl gaswin > rm-win32.s | ||
57 | cd ..\..\.. | ||
58 | |||
59 | echo RC5\32 | ||
60 | cd crypto\rc5\asm | ||
61 | perl rc5-586.pl gaswin > r5-win32.s | ||
62 | cd ..\..\.. | ||
63 | |||
64 | :noasm | ||
65 | |||
66 | echo Generating makefile | ||
67 | perl util\mkfiles.pl >MINFO | ||
68 | perl util\mk1mf.pl gaswin Mingw32 >ms\mingw32a.mak | ||
69 | echo Generating DLL definition files | ||
70 | perl util\mkdef.pl 32 libeay >ms\libeay32.def | ||
71 | if errorlevel 1 goto end | ||
72 | perl util\mkdef.pl 32 ssleay >ms\ssleay32.def | ||
73 | if errorlevel 1 goto end | ||
74 | |||
75 | rem copy ms\tlhelp32.h outinc | ||
76 | |||
77 | echo Building the libraries | ||
78 | mingw32-make -f ms/mingw32a.mak | ||
79 | if errorlevel 1 goto end | ||
80 | |||
81 | echo Generating the DLLs and input libraries | ||
82 | dllwrap --dllname libeay32.dll --output-lib out/libeay32.a --def ms/libeay32.def out/libcrypto.a -lws2_32 -lgdi32 | ||
83 | if errorlevel 1 goto end | ||
84 | dllwrap --dllname libssl32.dll --output-lib out/libssl32.a --def ms/ssleay32.def out/libssl.a out/libeay32.a | ||
85 | if errorlevel 1 goto end | ||
86 | |||
87 | echo Done compiling OpenSSL | ||
88 | |||
89 | :end | ||
90 | |||
diff --git a/src/lib/libssl/src/ms/mw.bat b/src/lib/libssl/src/ms/mw.bat deleted file mode 100644 index 35e00a4508..0000000000 --- a/src/lib/libssl/src/ms/mw.bat +++ /dev/null | |||
@@ -1,26 +0,0 @@ | |||
1 | @rem OpenSSL with Mingw32 | ||
2 | @rem -------------------- | ||
3 | |||
4 | @rem Makefile | ||
5 | perl util\mkfiles.pl >MINFO | ||
6 | perl util\mk1mf.pl Mingw32 >ms\mingw32.mak | ||
7 | @rem DLL definition files | ||
8 | perl util\mkdef.pl 32 libeay >ms\libeay32.def | ||
9 | if errorlevel 1 goto end | ||
10 | perl util\mkdef.pl 32 ssleay >ms\ssleay32.def | ||
11 | if errorlevel 1 goto end | ||
12 | |||
13 | @rem Build the libraries | ||
14 | make -f ms/mingw32.mak | ||
15 | if errorlevel 1 goto end | ||
16 | |||
17 | @rem Generate the DLLs and input libraries | ||
18 | dllwrap --dllname libeay32.dll --output-lib out/libeay32.a --def ms/libeay32.def out/libcrypto.a -lws2_32 -lgdi32 | ||
19 | if errorlevel 1 goto end | ||
20 | dllwrap --dllname libssl32.dll --output-lib out/libssl32.a --def ms/ssleay32.def out/libssl.a out/libeay32.a | ||
21 | if errorlevel 1 goto end | ||
22 | |||
23 | echo Done compiling OpenSSL | ||
24 | |||
25 | :end | ||
26 | |||
diff --git a/src/lib/libssl/src/ms/req2CA.ss b/src/lib/libssl/src/ms/req2CA.ss deleted file mode 100644 index d061fb2a07..0000000000 --- a/src/lib/libssl/src/ms/req2CA.ss +++ /dev/null | |||
@@ -1,29 +0,0 @@ | |||
1 | Certificate Request: | ||
2 | Data: | ||
3 | Version: 0 (0x0) | ||
4 | Subject: C=AU, O=Dodgy Brothers, CN=Dodgy CA | ||
5 | Subject Public Key Info: | ||
6 | Public Key Algorithm: rsaEncryption | ||
7 | RSA Public Key: (512 bit) | ||
8 | Modulus (512 bit): | ||
9 | 00:d0:34:0b:7a:73:3f:9d:c2:ba:0b:04:84:26:13: | ||
10 | 8e:d5:67:d9:50:f5:04:8b:8a:6f:a2:cf:5f:1d:6e: | ||
11 | 39:f6:38:77:ad:10:c0:0e:08:b7:7e:20:98:c6:84: | ||
12 | 55:49:08:6f:07:8e:e4:0d:9d:d5:88:d8:39:ca:b0: | ||
13 | e1:cb:b1:7d:cb | ||
14 | Exponent: 65537 (0x10001) | ||
15 | Attributes: | ||
16 | a0:00 | ||
17 | Signature Algorithm: md5WithRSAEncryption | ||
18 | 8d:15:e6:8e:49:0f:07:fb:e0:72:ad:f0:04:9a:c8:5d:e7:1b: | ||
19 | ed:99:c9:c3:3c:f5:8e:4d:a1:5e:e1:40:75:2c:24:f0:c6:dd: | ||
20 | 10:87:35:26:1d:cc:79:3f:a2:c6:a0:04:c8:52:78:ed:26:32: | ||
21 | d3:1b:a7:cd:5e:8c:55:92:dd:88 | ||
22 | -----BEGIN CERTIFICATE REQUEST----- | ||
23 | MIHzMIGeAgEAMDkxCzAJBgNVBAYTAkFVMRcwFQYDVQQKEw5Eb2RneSBCcm90aGVy | ||
24 | czERMA8GA1UEAxMIRG9kZ3kgQ0EwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA0DQL | ||
25 | enM/ncK6CwSEJhOO1WfZUPUEi4pvos9fHW459jh3rRDADgi3fiCYxoRVSQhvB47k | ||
26 | DZ3ViNg5yrDhy7F9ywIDAQABoAAwDQYJKoZIhvcNAQEEBQADQQCNFeaOSQ8H++By | ||
27 | rfAEmshd5xvtmcnDPPWOTaFe4UB1LCTwxt0QhzUmHcx5P6LGoATIUnjtJjLTG6fN | ||
28 | XoxVkt2I | ||
29 | -----END CERTIFICATE REQUEST----- | ||
diff --git a/src/lib/libssl/src/ms/reqCA.ss b/src/lib/libssl/src/ms/reqCA.ss deleted file mode 100644 index 1f7138cadc..0000000000 --- a/src/lib/libssl/src/ms/reqCA.ss +++ /dev/null | |||
@@ -1,8 +0,0 @@ | |||
1 | -----BEGIN CERTIFICATE REQUEST----- | ||
2 | MIHzMIGeAgEAMDkxCzAJBgNVBAYTAkFVMRcwFQYDVQQKEw5Eb2RneSBCcm90aGVy | ||
3 | czERMA8GA1UEAxMIRG9kZ3kgQ0EwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA0DQL | ||
4 | enM/ncK6CwSEJhOO1WfZUPUEi4pvos9fHW459jh3rRDADgi3fiCYxoRVSQhvB47k | ||
5 | DZ3ViNg5yrDhy7F9ywIDAQABoAAwDQYJKoZIhvcNAQEFBQADQQA5DZSZgDXs8flG | ||
6 | GZf4SGr8QpqkxSu9bZOYp/ySuz1khj7aupBrvZBmqZcZx4ZjAUN7UQpMWu2gyfKa | ||
7 | mAiiLPFN | ||
8 | -----END CERTIFICATE REQUEST----- | ||
diff --git a/src/lib/libssl/src/ms/reqU.ss b/src/lib/libssl/src/ms/reqU.ss deleted file mode 100644 index 91cce5966d..0000000000 --- a/src/lib/libssl/src/ms/reqU.ss +++ /dev/null | |||
@@ -1,8 +0,0 @@ | |||
1 | -----BEGIN CERTIFICATE REQUEST----- | ||
2 | MIIBCDCBswIBADBOMQswCQYDVQQGEwJBVTEXMBUGA1UEChMORG9kZ3kgQnJvdGhl | ||
3 | cnMxEjAQBgNVBAMTCUJyb3RoZXIgMTESMBAGA1UEAxMJQnJvdGhlciAyMFwwDQYJ | ||
4 | KoZIhvcNAQEBBQADSwAwSAJBANHuKqKzq/87iwfTb0Wl4SVWiB2hhmrGu3jAI1T4 | ||
5 | rVgF5Dfg8V4hh9QpzIEK2iomM7BFT9ecbcZHrxLyuYyaTsMCAwEAAaAAMA0GCSqG | ||
6 | SIb3DQEBAgUAA0EAhB0p6LbiVq+XshLo5sBQN0rsROC1OgWrdS6ZUmMaigOKK069 | ||
7 | r1o+dGwbM5VCYGTZf0PW9OtGuArGct0laL5h4w== | ||
8 | -----END CERTIFICATE REQUEST----- | ||
diff --git a/src/lib/libssl/src/ms/speed32.bat b/src/lib/libssl/src/ms/speed32.bat deleted file mode 100644 index 95f7ce9505..0000000000 --- a/src/lib/libssl/src/ms/speed32.bat +++ /dev/null | |||
@@ -1,37 +0,0 @@ | |||
1 | set makefile=ms\nt.mak | ||
2 | |||
3 | perl Configure b | ||
4 | del tmp\*.obj | ||
5 | nmake -f %makefile% | ||
6 | nmake -f %makefile% | ||
7 | nmake -f %makefile% | ||
8 | out\ssleay version -v -b -f >speed.1 | ||
9 | out\ssleay speed >speed.1l | ||
10 | |||
11 | perl Configure bl-4c-2c | ||
12 | del tmp\rc4*.obj tmp\bn*.obj tmp\md2_dgst.obj | ||
13 | nmake -f %makefile% | ||
14 | nmake -f %makefile% | ||
15 | nmake -f %makefile% | ||
16 | out\ssleay speed rc4 rsa md2 >speed.2l | ||
17 | |||
18 | perl Configure bl-4c-ri | ||
19 | del tmp\rc4*.obj | ||
20 | nmake -f %makefile% | ||
21 | nmake -f %makefile% | ||
22 | nmake -f %makefile% | ||
23 | out\ssleay speed rc4 >speed.3l | ||
24 | |||
25 | perl Configure b2-is-ri-dp | ||
26 | del tmp\i_*.obj tmp\rc4*.obj tmp\ecb_enc.obj tmp\bn*.obj | ||
27 | nmake -f %makefile% | ||
28 | nmake -f %makefile% | ||
29 | nmake -f %makefile% | ||
30 | out\ssleay speed rsa rc4 idea des >speed.4l | ||
31 | |||
32 | type speed.1 >speed.log | ||
33 | type speed.1l >>speed.log | ||
34 | perl util\sp-diff.pl speed.1l speed.2l >>speed.log | ||
35 | perl util\sp-diff.pl speed.1l speed.3l >>speed.log | ||
36 | perl util\sp-diff.pl speed.1l speed.4l >>speed.log | ||
37 | |||
diff --git a/src/lib/libssl/src/ms/tenc.bat b/src/lib/libssl/src/ms/tenc.bat deleted file mode 100644 index a4fa7f3652..0000000000 --- a/src/lib/libssl/src/ms/tenc.bat +++ /dev/null | |||
@@ -1,14 +0,0 @@ | |||
1 | rem called by testenc | ||
2 | |||
3 | echo test %1 %2 %3 %4 %5 %6 | ||
4 | %ssleay% %1 %2 %3 %4 %5 %6 -e -bufsize 113 -k test -in %input% -out %tmp1% | ||
5 | %ssleay% %1 %2 %3 %4 %5 %6 -d -bufsize 157 -k test -in %tmp1% -out %out1% | ||
6 | %cmp% %input% %out1% | ||
7 | if errorlevel 1 goto err | ||
8 | |||
9 | echo test base64 %1 %2 %3 %4 %5 %6 | ||
10 | %ssleay% %1 %2 %3 %4 %5 %6 -a -e -bufsize 113 -k test -in %input% -out %tmp1% | ||
11 | %ssleay% %1 %2 %3 %4 %5 %6 -a -d -bufsize 157 -k test -in %tmp1% -out %out1% | ||
12 | %cmp% %input% %out1% | ||
13 | |||
14 | :err | ||
diff --git a/src/lib/libssl/src/ms/tencce.bat b/src/lib/libssl/src/ms/tencce.bat deleted file mode 100644 index c8b1acd4b4..0000000000 --- a/src/lib/libssl/src/ms/tencce.bat +++ /dev/null | |||
@@ -1,19 +0,0 @@ | |||
1 | rem called by testencce | ||
2 | |||
3 | echo test %1 %2 %3 %4 %5 %6 | ||
4 | cecopy %input% CE:\OpenSSL | ||
5 | cerun CE:\OpenSSL\%ssleay% %1 %2 %3 %4 %5 %6 -e -bufsize 113 -k test -in \OpenSSL\%input% -out \OpenSSL\%tmp1% | ||
6 | cerun CE:\OpenSSL\%ssleay% %1 %2 %3 %4 %5 %6 -d -bufsize 157 -k test -in \OpenSSL\%tmp1% -out \OpenSSL\%out1% | ||
7 | del %out1% >nul 2>&1 | ||
8 | cecopy CE:\OpenSSL\%out1% . | ||
9 | %cmp% %input% %out1% | ||
10 | if errorlevel 1 goto err | ||
11 | |||
12 | echo test base64 %1 %2 %3 %4 %5 %6 | ||
13 | cerun CE:\OpenSSL\%ssleay% %1 %2 %3 %4 %5 %6 -a -e -bufsize 113 -k test -in \OpenSSL\%input% -out \OpenSSL\%tmp1% | ||
14 | cerun CE:\OpenSSL\%ssleay% %1 %2 %3 %4 %5 %6 -a -d -bufsize 157 -k test -in \OpenSSL\%tmp1% -out \OpenSSL\%out1% | ||
15 | del %out1% >nul 2>&1 | ||
16 | cecopy CE:\OpenSSL\%out1% . | ||
17 | %cmp% %input% %out1% | ||
18 | |||
19 | :err | ||
diff --git a/src/lib/libssl/src/ms/test.bat b/src/lib/libssl/src/ms/test.bat deleted file mode 100644 index f490546ebb..0000000000 --- a/src/lib/libssl/src/ms/test.bat +++ /dev/null | |||
@@ -1,185 +0,0 @@ | |||
1 | @echo off | ||
2 | |||
3 | set test=..\ms | ||
4 | set opath=%PATH% | ||
5 | PATH=..\ms;%PATH% | ||
6 | set OPENSSL_CONF=..\apps\openssl.cnf | ||
7 | |||
8 | rem run this from inside the bin directory | ||
9 | |||
10 | echo rsa_test | ||
11 | rsa_test | ||
12 | if errorlevel 1 goto done | ||
13 | |||
14 | echo destest | ||
15 | destest | ||
16 | if errorlevel 1 goto done | ||
17 | |||
18 | echo ideatest | ||
19 | ideatest | ||
20 | if errorlevel 1 goto done | ||
21 | |||
22 | echo bftest | ||
23 | bftest | ||
24 | if errorlevel 1 goto done | ||
25 | |||
26 | echo shatest | ||
27 | shatest | ||
28 | if errorlevel 1 goto done | ||
29 | |||
30 | echo sha1test | ||
31 | sha1test | ||
32 | if errorlevel 1 goto done | ||
33 | |||
34 | echo md5test | ||
35 | md5test | ||
36 | if errorlevel 1 goto done | ||
37 | |||
38 | echo rc2test | ||
39 | rc2test | ||
40 | if errorlevel 1 goto done | ||
41 | |||
42 | echo rc4test | ||
43 | rc4test | ||
44 | if errorlevel 1 goto done | ||
45 | |||
46 | echo randtest | ||
47 | randtest | ||
48 | if errorlevel 1 goto done | ||
49 | |||
50 | echo dhtest | ||
51 | dhtest | ||
52 | if errorlevel 1 goto done | ||
53 | |||
54 | echo exptest | ||
55 | exptest | ||
56 | if errorlevel 1 goto done | ||
57 | |||
58 | echo dsatest | ||
59 | dsatest | ||
60 | if errorlevel 1 goto done | ||
61 | |||
62 | echo ectest | ||
63 | ectest | ||
64 | if errorlevel 1 goto done | ||
65 | |||
66 | echo testenc | ||
67 | call %test%\testenc openssl | ||
68 | if errorlevel 1 goto done | ||
69 | |||
70 | echo testpem | ||
71 | call %test%\testpem openssl | ||
72 | if errorlevel 1 goto done | ||
73 | |||
74 | echo testss | ||
75 | call %test%\testss openssl | ||
76 | if errorlevel 1 goto done | ||
77 | |||
78 | set SSL_TEST=ssltest -key keyU.ss -cert certU.ss -c_key keyU.ss -c_cert certU.ss -CAfile certCA.ss | ||
79 | |||
80 | echo test sslv2 | ||
81 | ssltest -ssl2 | ||
82 | if errorlevel 1 goto done | ||
83 | |||
84 | echo test sslv2 with server authentication | ||
85 | %SSL_TEST% -ssl2 -server_auth | ||
86 | if errorlevel 1 goto done | ||
87 | |||
88 | echo test sslv2 with client authentication | ||
89 | %SSL_TEST% -ssl2 -client_auth | ||
90 | if errorlevel 1 goto done | ||
91 | |||
92 | echo test sslv2 with both client and server authentication | ||
93 | %SSL_TEST% -ssl2 -server_auth -client_auth | ||
94 | if errorlevel 1 goto done | ||
95 | |||
96 | echo test sslv3 | ||
97 | ssltest -ssl3 | ||
98 | if errorlevel 1 goto done | ||
99 | |||
100 | echo test sslv3 with server authentication | ||
101 | %SSL_TEST% -ssl3 -server_auth | ||
102 | if errorlevel 1 goto done | ||
103 | |||
104 | echo test sslv3 with client authentication | ||
105 | %SSL_TEST% -ssl3 -client_auth | ||
106 | if errorlevel 1 goto done | ||
107 | |||
108 | echo test sslv3 with both client and server authentication | ||
109 | %SSL_TEST% -ssl3 -server_auth -client_auth | ||
110 | if errorlevel 1 goto done | ||
111 | |||
112 | echo test sslv2/sslv3 | ||
113 | ssltest | ||
114 | if errorlevel 1 goto done | ||
115 | |||
116 | echo test sslv2/sslv3 with server authentication | ||
117 | %SSL_TEST% -server_auth | ||
118 | if errorlevel 1 goto done | ||
119 | |||
120 | echo test sslv2/sslv3 with client authentication | ||
121 | %SSL_TEST% -client_auth | ||
122 | if errorlevel 1 goto done | ||
123 | |||
124 | echo test sslv2/sslv3 with both client and server authentication | ||
125 | %SSL_TEST% -server_auth -client_auth | ||
126 | if errorlevel 1 goto done | ||
127 | |||
128 | echo test sslv2 via BIO pair | ||
129 | ssltest -bio_pair -ssl2 | ||
130 | if errorlevel 1 goto done | ||
131 | |||
132 | echo test sslv2/sslv3 with 1024 bit DHE via BIO pair | ||
133 | ssltest -bio_pair -dhe1024dsa -v | ||
134 | if errorlevel 1 goto done | ||
135 | |||
136 | echo test sslv2 with server authentication via BIO pair | ||
137 | %SSL_TEST% -bio_pair -ssl2 -server_auth | ||
138 | if errorlevel 1 goto done | ||
139 | |||
140 | echo test sslv2 with client authentication via BIO pair | ||
141 | %SSL_TEST% -bio_pair -ssl2 -client_auth | ||
142 | if errorlevel 1 goto done | ||
143 | |||
144 | echo test sslv2 with both client and server authentication via BIO pair | ||
145 | %SSL_TEST% -bio_pair -ssl2 -server_auth -client_auth | ||
146 | if errorlevel 1 goto done | ||
147 | |||
148 | echo test sslv3 via BIO pair | ||
149 | ssltest -bio_pair -ssl3 | ||
150 | if errorlevel 1 goto done | ||
151 | |||
152 | echo test sslv3 with server authentication via BIO pair | ||
153 | %SSL_TEST% -bio_pair -ssl3 -server_auth | ||
154 | if errorlevel 1 goto done | ||
155 | |||
156 | echo test sslv3 with client authentication via BIO pair | ||
157 | %SSL_TEST% -bio_pair -ssl3 -client_auth | ||
158 | if errorlevel 1 goto done | ||
159 | |||
160 | echo test sslv3 with both client and server authentication via BIO pair | ||
161 | %SSL_TEST% -bio_pair -ssl3 -server_auth -client_auth | ||
162 | if errorlevel 1 goto done | ||
163 | |||
164 | echo test sslv2/sslv3 via BIO pair | ||
165 | ssltest -bio_pair | ||
166 | if errorlevel 1 goto done | ||
167 | |||
168 | echo test sslv2/sslv3 with server authentication | ||
169 | %SSL_TEST% -bio_pair -server_auth | ||
170 | if errorlevel 1 goto done | ||
171 | |||
172 | echo test sslv2/sslv3 with client authentication via BIO pair | ||
173 | %SSL_TEST% -bio_pair -client_auth | ||
174 | if errorlevel 1 goto done | ||
175 | |||
176 | echo test sslv2/sslv3 with both client and server authentication via BIO pair | ||
177 | %SSL_TEST% -bio_pair -server_auth -client_auth | ||
178 | if errorlevel 1 goto done | ||
179 | |||
180 | echo passed all tests | ||
181 | goto end | ||
182 | :done | ||
183 | echo problems..... | ||
184 | :end | ||
185 | PATH=%opath% | ||
diff --git a/src/lib/libssl/src/ms/testce.bat b/src/lib/libssl/src/ms/testce.bat deleted file mode 100644 index 2ab010be6a..0000000000 --- a/src/lib/libssl/src/ms/testce.bat +++ /dev/null | |||
@@ -1,234 +0,0 @@ | |||
1 | @echo off | ||
2 | |||
3 | cemkdir CE:\OpenSSL | ||
4 | |||
5 | set test=..\ms | ||
6 | set opath=%PATH% | ||
7 | PATH=..\ms;%PATH% | ||
8 | cecopy ..\apps\openssl.cnf CE:\OpenSSL | ||
9 | set OPENSSL_CONF=\OpenSSL\openssl.cnf | ||
10 | set HOME=\OpenSSL | ||
11 | set CERUN_PASS_ENV=OPENSSL_CONF HOME | ||
12 | |||
13 | rem run this from inside the bin directory | ||
14 | |||
15 | rem Copy the DLL's (though they'll only exist if we're in out32dll) | ||
16 | if exist libeay32.dll cecopy libeay32.dll CE:\OpenSSL | ||
17 | if exist ssleay32.dll cecopy ssleay32.dll CE:\OpenSSL | ||
18 | |||
19 | echo rsa_test | ||
20 | call %test%\testce2 rsa_test | ||
21 | if errorlevel 1 goto done | ||
22 | |||
23 | echo destest | ||
24 | call %test%\testce2 destest | ||
25 | if errorlevel 1 goto done | ||
26 | |||
27 | echo ideatest | ||
28 | call %test%\testce2 ideatest | ||
29 | if errorlevel 1 goto done | ||
30 | |||
31 | echo bftest | ||
32 | call %test%\testce2 bftest | ||
33 | if errorlevel 1 goto done | ||
34 | |||
35 | echo shatest | ||
36 | call %test%\testce2 shatest | ||
37 | if errorlevel 1 goto done | ||
38 | |||
39 | echo sha1test | ||
40 | call %test%\testce2 sha1test | ||
41 | if errorlevel 1 goto done | ||
42 | |||
43 | echo md5test | ||
44 | call %test%\testce2 md5test | ||
45 | if errorlevel 1 goto done | ||
46 | |||
47 | echo md2test | ||
48 | call %test%\testce2 md2test | ||
49 | if errorlevel 1 goto done | ||
50 | |||
51 | echo mdc2test | ||
52 | call %test%\testce2 mdc2test | ||
53 | if errorlevel 1 goto done | ||
54 | |||
55 | echo rc2test | ||
56 | call %test%\testce2 rc2test | ||
57 | if errorlevel 1 goto done | ||
58 | |||
59 | echo rc4test | ||
60 | call %test%\testce2 rc4test | ||
61 | if errorlevel 1 goto done | ||
62 | |||
63 | echo randtest | ||
64 | call %test%\testce2 randtest | ||
65 | if errorlevel 1 goto done | ||
66 | |||
67 | echo dhtest | ||
68 | call %test%\testce2 dhtest | ||
69 | if errorlevel 1 goto done | ||
70 | |||
71 | echo exptest | ||
72 | call %test%\testce2 exptest | ||
73 | if errorlevel 1 goto done | ||
74 | |||
75 | echo dsatest | ||
76 | call %test%\testce2 dsatest | ||
77 | if errorlevel 1 goto done | ||
78 | |||
79 | echo testenc | ||
80 | call %test%\testencce openssl.exe | ||
81 | if errorlevel 1 goto done | ||
82 | |||
83 | echo testpem | ||
84 | call %test%\testpemce openssl.exe | ||
85 | if errorlevel 1 goto done | ||
86 | |||
87 | cecopy openssl.exe CE:\OpenSSL | ||
88 | |||
89 | echo verify | ||
90 | copy ..\certs\*.pem cert.tmp >nul | ||
91 | cecopy cert.tmp CE:\OpenSSL | ||
92 | cemkdir CE:\OpenSSL\certs | ||
93 | rem cecopy ..\certs\*.pem CE:\OpenSSL\certs | ||
94 | cecopy ..\certs\ca-cert.pem CE:\OpenSSL\certs | ||
95 | cecopy ..\certs\dsa-ca.pem CE:\OpenSSL\certs | ||
96 | cecopy ..\certs\dsa-pca.pem CE:\OpenSSL\certs | ||
97 | cecopy ..\certs\factory.pem CE:\OpenSSL\certs | ||
98 | cecopy ..\certs\ICE-CA.pem CE:\OpenSSL\certs | ||
99 | cecopy ..\certs\ICE-root.pem CE:\OpenSSL\certs | ||
100 | cecopy ..\certs\ICE-user.pem CE:\OpenSSL\certs | ||
101 | cecopy ..\certs\nortelCA.pem CE:\OpenSSL\certs | ||
102 | cecopy ..\certs\pca-cert.pem CE:\OpenSSL\certs | ||
103 | cecopy ..\certs\RegTP-4R.pem CE:\OpenSSL\certs | ||
104 | cecopy ..\certs\RegTP-5R.pem CE:\OpenSSL\certs | ||
105 | cecopy ..\certs\RegTP-6R.pem CE:\OpenSSL\certs | ||
106 | cecopy ..\certs\rsa-cca.pem CE:\OpenSSL\certs | ||
107 | cecopy ..\certs\thawteCb.pem CE:\OpenSSL\certs | ||
108 | cecopy ..\certs\thawteCp.pem CE:\OpenSSL\certs | ||
109 | cecopy ..\certs\timCA.pem CE:\OpenSSL\certs | ||
110 | cecopy ..\certs\tjhCA.pem CE:\OpenSSL\certs | ||
111 | cecopy ..\certs\vsign1.pem CE:\OpenSSL\certs | ||
112 | cecopy ..\certs\vsign2.pem CE:\OpenSSL\certs | ||
113 | cecopy ..\certs\vsign3.pem CE:\OpenSSL\certs | ||
114 | cecopy ..\certs\vsignss.pem CE:\OpenSSL\certs | ||
115 | cecopy ..\certs\vsigntca.pem CE:\OpenSSL\certs | ||
116 | cerun CE:\OpenSSL\openssl verify -CAfile \OpenSSL\cert.tmp \OpenSSL\certs\*.pem | ||
117 | |||
118 | echo testss | ||
119 | call %test%\testssce openssl.exe | ||
120 | if errorlevel 1 goto done | ||
121 | |||
122 | cecopy ssltest.exe CE:\OpenSSL | ||
123 | cecopy ..\apps\server.pem CE:\OpenSSL | ||
124 | cecopy ..\apps\client.pem CE:\OpenSSL | ||
125 | |||
126 | echo test sslv2 | ||
127 | cerun CE:\OpenSSL\ssltest -ssl2 | ||
128 | if errorlevel 1 goto done | ||
129 | |||
130 | echo test sslv2 with server authentication | ||
131 | cerun CE:\OpenSSL\ssltest -ssl2 -server_auth -CAfile \OpenSSL\cert.tmp | ||
132 | if errorlevel 1 goto done | ||
133 | |||
134 | echo test sslv2 with client authentication | ||
135 | cerun CE:\OpenSSL\ssltest -ssl2 -client_auth -CAfile \OpenSSL\cert.tmp | ||
136 | if errorlevel 1 goto done | ||
137 | |||
138 | echo test sslv2 with both client and server authentication | ||
139 | cerun CE:\OpenSSL\ssltest -ssl2 -server_auth -client_auth -CAfile \OpenSSL\cert.tmp | ||
140 | if errorlevel 1 goto done | ||
141 | |||
142 | echo test sslv3 | ||
143 | cerun CE:\OpenSSL\ssltest -ssl3 | ||
144 | if errorlevel 1 goto done | ||
145 | |||
146 | echo test sslv3 with server authentication | ||
147 | cerun CE:\OpenSSL\ssltest -ssl3 -server_auth -CAfile \OpenSSL\cert.tmp | ||
148 | if errorlevel 1 goto done | ||
149 | |||
150 | echo test sslv3 with client authentication | ||
151 | cerun CE:\OpenSSL\ssltest -ssl3 -client_auth -CAfile \OpenSSL\cert.tmp | ||
152 | if errorlevel 1 goto done | ||
153 | |||
154 | echo test sslv3 with both client and server authentication | ||
155 | cerun CE:\OpenSSL\ssltest -ssl3 -server_auth -client_auth -CAfile \OpenSSL\cert.tmp | ||
156 | if errorlevel 1 goto done | ||
157 | |||
158 | echo test sslv2/sslv3 | ||
159 | cerun CE:\OpenSSL\ssltest | ||
160 | if errorlevel 1 goto done | ||
161 | |||
162 | echo test sslv2/sslv3 with server authentication | ||
163 | cerun CE:\OpenSSL\ssltest -server_auth -CAfile \OpenSSL\cert.tmp | ||
164 | if errorlevel 1 goto done | ||
165 | |||
166 | echo test sslv2/sslv3 with client authentication | ||
167 | cerun CE:\OpenSSL\ssltest -client_auth -CAfile \OpenSSL\cert.tmp | ||
168 | if errorlevel 1 goto done | ||
169 | |||
170 | echo test sslv2/sslv3 with both client and server authentication | ||
171 | cerun CE:\OpenSSL\ssltest -server_auth -client_auth -CAfile \OpenSSL\cert.tmp | ||
172 | if errorlevel 1 goto done | ||
173 | |||
174 | echo test sslv2 via BIO pair | ||
175 | cerun CE:\OpenSSL\ssltest -bio_pair -ssl2 | ||
176 | if errorlevel 1 goto done | ||
177 | |||
178 | echo test sslv2/sslv3 with 1024 bit DHE via BIO pair | ||
179 | cerun CE:\OpenSSL\ssltest -bio_pair -dhe1024dsa -v | ||
180 | if errorlevel 1 goto done | ||
181 | |||
182 | echo test sslv2 with server authentication via BIO pair | ||
183 | cerun CE:\OpenSSL\ssltest -bio_pair -ssl2 -server_auth -CAfile \OpenSSL\cert.tmp | ||
184 | if errorlevel 1 goto done | ||
185 | |||
186 | echo test sslv2 with client authentication via BIO pair | ||
187 | cerun CE:\OpenSSL\ssltest -bio_pair -ssl2 -client_auth -CAfile \OpenSSL\cert.tmp | ||
188 | if errorlevel 1 goto done | ||
189 | |||
190 | echo test sslv2 with both client and server authentication via BIO pair | ||
191 | cerun CE:\OpenSSL\ssltest -bio_pair -ssl2 -server_auth -client_auth -CAfile \OpenSSL\cert.tmp | ||
192 | if errorlevel 1 goto done | ||
193 | |||
194 | echo test sslv3 via BIO pair | ||
195 | cerun CE:\OpenSSL\ssltest -bio_pair -ssl3 | ||
196 | if errorlevel 1 goto done | ||
197 | |||
198 | echo test sslv3 with server authentication via BIO pair | ||
199 | cerun CE:\OpenSSL\ssltest -bio_pair -ssl3 -server_auth -CAfile \OpenSSL\cert.tmp | ||
200 | if errorlevel 1 goto done | ||
201 | |||
202 | echo test sslv3 with client authentication via BIO pair | ||
203 | cerun CE:\OpenSSL\ssltest -bio_pair -ssl3 -client_auth -CAfile \OpenSSL\cert.tmp | ||
204 | if errorlevel 1 goto done | ||
205 | |||
206 | echo test sslv3 with both client and server authentication via BIO pair | ||
207 | cerun CE:\OpenSSL\ssltest -bio_pair -ssl3 -server_auth -client_auth -CAfile \OpenSSL\cert.tmp | ||
208 | if errorlevel 1 goto done | ||
209 | |||
210 | echo test sslv2/sslv3 via BIO pair | ||
211 | cerun CE:\OpenSSL\ssltest | ||
212 | if errorlevel 1 goto done | ||
213 | |||
214 | echo test sslv2/sslv3 with server authentication | ||
215 | cerun CE:\OpenSSL\ssltest -bio_pair -server_auth -CAfile \OpenSSL\cert.tmp | ||
216 | if errorlevel 1 goto done | ||
217 | |||
218 | echo test sslv2/sslv3 with client authentication via BIO pair | ||
219 | cerun CE:\OpenSSL\ssltest -bio_pair -client_auth -CAfile \OpenSSL\cert.tmp | ||
220 | if errorlevel 1 goto done | ||
221 | |||
222 | echo test sslv2/sslv3 with both client and server authentication via BIO pair | ||
223 | cerun CE:\OpenSSL\ssltest -bio_pair -server_auth -client_auth -CAfile \OpenSSL\cert.tmp | ||
224 | if errorlevel 1 goto done | ||
225 | |||
226 | del cert.tmp | ||
227 | |||
228 | echo passed all tests | ||
229 | goto end | ||
230 | :done | ||
231 | echo problems..... | ||
232 | :end | ||
233 | PATH=%opath% | ||
234 | |||
diff --git a/src/lib/libssl/src/ms/testce2.bat b/src/lib/libssl/src/ms/testce2.bat deleted file mode 100644 index 24265b948f..0000000000 --- a/src/lib/libssl/src/ms/testce2.bat +++ /dev/null | |||
@@ -1,2 +0,0 @@ | |||
1 | cecopy %1.exe CE:\OpenSSL | ||
2 | cerun CE:\OpenSSL\%1 %2 %3 %4 %5 %6 %7 %8 %9 | ||
diff --git a/src/lib/libssl/src/ms/testenc.bat b/src/lib/libssl/src/ms/testenc.bat deleted file mode 100644 index f8e90939ed..0000000000 --- a/src/lib/libssl/src/ms/testenc.bat +++ /dev/null | |||
@@ -1,94 +0,0 @@ | |||
1 | @echo off | ||
2 | echo start testenc | ||
3 | |||
4 | path=..\ms;%path% | ||
5 | set ssleay=%1% | ||
6 | set input=..\ms\testenc.bat | ||
7 | set tmp1=..\ms\cipher.out | ||
8 | set out1=..\ms\clear.out | ||
9 | set cmp=perl ..\ms\cmp.pl | ||
10 | |||
11 | cd | ||
12 | call tenc.bat enc | ||
13 | if errorlevel 1 goto err | ||
14 | |||
15 | call tenc.bat rc4 | ||
16 | if errorlevel 1 goto err | ||
17 | |||
18 | call tenc.bat des-cfb | ||
19 | if errorlevel 1 goto err | ||
20 | |||
21 | call tenc.bat des-ede-cfb | ||
22 | if errorlevel 1 goto err | ||
23 | |||
24 | call tenc.bat des-ede3-cfb | ||
25 | if errorlevel 1 goto err | ||
26 | |||
27 | call tenc.bat des-ofb | ||
28 | if errorlevel 1 goto err | ||
29 | |||
30 | call tenc.bat des-ede-ofb | ||
31 | if errorlevel 1 goto err | ||
32 | |||
33 | call tenc.bat des-ede3-ofb | ||
34 | if errorlevel 1 goto err | ||
35 | |||
36 | call tenc.bat des-ecb | ||
37 | if errorlevel 1 goto err | ||
38 | |||
39 | call tenc.bat des-ede | ||
40 | if errorlevel 1 goto err | ||
41 | |||
42 | call tenc.bat des-ede3 | ||
43 | if errorlevel 1 goto err | ||
44 | |||
45 | call tenc.bat des-cbc | ||
46 | if errorlevel 1 goto err | ||
47 | |||
48 | call tenc.bat des-ede-cbc | ||
49 | if errorlevel 1 goto err | ||
50 | |||
51 | call tenc.bat des-ede3-cbc | ||
52 | if errorlevel 1 goto err | ||
53 | |||
54 | call tenc.bat idea-ecb | ||
55 | if errorlevel 1 goto err | ||
56 | |||
57 | call tenc.bat idea-cfb | ||
58 | if errorlevel 1 goto err | ||
59 | |||
60 | call tenc.bat idea-ofb | ||
61 | if errorlevel 1 goto err | ||
62 | |||
63 | call tenc.bat idea-cbc | ||
64 | if errorlevel 1 goto err | ||
65 | |||
66 | call tenc.bat rc2-ecb | ||
67 | if errorlevel 1 goto err | ||
68 | |||
69 | call tenc.bat rc2-cfb | ||
70 | if errorlevel 1 goto err | ||
71 | |||
72 | call tenc.bat rc2-ofb | ||
73 | if errorlevel 1 goto err | ||
74 | |||
75 | call tenc.bat rc2-cbc | ||
76 | if errorlevel 1 goto err | ||
77 | |||
78 | call tenc.bat bf-ecb | ||
79 | if errorlevel 1 goto err | ||
80 | |||
81 | call tenc.bat bf-cfb | ||
82 | if errorlevel 1 goto err | ||
83 | |||
84 | call tenc.bat bf-ofb | ||
85 | if errorlevel 1 goto err | ||
86 | |||
87 | call tenc.bat bf-cbc | ||
88 | if errorlevel 1 goto err | ||
89 | |||
90 | echo OK | ||
91 | del %out1% | ||
92 | del %tmp1% | ||
93 | :err | ||
94 | |||
diff --git a/src/lib/libssl/src/ms/testencce.bat b/src/lib/libssl/src/ms/testencce.bat deleted file mode 100644 index 1da3e0861f..0000000000 --- a/src/lib/libssl/src/ms/testencce.bat +++ /dev/null | |||
@@ -1,97 +0,0 @@ | |||
1 | @echo off | ||
2 | echo start testenc | ||
3 | |||
4 | path=..\ms;%path% | ||
5 | set ssleay=%1% | ||
6 | copy ..\ms\testenc.bat >nul | ||
7 | set input=testenc.bat | ||
8 | set tmp1=cipher.out | ||
9 | set out1=clear.out | ||
10 | set cmp=perl ..\ms\cmp.pl | ||
11 | |||
12 | cecopy %ssleay% CE:\OpenSSL | ||
13 | |||
14 | cd | ||
15 | call tencce.bat enc | ||
16 | if errorlevel 1 goto err | ||
17 | |||
18 | call tencce.bat rc4 | ||
19 | if errorlevel 1 goto err | ||
20 | |||
21 | call tencce.bat des-cfb | ||
22 | if errorlevel 1 goto err | ||
23 | |||
24 | call tencce.bat des-ede-cfb | ||
25 | if errorlevel 1 goto err | ||
26 | |||
27 | call tencce.bat des-ede3-cfb | ||
28 | if errorlevel 1 goto err | ||
29 | |||
30 | call tencce.bat des-ofb | ||
31 | if errorlevel 1 goto err | ||
32 | |||
33 | call tencce.bat des-ede-ofb | ||
34 | if errorlevel 1 goto err | ||
35 | |||
36 | call tencce.bat des-ede3-ofb | ||
37 | if errorlevel 1 goto err | ||
38 | |||
39 | call tencce.bat des-ecb | ||
40 | if errorlevel 1 goto err | ||
41 | |||
42 | call tencce.bat des-ede | ||
43 | if errorlevel 1 goto err | ||
44 | |||
45 | call tencce.bat des-ede3 | ||
46 | if errorlevel 1 goto err | ||
47 | |||
48 | call tencce.bat des-cbc | ||
49 | if errorlevel 1 goto err | ||
50 | |||
51 | call tencce.bat des-ede-cbc | ||
52 | if errorlevel 1 goto err | ||
53 | |||
54 | call tencce.bat des-ede3-cbc | ||
55 | if errorlevel 1 goto err | ||
56 | |||
57 | call tencce.bat idea-ecb | ||
58 | if errorlevel 1 goto err | ||
59 | |||
60 | call tencce.bat idea-cfb | ||
61 | if errorlevel 1 goto err | ||
62 | |||
63 | call tencce.bat idea-ofb | ||
64 | if errorlevel 1 goto err | ||
65 | |||
66 | call tencce.bat idea-cbc | ||
67 | if errorlevel 1 goto err | ||
68 | |||
69 | call tencce.bat rc2-ecb | ||
70 | if errorlevel 1 goto err | ||
71 | |||
72 | call tencce.bat rc2-cfb | ||
73 | if errorlevel 1 goto err | ||
74 | |||
75 | call tencce.bat rc2-ofb | ||
76 | if errorlevel 1 goto err | ||
77 | |||
78 | call tencce.bat rc2-cbc | ||
79 | if errorlevel 1 goto err | ||
80 | |||
81 | call tencce.bat bf-ecb | ||
82 | if errorlevel 1 goto err | ||
83 | |||
84 | call tencce.bat bf-cfb | ||
85 | if errorlevel 1 goto err | ||
86 | |||
87 | call tencce.bat bf-ofb | ||
88 | if errorlevel 1 goto err | ||
89 | |||
90 | call tencce.bat bf-cbc | ||
91 | if errorlevel 1 goto err | ||
92 | |||
93 | echo OK | ||
94 | del %out1% >nul 2>&1 | ||
95 | del %tmp1% >nul 2>&1 | ||
96 | :err | ||
97 | |||
diff --git a/src/lib/libssl/src/ms/testpem.bat b/src/lib/libssl/src/ms/testpem.bat deleted file mode 100644 index 8b2e844d36..0000000000 --- a/src/lib/libssl/src/ms/testpem.bat +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | @echo off | ||
2 | set ssleay=%1% | ||
3 | set tmp1=pem.out | ||
4 | set cmp=fc.exe | ||
5 | |||
6 | call tpem.bat crl ..\test\testcrl.pem | ||
7 | if errorlevel 1 goto err | ||
8 | |||
9 | call tpem.bat pkcs7 ..\test\testp7.pem | ||
10 | if errorlevel 1 goto err | ||
11 | |||
12 | call tpem.bat req ..\test\testreq2.pem | ||
13 | if errorlevel 1 goto err | ||
14 | |||
15 | call tpem.bat rsa ..\test\testrsa.pem | ||
16 | if errorlevel 1 goto err | ||
17 | |||
18 | call tpem.bat x509 ..\test\testx509.pem | ||
19 | if errorlevel 1 goto err | ||
20 | |||
21 | call tpem.bat x509 ..\test\v3-cert1.pem | ||
22 | if errorlevel 1 goto err | ||
23 | |||
24 | call tpem.bat x509 ..\test\v3-cert1.pem | ||
25 | if errorlevel 1 goto err | ||
26 | |||
27 | call tpem.bat sess_id ..\test\testsid.pem | ||
28 | if errorlevel 1 goto err | ||
29 | |||
30 | echo OK | ||
31 | del %tmp1% | ||
32 | :err | ||
diff --git a/src/lib/libssl/src/ms/testpemce.bat b/src/lib/libssl/src/ms/testpemce.bat deleted file mode 100644 index ac64a7912c..0000000000 --- a/src/lib/libssl/src/ms/testpemce.bat +++ /dev/null | |||
@@ -1,42 +0,0 @@ | |||
1 | @echo off | ||
2 | set ssleay=%1% | ||
3 | set tmp1=pem.out | ||
4 | set cmp=fc.exe | ||
5 | |||
6 | cecopy %ssleay% CE:\OpenSSL | ||
7 | |||
8 | copy ..\test\testcrl.pem >nul | ||
9 | call tpemce.bat crl testcrl.pem | ||
10 | if errorlevel 1 goto err | ||
11 | |||
12 | copy ..\test\testp7.pem >nul | ||
13 | call tpemce.bat pkcs7 testp7.pem | ||
14 | if errorlevel 1 goto err | ||
15 | |||
16 | copy ..\test\testreq2.pem >nul | ||
17 | call tpemce.bat req testreq2.pem | ||
18 | if errorlevel 1 goto err | ||
19 | |||
20 | copy ..\test\testrsa.pem >nul | ||
21 | call tpemce.bat rsa testrsa.pem | ||
22 | if errorlevel 1 goto err | ||
23 | |||
24 | copy ..\test\testx509.pem >nul | ||
25 | call tpemce.bat x509 testx509.pem | ||
26 | if errorlevel 1 goto err | ||
27 | |||
28 | copy ..\test\v3-cert1.pem >nul | ||
29 | call tpemce.bat x509 v3-cert1.pem | ||
30 | if errorlevel 1 goto err | ||
31 | |||
32 | copy ..\test\v3-cert1.pem >nul | ||
33 | call tpemce.bat x509 v3-cert1.pem | ||
34 | if errorlevel 1 goto err | ||
35 | |||
36 | copy ..\test\testsid.pem >nul | ||
37 | call tpemce.bat sess_id testsid.pem | ||
38 | if errorlevel 1 goto err | ||
39 | |||
40 | echo OK | ||
41 | del %tmp1% >nul 2>&1 | ||
42 | :err | ||
diff --git a/src/lib/libssl/src/ms/testss.bat b/src/lib/libssl/src/ms/testss.bat deleted file mode 100644 index 5afa131dba..0000000000 --- a/src/lib/libssl/src/ms/testss.bat +++ /dev/null | |||
@@ -1,98 +0,0 @@ | |||
1 | @echo off | ||
2 | |||
3 | rem set ssleay=..\out\ssleay | ||
4 | set ssleay=%1 | ||
5 | |||
6 | set reqcmd=%ssleay% req | ||
7 | set x509cmd=%ssleay% x509 -sha1 | ||
8 | set verifycmd=%ssleay% verify | ||
9 | |||
10 | set CAkey=keyCA.ss | ||
11 | set CAcert=certCA.ss | ||
12 | set CAserial=certCA.srl | ||
13 | set CAreq=reqCA.ss | ||
14 | set CAconf=..\test\CAss.cnf | ||
15 | set CAreq2=req2CA.ss | ||
16 | |||
17 | set Uconf=..\test\Uss.cnf | ||
18 | set Ukey=keyU.ss | ||
19 | set Ureq=reqU.ss | ||
20 | set Ucert=certU.ss | ||
21 | |||
22 | echo make a certificate request using 'req' | ||
23 | %reqcmd% -config %CAconf% -out %CAreq% -keyout %CAkey% -new | ||
24 | if errorlevel 1 goto e_req | ||
25 | |||
26 | echo convert the certificate request into a self signed certificate using 'x509' | ||
27 | %x509cmd% -CAcreateserial -in %CAreq% -days 30 -req -out %CAcert% -signkey %CAkey% >err.ss | ||
28 | if errorlevel 1 goto e_x509 | ||
29 | |||
30 | echo -- | ||
31 | echo convert a certificate into a certificate request using 'x509' | ||
32 | %x509cmd% -in %CAcert% -x509toreq -signkey %CAkey% -out %CAreq2% >err.ss | ||
33 | if errorlevel 1 goto e_x509_2 | ||
34 | |||
35 | %reqcmd% -verify -in %CAreq% -noout | ||
36 | if errorlevel 1 goto e_vrfy_1 | ||
37 | |||
38 | %reqcmd% -verify -in %CAreq2% -noout | ||
39 | if errorlevel 1 goto e_vrfy_2 | ||
40 | |||
41 | %verifycmd% -CAfile %CAcert% %CAcert% | ||
42 | if errorlevel 1 goto e_vrfy_3 | ||
43 | |||
44 | echo -- | ||
45 | echo make another certificate request using 'req' | ||
46 | %reqcmd% -config %Uconf% -out %Ureq% -keyout %Ukey% -new >err.ss | ||
47 | if errorlevel 1 goto e_req_gen | ||
48 | |||
49 | echo -- | ||
50 | echo sign certificate request with the just created CA via 'x509' | ||
51 | %x509cmd% -CAcreateserial -in %Ureq% -days 30 -req -out %Ucert% -CA %CAcert% -CAkey %CAkey% -CAserial %CAserial% | ||
52 | if errorlevel 1 goto e_x_sign | ||
53 | |||
54 | %verifycmd% -CAfile %CAcert% %Ucert% | ||
55 | echo -- | ||
56 | echo Certificate details | ||
57 | %x509cmd% -subject -issuer -startdate -enddate -noout -in %Ucert% | ||
58 | |||
59 | echo Everything appeared to work | ||
60 | echo -- | ||
61 | echo The generated CA certificate is %CAcert% | ||
62 | echo The generated CA private key is %CAkey% | ||
63 | echo The current CA signing serial number is in %CAserial% | ||
64 | |||
65 | echo The generated user certificate is %Ucert% | ||
66 | echo The generated user private key is %Ukey% | ||
67 | echo -- | ||
68 | |||
69 | del err.ss | ||
70 | |||
71 | goto end | ||
72 | |||
73 | :e_req | ||
74 | echo error using 'req' to generate a certificate request | ||
75 | goto end | ||
76 | :e_x509 | ||
77 | echo error using 'x509' to self sign a certificate request | ||
78 | goto end | ||
79 | :e_x509_2 | ||
80 | echo error using 'x509' convert a certificate to a certificate request | ||
81 | goto end | ||
82 | :e_vrfy_1 | ||
83 | echo first generated request is invalid | ||
84 | goto end | ||
85 | :e_vrfy_2 | ||
86 | echo second generated request is invalid | ||
87 | goto end | ||
88 | :e_vrfy_3 | ||
89 | echo first generated cert is invalid | ||
90 | goto end | ||
91 | :e_req_gen | ||
92 | echo error using 'req' to generate a certificate request | ||
93 | goto end | ||
94 | :e_x_sign | ||
95 | echo error using 'x509' to sign a certificate request | ||
96 | goto end | ||
97 | |||
98 | :end | ||
diff --git a/src/lib/libssl/src/ms/testssce.bat b/src/lib/libssl/src/ms/testssce.bat deleted file mode 100644 index 18381ed2fa..0000000000 --- a/src/lib/libssl/src/ms/testssce.bat +++ /dev/null | |||
@@ -1,104 +0,0 @@ | |||
1 | rem set ssleay=..\out\ssleay | ||
2 | set ssleay=%1 | ||
3 | |||
4 | set reqcmd=%ssleay% req | ||
5 | set x509cmd=%ssleay% x509 | ||
6 | set verifycmd=%ssleay% verify | ||
7 | |||
8 | set CAkey=\OpenSSL\keyCA.ss | ||
9 | set CAcert=\OpenSSL\certCA.ss | ||
10 | set CAserial=\OpenSSL\certCA.srl | ||
11 | set CAreq=\OpenSSL\reqCA.ss | ||
12 | cecopy ..\test\CAss.cnf CE:\OpenSSL | ||
13 | set CAconf=\OpenSSL\CAss.cnf | ||
14 | set CAreq2=\OpenSSL\req2CA.ss | ||
15 | |||
16 | cecopy ..\test\Uss.cnf CE:\OpenSSL | ||
17 | set Uconf=\OpenSSL\Uss.cnf | ||
18 | set Ukey=\OpenSSL\keyU.ss | ||
19 | set Ureq=\OpenSSL\reqU.ss | ||
20 | set Ucert=\OpenSSL\certU.ss | ||
21 | |||
22 | echo make a certificate request using 'req' | ||
23 | cerun CE:\OpenSSL\%reqcmd% -config %CAconf% -out %CAreq% -keyout %CAkey% -new | ||
24 | if errorlevel 1 goto e_req | ||
25 | |||
26 | echo convert the certificate request into a self signed certificate using 'x509' | ||
27 | cerun CE:\OpenSSL\%x509cmd% -CAcreateserial -in %CAreq% -days 30 -req -out %CAcert% -signkey %CAkey% "> \OpenSSL\err.ss" | ||
28 | if errorlevel 1 goto e_x509 | ||
29 | |||
30 | echo -- | ||
31 | echo convert a certificate into a certificate request using 'x509' | ||
32 | cerun CE:\OpenSSL\%x509cmd% -in %CAcert% -x509toreq -signkey %CAkey% -out %CAreq2% "> \OpenSSL\err.ss" | ||
33 | if errorlevel 1 goto e_x509_2 | ||
34 | |||
35 | cerun CE:\OpenSSL\%reqcmd% -verify -in %CAreq% -noout | ||
36 | if errorlevel 1 goto e_vrfy_1 | ||
37 | |||
38 | cerun CE:\OpenSSL\%reqcmd% -verify -in %CAreq2% -noout | ||
39 | if errorlevel 1 goto e_vrfy_2 | ||
40 | |||
41 | cerun CE:\OpenSSL\%verifycmd% -CAfile %CAcert% %CAcert% | ||
42 | if errorlevel 1 goto e_vrfy_3 | ||
43 | |||
44 | echo -- | ||
45 | echo make another certificate request using 'req' | ||
46 | cerun CE:\OpenSSL\%reqcmd% -config %Uconf% -out %Ureq% -keyout %Ukey% -new "> \OpenSSL\err.ss" | ||
47 | if errorlevel 1 goto e_req_gen | ||
48 | |||
49 | echo -- | ||
50 | echo sign certificate request with the just created CA via 'x509' | ||
51 | cerun CE:\OpenSSL\%x509cmd% -CAcreateserial -in %Ureq% -days 30 -req -out %Ucert% -CA %CAcert% -CAkey %CAkey% -CAserial %CAserial% | ||
52 | if errorlevel 1 goto e_x_sign | ||
53 | |||
54 | cerun CE:\OpenSSL\%verifycmd% -CAfile %CAcert% %Ucert% | ||
55 | echo -- | ||
56 | echo Certificate details | ||
57 | cerun CE:\OpenSSL\%x509cmd% -subject -issuer -startdate -enddate -noout -in %Ucert% | ||
58 | |||
59 | cecopy CE:%CAcert% . | ||
60 | cecopy CE:%CAkey% . | ||
61 | cecopy CE:%CAserial% . | ||
62 | cecopy CE:%Ucert% . | ||
63 | cecopy CE:%Ukey% . | ||
64 | |||
65 | echo Everything appeared to work | ||
66 | echo -- | ||
67 | echo The generated CA certificate is %CAcert% | ||
68 | echo The generated CA private key is %CAkey% | ||
69 | echo The current CA signing serial number is in %CAserial% | ||
70 | |||
71 | echo The generated user certificate is %Ucert% | ||
72 | echo The generated user private key is %Ukey% | ||
73 | echo -- | ||
74 | |||
75 | cedel CE:\OpenSSL\err.ss | ||
76 | |||
77 | goto end | ||
78 | |||
79 | :e_req | ||
80 | echo error using 'req' to generate a certificate request | ||
81 | goto end | ||
82 | :e_x509 | ||
83 | echo error using 'x509' to self sign a certificate request | ||
84 | goto end | ||
85 | :e_x509_2 | ||
86 | echo error using 'x509' convert a certificate to a certificate request | ||
87 | goto end | ||
88 | :e_vrfy_1 | ||
89 | echo first generated request is invalid | ||
90 | goto end | ||
91 | :e_vrfy_2 | ||
92 | echo second generated request is invalid | ||
93 | goto end | ||
94 | :e_vrfy_3 | ||
95 | echo first generated cert is invalid | ||
96 | goto end | ||
97 | :e_req_gen | ||
98 | echo error using 'req' to generate a certificate request | ||
99 | goto end | ||
100 | :e_x_sign | ||
101 | echo error using 'x509' to sign a certificate request | ||
102 | goto end | ||
103 | |||
104 | :end | ||
diff --git a/src/lib/libssl/src/ms/tlhelp32.h b/src/lib/libssl/src/ms/tlhelp32.h deleted file mode 100644 index 8f4222e34f..0000000000 --- a/src/lib/libssl/src/ms/tlhelp32.h +++ /dev/null | |||
@@ -1,136 +0,0 @@ | |||
1 | /* | ||
2 | tlhelp32.h - Include file for Tool help functions. | ||
3 | |||
4 | Written by Mumit Khan <khan@nanotech.wisc.edu> | ||
5 | |||
6 | This file is part of a free library for the Win32 API. | ||
7 | |||
8 | This library is distributed in the hope that it will be useful, | ||
9 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
11 | |||
12 | */ | ||
13 | #ifndef _TLHELP32_H | ||
14 | #define _TLHELP32_H | ||
15 | #ifdef __cplusplus | ||
16 | extern "C" { | ||
17 | #endif | ||
18 | #define HF32_DEFAULT 1 | ||
19 | #define HF32_SHARED 2 | ||
20 | #define LF32_FIXED 0x1 | ||
21 | #define LF32_FREE 0x2 | ||
22 | #define LF32_MOVEABLE 0x4 | ||
23 | #define MAX_MODULE_NAME32 255 | ||
24 | #define TH32CS_SNAPHEAPLIST 0x1 | ||
25 | #define TH32CS_SNAPPROCESS 0x2 | ||
26 | #define TH32CS_SNAPTHREAD 0x4 | ||
27 | #define TH32CS_SNAPMODULE 0x8 | ||
28 | #define TH32CS_SNAPALL (TH32CS_SNAPHEAPLIST|TH32CS_SNAPPROCESS|TH32CS_SNAPTHREAD|TH32CS_SNAPMODULE) | ||
29 | #define TH32CS_INHERIT 0x80000000 | ||
30 | typedef struct tagHEAPLIST32 { | ||
31 | DWORD dwSize; | ||
32 | DWORD th32ProcessID; | ||
33 | DWORD th32HeapID; | ||
34 | DWORD dwFlags; | ||
35 | } HEAPLIST32,*PHEAPLIST32,*LPHEAPLIST32; | ||
36 | typedef struct tagHEAPENTRY32 { | ||
37 | DWORD dwSize; | ||
38 | HANDLE hHandle; | ||
39 | DWORD dwAddress; | ||
40 | DWORD dwBlockSize; | ||
41 | DWORD dwFlags; | ||
42 | DWORD dwLockCount; | ||
43 | DWORD dwResvd; | ||
44 | DWORD th32ProcessID; | ||
45 | DWORD th32HeapID; | ||
46 | } HEAPENTRY32,*PHEAPENTRY32,*LPHEAPENTRY32; | ||
47 | typedef struct tagPROCESSENTRY32W { | ||
48 | DWORD dwSize; | ||
49 | DWORD cntUsage; | ||
50 | DWORD th32ProcessID; | ||
51 | DWORD th32DefaultHeapID; | ||
52 | DWORD th32ModuleID; | ||
53 | DWORD cntThreads; | ||
54 | DWORD th32ParentProcessID; | ||
55 | LONG pcPriClassBase; | ||
56 | DWORD dwFlags; | ||
57 | WCHAR szExeFile[MAX_PATH]; | ||
58 | } PROCESSENTRY32W,*PPROCESSENTRY32W,*LPPROCESSENTRY32W; | ||
59 | typedef struct tagPROCESSENTRY32 { | ||
60 | DWORD dwSize; | ||
61 | DWORD cntUsage; | ||
62 | DWORD th32ProcessID; | ||
63 | DWORD th32DefaultHeapID; | ||
64 | DWORD th32ModuleID; | ||
65 | DWORD cntThreads; | ||
66 | DWORD th32ParentProcessID; | ||
67 | LONG pcPriClassBase; | ||
68 | DWORD dwFlags; | ||
69 | CHAR szExeFile[MAX_PATH]; | ||
70 | } PROCESSENTRY32,*PPROCESSENTRY32,*LPPROCESSENTRY32; | ||
71 | typedef struct tagTHREADENTRY32 { | ||
72 | DWORD dwSize; | ||
73 | DWORD cntUsage; | ||
74 | DWORD th32ThreadID; | ||
75 | DWORD th32OwnerProcessID; | ||
76 | LONG tpBasePri; | ||
77 | LONG tpDeltaPri; | ||
78 | DWORD dwFlags; | ||
79 | } THREADENTRY32,*PTHREADENTRY32,*LPTHREADENTRY32; | ||
80 | typedef struct tagMODULEENTRY32W { | ||
81 | DWORD dwSize; | ||
82 | DWORD th32ModuleID; | ||
83 | DWORD th32ProcessID; | ||
84 | DWORD GlblcntUsage; | ||
85 | DWORD ProccntUsage; | ||
86 | BYTE *modBaseAddr; | ||
87 | DWORD modBaseSize; | ||
88 | HMODULE hModule; | ||
89 | WCHAR szModule[MAX_MODULE_NAME32 + 1]; | ||
90 | WCHAR szExePath[MAX_PATH]; | ||
91 | } MODULEENTRY32W,*PMODULEENTRY32W,*LPMODULEENTRY32W; | ||
92 | typedef struct tagMODULEENTRY32 { | ||
93 | DWORD dwSize; | ||
94 | DWORD th32ModuleID; | ||
95 | DWORD th32ProcessID; | ||
96 | DWORD GlblcntUsage; | ||
97 | DWORD ProccntUsage; | ||
98 | BYTE *modBaseAddr; | ||
99 | DWORD modBaseSize; | ||
100 | HMODULE hModule; | ||
101 | char szModule[MAX_MODULE_NAME32 + 1]; | ||
102 | char szExePath[MAX_PATH]; | ||
103 | } MODULEENTRY32,*PMODULEENTRY32,*LPMODULEENTRY32; | ||
104 | BOOL WINAPI Heap32First(LPHEAPENTRY32,DWORD,DWORD); | ||
105 | BOOL WINAPI Heap32ListFirst(HANDLE,LPHEAPLIST32); | ||
106 | BOOL WINAPI Heap32ListNext(HANDLE,LPHEAPLIST32); | ||
107 | BOOL WINAPI Heap32Next(LPHEAPENTRY32); | ||
108 | BOOL WINAPI Module32First(HANDLE,LPMODULEENTRY32); | ||
109 | BOOL WINAPI Module32FirstW(HANDLE,LPMODULEENTRY32W); | ||
110 | BOOL WINAPI Module32Next(HANDLE,LPMODULEENTRY32); | ||
111 | BOOL WINAPI Module32NextW(HANDLE,LPMODULEENTRY32W); | ||
112 | BOOL WINAPI Process32First(HANDLE,LPPROCESSENTRY32); | ||
113 | BOOL WINAPI Process32FirstW(HANDLE,LPPROCESSENTRY32W); | ||
114 | BOOL WINAPI Process32Next(HANDLE,LPPROCESSENTRY32); | ||
115 | BOOL WINAPI Process32NextW(HANDLE,LPPROCESSENTRY32W); | ||
116 | BOOL WINAPI Thread32First(HANDLE,LPTHREADENTRY32); | ||
117 | BOOL WINAPI Thread32Next(HANDLE,LPTHREADENTRY32); | ||
118 | BOOL WINAPI Toolhelp32ReadProcessMemory(DWORD,LPCVOID,LPVOID,DWORD,LPDWORD); | ||
119 | HANDLE WINAPI CreateToolhelp32Snapshot(DWORD,DWORD); | ||
120 | #ifdef UNICODE | ||
121 | #define LPMODULEENTRY32 LPMODULEENTRY32W | ||
122 | #define LPPROCESSENTRY32 LPPROCESSENTRY32W | ||
123 | #define MODULEENTRY32 MODULEENTRY32W | ||
124 | #define Module32First Module32FirstW | ||
125 | #define Module32Next Module32NextW | ||
126 | #define PMODULEENTRY32 PMODULEENTRY32W | ||
127 | #define PPROCESSENTRY32 PPROCESSENTRY32W | ||
128 | #define PROCESSENTRY32 PROCESSENTRY32W | ||
129 | #define Process32First Process32FirstW | ||
130 | #define Process32Next Process32NextW | ||
131 | #endif /* UNICODE */ | ||
132 | #ifdef __cplusplus | ||
133 | } | ||
134 | #endif | ||
135 | #endif /* _TLHELP32_H */ | ||
136 | |||
diff --git a/src/lib/libssl/src/ms/tpem.bat b/src/lib/libssl/src/ms/tpem.bat deleted file mode 100644 index cd01792e9f..0000000000 --- a/src/lib/libssl/src/ms/tpem.bat +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | rem called by testpem | ||
2 | |||
3 | echo test %1 %2 | ||
4 | %ssleay% %1 -in %2 -out %tmp1% | ||
5 | %cmp% %2 %tmp1% | ||
6 | |||
diff --git a/src/lib/libssl/src/ms/tpemce.bat b/src/lib/libssl/src/ms/tpemce.bat deleted file mode 100644 index 483f559cfa..0000000000 --- a/src/lib/libssl/src/ms/tpemce.bat +++ /dev/null | |||
@@ -1,8 +0,0 @@ | |||
1 | rem called by testpemce | ||
2 | |||
3 | echo test %1 %2 | ||
4 | cecopy %2 CE:\OpenSSL | ||
5 | cerun CE:\OpenSSL\%ssleay% %1 -in \OpenSSL\%2 -out \OpenSSL\%tmp1% | ||
6 | del %tmp1% >nul 2>&1 | ||
7 | cecopy CE:\OpenSSL\%tmp1% . | ||
8 | %cmp% %2 %tmp1% | ||
diff --git a/src/lib/libssl/src/ms/uplink-common.pl b/src/lib/libssl/src/ms/uplink-common.pl deleted file mode 100755 index 1d20e6e03e..0000000000 --- a/src/lib/libssl/src/ms/uplink-common.pl +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
1 | #!/usr/bin/env perl | ||
2 | # | ||
3 | # pull APPLINK_MAX value from applink.c... | ||
4 | $applink_c=$0; | ||
5 | $applink_c=~s|[^/\\]+$||g; | ||
6 | $applink_c.="applink.c"; | ||
7 | open(INPUT,$applink_c) || die "can't open $applink_c: $!"; | ||
8 | @max=grep {/APPLINK_MAX\s+(\d+)/} <INPUT>; | ||
9 | close(INPUT); | ||
10 | ($#max==0) or die "can't find APPLINK_MAX in $applink_c"; | ||
11 | |||
12 | $max[0]=~/APPLINK_MAX\s+(\d+)/; | ||
13 | $N=$1; # number of entries in OPENSSL_UplinkTable not including | ||
14 | # OPENSSL_UplinkTable[0], which contains this value... | ||
15 | |||
16 | 1; | ||
17 | |||
18 | # Idea is to fill the OPENSSL_UplinkTable with pointers to stubs | ||
19 | # which invoke 'void OPENSSL_Uplink (ULONG_PTR *table,int index)'; | ||
20 | # and then dereference themselves. Latter shall result in endless | ||
21 | # loop *unless* OPENSSL_Uplink does not replace 'table[index]' with | ||
22 | # something else, e.g. as 'table[index]=unimplemented;'... | ||
diff --git a/src/lib/libssl/src/ms/uplink-ia64.pl b/src/lib/libssl/src/ms/uplink-ia64.pl deleted file mode 100755 index 4204c73d58..0000000000 --- a/src/lib/libssl/src/ms/uplink-ia64.pl +++ /dev/null | |||
@@ -1,50 +0,0 @@ | |||
1 | #!/usr/bin/env perl | ||
2 | |||
3 | $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1; | ||
4 | push(@INC,"${dir}."); | ||
5 | |||
6 | require "uplink-common.pl"; | ||
7 | |||
8 | local $V=8; # max number of args uplink functions may accept... | ||
9 | my $loc0 = "r".(32+$V); | ||
10 | print <<___; | ||
11 | .text | ||
12 | .global OPENSSL_Uplink# | ||
13 | .type OPENSSL_Uplink#,\@function | ||
14 | |||
15 | ___ | ||
16 | for ($i=1;$i<=$N;$i++) { | ||
17 | print <<___; | ||
18 | .proc lazy$i# | ||
19 | lazy$i: | ||
20 | .prologue | ||
21 | { .mii; .save ar.pfs,$loc0 | ||
22 | alloc loc0=ar.pfs,$V,3,2,0 | ||
23 | .save b0,loc1 | ||
24 | mov loc1=b0 | ||
25 | addl loc2=\@ltoff(OPENSSL_UplinkTable#),gp };; | ||
26 | .body | ||
27 | { .mmi; ld8 out0=[loc2] | ||
28 | mov out1=$i };; | ||
29 | { .mib; add loc2=8*$i,out0 | ||
30 | br.call.sptk.many b0=OPENSSL_Uplink# };; | ||
31 | { .mmi; ld8 r31=[loc2];; | ||
32 | ld8 r30=[r31],8 };; | ||
33 | { .mii; ld8 gp=[r31] | ||
34 | mov b6=r30 | ||
35 | mov b0=loc1 };; | ||
36 | { .mib; mov ar.pfs=loc0 | ||
37 | br.many b6 };; | ||
38 | .endp lazy$i# | ||
39 | |||
40 | ___ | ||
41 | } | ||
42 | print <<___; | ||
43 | .data | ||
44 | .global OPENSSL_UplinkTable# | ||
45 | OPENSSL_UplinkTable: data8 $N // amount of following entries | ||
46 | ___ | ||
47 | for ($i=1;$i<=$N;$i++) { print " data8 \@fptr(lazy$i#)\n"; } | ||
48 | print <<___; | ||
49 | .size OPENSSL_UplinkTable,.-OPENSSL_UplinkTable# | ||
50 | ___ | ||
diff --git a/src/lib/libssl/src/ms/uplink-x86.pl b/src/lib/libssl/src/ms/uplink-x86.pl deleted file mode 100755 index 0dffc14fcd..0000000000 --- a/src/lib/libssl/src/ms/uplink-x86.pl +++ /dev/null | |||
@@ -1,33 +0,0 @@ | |||
1 | #!/usr/bin/env perl | ||
2 | |||
3 | $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1; | ||
4 | push(@INC, "${dir}.", "${dir}../crypto/perlasm"); | ||
5 | require "x86asm.pl"; | ||
6 | |||
7 | require "uplink-common.pl"; | ||
8 | |||
9 | &asm_init($ARGV[0],"uplink-x86"); | ||
10 | |||
11 | &external_label("OPENSSL_Uplink"); | ||
12 | &public_label("OPENSSL_UplinkTable"); | ||
13 | |||
14 | for ($i=1;$i<=$N;$i++) { | ||
15 | &function_begin_B("_\$lazy${i}"); | ||
16 | &lea ("eax",&DWP(&label("OPENSSL_UplinkTable"))); | ||
17 | &push ("eax"); | ||
18 | &push ($i); | ||
19 | &call (&label("OPENSSL_Uplink")); | ||
20 | &add ("esp",8); | ||
21 | &pop ("eax"); | ||
22 | &jmp_ptr(&DWP(4*$i,"eax")); | ||
23 | &function_end_B("_\$lazy${i}"); | ||
24 | } | ||
25 | |||
26 | &dataseg(); | ||
27 | &align(4); | ||
28 | &set_label("OPENSSL_UplinkTable"); | ||
29 | &data_word($N); | ||
30 | for ($i=1;$i<=$N;$i++) { | ||
31 | &data_word(&label("_\$lazy${i}")); | ||
32 | } | ||
33 | &asm_finish(); | ||
diff --git a/src/lib/libssl/src/ms/uplink-x86_64.pl b/src/lib/libssl/src/ms/uplink-x86_64.pl deleted file mode 100755 index 9acbf6be6f..0000000000 --- a/src/lib/libssl/src/ms/uplink-x86_64.pl +++ /dev/null | |||
@@ -1,64 +0,0 @@ | |||
1 | #!/usr/bin/env perl | ||
2 | |||
3 | $output=shift; | ||
4 | $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1; | ||
5 | open STDOUT,"| $^X ${dir}../crypto/perlasm/x86_64-xlate.pl $output"; | ||
6 | push(@INC,"${dir}."); | ||
7 | |||
8 | require "uplink-common.pl"; | ||
9 | |||
10 | $prefix="_lazy"; | ||
11 | |||
12 | print <<___; | ||
13 | .text | ||
14 | .extern OPENSSL_Uplink | ||
15 | .globl OPENSSL_UplinkTable | ||
16 | ___ | ||
17 | for ($i=1;$i<=$N;$i++) { | ||
18 | print <<___; | ||
19 | .type $prefix${i},\@abi-omnipotent | ||
20 | .align 16 | ||
21 | $prefix${i}: | ||
22 | .byte 0x48,0x83,0xEC,0x28 # sub rsp,40 | ||
23 | mov %rcx,48(%rsp) | ||
24 | mov %rdx,56(%rsp) | ||
25 | mov %r8,64(%rsp) | ||
26 | mov %r9,72(%rsp) | ||
27 | lea OPENSSL_UplinkTable(%rip),%rcx | ||
28 | mov \$$i,%rdx | ||
29 | call OPENSSL_Uplink | ||
30 | mov 48(%rsp),%rcx | ||
31 | mov 56(%rsp),%rdx | ||
32 | mov 64(%rsp),%r8 | ||
33 | mov 72(%rsp),%r9 | ||
34 | lea OPENSSL_UplinkTable(%rip),%rax | ||
35 | add \$40,%rsp | ||
36 | jmp *8*$i(%rax) | ||
37 | $prefix${i}_end: | ||
38 | .size $prefix${i},.-$prefix${i} | ||
39 | ___ | ||
40 | } | ||
41 | print <<___; | ||
42 | .data | ||
43 | OPENSSL_UplinkTable: | ||
44 | .quad $N | ||
45 | ___ | ||
46 | for ($i=1;$i<=$N;$i++) { print " .quad $prefix$i\n"; } | ||
47 | print <<___; | ||
48 | .section .pdata,"r" | ||
49 | .align 4 | ||
50 | ___ | ||
51 | for ($i=1;$i<=$N;$i++) { | ||
52 | print <<___; | ||
53 | .rva $prefix${i},$prefix${i}_end,${prefix}_unwind_info | ||
54 | ___ | ||
55 | } | ||
56 | print <<___; | ||
57 | .section .xdata,"r" | ||
58 | .align 8 | ||
59 | ${prefix}_unwind_info: | ||
60 | .byte 0x01,0x04,0x01,0x00 | ||
61 | .byte 0x04,0x42,0x00,0x00 | ||
62 | ___ | ||
63 | |||
64 | close STDOUT; | ||
diff --git a/src/lib/libssl/src/ms/uplink.c b/src/lib/libssl/src/ms/uplink.c deleted file mode 100644 index 6d59cb1f87..0000000000 --- a/src/lib/libssl/src/ms/uplink.c +++ /dev/null | |||
@@ -1,117 +0,0 @@ | |||
1 | #if (defined(_WIN64) || defined(_WIN32_WCE)) && !defined(UNICODE) | ||
2 | #define UNICODE | ||
3 | #endif | ||
4 | #if defined(UNICODE) && !defined(_UNICODE) | ||
5 | #define _UNICODE | ||
6 | #endif | ||
7 | #if defined(_UNICODE) && !defined(UNICODE) | ||
8 | #define UNICODE | ||
9 | #endif | ||
10 | |||
11 | #include <windows.h> | ||
12 | #include <tchar.h> | ||
13 | #include <stdio.h> | ||
14 | #include "uplink.h" | ||
15 | void OPENSSL_showfatal(const char *,...); | ||
16 | |||
17 | static TCHAR msg[128]; | ||
18 | |||
19 | static void unimplemented (void) | ||
20 | { OPENSSL_showfatal (sizeof(TCHAR)==sizeof(char)?"%s\n":"%S\n",msg); | ||
21 | ExitProcess (1); | ||
22 | } | ||
23 | |||
24 | void OPENSSL_Uplink (volatile void **table, int index) | ||
25 | { static HMODULE volatile apphandle=NULL; | ||
26 | static void ** volatile applinktable=NULL; | ||
27 | int len; | ||
28 | void (*func)(void)=unimplemented; | ||
29 | HANDLE h; | ||
30 | void **p; | ||
31 | |||
32 | /* Note that the below code is not MT-safe in respect to msg | ||
33 | * buffer, but what's the worst thing that can happen? Error | ||
34 | * message might be misleading or corrupted. As error condition | ||
35 | * is fatal and should never be risen, I accept the risk... */ | ||
36 | /* One can argue that I should have used InterlockedExchangePointer | ||
37 | * or something to update static variables and table[]. Well, | ||
38 | * store instructions are as atomic as they can get and assigned | ||
39 | * values are effectively constant... So that volatile qualifier | ||
40 | * should be sufficient [it prohibits compiler to reorder memory | ||
41 | * access instructions]. */ | ||
42 | do { | ||
43 | len = _sntprintf (msg,sizeof(msg)/sizeof(TCHAR), | ||
44 | _T("OPENSSL_Uplink(%p,%02X): "),table,index); | ||
45 | _tcscpy (msg+len,_T("unimplemented function")); | ||
46 | |||
47 | if ((h=apphandle)==NULL) | ||
48 | { if ((h=GetModuleHandle(NULL))==NULL) | ||
49 | { apphandle=(HMODULE)-1; | ||
50 | _tcscpy (msg+len,_T("no host application")); | ||
51 | break; | ||
52 | } | ||
53 | apphandle = h; | ||
54 | } | ||
55 | if ((h=apphandle)==(HMODULE)-1) /* revalidate */ | ||
56 | break; | ||
57 | |||
58 | if (applinktable==NULL) | ||
59 | { void**(*applink)(); | ||
60 | |||
61 | applink=(void**(*)())GetProcAddress(h,"OPENSSL_Applink"); | ||
62 | if (applink==NULL) | ||
63 | { apphandle=(HMODULE)-1; | ||
64 | _tcscpy (msg+len,_T("no OPENSSL_Applink")); | ||
65 | break; | ||
66 | } | ||
67 | p = (*applink)(); | ||
68 | if (p==NULL) | ||
69 | { apphandle=(HMODULE)-1; | ||
70 | _tcscpy (msg+len,_T("no ApplinkTable")); | ||
71 | break; | ||
72 | } | ||
73 | applinktable = p; | ||
74 | } | ||
75 | else | ||
76 | p = applinktable; | ||
77 | |||
78 | if (index > (int)p[0]) | ||
79 | break; | ||
80 | |||
81 | if (p[index]) func = p[index]; | ||
82 | } while (0); | ||
83 | |||
84 | table[index] = func; | ||
85 | } | ||
86 | |||
87 | #if defined(_MSC_VER) && defined(_M_IX86) && !defined(OPENSSL_NO_INLINE_ASM) | ||
88 | #define LAZY(i) \ | ||
89 | __declspec(naked) static void lazy##i (void) { \ | ||
90 | _asm push i \ | ||
91 | _asm push OFFSET OPENSSL_UplinkTable \ | ||
92 | _asm call OPENSSL_Uplink \ | ||
93 | _asm add esp,8 \ | ||
94 | _asm jmp OPENSSL_UplinkTable+4*i } | ||
95 | |||
96 | #if APPLINK_MAX>25 | ||
97 | #error "Add more stubs..." | ||
98 | #endif | ||
99 | /* make some in advance... */ | ||
100 | LAZY(1) LAZY(2) LAZY(3) LAZY(4) LAZY(5) | ||
101 | LAZY(6) LAZY(7) LAZY(8) LAZY(9) LAZY(10) | ||
102 | LAZY(11) LAZY(12) LAZY(13) LAZY(14) LAZY(15) | ||
103 | LAZY(16) LAZY(17) LAZY(18) LAZY(19) LAZY(20) | ||
104 | LAZY(21) LAZY(22) LAZY(23) LAZY(24) LAZY(25) | ||
105 | void *OPENSSL_UplinkTable[] = { | ||
106 | (void *)APPLINK_MAX, | ||
107 | lazy1, lazy2, lazy3, lazy4, lazy5, | ||
108 | lazy6, lazy7, lazy8, lazy9, lazy10, | ||
109 | lazy11,lazy12,lazy13,lazy14,lazy15, | ||
110 | lazy16,lazy17,lazy18,lazy19,lazy20, | ||
111 | lazy21,lazy22,lazy23,lazy24,lazy25, | ||
112 | }; | ||
113 | #endif | ||
114 | |||
115 | #ifdef SELFTEST | ||
116 | main() { UP_fprintf(UP_stdout,"hello, world!\n"); } | ||
117 | #endif | ||
diff --git a/src/lib/libssl/src/ms/uplink.h b/src/lib/libssl/src/ms/uplink.h deleted file mode 100644 index 4881ba7d42..0000000000 --- a/src/lib/libssl/src/ms/uplink.h +++ /dev/null | |||
@@ -1,29 +0,0 @@ | |||
1 | #define APPMACROS_ONLY | ||
2 | #include "applink.c" | ||
3 | |||
4 | extern void *OPENSSL_UplinkTable[]; | ||
5 | |||
6 | #define UP_stdin (*(void *(*)(void))OPENSSL_UplinkTable[APPLINK_STDIN])() | ||
7 | #define UP_stdout (*(void *(*)(void))OPENSSL_UplinkTable[APPLINK_STDOUT])() | ||
8 | #define UP_stderr (*(void *(*)(void))OPENSSL_UplinkTable[APPLINK_STDERR])() | ||
9 | #define UP_fprintf (*(int (*)(void *,const char *,...))OPENSSL_UplinkTable[APPLINK_FPRINTF]) | ||
10 | #define UP_fgets (*(char *(*)(char *,int,void *))OPENSSL_UplinkTable[APPLINK_FGETS]) | ||
11 | #define UP_fread (*(size_t (*)(void *,size_t,size_t,void *))OPENSSL_UplinkTable[APPLINK_FREAD]) | ||
12 | #define UP_fwrite (*(size_t (*)(const void *,size_t,size_t,void *))OPENSSL_UplinkTable[APPLINK_FWRITE]) | ||
13 | #define UP_fsetmod (*(int (*)(void *,char))OPENSSL_UplinkTable[APPLINK_FSETMOD]) | ||
14 | #define UP_feof (*(int (*)(void *))OPENSSL_UplinkTable[APPLINK_FEOF]) | ||
15 | #define UP_fclose (*(int (*)(void *))OPENSSL_UplinkTable[APPLINK_FCLOSE]) | ||
16 | |||
17 | #define UP_fopen (*(void *(*)(const char *,const char *))OPENSSL_UplinkTable[APPLINK_FOPEN]) | ||
18 | #define UP_fseek (*(int (*)(void *,long,int))OPENSSL_UplinkTable[APPLINK_FSEEK]) | ||
19 | #define UP_ftell (*(long (*)(void *))OPENSSL_UplinkTable[APPLINK_FTELL]) | ||
20 | #define UP_fflush (*(int (*)(void *))OPENSSL_UplinkTable[APPLINK_FFLUSH]) | ||
21 | #define UP_ferror (*(int (*)(void *))OPENSSL_UplinkTable[APPLINK_FERROR]) | ||
22 | #define UP_clearerr (*(void (*)(void *))OPENSSL_UplinkTable[APPLINK_CLEARERR]) | ||
23 | #define UP_fileno (*(int (*)(void *))OPENSSL_UplinkTable[APPLINK_FILENO]) | ||
24 | |||
25 | #define UP_open (*(int (*)(const char *,int,...))OPENSSL_UplinkTable[APPLINK_OPEN]) | ||
26 | #define UP_read (*(ossl_ssize_t (*)(int,void *,size_t))OPENSSL_UplinkTable[APPLINK_READ]) | ||
27 | #define UP_write (*(ossl_ssize_t (*)(int,const void *,size_t))OPENSSL_UplinkTable[APPLINK_WRITE]) | ||
28 | #define UP_lseek (*(long (*)(int,long,int))OPENSSL_UplinkTable[APPLINK_LSEEK]) | ||
29 | #define UP_close (*(int (*)(int))OPENSSL_UplinkTable[APPLINK_CLOSE]) | ||
diff --git a/src/lib/libssl/src/ms/uplink.pl b/src/lib/libssl/src/ms/uplink.pl deleted file mode 100755 index 102400e880..0000000000 --- a/src/lib/libssl/src/ms/uplink.pl +++ /dev/null | |||
@@ -1,204 +0,0 @@ | |||
1 | #!/usr/bin/env perl | ||
2 | # | ||
3 | # For Microsoft CL this is implemented as inline assembler. So that | ||
4 | # even though this script can generate even Win32 code, we'll be | ||
5 | # using it primarily to generate Win64 modules. Both IA-64 and AMD64 | ||
6 | # are supported... | ||
7 | |||
8 | # pull APPLINK_MAX value from applink.c... | ||
9 | $applink_c=$0; | ||
10 | $applink_c=~s|[^/\\]+$||g; | ||
11 | $applink_c.="applink.c"; | ||
12 | open(INPUT,$applink_c) || die "can't open $applink_c: $!"; | ||
13 | @max=grep {/APPLINK_MAX\s+(\d+)/} <INPUT>; | ||
14 | close(INPUT); | ||
15 | ($#max==0) or die "can't find APPLINK_MAX in $applink_c"; | ||
16 | |||
17 | $max[0]=~/APPLINK_MAX\s+(\d+)/; | ||
18 | $N=$1; # number of entries in OPENSSL_UplinkTable not including | ||
19 | # OPENSSL_UplinkTable[0], which contains this value... | ||
20 | |||
21 | # Idea is to fill the OPENSSL_UplinkTable with pointers to stubs | ||
22 | # which invoke 'void OPENSSL_Uplink (ULONG_PTR *table,int index)'; | ||
23 | # and then dereference themselves. Latter shall result in endless | ||
24 | # loop *unless* OPENSSL_Uplink does not replace 'table[index]' with | ||
25 | # something else, e.g. as 'table[index]=unimplemented;'... | ||
26 | |||
27 | $arg = shift; | ||
28 | #( defined shift || open STDOUT,">$arg" ) || die "can't open $arg: $!"; | ||
29 | |||
30 | if ($arg =~ /win32n/) { ia32nasm(); } | ||
31 | elsif ($arg =~ /win32/) { ia32masm(); } | ||
32 | elsif ($arg =~ /coff/) { ia32gas(); } | ||
33 | elsif ($arg =~ /win64i/ or $arg =~ /ia64/) { ia64ias(); } | ||
34 | elsif ($arg =~ /win64a/ or $arg =~ /amd64/) { amd64masm(); } | ||
35 | else { die "nonsense $arg"; } | ||
36 | |||
37 | sub ia32gas() { | ||
38 | print <<___; | ||
39 | .text | ||
40 | ___ | ||
41 | for ($i=1;$i<=$N;$i++) { | ||
42 | print <<___; | ||
43 | .def .Lazy$i; .scl 3; .type 32; .endef | ||
44 | .align 4 | ||
45 | .Lazy$i: | ||
46 | pushl \$$i | ||
47 | pushl \$_OPENSSL_UplinkTable | ||
48 | call _OPENSSL_Uplink | ||
49 | addl \$8,%esp | ||
50 | jmp *(_OPENSSL_UplinkTable+4*$i) | ||
51 | ___ | ||
52 | } | ||
53 | print <<___; | ||
54 | .data | ||
55 | .align 4 | ||
56 | .globl _OPENSSL_UplinkTable | ||
57 | _OPENSSL_UplinkTable: | ||
58 | .long $N | ||
59 | ___ | ||
60 | for ($i=1;$i<=$N;$i++) { print " .long .Lazy$i\n"; } | ||
61 | } | ||
62 | |||
63 | sub ia32masm() { | ||
64 | print <<___; | ||
65 | .386P | ||
66 | .model FLAT | ||
67 | |||
68 | _DATA SEGMENT | ||
69 | PUBLIC _OPENSSL_UplinkTable | ||
70 | _OPENSSL_UplinkTable DD $N ; amount of following entries | ||
71 | ___ | ||
72 | for ($i=1;$i<=$N;$i++) { print " DD FLAT:\$lazy$i\n"; } | ||
73 | print <<___; | ||
74 | _DATA ENDS | ||
75 | |||
76 | _TEXT SEGMENT | ||
77 | EXTRN _OPENSSL_Uplink:NEAR | ||
78 | ___ | ||
79 | for ($i=1;$i<=$N;$i++) { | ||
80 | print <<___; | ||
81 | ALIGN 4 | ||
82 | \$lazy$i PROC NEAR | ||
83 | push $i | ||
84 | push OFFSET FLAT:_OPENSSL_UplinkTable | ||
85 | call _OPENSSL_Uplink | ||
86 | add esp,8 | ||
87 | jmp DWORD PTR _OPENSSL_UplinkTable+4*$i | ||
88 | \$lazy$i ENDP | ||
89 | ___ | ||
90 | } | ||
91 | print <<___; | ||
92 | ALIGN 4 | ||
93 | _TEXT ENDS | ||
94 | END | ||
95 | ___ | ||
96 | } | ||
97 | |||
98 | sub ia32nasm() { | ||
99 | print <<___; | ||
100 | SEGMENT .data | ||
101 | GLOBAL _OPENSSL_UplinkTable | ||
102 | _OPENSSL_UplinkTable DD $N ; amount of following entries | ||
103 | ___ | ||
104 | for ($i=1;$i<=$N;$i++) { print " DD \$lazy$i\n"; } | ||
105 | print <<___; | ||
106 | |||
107 | SEGMENT .text | ||
108 | EXTERN _OPENSSL_Uplink | ||
109 | ___ | ||
110 | for ($i=1;$i<=$N;$i++) { | ||
111 | print <<___; | ||
112 | ALIGN 4 | ||
113 | \$lazy$i: | ||
114 | push $i | ||
115 | push _OPENSSL_UplinkTable | ||
116 | call _OPENSSL_Uplink | ||
117 | add esp,8 | ||
118 | jmp [_OPENSSL_UplinkTable+4*$i] | ||
119 | ___ | ||
120 | } | ||
121 | print <<___; | ||
122 | ALIGN 4 | ||
123 | END | ||
124 | ___ | ||
125 | } | ||
126 | |||
127 | sub ia64ias () { | ||
128 | local $V=8; # max number of args uplink functions may accept... | ||
129 | print <<___; | ||
130 | .data | ||
131 | .global OPENSSL_UplinkTable# | ||
132 | OPENSSL_UplinkTable: data8 $N // amount of following entries | ||
133 | ___ | ||
134 | for ($i=1;$i<=$N;$i++) { print " data8 \@fptr(lazy$i#)\n"; } | ||
135 | print <<___; | ||
136 | .size OPENSSL_UplinkTable,.-OPENSSL_UplinkTable# | ||
137 | |||
138 | .text | ||
139 | .global OPENSSL_Uplink# | ||
140 | .type OPENSSL_Uplink#,\@function | ||
141 | ___ | ||
142 | for ($i=1;$i<=$N;$i++) { | ||
143 | print <<___; | ||
144 | .proc lazy$i | ||
145 | lazy$i: | ||
146 | { .mii; alloc loc0=ar.pfs,$V,3,2,0 | ||
147 | mov loc1=b0 | ||
148 | addl loc2=\@ltoff(OPENSSL_UplinkTable#),gp };; | ||
149 | { .mmi; ld8 out0=[loc2] | ||
150 | mov out1=$i };; | ||
151 | { .mib; adds loc2=8*$i,out0 | ||
152 | br.call.sptk.many b0=OPENSSL_Uplink# };; | ||
153 | { .mmi; ld8 r31=[loc2];; | ||
154 | ld8 r30=[r31],8 };; | ||
155 | { .mii; ld8 gp=[r31] | ||
156 | mov b6=r30 | ||
157 | mov b0=loc1 };; | ||
158 | { .mib; mov ar.pfs=loc0 | ||
159 | br.many b6 };; | ||
160 | .endp lazy$i# | ||
161 | ___ | ||
162 | } | ||
163 | } | ||
164 | |||
165 | sub amd64masm() { | ||
166 | print <<___; | ||
167 | _DATA SEGMENT | ||
168 | PUBLIC OPENSSL_UplinkTable | ||
169 | OPENSSL_UplinkTable DQ $N | ||
170 | ___ | ||
171 | for ($i=1;$i<=$N;$i++) { print " DQ \$lazy$i\n"; } | ||
172 | print <<___; | ||
173 | _DATA ENDS | ||
174 | |||
175 | _TEXT SEGMENT | ||
176 | EXTERN OPENSSL_Uplink:PROC | ||
177 | ___ | ||
178 | for ($i=1;$i<=$N;$i++) { | ||
179 | print <<___; | ||
180 | ALIGN 4 | ||
181 | \$lazy$i PROC | ||
182 | push r9 | ||
183 | push r8 | ||
184 | push rdx | ||
185 | push rcx | ||
186 | sub rsp,40 | ||
187 | lea rcx,OFFSET OPENSSL_UplinkTable | ||
188 | mov rdx,$i | ||
189 | call OPENSSL_Uplink | ||
190 | add rsp,40 | ||
191 | pop rcx | ||
192 | pop rdx | ||
193 | pop r8 | ||
194 | pop r9 | ||
195 | jmp QWORD PTR OPENSSL_UplinkTable+8*$i | ||
196 | \$lazy$i ENDP | ||
197 | ___ | ||
198 | } | ||
199 | print <<___; | ||
200 | _TEXT ENDS | ||
201 | END | ||
202 | ___ | ||
203 | } | ||
204 | |||
diff --git a/src/lib/libssl/src/ms/x86asm.bat b/src/lib/libssl/src/ms/x86asm.bat deleted file mode 100644 index 03563c6b04..0000000000 --- a/src/lib/libssl/src/ms/x86asm.bat +++ /dev/null | |||
@@ -1,57 +0,0 @@ | |||
1 | |||
2 | @echo off | ||
3 | echo Generating x86 assember | ||
4 | |||
5 | echo Bignum | ||
6 | cd crypto\bn\asm | ||
7 | perl x86.pl win32n > bn-win32.asm | ||
8 | cd ..\..\.. | ||
9 | |||
10 | echo DES | ||
11 | cd crypto\des\asm | ||
12 | perl des-586.pl win32n > d-win32.asm | ||
13 | cd ..\..\.. | ||
14 | |||
15 | echo "crypt(3)" | ||
16 | |||
17 | cd crypto\des\asm | ||
18 | perl crypt586.pl win32n > y-win32.asm | ||
19 | cd ..\..\.. | ||
20 | |||
21 | echo Blowfish | ||
22 | |||
23 | cd crypto\bf\asm | ||
24 | perl bf-586.pl win32n > b-win32.asm | ||
25 | cd ..\..\.. | ||
26 | |||
27 | echo CAST5 | ||
28 | cd crypto\cast\asm | ||
29 | perl cast-586.pl win32n > c-win32.asm | ||
30 | cd ..\..\.. | ||
31 | |||
32 | echo RC4 | ||
33 | cd crypto\rc4\asm | ||
34 | perl rc4-586.pl win32n > r4-win32.asm | ||
35 | cd ..\..\.. | ||
36 | |||
37 | echo MD5 | ||
38 | cd crypto\md5\asm | ||
39 | perl md5-586.pl win32n > m5-win32.asm | ||
40 | cd ..\..\.. | ||
41 | |||
42 | echo SHA1 | ||
43 | cd crypto\sha\asm | ||
44 | perl sha1-586.pl win32n > s1-win32.asm | ||
45 | cd ..\..\.. | ||
46 | |||
47 | echo RIPEMD160 | ||
48 | cd crypto\ripemd\asm | ||
49 | perl rmd-586.pl win32n > rm-win32.asm | ||
50 | cd ..\..\.. | ||
51 | |||
52 | echo RC5\32 | ||
53 | cd crypto\rc5\asm | ||
54 | perl rc5-586.pl win32n > r5-win32.asm | ||
55 | cd ..\..\.. | ||
56 | |||
57 | echo on | ||
diff --git a/src/lib/libssl/src/openssl.spec b/src/lib/libssl/src/openssl.spec index 0d86222e43..44147ce64a 100644 --- a/src/lib/libssl/src/openssl.spec +++ b/src/lib/libssl/src/openssl.spec | |||
@@ -1,8 +1,5 @@ | |||
1 | %define _unpackaged_files_terminate_build 0 | 1 | %define _unpackaged_files_terminate_build 0 |
2 | %define libmaj 1 | 2 | |
3 | %define libmin 0 | ||
4 | %define librel 1 | ||
5 | %define librev c | ||
6 | Release: 1 | 3 | Release: 1 |
7 | 4 | ||
8 | %define openssldir /var/ssl | 5 | %define openssldir /var/ssl |
@@ -10,9 +7,9 @@ Release: 1 | |||
10 | Summary: Secure Sockets Layer and cryptography libraries and tools | 7 | Summary: Secure Sockets Layer and cryptography libraries and tools |
11 | Name: openssl | 8 | Name: openssl |
12 | #Version: %{libmaj}.%{libmin}.%{librel} | 9 | #Version: %{libmaj}.%{libmin}.%{librel} |
13 | Version: %{libmaj}.%{libmin}.%{librel}%{librev} | 10 | Version: 1.0.1g |
14 | Source0: ftp://ftp.openssl.org/source/%{name}-%{version}.tar.gz | 11 | Source0: ftp://ftp.openssl.org/source/%{name}-%{version}.tar.gz |
15 | Copyright: Freely distributable | 12 | License: OpenSSL |
16 | Group: System Environment/Libraries | 13 | Group: System Environment/Libraries |
17 | Provides: SSL | 14 | Provides: SSL |
18 | URL: http://www.openssl.org/ | 15 | URL: http://www.openssl.org/ |
diff --git a/src/lib/libssl/src/os2/OS2-EMX.cmd b/src/lib/libssl/src/os2/OS2-EMX.cmd deleted file mode 100644 index 5924b50b6d..0000000000 --- a/src/lib/libssl/src/os2/OS2-EMX.cmd +++ /dev/null | |||
@@ -1,102 +0,0 @@ | |||
1 | @echo off | ||
2 | |||
3 | perl Configure OS2-EMX | ||
4 | perl util\mkfiles.pl > MINFO | ||
5 | |||
6 | @rem create make file | ||
7 | perl util\mk1mf.pl OS2-EMX > OS2-EMX.mak | ||
8 | perl util\mk1mf.pl dll OS2-EMX > OS2-EMX-DLL.mak | ||
9 | |||
10 | echo Generating export definition files | ||
11 | perl util\mkdef.pl crypto OS2 > os2\crypto.def | ||
12 | perl util\mkdef.pl ssl OS2 > os2\ssl.def | ||
13 | |||
14 | echo Generating x86 for GNU assember | ||
15 | |||
16 | echo Bignum | ||
17 | cd crypto\bn\asm | ||
18 | rem perl x86.pl a.out > bn-os2.asm | ||
19 | perl bn-586.pl a.out > bn-os2.asm | ||
20 | perl co-586.pl a.out > co-os2.asm | ||
21 | cd ..\..\.. | ||
22 | |||
23 | echo DES | ||
24 | cd crypto\des\asm | ||
25 | perl des-586.pl a.out > d-os2.asm | ||
26 | cd ..\..\.. | ||
27 | |||
28 | echo crypt(3) | ||
29 | cd crypto\des\asm | ||
30 | perl crypt586.pl a.out > y-os2.asm | ||
31 | cd ..\..\.. | ||
32 | |||
33 | echo Blowfish | ||
34 | cd crypto\bf\asm | ||
35 | perl bf-586.pl a.out > b-os2.asm | ||
36 | cd ..\..\.. | ||
37 | |||
38 | echo CAST5 | ||
39 | cd crypto\cast\asm | ||
40 | perl cast-586.pl a.out > c-os2.asm | ||
41 | cd ..\..\.. | ||
42 | |||
43 | echo RC4 | ||
44 | cd crypto\rc4\asm | ||
45 | perl rc4-586.pl a.out > r4-os2.asm | ||
46 | cd ..\..\.. | ||
47 | |||
48 | echo MD5 | ||
49 | cd crypto\md5\asm | ||
50 | perl md5-586.pl a.out > m5-os2.asm | ||
51 | cd ..\..\.. | ||
52 | |||
53 | echo SHA1 | ||
54 | cd crypto\sha\asm | ||
55 | perl sha1-586.pl a.out > s1-os2.asm | ||
56 | cd ..\..\.. | ||
57 | |||
58 | echo RIPEMD160 | ||
59 | cd crypto\ripemd\asm | ||
60 | perl rmd-586.pl a.out > rm-os2.asm | ||
61 | cd ..\..\.. | ||
62 | |||
63 | echo RC5\32 | ||
64 | cd crypto\rc5\asm | ||
65 | perl rc5-586.pl a.out > r5-os2.asm | ||
66 | cd ..\..\.. | ||
67 | |||
68 | cd os2 | ||
69 | |||
70 | if exist noname\backward_ssl.def goto nomkdir | ||
71 | mkdir noname | ||
72 | :nomkdir | ||
73 | |||
74 | perl backwardify.pl crypto.def >backward_crypto.def | ||
75 | perl backwardify.pl ssl.def >backward_ssl.def | ||
76 | perl backwardify.pl -noname crypto.def >noname\backward_crypto.def | ||
77 | perl backwardify.pl -noname ssl.def >noname\backward_ssl.def | ||
78 | |||
79 | echo Creating backward compatibility forwarder dlls: | ||
80 | echo crypto.dll | ||
81 | gcc -Zomf -Zdll -Zcrtdll -o crypto.dll backward_crypto.def 2>&1 | grep -v L4085 | ||
82 | echo ssl.dll | ||
83 | gcc -Zomf -Zdll -Zcrtdll -o ssl.dll backward_ssl.def 2>&1 | grep -v L4085 | ||
84 | |||
85 | echo Creating smaller backward compatibility forwarder dlls: | ||
86 | echo These DLLs are not good for runtime resolution of symbols. | ||
87 | echo noname\crypto.dll | ||
88 | gcc -Zomf -Zdll -Zcrtdll -o noname/crypto.dll noname/backward_crypto.def 2>&1 | grep -v L4085 | ||
89 | echo noname\ssl.dll | ||
90 | gcc -Zomf -Zdll -Zcrtdll -o noname/ssl.dll noname/backward_ssl.def 2>&1 | grep -v L4085 | ||
91 | |||
92 | echo Compressing forwarders (it is ok if lxlite is not found): | ||
93 | lxlite *.dll noname/*.dll | ||
94 | |||
95 | cd .. | ||
96 | |||
97 | echo Now run: | ||
98 | echo For static build: | ||
99 | echo make -f OS2-EMX.mak | ||
100 | echo For dynamic build: | ||
101 | echo make -f OS2-EMX-DLL.mak | ||
102 | echo then rename crypto.dll to cryptssl.dll, ssl.dll to open_ssl.dll | ||
diff --git a/src/lib/libssl/src/os2/backwardify.pl b/src/lib/libssl/src/os2/backwardify.pl deleted file mode 100644 index 272423c8fa..0000000000 --- a/src/lib/libssl/src/os2/backwardify.pl +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | #!/usr/bin/perl -w | ||
2 | use strict; | ||
3 | |||
4 | # Use as $0 | ||
5 | # Use as $0 -noname | ||
6 | |||
7 | my $did_library; | ||
8 | my $did_description; | ||
9 | my $do_exports; | ||
10 | my @imports; | ||
11 | my $noname = (@ARGV and $ARGV[0] eq '-noname' and shift); | ||
12 | while (<>) { | ||
13 | unless ($did_library) { | ||
14 | s/\b(cryptssl)\b/crypto/ and $did_library = $1 if /^LIBRARY\s+cryptssl\b/; | ||
15 | s/\b(open_ssl)\b/ssl/ and $did_library = $1 if /^LIBRARY\s+open_ssl\b/; | ||
16 | } | ||
17 | unless ($did_description) { | ||
18 | s&^(DESCRIPTION\s+(['"])).*&${1}\@#www.openssl.org/:#\@forwarder DLL for pre-0.9.7c+ OpenSSL to the new dll naming scheme$2& and $did_description++; | ||
19 | } | ||
20 | if ($do_exports) {{ | ||
21 | last unless /\S/; | ||
22 | warn, last unless /^ \s* ( \w+ ) \s+ \@(\d+)\s*$/x; | ||
23 | push @imports, [$1, $2]; | ||
24 | s/$/ NONAME/ if $noname; | ||
25 | }} | ||
26 | $do_exports++ if not $do_exports and /^EXPORTS/; | ||
27 | print $_; | ||
28 | } | ||
29 | print "IMPORTS\n"; | ||
30 | for my $imp (@imports) { | ||
31 | print "\t$imp->[0]=$did_library.$imp->[1]\n"; | ||
32 | } | ||
diff --git a/src/lib/libssl/src/ssl/Makefile b/src/lib/libssl/src/ssl/Makefile index feaf3e358a..debe07405b 100644 --- a/src/lib/libssl/src/ssl/Makefile +++ b/src/lib/libssl/src/ssl/Makefile | |||
@@ -22,7 +22,7 @@ LIB=$(TOP)/libssl.a | |||
22 | SHARED_LIB= libssl$(SHLIB_EXT) | 22 | SHARED_LIB= libssl$(SHLIB_EXT) |
23 | LIBSRC= \ | 23 | LIBSRC= \ |
24 | s2_meth.c s2_srvr.c s2_clnt.c s2_lib.c s2_enc.c s2_pkt.c \ | 24 | s2_meth.c s2_srvr.c s2_clnt.c s2_lib.c s2_enc.c s2_pkt.c \ |
25 | s3_meth.c s3_srvr.c s3_clnt.c s3_lib.c s3_enc.c s3_pkt.c s3_both.c \ | 25 | s3_meth.c s3_srvr.c s3_clnt.c s3_lib.c s3_enc.c s3_pkt.c s3_both.c s3_cbc.c \ |
26 | s23_meth.c s23_srvr.c s23_clnt.c s23_lib.c s23_pkt.c \ | 26 | s23_meth.c s23_srvr.c s23_clnt.c s23_lib.c s23_pkt.c \ |
27 | t1_meth.c t1_srvr.c t1_clnt.c t1_lib.c t1_enc.c \ | 27 | t1_meth.c t1_srvr.c t1_clnt.c t1_lib.c t1_enc.c \ |
28 | d1_meth.c d1_srvr.c d1_clnt.c d1_lib.c d1_pkt.c \ | 28 | d1_meth.c d1_srvr.c d1_clnt.c d1_lib.c d1_pkt.c \ |
@@ -33,7 +33,7 @@ LIBSRC= \ | |||
33 | bio_ssl.c ssl_err.c kssl.c tls_srp.c t1_reneg.c | 33 | bio_ssl.c ssl_err.c kssl.c tls_srp.c t1_reneg.c |
34 | LIBOBJ= \ | 34 | LIBOBJ= \ |
35 | s2_meth.o s2_srvr.o s2_clnt.o s2_lib.o s2_enc.o s2_pkt.o \ | 35 | s2_meth.o s2_srvr.o s2_clnt.o s2_lib.o s2_enc.o s2_pkt.o \ |
36 | s3_meth.o s3_srvr.o s3_clnt.o s3_lib.o s3_enc.o s3_pkt.o s3_both.o \ | 36 | s3_meth.o s3_srvr.o s3_clnt.o s3_lib.o s3_enc.o s3_pkt.o s3_both.o s3_cbc.o \ |
37 | s23_meth.o s23_srvr.o s23_clnt.o s23_lib.o s23_pkt.o \ | 37 | s23_meth.o s23_srvr.o s23_clnt.o s23_lib.o s23_pkt.o \ |
38 | t1_meth.o t1_srvr.o t1_clnt.o t1_lib.o t1_enc.o \ | 38 | t1_meth.o t1_srvr.o t1_clnt.o t1_lib.o t1_enc.o \ |
39 | d1_meth.o d1_srvr.o d1_clnt.o d1_lib.o d1_pkt.o \ | 39 | d1_meth.o d1_srvr.o d1_clnt.o d1_lib.o d1_pkt.o \ |
@@ -547,6 +547,26 @@ s3_both.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h | |||
547 | s3_both.o: ../include/openssl/stack.h ../include/openssl/symhacks.h | 547 | s3_both.o: ../include/openssl/stack.h ../include/openssl/symhacks.h |
548 | s3_both.o: ../include/openssl/tls1.h ../include/openssl/x509.h | 548 | s3_both.o: ../include/openssl/tls1.h ../include/openssl/x509.h |
549 | s3_both.o: ../include/openssl/x509_vfy.h s3_both.c ssl_locl.h | 549 | s3_both.o: ../include/openssl/x509_vfy.h s3_both.c ssl_locl.h |
550 | s3_cbc.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h | ||
551 | s3_cbc.o: ../include/openssl/buffer.h ../include/openssl/comp.h | ||
552 | s3_cbc.o: ../include/openssl/crypto.h ../include/openssl/dsa.h | ||
553 | s3_cbc.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h | ||
554 | s3_cbc.o: ../include/openssl/ec.h ../include/openssl/ecdh.h | ||
555 | s3_cbc.o: ../include/openssl/ecdsa.h ../include/openssl/err.h | ||
556 | s3_cbc.o: ../include/openssl/evp.h ../include/openssl/hmac.h | ||
557 | s3_cbc.o: ../include/openssl/kssl.h ../include/openssl/lhash.h | ||
558 | s3_cbc.o: ../include/openssl/md5.h ../include/openssl/obj_mac.h | ||
559 | s3_cbc.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h | ||
560 | s3_cbc.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h | ||
561 | s3_cbc.o: ../include/openssl/pem.h ../include/openssl/pem2.h | ||
562 | s3_cbc.o: ../include/openssl/pkcs7.h ../include/openssl/pqueue.h | ||
563 | s3_cbc.o: ../include/openssl/rsa.h ../include/openssl/safestack.h | ||
564 | s3_cbc.o: ../include/openssl/sha.h ../include/openssl/srtp.h | ||
565 | s3_cbc.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h | ||
566 | s3_cbc.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h | ||
567 | s3_cbc.o: ../include/openssl/stack.h ../include/openssl/symhacks.h | ||
568 | s3_cbc.o: ../include/openssl/tls1.h ../include/openssl/x509.h | ||
569 | s3_cbc.o: ../include/openssl/x509_vfy.h s3_cbc.c ssl_locl.h | ||
550 | s3_clnt.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h | 570 | s3_clnt.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h |
551 | s3_clnt.o: ../include/openssl/bn.h ../include/openssl/buffer.h | 571 | s3_clnt.o: ../include/openssl/bn.h ../include/openssl/buffer.h |
552 | s3_clnt.o: ../include/openssl/comp.h ../include/openssl/crypto.h | 572 | s3_clnt.o: ../include/openssl/comp.h ../include/openssl/crypto.h |
diff --git a/src/lib/libssl/src/ssl/d1_both.c b/src/lib/libssl/src/ssl/d1_both.c index e4b718efa7..2e8cf681ed 100644 --- a/src/lib/libssl/src/ssl/d1_both.c +++ b/src/lib/libssl/src/ssl/d1_both.c | |||
@@ -220,7 +220,6 @@ dtls1_hm_fragment_free(hm_fragment *frag) | |||
220 | EVP_CIPHER_CTX_free(frag->msg_header.saved_retransmit_state.enc_write_ctx); | 220 | EVP_CIPHER_CTX_free(frag->msg_header.saved_retransmit_state.enc_write_ctx); |
221 | EVP_MD_CTX_destroy(frag->msg_header.saved_retransmit_state.write_hash); | 221 | EVP_MD_CTX_destroy(frag->msg_header.saved_retransmit_state.write_hash); |
222 | } | 222 | } |
223 | |||
224 | if (frag->fragment) OPENSSL_free(frag->fragment); | 223 | if (frag->fragment) OPENSSL_free(frag->fragment); |
225 | if (frag->reassembly) OPENSSL_free(frag->reassembly); | 224 | if (frag->reassembly) OPENSSL_free(frag->reassembly); |
226 | OPENSSL_free(frag); | 225 | OPENSSL_free(frag); |
@@ -320,9 +319,10 @@ int dtls1_do_write(SSL *s, int type) | |||
320 | s->init_off -= DTLS1_HM_HEADER_LENGTH; | 319 | s->init_off -= DTLS1_HM_HEADER_LENGTH; |
321 | s->init_num += DTLS1_HM_HEADER_LENGTH; | 320 | s->init_num += DTLS1_HM_HEADER_LENGTH; |
322 | 321 | ||
323 | /* write atleast DTLS1_HM_HEADER_LENGTH bytes */ | 322 | if ( s->init_num > curr_mtu) |
324 | if ( len <= DTLS1_HM_HEADER_LENGTH) | 323 | len = curr_mtu; |
325 | len += DTLS1_HM_HEADER_LENGTH; | 324 | else |
325 | len = s->init_num; | ||
326 | } | 326 | } |
327 | 327 | ||
328 | dtls1_fix_message_header(s, frag_off, | 328 | dtls1_fix_message_header(s, frag_off, |
diff --git a/src/lib/libssl/src/ssl/d1_clnt.c b/src/lib/libssl/src/ssl/d1_clnt.c index a6ed09c51d..48e5e06bde 100644 --- a/src/lib/libssl/src/ssl/d1_clnt.c +++ b/src/lib/libssl/src/ssl/d1_clnt.c | |||
@@ -538,13 +538,6 @@ int dtls1_connect(SSL *s) | |||
538 | SSL3_ST_CW_CHANGE_A,SSL3_ST_CW_CHANGE_B); | 538 | SSL3_ST_CW_CHANGE_A,SSL3_ST_CW_CHANGE_B); |
539 | if (ret <= 0) goto end; | 539 | if (ret <= 0) goto end; |
540 | 540 | ||
541 | #ifndef OPENSSL_NO_SCTP | ||
542 | /* Change to new shared key of SCTP-Auth, | ||
543 | * will be ignored if no SCTP used. | ||
544 | */ | ||
545 | BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_SCTP_NEXT_AUTH_KEY, 0, NULL); | ||
546 | #endif | ||
547 | |||
548 | s->state=SSL3_ST_CW_FINISHED_A; | 541 | s->state=SSL3_ST_CW_FINISHED_A; |
549 | s->init_num=0; | 542 | s->init_num=0; |
550 | 543 | ||
@@ -571,6 +564,16 @@ int dtls1_connect(SSL *s) | |||
571 | goto end; | 564 | goto end; |
572 | } | 565 | } |
573 | 566 | ||
567 | #ifndef OPENSSL_NO_SCTP | ||
568 | if (s->hit) | ||
569 | { | ||
570 | /* Change to new shared key of SCTP-Auth, | ||
571 | * will be ignored if no SCTP used. | ||
572 | */ | ||
573 | BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_SCTP_NEXT_AUTH_KEY, 0, NULL); | ||
574 | } | ||
575 | #endif | ||
576 | |||
574 | dtls1_reset_seq_numbers(s, SSL3_CC_WRITE); | 577 | dtls1_reset_seq_numbers(s, SSL3_CC_WRITE); |
575 | break; | 578 | break; |
576 | 579 | ||
@@ -613,6 +616,13 @@ int dtls1_connect(SSL *s) | |||
613 | } | 616 | } |
614 | else | 617 | else |
615 | { | 618 | { |
619 | #ifndef OPENSSL_NO_SCTP | ||
620 | /* Change to new shared key of SCTP-Auth, | ||
621 | * will be ignored if no SCTP used. | ||
622 | */ | ||
623 | BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_SCTP_NEXT_AUTH_KEY, 0, NULL); | ||
624 | #endif | ||
625 | |||
616 | #ifndef OPENSSL_NO_TLSEXT | 626 | #ifndef OPENSSL_NO_TLSEXT |
617 | /* Allow NewSessionTicket if ticket expected */ | 627 | /* Allow NewSessionTicket if ticket expected */ |
618 | if (s->tlsext_ticket_expected) | 628 | if (s->tlsext_ticket_expected) |
@@ -773,7 +783,7 @@ int dtls1_client_hello(SSL *s) | |||
773 | unsigned char *buf; | 783 | unsigned char *buf; |
774 | unsigned char *p,*d; | 784 | unsigned char *p,*d; |
775 | unsigned int i,j; | 785 | unsigned int i,j; |
776 | unsigned long Time,l; | 786 | unsigned long l; |
777 | SSL_COMP *comp; | 787 | SSL_COMP *comp; |
778 | 788 | ||
779 | buf=(unsigned char *)s->init_buf->data; | 789 | buf=(unsigned char *)s->init_buf->data; |
@@ -798,13 +808,11 @@ int dtls1_client_hello(SSL *s) | |||
798 | 808 | ||
799 | /* if client_random is initialized, reuse it, we are | 809 | /* if client_random is initialized, reuse it, we are |
800 | * required to use same upon reply to HelloVerify */ | 810 | * required to use same upon reply to HelloVerify */ |
801 | for (i=0;p[i]=='\0' && i<sizeof(s->s3->client_random);i++) ; | 811 | for (i=0;p[i]=='\0' && i<sizeof(s->s3->client_random);i++) |
812 | ; | ||
802 | if (i==sizeof(s->s3->client_random)) | 813 | if (i==sizeof(s->s3->client_random)) |
803 | { | 814 | ssl_fill_hello_random(s, 0, p, |
804 | Time=(unsigned long)time(NULL); /* Time */ | 815 | sizeof(s->s3->client_random)); |
805 | l2n(Time,p); | ||
806 | RAND_pseudo_bytes(p,sizeof(s->s3->client_random)-4); | ||
807 | } | ||
808 | 816 | ||
809 | /* Do the message type and length last */ | 817 | /* Do the message type and length last */ |
810 | d=p= &(buf[DTLS1_HM_HEADER_LENGTH]); | 818 | d=p= &(buf[DTLS1_HM_HEADER_LENGTH]); |
diff --git a/src/lib/libssl/src/ssl/d1_pkt.c b/src/lib/libssl/src/ssl/d1_pkt.c index cfe4524553..8186462d4a 100644 --- a/src/lib/libssl/src/ssl/d1_pkt.c +++ b/src/lib/libssl/src/ssl/d1_pkt.c | |||
@@ -455,7 +455,7 @@ printf("\n"); | |||
455 | orig_len < mac_size+1)) | 455 | orig_len < mac_size+1)) |
456 | { | 456 | { |
457 | al=SSL_AD_DECODE_ERROR; | 457 | al=SSL_AD_DECODE_ERROR; |
458 | SSLerr(SSL_F_SSL3_GET_RECORD,SSL_R_LENGTH_TOO_SHORT); | 458 | SSLerr(SSL_F_DTLS1_PROCESS_RECORD,SSL_R_LENGTH_TOO_SHORT); |
459 | goto f_err; | 459 | goto f_err; |
460 | } | 460 | } |
461 | 461 | ||
@@ -480,7 +480,7 @@ printf("\n"); | |||
480 | } | 480 | } |
481 | 481 | ||
482 | i=s->method->ssl3_enc->mac(s,md,0 /* not send */); | 482 | i=s->method->ssl3_enc->mac(s,md,0 /* not send */); |
483 | if (i < 0 || mac == NULL || timingsafe_bcmp(md, mac, (size_t)mac_size) != 0) | 483 | if (i < 0 || mac == NULL || CRYPTO_memcmp(md, mac, (size_t)mac_size) != 0) |
484 | enc_err = -1; | 484 | enc_err = -1; |
485 | if (rr->length > SSL3_RT_MAX_COMPRESSED_LENGTH+mac_size) | 485 | if (rr->length > SSL3_RT_MAX_COMPRESSED_LENGTH+mac_size) |
486 | enc_err = -1; | 486 | enc_err = -1; |
@@ -847,6 +847,12 @@ start: | |||
847 | } | 847 | } |
848 | } | 848 | } |
849 | 849 | ||
850 | if (s->d1->listen && rr->type != SSL3_RT_HANDSHAKE) | ||
851 | { | ||
852 | rr->length = 0; | ||
853 | goto start; | ||
854 | } | ||
855 | |||
850 | /* we now have a packet which can be read and processed */ | 856 | /* we now have a packet which can be read and processed */ |
851 | 857 | ||
852 | if (s->s3->change_cipher_spec /* set when we receive ChangeCipherSpec, | 858 | if (s->s3->change_cipher_spec /* set when we receive ChangeCipherSpec, |
@@ -1051,6 +1057,7 @@ start: | |||
1051 | !(s->s3->flags & SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS) && | 1057 | !(s->s3->flags & SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS) && |
1052 | !s->s3->renegotiate) | 1058 | !s->s3->renegotiate) |
1053 | { | 1059 | { |
1060 | s->d1->handshake_read_seq++; | ||
1054 | s->new_session = 1; | 1061 | s->new_session = 1; |
1055 | ssl3_renegotiate(s); | 1062 | ssl3_renegotiate(s); |
1056 | if (ssl3_renegotiate_check(s)) | 1063 | if (ssl3_renegotiate_check(s)) |
diff --git a/src/lib/libssl/src/ssl/d1_srvr.c b/src/lib/libssl/src/ssl/d1_srvr.c index 29421da9aa..9975e20873 100644 --- a/src/lib/libssl/src/ssl/d1_srvr.c +++ b/src/lib/libssl/src/ssl/d1_srvr.c | |||
@@ -276,10 +276,11 @@ int dtls1_accept(SSL *s) | |||
276 | case SSL3_ST_SW_HELLO_REQ_B: | 276 | case SSL3_ST_SW_HELLO_REQ_B: |
277 | 277 | ||
278 | s->shutdown=0; | 278 | s->shutdown=0; |
279 | dtls1_clear_record_buffer(s); | ||
279 | dtls1_start_timer(s); | 280 | dtls1_start_timer(s); |
280 | ret=dtls1_send_hello_request(s); | 281 | ret=dtls1_send_hello_request(s); |
281 | if (ret <= 0) goto end; | 282 | if (ret <= 0) goto end; |
282 | s->s3->tmp.next_state=SSL3_ST_SW_HELLO_REQ_C; | 283 | s->s3->tmp.next_state=SSL3_ST_SR_CLNT_HELLO_A; |
283 | s->state=SSL3_ST_SW_FLUSH; | 284 | s->state=SSL3_ST_SW_FLUSH; |
284 | s->init_num=0; | 285 | s->init_num=0; |
285 | 286 | ||
@@ -721,10 +722,13 @@ int dtls1_accept(SSL *s) | |||
721 | if (ret <= 0) goto end; | 722 | if (ret <= 0) goto end; |
722 | 723 | ||
723 | #ifndef OPENSSL_NO_SCTP | 724 | #ifndef OPENSSL_NO_SCTP |
724 | /* Change to new shared key of SCTP-Auth, | 725 | if (!s->hit) |
725 | * will be ignored if no SCTP used. | 726 | { |
726 | */ | 727 | /* Change to new shared key of SCTP-Auth, |
727 | BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_SCTP_NEXT_AUTH_KEY, 0, NULL); | 728 | * will be ignored if no SCTP used. |
729 | */ | ||
730 | BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_SCTP_NEXT_AUTH_KEY, 0, NULL); | ||
731 | } | ||
728 | #endif | 732 | #endif |
729 | 733 | ||
730 | s->state=SSL3_ST_SW_FINISHED_A; | 734 | s->state=SSL3_ST_SW_FINISHED_A; |
@@ -749,7 +753,16 @@ int dtls1_accept(SSL *s) | |||
749 | if (ret <= 0) goto end; | 753 | if (ret <= 0) goto end; |
750 | s->state=SSL3_ST_SW_FLUSH; | 754 | s->state=SSL3_ST_SW_FLUSH; |
751 | if (s->hit) | 755 | if (s->hit) |
756 | { | ||
752 | s->s3->tmp.next_state=SSL3_ST_SR_FINISHED_A; | 757 | s->s3->tmp.next_state=SSL3_ST_SR_FINISHED_A; |
758 | |||
759 | #ifndef OPENSSL_NO_SCTP | ||
760 | /* Change to new shared key of SCTP-Auth, | ||
761 | * will be ignored if no SCTP used. | ||
762 | */ | ||
763 | BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_SCTP_NEXT_AUTH_KEY, 0, NULL); | ||
764 | #endif | ||
765 | } | ||
753 | else | 766 | else |
754 | { | 767 | { |
755 | s->s3->tmp.next_state=SSL_ST_OK; | 768 | s->s3->tmp.next_state=SSL_ST_OK; |
@@ -912,15 +925,13 @@ int dtls1_send_server_hello(SSL *s) | |||
912 | unsigned char *p,*d; | 925 | unsigned char *p,*d; |
913 | int i; | 926 | int i; |
914 | unsigned int sl; | 927 | unsigned int sl; |
915 | unsigned long l,Time; | 928 | unsigned long l; |
916 | 929 | ||
917 | if (s->state == SSL3_ST_SW_SRVR_HELLO_A) | 930 | if (s->state == SSL3_ST_SW_SRVR_HELLO_A) |
918 | { | 931 | { |
919 | buf=(unsigned char *)s->init_buf->data; | 932 | buf=(unsigned char *)s->init_buf->data; |
920 | p=s->s3->server_random; | 933 | p=s->s3->server_random; |
921 | Time=(unsigned long)time(NULL); /* Time */ | 934 | ssl_fill_hello_random(s, 1, p, SSL3_RANDOM_SIZE); |
922 | l2n(Time,p); | ||
923 | RAND_pseudo_bytes(p,SSL3_RANDOM_SIZE-4); | ||
924 | /* Do the message type and length last */ | 935 | /* Do the message type and length last */ |
925 | d=p= &(buf[DTLS1_HM_HEADER_LENGTH]); | 936 | d=p= &(buf[DTLS1_HM_HEADER_LENGTH]); |
926 | 937 | ||
diff --git a/src/lib/libssl/src/ssl/dtls1.h b/src/lib/libssl/src/ssl/dtls1.h index 5008bf6081..e65d501191 100644 --- a/src/lib/libssl/src/ssl/dtls1.h +++ b/src/lib/libssl/src/ssl/dtls1.h | |||
@@ -57,8 +57,8 @@ | |||
57 | * | 57 | * |
58 | */ | 58 | */ |
59 | 59 | ||
60 | #ifndef HEADER_DTLS1_H | 60 | #ifndef HEADER_DTLS1_H |
61 | #define HEADER_DTLS1_H | 61 | #define HEADER_DTLS1_H |
62 | 62 | ||
63 | #include <openssl/buffer.h> | 63 | #include <openssl/buffer.h> |
64 | #include <openssl/pqueue.h> | 64 | #include <openssl/pqueue.h> |
@@ -72,8 +72,12 @@ | |||
72 | #elif defined(OPENSSL_SYS_NETWARE) && !defined(_WINSOCK2API_) | 72 | #elif defined(OPENSSL_SYS_NETWARE) && !defined(_WINSOCK2API_) |
73 | #include <sys/timeval.h> | 73 | #include <sys/timeval.h> |
74 | #else | 74 | #else |
75 | #if defined(OPENSSL_SYS_VXWORKS) | ||
76 | #include <sys/times.h> | ||
77 | #else | ||
75 | #include <sys/time.h> | 78 | #include <sys/time.h> |
76 | #endif | 79 | #endif |
80 | #endif | ||
77 | 81 | ||
78 | #ifdef __cplusplus | 82 | #ifdef __cplusplus |
79 | extern "C" { | 83 | extern "C" { |
diff --git a/src/lib/libssl/src/ssl/install-ssl.com b/src/lib/libssl/src/ssl/install-ssl.com deleted file mode 100755 index afe6967f85..0000000000 --- a/src/lib/libssl/src/ssl/install-ssl.com +++ /dev/null | |||
@@ -1,136 +0,0 @@ | |||
1 | $! INSTALL-SSL.COM -- Installs the files in a given directory tree | ||
2 | $! | ||
3 | $! Author: Richard Levitte <richard@levitte.org> | ||
4 | $! Time of creation: 22-MAY-1998 10:13 | ||
5 | $! | ||
6 | $! P1 root of the directory tree | ||
7 | $! P2 "64" for 64-bit pointers. | ||
8 | $! | ||
9 | $! | ||
10 | $! Announce/identify. | ||
11 | $! | ||
12 | $ proc = f$environment( "procedure") | ||
13 | $ write sys$output "@@@ "+ - | ||
14 | f$parse( proc, , , "name")+ f$parse( proc, , , "type") | ||
15 | $! | ||
16 | $ on error then goto tidy | ||
17 | $ on control_c then goto tidy | ||
18 | $! | ||
19 | $ if p1 .eqs. "" | ||
20 | $ then | ||
21 | $ write sys$output "First argument missing." | ||
22 | $ write sys$output - | ||
23 | "It should be the directory where you want things installed." | ||
24 | $ exit | ||
25 | $ endif | ||
26 | $! | ||
27 | $ if (f$getsyi( "cpu") .lt. 128) | ||
28 | $ then | ||
29 | $ arch = "VAX" | ||
30 | $ else | ||
31 | $ arch = f$edit( f$getsyi( "arch_name"), "upcase") | ||
32 | $ if (arch .eqs. "") then arch = "UNK" | ||
33 | $ endif | ||
34 | $! | ||
35 | $ archd = arch | ||
36 | $ lib32 = "32" | ||
37 | $ shr = "_SHR32" | ||
38 | $! | ||
39 | $ if (p2 .nes. "") | ||
40 | $ then | ||
41 | $ if (p2 .eqs. "64") | ||
42 | $ then | ||
43 | $ archd = arch+ "_64" | ||
44 | $ lib32 = "" | ||
45 | $ shr = "_SHR" | ||
46 | $ else | ||
47 | $ if (p2 .nes. "32") | ||
48 | $ then | ||
49 | $ write sys$output "Second argument invalid." | ||
50 | $ write sys$output "It should be "32", "64", or nothing." | ||
51 | $ exit | ||
52 | $ endif | ||
53 | $ endif | ||
54 | $ endif | ||
55 | $! | ||
56 | $ root = f$parse( p1, "[]A.;0", , , "syntax_only, no_conceal") - "A.;0" | ||
57 | $ root_dev = f$parse(root,,,"device","syntax_only") | ||
58 | $ root_dir = f$parse(root,,,"directory","syntax_only") - - | ||
59 | "[000000." - "][" - "[" - "]" | ||
60 | $ root = root_dev + "[" + root_dir | ||
61 | $! | ||
62 | $ define /nolog wrk_sslroot 'root'.] /trans=conc | ||
63 | $ define /nolog wrk_sslinclude wrk_sslroot:[include] | ||
64 | $ define /nolog wrk_sslxexe wrk_sslroot:['archd'_exe] | ||
65 | $ define /nolog wrk_sslxlib wrk_sslroot:['arch'_lib] | ||
66 | $! | ||
67 | $ if f$parse("wrk_sslroot:[000000]") .eqs. "" then - | ||
68 | create /directory /log wrk_sslroot:[000000] | ||
69 | $ if f$parse("wrk_sslinclude:") .eqs. "" then - | ||
70 | create /directory /log wrk_sslinclude: | ||
71 | $ if f$parse("wrk_sslxexe:") .eqs. "" then - | ||
72 | create /directory /log wrk_sslxexe: | ||
73 | $ if f$parse("wrk_sslxlib:") .eqs. "" then - | ||
74 | create /directory /log wrk_sslxlib: | ||
75 | $! | ||
76 | $ exheader := ssl.h, ssl2.h, ssl3.h, ssl23.h, tls1.h, dtls1.h, kssl.h, srtp.h | ||
77 | $ e_exe := ssl_task | ||
78 | $ libs := ssl_libssl | ||
79 | $! | ||
80 | $ xexe_dir := [-.'archd'.exe.ssl] | ||
81 | $! | ||
82 | $ copy /protection = w:re 'exheader' wrk_sslinclude: /log | ||
83 | $! | ||
84 | $ i = 0 | ||
85 | $ loop_exe: | ||
86 | $ e = f$edit( f$element( i, ",", e_exe), "trim") | ||
87 | $ i = i + 1 | ||
88 | $ if e .eqs. "," then goto loop_exe_end | ||
89 | $ set noon | ||
90 | $ file = xexe_dir+ e+ ".exe" | ||
91 | $ if f$search( file) .nes. "" | ||
92 | $ then | ||
93 | $ copy /protection = w:re 'file' wrk_sslxexe: /log | ||
94 | $ endif | ||
95 | $ set on | ||
96 | $ goto loop_exe | ||
97 | $ loop_exe_end: | ||
98 | $! | ||
99 | $ i = 0 | ||
100 | $ loop_lib: | ||
101 | $ e = f$edit(f$element(i, ",", libs),"trim") | ||
102 | $ i = i + 1 | ||
103 | $ if e .eqs. "," then goto loop_lib_end | ||
104 | $ set noon | ||
105 | $! Object library. | ||
106 | $ file = xexe_dir+ e+ lib32+ ".olb" | ||
107 | $ if f$search( file) .nes. "" | ||
108 | $ then | ||
109 | $ copy /protection = w:re 'file' wrk_sslxlib: /log | ||
110 | $ endif | ||
111 | $! Shareable image. | ||
112 | $ file = xexe_dir+ e+ shr+ ".exe" | ||
113 | $ if f$search( file) .nes. "" | ||
114 | $ then | ||
115 | $ copy /protection = w:re 'file' wrk_sslxlib: /log | ||
116 | $ endif | ||
117 | $ set on | ||
118 | $ goto loop_lib | ||
119 | $ loop_lib_end: | ||
120 | $! | ||
121 | $ tidy: | ||
122 | $! | ||
123 | $ call deass wrk_sslroot | ||
124 | $ call deass wrk_sslinclude | ||
125 | $ call deass wrk_sslxexe | ||
126 | $ call deass wrk_sslxlib | ||
127 | $! | ||
128 | $ exit | ||
129 | $! | ||
130 | $ deass: subroutine | ||
131 | $ if (f$trnlnm( p1, "LNM$PROCESS") .nes. "") | ||
132 | $ then | ||
133 | $ deassign /process 'p1' | ||
134 | $ endif | ||
135 | $ endsubroutine | ||
136 | $! | ||
diff --git a/src/lib/libssl/src/ssl/install.com b/src/lib/libssl/src/ssl/install.com deleted file mode 100644 index 7f56067599..0000000000 --- a/src/lib/libssl/src/ssl/install.com +++ /dev/null | |||
@@ -1,90 +0,0 @@ | |||
1 | $! INSTALL.COM -- Installs the files in a given directory tree | ||
2 | $! | ||
3 | $! Author: Richard Levitte <richard@levitte.org> | ||
4 | $! Time of creation: 22-MAY-1998 10:13 | ||
5 | $! | ||
6 | $! P1 root of the directory tree | ||
7 | $! | ||
8 | $ IF P1 .EQS. "" | ||
9 | $ THEN | ||
10 | $ WRITE SYS$OUTPUT "First argument missing." | ||
11 | $ WRITE SYS$OUTPUT - | ||
12 | "It should be the directory where you want things installed." | ||
13 | $ EXIT | ||
14 | $ ENDIF | ||
15 | $ | ||
16 | $ IF (F$GETSYI("CPU").LT.128) | ||
17 | $ THEN | ||
18 | $ ARCH := VAX | ||
19 | $ ELSE | ||
20 | $ ARCH = F$EDIT( F$GETSYI( "ARCH_NAME"), "UPCASE") | ||
21 | $ IF (ARCH .EQS. "") THEN ARCH = "UNK" | ||
22 | $ ENDIF | ||
23 | $ | ||
24 | $ ROOT = F$PARSE(P1,"[]A.;0",,,"SYNTAX_ONLY,NO_CONCEAL") - "A.;0" | ||
25 | $ ROOT_DEV = F$PARSE(ROOT,,,"DEVICE","SYNTAX_ONLY") | ||
26 | $ ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") - | ||
27 | - "[000000." - "][" - "[" - "]" | ||
28 | $ ROOT = ROOT_DEV + "[" + ROOT_DIR | ||
29 | $ | ||
30 | $ DEFINE/NOLOG WRK_SSLROOT 'ROOT'.] /TRANS=CONC | ||
31 | $ DEFINE/NOLOG WRK_SSLXLIB WRK_SSLROOT:['ARCH'_LIB] | ||
32 | $ DEFINE/NOLOG WRK_SSLINCLUDE WRK_SSLROOT:[INCLUDE] | ||
33 | $ DEFINE/NOLOG WRK_SSLXEXE WRK_SSLROOT:['ARCH'_EXE] | ||
34 | $ | ||
35 | $ IF F$PARSE("WRK_SSLROOT:[000000]") .EQS. "" THEN - | ||
36 | CREATE/DIR/LOG WRK_SSLROOT:[000000] | ||
37 | $ IF F$PARSE("WRK_SSLXLIB:") .EQS. "" THEN - | ||
38 | CREATE/DIR/LOG WRK_SSLXLIB: | ||
39 | $ IF F$PARSE("WRK_SSLINCLUDE:") .EQS. "" THEN - | ||
40 | CREATE/DIR/LOG WRK_SSLINCLUDE: | ||
41 | $ IF F$PARSE("WRK_SSLXEXE:") .EQS. "" THEN - | ||
42 | CREATE/DIR/LOG WRK_SSLXEXE: | ||
43 | $ | ||
44 | $ EXHEADER := ssl.h,ssl2.h,ssl3.h,ssl23.h,tls1.h,dtls1.h,kssl.h | ||
45 | $ E_EXE := ssl_task | ||
46 | $ LIBS := LIBSSL | ||
47 | $ | ||
48 | $ XEXE_DIR := [-.'ARCH'.EXE.SSL] | ||
49 | $ | ||
50 | $ COPY 'EXHEADER' WRK_SSLINCLUDE:/LOG | ||
51 | $ SET FILE/PROT=WORLD:RE WRK_SSLINCLUDE:'EXHEADER' | ||
52 | $ | ||
53 | $ I = 0 | ||
54 | $ LOOP_EXE: | ||
55 | $ E = F$EDIT(F$ELEMENT(I, ",", E_EXE),"TRIM") | ||
56 | $ I = I + 1 | ||
57 | $ IF E .EQS. "," THEN GOTO LOOP_EXE_END | ||
58 | $ SET NOON | ||
59 | $ IF F$SEARCH(XEXE_DIR+E+".EXE") .NES. "" | ||
60 | $ THEN | ||
61 | $ COPY 'XEXE_DIR''E'.EXE WRK_SSLXEXE:'E'.EXE/log | ||
62 | $ SET FILE/PROT=W:RE WRK_SSLXEXE:'E'.EXE | ||
63 | $ ENDIF | ||
64 | $ SET ON | ||
65 | $ GOTO LOOP_EXE | ||
66 | $ LOOP_EXE_END: | ||
67 | $ | ||
68 | $ I = 0 | ||
69 | $ LOOP_LIB: | ||
70 | $ E = F$EDIT(F$ELEMENT(I, ",", LIBS),"TRIM") | ||
71 | $ I = I + 1 | ||
72 | $ IF E .EQS. "," THEN GOTO LOOP_LIB_END | ||
73 | $ SET NOON | ||
74 | $! Object library. | ||
75 | $ IF F$SEARCH(XEXE_DIR+E+".OLB") .NES. "" | ||
76 | $ THEN | ||
77 | $ COPY 'XEXE_DIR''E'.OLB WRK_SSLXLIB:'E'.OLB/log | ||
78 | $ SET FILE/PROT=W:RE WRK_SSLXLIB:'E'.OLB | ||
79 | $ ENDIF | ||
80 | $! Shareable image. | ||
81 | $ IF F$SEARCH(XEXE_DIR+E+".EXE") .NES. "" | ||
82 | $ THEN | ||
83 | $ COPY 'XEXE_DIR''E'.EXE WRK_SSLXLIB:'E'.EXE/log | ||
84 | $ SET FILE/PROT=W:RE WRK_SSLXLIB:'E'.EXE | ||
85 | $ ENDIF | ||
86 | $ SET ON | ||
87 | $ GOTO LOOP_LIB | ||
88 | $ LOOP_LIB_END: | ||
89 | $ | ||
90 | $ EXIT | ||
diff --git a/src/lib/libssl/src/ssl/kssl.h b/src/lib/libssl/src/ssl/kssl.h index 8242fd5eeb..e4df843073 100644 --- a/src/lib/libssl/src/ssl/kssl.h +++ b/src/lib/libssl/src/ssl/kssl.h | |||
@@ -70,6 +70,15 @@ | |||
70 | #include <stdio.h> | 70 | #include <stdio.h> |
71 | #include <ctype.h> | 71 | #include <ctype.h> |
72 | #include <krb5.h> | 72 | #include <krb5.h> |
73 | #ifdef OPENSSL_SYS_WIN32 | ||
74 | /* These can sometimes get redefined indirectly by krb5 header files | ||
75 | * after they get undefed in ossl_typ.h | ||
76 | */ | ||
77 | #undef X509_NAME | ||
78 | #undef X509_EXTENSIONS | ||
79 | #undef OCSP_REQUEST | ||
80 | #undef OCSP_RESPONSE | ||
81 | #endif | ||
73 | 82 | ||
74 | #ifdef __cplusplus | 83 | #ifdef __cplusplus |
75 | extern "C" { | 84 | extern "C" { |
diff --git a/src/lib/libssl/src/ssl/s23_clnt.c b/src/lib/libssl/src/ssl/s23_clnt.c index 47673e740a..2b93c639dd 100644 --- a/src/lib/libssl/src/ssl/s23_clnt.c +++ b/src/lib/libssl/src/ssl/s23_clnt.c | |||
@@ -269,12 +269,35 @@ static int ssl23_no_ssl2_ciphers(SSL *s) | |||
269 | return 1; | 269 | return 1; |
270 | } | 270 | } |
271 | 271 | ||
272 | /* Fill a ClientRandom or ServerRandom field of length len. Returns <= 0 | ||
273 | * on failure, 1 on success. */ | ||
274 | int ssl_fill_hello_random(SSL *s, int server, unsigned char *result, int len) | ||
275 | { | ||
276 | int send_time = 0; | ||
277 | |||
278 | if (len < 4) | ||
279 | return 0; | ||
280 | if (server) | ||
281 | send_time = (s->mode & SSL_MODE_SEND_SERVERHELLO_TIME) != 0; | ||
282 | else | ||
283 | send_time = (s->mode & SSL_MODE_SEND_CLIENTHELLO_TIME) != 0; | ||
284 | if (send_time) | ||
285 | { | ||
286 | unsigned long Time = (unsigned long)time(NULL); | ||
287 | unsigned char *p = result; | ||
288 | l2n(Time, p); | ||
289 | return RAND_pseudo_bytes(p, len-4); | ||
290 | } | ||
291 | else | ||
292 | return RAND_pseudo_bytes(result, len); | ||
293 | } | ||
294 | |||
272 | static int ssl23_client_hello(SSL *s) | 295 | static int ssl23_client_hello(SSL *s) |
273 | { | 296 | { |
274 | unsigned char *buf; | 297 | unsigned char *buf; |
275 | unsigned char *p,*d; | 298 | unsigned char *p,*d; |
276 | int i,ch_len; | 299 | int i,ch_len; |
277 | unsigned long Time,l; | 300 | unsigned long l; |
278 | int ssl2_compat; | 301 | int ssl2_compat; |
279 | int version = 0, version_major, version_minor; | 302 | int version = 0, version_major, version_minor; |
280 | #ifndef OPENSSL_NO_COMP | 303 | #ifndef OPENSSL_NO_COMP |
@@ -355,9 +378,7 @@ static int ssl23_client_hello(SSL *s) | |||
355 | #endif | 378 | #endif |
356 | 379 | ||
357 | p=s->s3->client_random; | 380 | p=s->s3->client_random; |
358 | Time=(unsigned long)time(NULL); /* Time */ | 381 | if (ssl_fill_hello_random(s, 0, p, SSL3_RANDOM_SIZE) <= 0) |
359 | l2n(Time,p); | ||
360 | if (RAND_pseudo_bytes(p,SSL3_RANDOM_SIZE-4) <= 0) | ||
361 | return -1; | 382 | return -1; |
362 | 383 | ||
363 | if (version == TLS1_2_VERSION) | 384 | if (version == TLS1_2_VERSION) |
diff --git a/src/lib/libssl/src/ssl/s2_clnt.c b/src/lib/libssl/src/ssl/s2_clnt.c index c65d27946f..03b6cf9673 100644 --- a/src/lib/libssl/src/ssl/s2_clnt.c +++ b/src/lib/libssl/src/ssl/s2_clnt.c | |||
@@ -359,12 +359,14 @@ static int get_server_hello(SSL *s) | |||
359 | SSL_R_PEER_ERROR); | 359 | SSL_R_PEER_ERROR); |
360 | return(-1); | 360 | return(-1); |
361 | } | 361 | } |
362 | #ifdef __APPLE_CC__ | 362 | #if 0 |
363 | /* The Rhapsody 5.5 (a.k.a. MacOS X) compiler bug | ||
364 | * workaround. <appro@fy.chalmers.se> */ | ||
365 | s->hit=(i=*(p++))?1:0; | ||
366 | #else | ||
367 | s->hit=(*(p++))?1:0; | 363 | s->hit=(*(p++))?1:0; |
364 | /* Some [PPC?] compilers fail to increment p in above | ||
365 | statement, e.g. one provided with Rhapsody 5.5, but | ||
366 | most recent example XL C 11.1 for AIX, even without | ||
367 | optimization flag... */ | ||
368 | #else | ||
369 | s->hit=(*p)?1:0; p++; | ||
368 | #endif | 370 | #endif |
369 | s->s2->tmp.cert_type= *(p++); | 371 | s->s2->tmp.cert_type= *(p++); |
370 | n2s(p,i); | 372 | n2s(p,i); |
@@ -937,7 +939,7 @@ static int get_server_verify(SSL *s) | |||
937 | s->msg_callback(0, s->version, 0, p, len, s, s->msg_callback_arg); /* SERVER-VERIFY */ | 939 | s->msg_callback(0, s->version, 0, p, len, s, s->msg_callback_arg); /* SERVER-VERIFY */ |
938 | p += 1; | 940 | p += 1; |
939 | 941 | ||
940 | if (timingsafe_bcmp(p,s->s2->challenge,s->s2->challenge_length) != 0) | 942 | if (CRYPTO_memcmp(p,s->s2->challenge,s->s2->challenge_length) != 0) |
941 | { | 943 | { |
942 | ssl2_return_error(s,SSL2_PE_UNDEFINED_ERROR); | 944 | ssl2_return_error(s,SSL2_PE_UNDEFINED_ERROR); |
943 | SSLerr(SSL_F_GET_SERVER_VERIFY,SSL_R_CHALLENGE_IS_DIFFERENT); | 945 | SSLerr(SSL_F_GET_SERVER_VERIFY,SSL_R_CHALLENGE_IS_DIFFERENT); |
diff --git a/src/lib/libssl/src/ssl/s2_pkt.c b/src/lib/libssl/src/ssl/s2_pkt.c index b6ac9caf4a..8bb6ab8baa 100644 --- a/src/lib/libssl/src/ssl/s2_pkt.c +++ b/src/lib/libssl/src/ssl/s2_pkt.c | |||
@@ -269,7 +269,7 @@ static int ssl2_read_internal(SSL *s, void *buf, int len, int peek) | |||
269 | s->s2->ract_data_length-=mac_size; | 269 | s->s2->ract_data_length-=mac_size; |
270 | ssl2_mac(s,mac,0); | 270 | ssl2_mac(s,mac,0); |
271 | s->s2->ract_data_length-=s->s2->padding; | 271 | s->s2->ract_data_length-=s->s2->padding; |
272 | if ( (timingsafe_bcmp(mac,s->s2->mac_data,mac_size) != 0) || | 272 | if ( (CRYPTO_memcmp(mac,s->s2->mac_data,mac_size) != 0) || |
273 | (s->s2->rlength%EVP_CIPHER_CTX_block_size(s->enc_read_ctx) != 0)) | 273 | (s->s2->rlength%EVP_CIPHER_CTX_block_size(s->enc_read_ctx) != 0)) |
274 | { | 274 | { |
275 | SSLerr(SSL_F_SSL2_READ_INTERNAL,SSL_R_BAD_MAC_DECODE); | 275 | SSLerr(SSL_F_SSL2_READ_INTERNAL,SSL_R_BAD_MAC_DECODE); |
diff --git a/src/lib/libssl/src/ssl/s2_srvr.c b/src/lib/libssl/src/ssl/s2_srvr.c index bc885e8e7f..2cba426bb7 100644 --- a/src/lib/libssl/src/ssl/s2_srvr.c +++ b/src/lib/libssl/src/ssl/s2_srvr.c | |||
@@ -1059,10 +1059,12 @@ static int request_certificate(SSL *s) | |||
1059 | EVP_PKEY *pkey=NULL; | 1059 | EVP_PKEY *pkey=NULL; |
1060 | 1060 | ||
1061 | EVP_MD_CTX_init(&ctx); | 1061 | EVP_MD_CTX_init(&ctx); |
1062 | EVP_VerifyInit_ex(&ctx,s->ctx->rsa_md5, NULL); | 1062 | if (!EVP_VerifyInit_ex(&ctx,s->ctx->rsa_md5, NULL) |
1063 | EVP_VerifyUpdate(&ctx,s->s2->key_material, | 1063 | || !EVP_VerifyUpdate(&ctx,s->s2->key_material, |
1064 | s->s2->key_material_length); | 1064 | s->s2->key_material_length) |
1065 | EVP_VerifyUpdate(&ctx,ccd,SSL2_MIN_CERT_CHALLENGE_LENGTH); | 1065 | || !EVP_VerifyUpdate(&ctx,ccd, |
1066 | SSL2_MIN_CERT_CHALLENGE_LENGTH)) | ||
1067 | goto msg_end; | ||
1066 | 1068 | ||
1067 | i=i2d_X509(s->cert->pkeys[SSL_PKEY_RSA_ENC].x509,NULL); | 1069 | i=i2d_X509(s->cert->pkeys[SSL_PKEY_RSA_ENC].x509,NULL); |
1068 | buf2=OPENSSL_malloc((unsigned int)i); | 1070 | buf2=OPENSSL_malloc((unsigned int)i); |
@@ -1073,7 +1075,11 @@ static int request_certificate(SSL *s) | |||
1073 | } | 1075 | } |
1074 | p2=buf2; | 1076 | p2=buf2; |
1075 | i=i2d_X509(s->cert->pkeys[SSL_PKEY_RSA_ENC].x509,&p2); | 1077 | i=i2d_X509(s->cert->pkeys[SSL_PKEY_RSA_ENC].x509,&p2); |
1076 | EVP_VerifyUpdate(&ctx,buf2,(unsigned int)i); | 1078 | if (!EVP_VerifyUpdate(&ctx,buf2,(unsigned int)i)) |
1079 | { | ||
1080 | OPENSSL_free(buf2); | ||
1081 | goto msg_end; | ||
1082 | } | ||
1077 | OPENSSL_free(buf2); | 1083 | OPENSSL_free(buf2); |
1078 | 1084 | ||
1079 | pkey=X509_get_pubkey(x509); | 1085 | pkey=X509_get_pubkey(x509); |
diff --git a/src/lib/libssl/src/ssl/s3_both.c b/src/lib/libssl/src/ssl/s3_both.c index ed0fcfc532..53b9390fdd 100644 --- a/src/lib/libssl/src/ssl/s3_both.c +++ b/src/lib/libssl/src/ssl/s3_both.c | |||
@@ -206,10 +206,10 @@ int ssl3_send_finished(SSL *s, int a, int b, const char *sender, int slen) | |||
206 | 206 | ||
207 | #ifndef OPENSSL_NO_NEXTPROTONEG | 207 | #ifndef OPENSSL_NO_NEXTPROTONEG |
208 | /* ssl3_take_mac calculates the Finished MAC for the handshakes messages seen to far. */ | 208 | /* ssl3_take_mac calculates the Finished MAC for the handshakes messages seen to far. */ |
209 | static void ssl3_take_mac(SSL *s) { | 209 | static void ssl3_take_mac(SSL *s) |
210 | { | ||
210 | const char *sender; | 211 | const char *sender; |
211 | int slen; | 212 | int slen; |
212 | |||
213 | /* If no new cipher setup return immediately: other functions will | 213 | /* If no new cipher setup return immediately: other functions will |
214 | * set the appropriate error. | 214 | * set the appropriate error. |
215 | */ | 215 | */ |
@@ -228,7 +228,7 @@ static void ssl3_take_mac(SSL *s) { | |||
228 | 228 | ||
229 | s->s3->tmp.peer_finish_md_len = s->method->ssl3_enc->final_finish_mac(s, | 229 | s->s3->tmp.peer_finish_md_len = s->method->ssl3_enc->final_finish_mac(s, |
230 | sender,slen,s->s3->tmp.peer_finish_md); | 230 | sender,slen,s->s3->tmp.peer_finish_md); |
231 | } | 231 | } |
232 | #endif | 232 | #endif |
233 | 233 | ||
234 | int ssl3_get_finished(SSL *s, int a, int b) | 234 | int ssl3_get_finished(SSL *s, int a, int b) |
@@ -238,8 +238,9 @@ int ssl3_get_finished(SSL *s, int a, int b) | |||
238 | unsigned char *p; | 238 | unsigned char *p; |
239 | 239 | ||
240 | #ifdef OPENSSL_NO_NEXTPROTONEG | 240 | #ifdef OPENSSL_NO_NEXTPROTONEG |
241 | /* the mac has already been generated when we received the change | 241 | /* the mac has already been generated when we received the |
242 | * cipher spec message and is in s->s3->tmp.peer_finish_md. */ | 242 | * change cipher spec message and is in s->s3->tmp.peer_finish_md. |
243 | */ | ||
243 | #endif | 244 | #endif |
244 | 245 | ||
245 | n=s->method->ssl_get_message(s, | 246 | n=s->method->ssl_get_message(s, |
@@ -270,7 +271,7 @@ int ssl3_get_finished(SSL *s, int a, int b) | |||
270 | goto f_err; | 271 | goto f_err; |
271 | } | 272 | } |
272 | 273 | ||
273 | if (timingsafe_bcmp(p, s->s3->tmp.peer_finish_md, i) != 0) | 274 | if (CRYPTO_memcmp(p, s->s3->tmp.peer_finish_md, i) != 0) |
274 | { | 275 | { |
275 | al=SSL_AD_DECRYPT_ERROR; | 276 | al=SSL_AD_DECRYPT_ERROR; |
276 | SSLerr(SSL_F_SSL3_GET_FINISHED,SSL_R_DIGEST_CHECK_FAILED); | 277 | SSLerr(SSL_F_SSL3_GET_FINISHED,SSL_R_DIGEST_CHECK_FAILED); |
@@ -544,12 +545,14 @@ long ssl3_get_message(SSL *s, int st1, int stn, int mt, long max, int *ok) | |||
544 | s->init_num += i; | 545 | s->init_num += i; |
545 | n -= i; | 546 | n -= i; |
546 | } | 547 | } |
548 | |||
547 | #ifndef OPENSSL_NO_NEXTPROTONEG | 549 | #ifndef OPENSSL_NO_NEXTPROTONEG |
548 | /* If receiving Finished, record MAC of prior handshake messages for | 550 | /* If receiving Finished, record MAC of prior handshake messages for |
549 | * Finished verification. */ | 551 | * Finished verification. */ |
550 | if (*s->init_buf->data == SSL3_MT_FINISHED) | 552 | if (*s->init_buf->data == SSL3_MT_FINISHED) |
551 | ssl3_take_mac(s); | 553 | ssl3_take_mac(s); |
552 | #endif | 554 | #endif |
555 | |||
553 | /* Feed this message into MAC computation. */ | 556 | /* Feed this message into MAC computation. */ |
554 | ssl3_finish_mac(s, (unsigned char *)s->init_buf->data, s->init_num + 4); | 557 | ssl3_finish_mac(s, (unsigned char *)s->init_buf->data, s->init_num + 4); |
555 | if (s->msg_callback) | 558 | if (s->msg_callback) |
diff --git a/src/lib/libssl/src/ssl/s3_clnt.c b/src/lib/libssl/src/ssl/s3_clnt.c index b80d052e1f..a6b3c01afa 100644 --- a/src/lib/libssl/src/ssl/s3_clnt.c +++ b/src/lib/libssl/src/ssl/s3_clnt.c | |||
@@ -459,7 +459,6 @@ int ssl3_connect(SSL *s) | |||
459 | SSL3_ST_CW_CHANGE_A,SSL3_ST_CW_CHANGE_B); | 459 | SSL3_ST_CW_CHANGE_A,SSL3_ST_CW_CHANGE_B); |
460 | if (ret <= 0) goto end; | 460 | if (ret <= 0) goto end; |
461 | 461 | ||
462 | |||
463 | #if defined(OPENSSL_NO_TLSEXT) || defined(OPENSSL_NO_NEXTPROTONEG) | 462 | #if defined(OPENSSL_NO_TLSEXT) || defined(OPENSSL_NO_NEXTPROTONEG) |
464 | s->state=SSL3_ST_CW_FINISHED_A; | 463 | s->state=SSL3_ST_CW_FINISHED_A; |
465 | #else | 464 | #else |
@@ -656,7 +655,7 @@ int ssl3_client_hello(SSL *s) | |||
656 | unsigned char *buf; | 655 | unsigned char *buf; |
657 | unsigned char *p,*d; | 656 | unsigned char *p,*d; |
658 | int i; | 657 | int i; |
659 | unsigned long Time,l; | 658 | unsigned long l; |
660 | #ifndef OPENSSL_NO_COMP | 659 | #ifndef OPENSSL_NO_COMP |
661 | int j; | 660 | int j; |
662 | SSL_COMP *comp; | 661 | SSL_COMP *comp; |
@@ -681,9 +680,8 @@ int ssl3_client_hello(SSL *s) | |||
681 | /* else use the pre-loaded session */ | 680 | /* else use the pre-loaded session */ |
682 | 681 | ||
683 | p=s->s3->client_random; | 682 | p=s->s3->client_random; |
684 | Time=(unsigned long)time(NULL); /* Time */ | 683 | |
685 | l2n(Time,p); | 684 | if (ssl_fill_hello_random(s, 0, p, SSL3_RANDOM_SIZE) <= 0) |
686 | if (RAND_pseudo_bytes(p,SSL3_RANDOM_SIZE-4) <= 0) | ||
687 | goto err; | 685 | goto err; |
688 | 686 | ||
689 | /* Do the message type and length last */ | 687 | /* Do the message type and length last */ |
@@ -987,7 +985,10 @@ int ssl3_get_server_hello(SSL *s) | |||
987 | * client authentication. | 985 | * client authentication. |
988 | */ | 986 | */ |
989 | if (TLS1_get_version(s) < TLS1_2_VERSION && !ssl3_digest_cached_records(s)) | 987 | if (TLS1_get_version(s) < TLS1_2_VERSION && !ssl3_digest_cached_records(s)) |
988 | { | ||
989 | al = SSL_AD_INTERNAL_ERROR; | ||
990 | goto f_err; | 990 | goto f_err; |
991 | } | ||
991 | /* lets get the compression algorithm */ | 992 | /* lets get the compression algorithm */ |
992 | /* COMPRESSION */ | 993 | /* COMPRESSION */ |
993 | #ifdef OPENSSL_NO_COMP | 994 | #ifdef OPENSSL_NO_COMP |
diff --git a/src/lib/libssl/src/ssl/s3_lib.c b/src/lib/libssl/src/ssl/s3_lib.c index b73b5ac87f..c4ef2738d7 100644 --- a/src/lib/libssl/src/ssl/s3_lib.c +++ b/src/lib/libssl/src/ssl/s3_lib.c | |||
@@ -1125,7 +1125,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={ | |||
1125 | 0, /* not implemented (non-ephemeral DH) */ | 1125 | 0, /* not implemented (non-ephemeral DH) */ |
1126 | TLS1_TXT_DH_DSS_WITH_AES_128_SHA256, | 1126 | TLS1_TXT_DH_DSS_WITH_AES_128_SHA256, |
1127 | TLS1_CK_DH_DSS_WITH_AES_128_SHA256, | 1127 | TLS1_CK_DH_DSS_WITH_AES_128_SHA256, |
1128 | SSL_kDHr, | 1128 | SSL_kDHd, |
1129 | SSL_aDH, | 1129 | SSL_aDH, |
1130 | SSL_AES128, | 1130 | SSL_AES128, |
1131 | SSL_SHA256, | 1131 | SSL_SHA256, |
@@ -1407,7 +1407,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={ | |||
1407 | 0, /* not implemented (non-ephemeral DH) */ | 1407 | 0, /* not implemented (non-ephemeral DH) */ |
1408 | TLS1_TXT_DH_DSS_WITH_AES_256_SHA256, | 1408 | TLS1_TXT_DH_DSS_WITH_AES_256_SHA256, |
1409 | TLS1_CK_DH_DSS_WITH_AES_256_SHA256, | 1409 | TLS1_CK_DH_DSS_WITH_AES_256_SHA256, |
1410 | SSL_kDHr, | 1410 | SSL_kDHd, |
1411 | SSL_aDH, | 1411 | SSL_aDH, |
1412 | SSL_AES256, | 1412 | SSL_AES256, |
1413 | SSL_SHA256, | 1413 | SSL_SHA256, |
@@ -1683,7 +1683,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={ | |||
1683 | SSL_3DES, | 1683 | SSL_3DES, |
1684 | SSL_SHA1, | 1684 | SSL_SHA1, |
1685 | SSL_TLSV1, | 1685 | SSL_TLSV1, |
1686 | SSL_NOT_EXP|SSL_HIGH, | 1686 | SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
1687 | SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, | 1687 | SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
1688 | 168, | 1688 | 168, |
1689 | 168, | 1689 | 168, |
@@ -1699,7 +1699,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={ | |||
1699 | SSL_AES128, | 1699 | SSL_AES128, |
1700 | SSL_SHA1, | 1700 | SSL_SHA1, |
1701 | SSL_TLSV1, | 1701 | SSL_TLSV1, |
1702 | SSL_NOT_EXP|SSL_HIGH, | 1702 | SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
1703 | SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, | 1703 | SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
1704 | 128, | 1704 | 128, |
1705 | 128, | 1705 | 128, |
@@ -1715,7 +1715,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={ | |||
1715 | SSL_AES256, | 1715 | SSL_AES256, |
1716 | SSL_SHA1, | 1716 | SSL_SHA1, |
1717 | SSL_TLSV1, | 1717 | SSL_TLSV1, |
1718 | SSL_NOT_EXP|SSL_HIGH, | 1718 | SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
1719 | SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, | 1719 | SSL_HANDSHAKE_MAC_DEFAULT|TLS1_PRF, |
1720 | 256, | 1720 | 256, |
1721 | 256, | 1721 | 256, |
@@ -1958,7 +1958,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={ | |||
1958 | 0, | 1958 | 0, |
1959 | TLS1_TXT_DH_DSS_WITH_AES_128_GCM_SHA256, | 1959 | TLS1_TXT_DH_DSS_WITH_AES_128_GCM_SHA256, |
1960 | TLS1_CK_DH_DSS_WITH_AES_128_GCM_SHA256, | 1960 | TLS1_CK_DH_DSS_WITH_AES_128_GCM_SHA256, |
1961 | SSL_kDHr, | 1961 | SSL_kDHd, |
1962 | SSL_aDH, | 1962 | SSL_aDH, |
1963 | SSL_AES128GCM, | 1963 | SSL_AES128GCM, |
1964 | SSL_AEAD, | 1964 | SSL_AEAD, |
@@ -1974,7 +1974,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={ | |||
1974 | 0, | 1974 | 0, |
1975 | TLS1_TXT_DH_DSS_WITH_AES_256_GCM_SHA384, | 1975 | TLS1_TXT_DH_DSS_WITH_AES_256_GCM_SHA384, |
1976 | TLS1_CK_DH_DSS_WITH_AES_256_GCM_SHA384, | 1976 | TLS1_CK_DH_DSS_WITH_AES_256_GCM_SHA384, |
1977 | SSL_kDHr, | 1977 | SSL_kDHd, |
1978 | SSL_aDH, | 1978 | SSL_aDH, |
1979 | SSL_AES256GCM, | 1979 | SSL_AES256GCM, |
1980 | SSL_AEAD, | 1980 | SSL_AEAD, |
@@ -2669,7 +2669,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={ | |||
2669 | 1, | 2669 | 1, |
2670 | TLS1_TXT_ECDH_RSA_WITH_AES_128_SHA256, | 2670 | TLS1_TXT_ECDH_RSA_WITH_AES_128_SHA256, |
2671 | TLS1_CK_ECDH_RSA_WITH_AES_128_SHA256, | 2671 | TLS1_CK_ECDH_RSA_WITH_AES_128_SHA256, |
2672 | SSL_kECDHe, | 2672 | SSL_kECDHr, |
2673 | SSL_aECDH, | 2673 | SSL_aECDH, |
2674 | SSL_AES128, | 2674 | SSL_AES128, |
2675 | SSL_SHA256, | 2675 | SSL_SHA256, |
@@ -2685,7 +2685,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={ | |||
2685 | 1, | 2685 | 1, |
2686 | TLS1_TXT_ECDH_RSA_WITH_AES_256_SHA384, | 2686 | TLS1_TXT_ECDH_RSA_WITH_AES_256_SHA384, |
2687 | TLS1_CK_ECDH_RSA_WITH_AES_256_SHA384, | 2687 | TLS1_CK_ECDH_RSA_WITH_AES_256_SHA384, |
2688 | SSL_kECDHe, | 2688 | SSL_kECDHr, |
2689 | SSL_aECDH, | 2689 | SSL_aECDH, |
2690 | SSL_AES256, | 2690 | SSL_AES256, |
2691 | SSL_SHA384, | 2691 | SSL_SHA384, |
@@ -2799,7 +2799,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={ | |||
2799 | 1, | 2799 | 1, |
2800 | TLS1_TXT_ECDH_RSA_WITH_AES_128_GCM_SHA256, | 2800 | TLS1_TXT_ECDH_RSA_WITH_AES_128_GCM_SHA256, |
2801 | TLS1_CK_ECDH_RSA_WITH_AES_128_GCM_SHA256, | 2801 | TLS1_CK_ECDH_RSA_WITH_AES_128_GCM_SHA256, |
2802 | SSL_kECDHe, | 2802 | SSL_kECDHr, |
2803 | SSL_aECDH, | 2803 | SSL_aECDH, |
2804 | SSL_AES128GCM, | 2804 | SSL_AES128GCM, |
2805 | SSL_AEAD, | 2805 | SSL_AEAD, |
@@ -2815,7 +2815,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={ | |||
2815 | 1, | 2815 | 1, |
2816 | TLS1_TXT_ECDH_RSA_WITH_AES_256_GCM_SHA384, | 2816 | TLS1_TXT_ECDH_RSA_WITH_AES_256_GCM_SHA384, |
2817 | TLS1_CK_ECDH_RSA_WITH_AES_256_GCM_SHA384, | 2817 | TLS1_CK_ECDH_RSA_WITH_AES_256_GCM_SHA384, |
2818 | SSL_kECDHe, | 2818 | SSL_kECDHr, |
2819 | SSL_aECDH, | 2819 | SSL_aECDH, |
2820 | SSL_AES256GCM, | 2820 | SSL_AES256GCM, |
2821 | SSL_AEAD, | 2821 | SSL_AEAD, |
@@ -3037,6 +3037,11 @@ void ssl3_clear(SSL *s) | |||
3037 | s->s3->tmp.ecdh = NULL; | 3037 | s->s3->tmp.ecdh = NULL; |
3038 | } | 3038 | } |
3039 | #endif | 3039 | #endif |
3040 | #ifndef OPENSSL_NO_TLSEXT | ||
3041 | #ifndef OPENSSL_NO_EC | ||
3042 | s->s3->is_probably_safari = 0; | ||
3043 | #endif /* !OPENSSL_NO_EC */ | ||
3044 | #endif /* !OPENSSL_NO_TLSEXT */ | ||
3040 | 3045 | ||
3041 | rp = s->s3->rbuf.buf; | 3046 | rp = s->s3->rbuf.buf; |
3042 | wp = s->s3->wbuf.buf; | 3047 | wp = s->s3->wbuf.buf; |
@@ -4016,6 +4021,13 @@ SSL_CIPHER *ssl3_choose_cipher(SSL *s, STACK_OF(SSL_CIPHER) *clnt, | |||
4016 | ii=sk_SSL_CIPHER_find(allow,c); | 4021 | ii=sk_SSL_CIPHER_find(allow,c); |
4017 | if (ii >= 0) | 4022 | if (ii >= 0) |
4018 | { | 4023 | { |
4024 | #if !defined(OPENSSL_NO_EC) && !defined(OPENSSL_NO_TLSEXT) | ||
4025 | if ((alg_k & SSL_kEECDH) && (alg_a & SSL_aECDSA) && s->s3->is_probably_safari) | ||
4026 | { | ||
4027 | if (!ret) ret=sk_SSL_CIPHER_value(allow,ii); | ||
4028 | continue; | ||
4029 | } | ||
4030 | #endif | ||
4019 | ret=sk_SSL_CIPHER_value(allow,ii); | 4031 | ret=sk_SSL_CIPHER_value(allow,ii); |
4020 | break; | 4032 | break; |
4021 | } | 4033 | } |
diff --git a/src/lib/libssl/src/ssl/s3_pkt.c b/src/lib/libssl/src/ssl/s3_pkt.c index 722ed9a858..96ba63262e 100644 --- a/src/lib/libssl/src/ssl/s3_pkt.c +++ b/src/lib/libssl/src/ssl/s3_pkt.c | |||
@@ -335,7 +335,7 @@ fprintf(stderr, "Record type=%d, Length=%d\n", rr->type, rr->length); | |||
335 | if (version != s->version) | 335 | if (version != s->version) |
336 | { | 336 | { |
337 | SSLerr(SSL_F_SSL3_GET_RECORD,SSL_R_WRONG_VERSION_NUMBER); | 337 | SSLerr(SSL_F_SSL3_GET_RECORD,SSL_R_WRONG_VERSION_NUMBER); |
338 | if ((s->version & 0xFF00) == (version & 0xFF00)) | 338 | if ((s->version & 0xFF00) == (version & 0xFF00) && !s->enc_write_ctx && !s->write_hash) |
339 | /* Send back error using their minor version number :-) */ | 339 | /* Send back error using their minor version number :-) */ |
340 | s->version = (unsigned short)version; | 340 | s->version = (unsigned short)version; |
341 | al=SSL_AD_PROTOCOL_VERSION; | 341 | al=SSL_AD_PROTOCOL_VERSION; |
@@ -407,7 +407,7 @@ fprintf(stderr, "Record type=%d, Length=%d\n", rr->type, rr->length); | |||
407 | if (enc_err == 0) | 407 | if (enc_err == 0) |
408 | { | 408 | { |
409 | al=SSL_AD_DECRYPTION_FAILED; | 409 | al=SSL_AD_DECRYPTION_FAILED; |
410 | SSLerr(SSL_F_TLS1_ENC,SSL_R_BLOCK_CIPHER_PAD_IS_WRONG); | 410 | SSLerr(SSL_F_SSL3_GET_RECORD,SSL_R_BLOCK_CIPHER_PAD_IS_WRONG); |
411 | goto f_err; | 411 | goto f_err; |
412 | } | 412 | } |
413 | 413 | ||
@@ -467,7 +467,7 @@ printf("\n"); | |||
467 | } | 467 | } |
468 | 468 | ||
469 | i=s->method->ssl3_enc->mac(s,md,0 /* not send */); | 469 | i=s->method->ssl3_enc->mac(s,md,0 /* not send */); |
470 | if (i < 0 || mac == NULL || timingsafe_bcmp(md, mac, (size_t)mac_size) != 0) | 470 | if (i < 0 || mac == NULL || CRYPTO_memcmp(md, mac, (size_t)mac_size) != 0) |
471 | enc_err = -1; | 471 | enc_err = -1; |
472 | if (rr->length > SSL3_RT_MAX_COMPRESSED_LENGTH+extra+mac_size) | 472 | if (rr->length > SSL3_RT_MAX_COMPRESSED_LENGTH+extra+mac_size) |
473 | enc_err = -1; | 473 | enc_err = -1; |
@@ -748,6 +748,7 @@ static int do_ssl3_write(SSL *s, int type, const unsigned char *buf, | |||
748 | * bytes and record version number > TLS 1.0 | 748 | * bytes and record version number > TLS 1.0 |
749 | */ | 749 | */ |
750 | if (s->state == SSL3_ST_CW_CLNT_HELLO_B | 750 | if (s->state == SSL3_ST_CW_CLNT_HELLO_B |
751 | && !s->renegotiate | ||
751 | && TLS1_get_version(s) > TLS1_VERSION) | 752 | && TLS1_get_version(s) > TLS1_VERSION) |
752 | *(p++) = 0x1; | 753 | *(p++) = 0x1; |
753 | else | 754 | else |
@@ -1054,7 +1055,7 @@ start: | |||
1054 | { | 1055 | { |
1055 | s->rstate=SSL_ST_READ_HEADER; | 1056 | s->rstate=SSL_ST_READ_HEADER; |
1056 | rr->off=0; | 1057 | rr->off=0; |
1057 | if (s->mode & SSL_MODE_RELEASE_BUFFERS && s->s3->rbuf.left == 0) | 1058 | if (s->mode & SSL_MODE_RELEASE_BUFFERS) |
1058 | ssl3_release_read_buffer(s); | 1059 | ssl3_release_read_buffer(s); |
1059 | } | 1060 | } |
1060 | } | 1061 | } |
@@ -1242,7 +1243,7 @@ start: | |||
1242 | goto f_err; | 1243 | goto f_err; |
1243 | } | 1244 | } |
1244 | #ifdef SSL_AD_MISSING_SRP_USERNAME | 1245 | #ifdef SSL_AD_MISSING_SRP_USERNAME |
1245 | if (alert_descr == SSL_AD_MISSING_SRP_USERNAME) | 1246 | else if (alert_descr == SSL_AD_MISSING_SRP_USERNAME) |
1246 | return(0); | 1247 | return(0); |
1247 | #endif | 1248 | #endif |
1248 | } | 1249 | } |
diff --git a/src/lib/libssl/src/ssl/s3_srvr.c b/src/lib/libssl/src/ssl/s3_srvr.c index 118939fabb..9ac19c05f2 100644 --- a/src/lib/libssl/src/ssl/s3_srvr.c +++ b/src/lib/libssl/src/ssl/s3_srvr.c | |||
@@ -191,7 +191,8 @@ static int ssl_check_srp_ext_ClientHello(SSL *s, int *al) | |||
191 | { | 191 | { |
192 | if(s->srp_ctx.login == NULL) | 192 | if(s->srp_ctx.login == NULL) |
193 | { | 193 | { |
194 | /* There isn't any srp login extension !!! */ | 194 | /* RFC 5054 says SHOULD reject, |
195 | we do so if There is no srp login name */ | ||
195 | ret = SSL3_AL_FATAL; | 196 | ret = SSL3_AL_FATAL; |
196 | *al = SSL_AD_UNKNOWN_PSK_IDENTITY; | 197 | *al = SSL_AD_UNKNOWN_PSK_IDENTITY; |
197 | } | 198 | } |
@@ -378,6 +379,7 @@ int ssl3_accept(SSL *s) | |||
378 | } | 379 | } |
379 | } | 380 | } |
380 | #endif | 381 | #endif |
382 | |||
381 | s->renegotiate = 2; | 383 | s->renegotiate = 2; |
382 | s->state=SSL3_ST_SW_SRVR_HELLO_A; | 384 | s->state=SSL3_ST_SW_SRVR_HELLO_A; |
383 | s->init_num=0; | 385 | s->init_num=0; |
@@ -956,7 +958,8 @@ int ssl3_get_client_hello(SSL *s) | |||
956 | (s->version != DTLS1_VERSION && s->client_version < s->version)) | 958 | (s->version != DTLS1_VERSION && s->client_version < s->version)) |
957 | { | 959 | { |
958 | SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_WRONG_VERSION_NUMBER); | 960 | SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_WRONG_VERSION_NUMBER); |
959 | if ((s->client_version>>8) == SSL3_VERSION_MAJOR) | 961 | if ((s->client_version>>8) == SSL3_VERSION_MAJOR && |
962 | !s->enc_write_ctx && !s->write_hash) | ||
960 | { | 963 | { |
961 | /* similar to ssl3_get_record, send alert using remote version number */ | 964 | /* similar to ssl3_get_record, send alert using remote version number */ |
962 | s->version = s->client_version; | 965 | s->version = s->client_version; |
@@ -1181,7 +1184,7 @@ int ssl3_get_client_hello(SSL *s) | |||
1181 | goto f_err; | 1184 | goto f_err; |
1182 | } | 1185 | } |
1183 | } | 1186 | } |
1184 | if (ssl_check_clienthello_tlsext(s) <= 0) { | 1187 | if (ssl_check_clienthello_tlsext_early(s) <= 0) { |
1185 | SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO,SSL_R_CLIENTHELLO_TLSEXT); | 1188 | SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO,SSL_R_CLIENTHELLO_TLSEXT); |
1186 | goto err; | 1189 | goto err; |
1187 | } | 1190 | } |
@@ -1191,12 +1194,9 @@ int ssl3_get_client_hello(SSL *s) | |||
1191 | * server_random before calling tls_session_secret_cb in order to allow | 1194 | * server_random before calling tls_session_secret_cb in order to allow |
1192 | * SessionTicket processing to use it in key derivation. */ | 1195 | * SessionTicket processing to use it in key derivation. */ |
1193 | { | 1196 | { |
1194 | unsigned long Time; | ||
1195 | unsigned char *pos; | 1197 | unsigned char *pos; |
1196 | Time=(unsigned long)time(NULL); /* Time */ | ||
1197 | pos=s->s3->server_random; | 1198 | pos=s->s3->server_random; |
1198 | l2n(Time,pos); | 1199 | if (ssl_fill_hello_random(s, 1, pos, SSL3_RANDOM_SIZE) <= 0) |
1199 | if (RAND_pseudo_bytes(pos,SSL3_RANDOM_SIZE-4) <= 0) | ||
1200 | { | 1200 | { |
1201 | al=SSL_AD_INTERNAL_ERROR; | 1201 | al=SSL_AD_INTERNAL_ERROR; |
1202 | goto f_err; | 1202 | goto f_err; |
@@ -1389,7 +1389,10 @@ int ssl3_get_client_hello(SSL *s) | |||
1389 | if (TLS1_get_version(s) < TLS1_2_VERSION || !(s->verify_mode & SSL_VERIFY_PEER)) | 1389 | if (TLS1_get_version(s) < TLS1_2_VERSION || !(s->verify_mode & SSL_VERIFY_PEER)) |
1390 | { | 1390 | { |
1391 | if (!ssl3_digest_cached_records(s)) | 1391 | if (!ssl3_digest_cached_records(s)) |
1392 | { | ||
1393 | al = SSL_AD_INTERNAL_ERROR; | ||
1392 | goto f_err; | 1394 | goto f_err; |
1395 | } | ||
1393 | } | 1396 | } |
1394 | 1397 | ||
1395 | /* we now have the following setup. | 1398 | /* we now have the following setup. |
@@ -1403,6 +1406,16 @@ int ssl3_get_client_hello(SSL *s) | |||
1403 | * s->tmp.new_cipher - the new cipher to use. | 1406 | * s->tmp.new_cipher - the new cipher to use. |
1404 | */ | 1407 | */ |
1405 | 1408 | ||
1409 | /* Handles TLS extensions that we couldn't check earlier */ | ||
1410 | if (s->version >= SSL3_VERSION) | ||
1411 | { | ||
1412 | if (ssl_check_clienthello_tlsext_late(s) <= 0) | ||
1413 | { | ||
1414 | SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_CLIENTHELLO_TLSEXT); | ||
1415 | goto err; | ||
1416 | } | ||
1417 | } | ||
1418 | |||
1406 | if (ret < 0) ret=1; | 1419 | if (ret < 0) ret=1; |
1407 | if (0) | 1420 | if (0) |
1408 | { | 1421 | { |
@@ -1420,19 +1433,13 @@ int ssl3_send_server_hello(SSL *s) | |||
1420 | unsigned char *p,*d; | 1433 | unsigned char *p,*d; |
1421 | int i,sl; | 1434 | int i,sl; |
1422 | unsigned long l; | 1435 | unsigned long l; |
1423 | #ifdef OPENSSL_NO_TLSEXT | ||
1424 | unsigned long Time; | ||
1425 | #endif | ||
1426 | 1436 | ||
1427 | if (s->state == SSL3_ST_SW_SRVR_HELLO_A) | 1437 | if (s->state == SSL3_ST_SW_SRVR_HELLO_A) |
1428 | { | 1438 | { |
1429 | buf=(unsigned char *)s->init_buf->data; | 1439 | buf=(unsigned char *)s->init_buf->data; |
1430 | #ifdef OPENSSL_NO_TLSEXT | 1440 | #ifdef OPENSSL_NO_TLSEXT |
1431 | p=s->s3->server_random; | 1441 | p=s->s3->server_random; |
1432 | /* Generate server_random if it was not needed previously */ | 1442 | if (ssl_fill_hello_random(s, 1, p, SSL3_RANDOM_SIZE) <= 0) |
1433 | Time=(unsigned long)time(NULL); /* Time */ | ||
1434 | l2n(Time,p); | ||
1435 | if (RAND_pseudo_bytes(p,SSL3_RANDOM_SIZE-4) <= 0) | ||
1436 | return -1; | 1443 | return -1; |
1437 | #endif | 1444 | #endif |
1438 | /* Do the message type and length last */ | 1445 | /* Do the message type and length last */ |
@@ -1823,7 +1830,7 @@ int ssl3_send_server_key_exchange(SSL *s) | |||
1823 | SSLerr(SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE,SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE); | 1830 | SSLerr(SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE,SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE); |
1824 | goto f_err; | 1831 | goto f_err; |
1825 | } | 1832 | } |
1826 | for (i=0; r[i] != NULL && i<4; i++) | 1833 | for (i=0; i < 4 && r[i] != NULL; i++) |
1827 | { | 1834 | { |
1828 | nr[i]=BN_num_bytes(r[i]); | 1835 | nr[i]=BN_num_bytes(r[i]); |
1829 | #ifndef OPENSSL_NO_SRP | 1836 | #ifndef OPENSSL_NO_SRP |
@@ -1859,7 +1866,7 @@ int ssl3_send_server_key_exchange(SSL *s) | |||
1859 | d=(unsigned char *)s->init_buf->data; | 1866 | d=(unsigned char *)s->init_buf->data; |
1860 | p= &(d[4]); | 1867 | p= &(d[4]); |
1861 | 1868 | ||
1862 | for (i=0; r[i] != NULL && i<4; i++) | 1869 | for (i=0; i < 4 && r[i] != NULL; i++) |
1863 | { | 1870 | { |
1864 | #ifndef OPENSSL_NO_SRP | 1871 | #ifndef OPENSSL_NO_SRP |
1865 | if ((i == 2) && (type & SSL_kSRP)) | 1872 | if ((i == 2) && (type & SSL_kSRP)) |
diff --git a/src/lib/libssl/src/ssl/ssl-lib.com b/src/lib/libssl/src/ssl/ssl-lib.com deleted file mode 100644 index a77f7707f2..0000000000 --- a/src/lib/libssl/src/ssl/ssl-lib.com +++ /dev/null | |||
@@ -1,1214 +0,0 @@ | |||
1 | $! | ||
2 | $! SSL-LIB.COM | ||
3 | $! Written By: Robert Byer | ||
4 | $! Vice-President | ||
5 | $! A-Com Computing, Inc. | ||
6 | $! byer@mail.all-net.net | ||
7 | $! | ||
8 | $! Changes by Richard Levitte <richard@levitte.org> | ||
9 | $! | ||
10 | $! This command file compiles and creates the "[.xxx.EXE.SSL]LIBSSL.OLB" | ||
11 | $! library for OpenSSL. The "xxx" denotes the machine architecture of | ||
12 | $! ALPHA, IA64 or VAX. | ||
13 | $! | ||
14 | $! It is written to detect what type of machine you are compiling on | ||
15 | $! (i.e. ALPHA or VAX) and which "C" compiler you have (i.e. VAXC, DECC | ||
16 | $! or GNU C) or you can specify which compiler to use. | ||
17 | $! | ||
18 | $! Specify the following as P1 to build just that part or ALL to just | ||
19 | $! build everything. | ||
20 | $! | ||
21 | $! LIBRARY To just compile the [.xxx.EXE.SSL]LIBSSL.OLB Library. | ||
22 | $! SSL_TASK To just compile the [.xxx.EXE.SSL]SSL_TASK.EXE | ||
23 | $! | ||
24 | $! Specify DEBUG or NODEBUG as P2 to compile with or without debugger | ||
25 | $! information. | ||
26 | $! | ||
27 | $! Specify which compiler at P3 to try to compile under. | ||
28 | $! | ||
29 | $! VAXC For VAX C. | ||
30 | $! DECC For DEC C. | ||
31 | $! GNUC For GNU C. | ||
32 | $! | ||
33 | $! If you don't specify a compiler, it will try to determine which | ||
34 | $! "C" compiler to use. | ||
35 | $! | ||
36 | $! P4, if defined, sets a TCP/IP library to use, through one of the following | ||
37 | $! keywords: | ||
38 | $! | ||
39 | $! UCX for UCX | ||
40 | $! TCPIP for TCPIP (post UCX) | ||
41 | $! SOCKETSHR for SOCKETSHR+NETLIB | ||
42 | $! | ||
43 | $! P5, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up) | ||
44 | $! | ||
45 | $! P6, if defined, specifies the C pointer size. Ignored on VAX. | ||
46 | $! ("64=ARGV" gives more efficient code with HP C V7.3 or newer.) | ||
47 | $! Supported values are: | ||
48 | $! | ||
49 | $! "" Compile with default (/NOPOINTER_SIZE) | ||
50 | $! 32 Compile with /POINTER_SIZE=32 (SHORT) | ||
51 | $! 64 Compile with /POINTER_SIZE=64[=ARGV] (LONG[=ARGV]) | ||
52 | $! (Automatically select ARGV if compiler supports it.) | ||
53 | $! 64= Compile with /POINTER_SIZE=64 (LONG). | ||
54 | $! 64=ARGV Compile with /POINTER_SIZE=64=ARGV (LONG=ARGV). | ||
55 | $! | ||
56 | $! P7, if defined, specifies a directory where ZLIB files (zlib.h, | ||
57 | $! libz.olb) may be found. Optionally, a non-default object library | ||
58 | $! name may be included ("dev:[dir]libz_64.olb", for example). | ||
59 | $! | ||
60 | $! | ||
61 | $! Announce/identify. | ||
62 | $! | ||
63 | $ proc = f$environment( "procedure") | ||
64 | $ write sys$output "@@@ "+ - | ||
65 | f$parse( proc, , , "name")+ f$parse( proc, , , "type") | ||
66 | $! | ||
67 | $! Define A TCP/IP Library That We Will Need To Link To. | ||
68 | $! (That Is, If We Need To Link To One.) | ||
69 | $! | ||
70 | $ TCPIP_LIB = "" | ||
71 | $ ZLIB_LIB = "" | ||
72 | $! | ||
73 | $! Check What Architecture We Are Using. | ||
74 | $! | ||
75 | $ IF (F$GETSYI("CPU").LT.128) | ||
76 | $ THEN | ||
77 | $! | ||
78 | $! The Architecture Is VAX. | ||
79 | $! | ||
80 | $ ARCH = "VAX" | ||
81 | $! | ||
82 | $! Else... | ||
83 | $! | ||
84 | $ ELSE | ||
85 | $! | ||
86 | $! The Architecture Is Alpha, IA64 or whatever comes in the future. | ||
87 | $! | ||
88 | $ ARCH = F$EDIT( F$GETSYI( "ARCH_NAME"), "UPCASE") | ||
89 | $ IF (ARCH .EQS. "") THEN ARCH = "UNK" | ||
90 | $! | ||
91 | $! End The Architecture Check. | ||
92 | $! | ||
93 | $ ENDIF | ||
94 | $! | ||
95 | $ ARCHD = ARCH | ||
96 | $ LIB32 = "32" | ||
97 | $ OPT_FILE = "" | ||
98 | $ POINTER_SIZE = "" | ||
99 | $! | ||
100 | $! Check To Make Sure We Have Valid Command Line Parameters. | ||
101 | $! | ||
102 | $ GOSUB CHECK_OPTIONS | ||
103 | $! | ||
104 | $! Define The OBJ and EXE Directories. | ||
105 | $! | ||
106 | $ OBJ_DIR := SYS$DISK:[-.'ARCHD'.OBJ.SSL] | ||
107 | $ EXE_DIR := SYS$DISK:[-.'ARCHD'.EXE.SSL] | ||
108 | $! | ||
109 | $! Specify the destination directory in any /MAP option. | ||
110 | $! | ||
111 | $ if (LINKMAP .eqs. "MAP") | ||
112 | $ then | ||
113 | $ LINKMAP = LINKMAP+ "=''EXE_DIR'" | ||
114 | $ endif | ||
115 | $! | ||
116 | $! Add the location prefix to the linker options file name. | ||
117 | $! | ||
118 | $ if (OPT_FILE .nes. "") | ||
119 | $ then | ||
120 | $ OPT_FILE = EXE_DIR+ OPT_FILE | ||
121 | $ endif | ||
122 | $! | ||
123 | $! Initialise logical names and such | ||
124 | $! | ||
125 | $ GOSUB INITIALISE | ||
126 | $! | ||
127 | $! Tell The User What Kind of Machine We Run On. | ||
128 | $! | ||
129 | $ WRITE SYS$OUTPUT "Host system architecture: ''ARCHD'" | ||
130 | $! | ||
131 | $! Check To See If The Architecture Specific OBJ Directory Exists. | ||
132 | $! | ||
133 | $ IF (F$PARSE(OBJ_DIR).EQS."") | ||
134 | $ THEN | ||
135 | $! | ||
136 | $! It Dosen't Exist, So Create It. | ||
137 | $! | ||
138 | $ CREATE/DIR 'OBJ_DIR' | ||
139 | $! | ||
140 | $! End The Architecture Specific OBJ Directory Check. | ||
141 | $! | ||
142 | $ ENDIF | ||
143 | $! | ||
144 | $! Check To See If The Architecture Specific Directory Exists. | ||
145 | $! | ||
146 | $ IF (F$PARSE(EXE_DIR).EQS."") | ||
147 | $ THEN | ||
148 | $! | ||
149 | $! It Dosen't Exist, So Create It. | ||
150 | $! | ||
151 | $ CREATE/DIR 'EXE_DIR' | ||
152 | $! | ||
153 | $! End The Architecture Specific Directory Check. | ||
154 | $! | ||
155 | $ ENDIF | ||
156 | $! | ||
157 | $! Define The Library Name. | ||
158 | $! | ||
159 | $ SSL_LIB := 'EXE_DIR'SSL_LIBSSL'LIB32'.OLB | ||
160 | $! | ||
161 | $! Define The CRYPTO-LIB We Are To Use. | ||
162 | $! | ||
163 | $ CRYPTO_LIB := SYS$DISK:[-.'ARCHD'.EXE.CRYPTO]SSL_LIBCRYPTO'LIB32'.OLB | ||
164 | $! | ||
165 | $! Set up exceptional compilations. | ||
166 | $! | ||
167 | $ CC5_SHOWN = 0 | ||
168 | $! | ||
169 | $! Check To See What We Are To Do. | ||
170 | $! | ||
171 | $ IF (BUILDALL.EQS."TRUE") | ||
172 | $ THEN | ||
173 | $! | ||
174 | $! Since Nothing Special Was Specified, Do Everything. | ||
175 | $! | ||
176 | $ GOSUB LIBRARY | ||
177 | $ GOSUB SSL_TASK | ||
178 | $! | ||
179 | $! Else... | ||
180 | $! | ||
181 | $ ELSE | ||
182 | $! | ||
183 | $! Build Just What The User Wants Us To Build. | ||
184 | $! | ||
185 | $ GOSUB 'BUILDALL' | ||
186 | $! | ||
187 | $! End The BUILDALL Check. | ||
188 | $! | ||
189 | $ ENDIF | ||
190 | $! | ||
191 | $! Time To EXIT. | ||
192 | $! | ||
193 | $ EXIT: | ||
194 | $ GOSUB CLEANUP | ||
195 | $ EXIT | ||
196 | $! | ||
197 | $! Compile The Library. | ||
198 | $! | ||
199 | $ LIBRARY: | ||
200 | $! | ||
201 | $! Check To See If We Already Have A "[.xxx.EXE.SSL]SSL_LIBSSL''LIB32'.OLB" Library... | ||
202 | $! | ||
203 | $ IF (F$SEARCH(SSL_LIB).EQS."") | ||
204 | $ THEN | ||
205 | $! | ||
206 | $! Guess Not, Create The Library. | ||
207 | $! | ||
208 | $ LIBRARY/CREATE/OBJECT 'SSL_LIB' | ||
209 | $! | ||
210 | $! End The Library Exist Check. | ||
211 | $! | ||
212 | $ ENDIF | ||
213 | $! | ||
214 | $! Define The Different SSL "library" Files. | ||
215 | $! | ||
216 | $ LIB_SSL = "s2_meth,s2_srvr,s2_clnt,s2_lib,s2_enc,s2_pkt,"+ - | ||
217 | "s3_meth,s3_srvr,s3_clnt,s3_lib,s3_enc,s3_pkt,s3_both,"+ - | ||
218 | "s23_meth,s23_srvr,s23_clnt,s23_lib,s23_pkt,"+ - | ||
219 | "t1_meth,t1_srvr,t1_clnt,t1_lib,t1_enc,"+ - | ||
220 | "d1_meth,d1_srvr,d1_clnt,d1_lib,d1_pkt,"+ - | ||
221 | "d1_both,d1_enc,d1_srtp,"+ - | ||
222 | "ssl_lib,ssl_err2,ssl_cert,ssl_sess,"+ - | ||
223 | "ssl_ciph,ssl_stat,ssl_rsa,"+ - | ||
224 | "ssl_asn1,ssl_txt,ssl_algs,"+ - | ||
225 | "bio_ssl,ssl_err,kssl,tls_srp,t1_reneg" | ||
226 | $! | ||
227 | $ COMPILEWITH_CC5 = "" | ||
228 | $! | ||
229 | $! Tell The User That We Are Compiling The Library. | ||
230 | $! | ||
231 | $ WRITE SYS$OUTPUT "Building The ",SSL_LIB," Library." | ||
232 | $! | ||
233 | $! Define A File Counter And Set It To "0" | ||
234 | $! | ||
235 | $ FILE_COUNTER = 0 | ||
236 | $! | ||
237 | $! Top Of The File Loop. | ||
238 | $! | ||
239 | $ NEXT_FILE: | ||
240 | $! | ||
241 | $! O.K, Extract The File Name From The File List. | ||
242 | $! | ||
243 | $ FILE_NAME = F$ELEMENT(FILE_COUNTER,",",LIB_SSL) | ||
244 | $! | ||
245 | $! Check To See If We Are At The End Of The File List. | ||
246 | $! | ||
247 | $ IF (FILE_NAME.EQS.",") THEN GOTO FILE_DONE | ||
248 | $! | ||
249 | $! Increment The Counter. | ||
250 | $! | ||
251 | $ FILE_COUNTER = FILE_COUNTER + 1 | ||
252 | $! | ||
253 | $! Create The Source File Name. | ||
254 | $! | ||
255 | $ SOURCE_FILE = "SYS$DISK:[]" + FILE_NAME + ".C" | ||
256 | $! | ||
257 | $! Create The Object File Name. | ||
258 | $! | ||
259 | $ OBJECT_FILE = OBJ_DIR + FILE_NAME + ".OBJ" | ||
260 | $ ON WARNING THEN GOTO NEXT_FILE | ||
261 | $! | ||
262 | $! Check To See If The File We Want To Compile Is Actually There. | ||
263 | $! | ||
264 | $ IF (F$SEARCH(SOURCE_FILE).EQS."") | ||
265 | $ THEN | ||
266 | $! | ||
267 | $! Tell The User That The File Dosen't Exist. | ||
268 | $! | ||
269 | $ WRITE SYS$OUTPUT "" | ||
270 | $ WRITE SYS$OUTPUT "The File ",SOURCE_FILE," Dosen't Exist." | ||
271 | $ WRITE SYS$OUTPUT "" | ||
272 | $! | ||
273 | $! Exit The Build. | ||
274 | $! | ||
275 | $ EXIT | ||
276 | $! | ||
277 | $! End The File Exists Check. | ||
278 | $! | ||
279 | $ ENDIF | ||
280 | $! | ||
281 | $! Tell The User What File We Are Compiling. | ||
282 | $! | ||
283 | $ WRITE SYS$OUTPUT " ",FILE_NAME,".c" | ||
284 | $! | ||
285 | $! Compile The File. | ||
286 | $! | ||
287 | $ ON ERROR THEN GOTO NEXT_FILE | ||
288 | $ CC/OBJECT='OBJECT_FILE' 'SOURCE_FILE' | ||
289 | $! | ||
290 | $! Add It To The Library. | ||
291 | $! | ||
292 | $ LIBRARY/REPLACE/OBJECT 'SSL_LIB' 'OBJECT_FILE' | ||
293 | $! | ||
294 | $! Time To Clean Up The Object File. | ||
295 | $! | ||
296 | $ DELETE 'OBJECT_FILE';* | ||
297 | $! | ||
298 | $! Go Back And Get The Next File Name. | ||
299 | $! | ||
300 | $ GOTO NEXT_FILE | ||
301 | $! | ||
302 | $! All Done With This Library. | ||
303 | $! | ||
304 | $ FILE_DONE: | ||
305 | $! | ||
306 | $! Tell The User That We Are All Done. | ||
307 | $! | ||
308 | $ WRITE SYS$OUTPUT "Library ",SSL_LIB," Compiled." | ||
309 | $! | ||
310 | $! Time To RETURN. | ||
311 | $! | ||
312 | $ RETURN | ||
313 | $ SSL_TASK: | ||
314 | $! | ||
315 | $! Check To See If We Have The Proper Libraries. | ||
316 | $! | ||
317 | $ GOSUB LIB_CHECK | ||
318 | $! | ||
319 | $! Check To See If We Have A Linker Option File. | ||
320 | $! | ||
321 | $ GOSUB CHECK_OPT_FILE | ||
322 | $! | ||
323 | $! Check To See If The File We Want To Compile Is Actually There. | ||
324 | $! | ||
325 | $ IF (F$SEARCH("SYS$DISK:[]SSL_TASK.C").EQS."") | ||
326 | $ THEN | ||
327 | $! | ||
328 | $! Tell The User That The File Dosen't Exist. | ||
329 | $! | ||
330 | $ WRITE SYS$OUTPUT "" | ||
331 | $ WRITE SYS$OUTPUT "The File SSL_TASK.C Dosen't Exist." | ||
332 | $ WRITE SYS$OUTPUT "" | ||
333 | $! | ||
334 | $! Exit The Build. | ||
335 | $! | ||
336 | $ EXIT | ||
337 | $! | ||
338 | $! End The SSL_TASK.C File Check. | ||
339 | $! | ||
340 | $ ENDIF | ||
341 | $! | ||
342 | $ COMPILEWITH_CC5 = "" !!! ",ssl_task," | ||
343 | $! | ||
344 | $! Tell The User We Are Creating The SSL_TASK. | ||
345 | $! | ||
346 | $! Tell The User We Are Creating The SSL_TASK. | ||
347 | $! | ||
348 | $ WRITE SYS$OUTPUT "Creating SSL_TASK OSU HTTP SSL Engine." | ||
349 | $! | ||
350 | $! Tell The User What File We Are Compiling. | ||
351 | $! | ||
352 | $ FILE_NAME = "ssl_task" | ||
353 | $ WRITE SYS$OUTPUT " ",FILE_NAME,".c" | ||
354 | $! | ||
355 | $! Compile The File. | ||
356 | $! | ||
357 | $ ON ERROR THEN GOTO SSL_TASK_END | ||
358 | $! | ||
359 | $ FILE_NAME0 = ","+ F$ELEMENT(0,".",FILE_NAME)+ "," | ||
360 | $ IF COMPILEWITH_CC5 - FILE_NAME0 .NES. COMPILEWITH_CC5 | ||
361 | $ THEN | ||
362 | $ if (.not. CC5_SHOWN) | ||
363 | $ then | ||
364 | $ CC5_SHOWN = 1 | ||
365 | $ write sys$output " \Using special rule (5)" | ||
366 | $ x = " "+ CC5 | ||
367 | $ write /symbol sys$output x | ||
368 | $ endif | ||
369 | $ CC5 /OBJECT='OBJ_DIR''FILE_NAME'.OBJ SYS$DISK:[]'FILE_NAME'.C | ||
370 | $ ELSE | ||
371 | $ CC /OBJECT='OBJ_DIR''FILE_NAME'.OBJ SYS$DISK:[]'FILE_NAME'.C | ||
372 | $ ENDIF | ||
373 | $! | ||
374 | $! Link The Program. | ||
375 | $! | ||
376 | $ LINK /'DEBUGGER' /'LINKMAP' /'TRACEBACK' /EXE='EXE_DIR'SSL_TASK.EXE - | ||
377 | 'OBJ_DIR'SSL_TASK.OBJ, - | ||
378 | 'SSL_LIB'/LIBRARY, - | ||
379 | 'CRYPTO_LIB'/LIBRARY - | ||
380 | 'TCPIP_LIB' - | ||
381 | 'ZLIB_LIB' - | ||
382 | ,'OPT_FILE' /OPTIONS | ||
383 | $! | ||
384 | $! Time To Return. | ||
385 | $! | ||
386 | $SSL_TASK_END: | ||
387 | $ RETURN | ||
388 | $! | ||
389 | $! Check For The Link Option FIle. | ||
390 | $! | ||
391 | $ CHECK_OPT_FILE: | ||
392 | $! | ||
393 | $! Check To See If We Need To Make A VAX C Option File. | ||
394 | $! | ||
395 | $ IF (COMPILER.EQS."VAXC") | ||
396 | $ THEN | ||
397 | $! | ||
398 | $! Check To See If We Already Have A VAX C Linker Option File. | ||
399 | $! | ||
400 | $ IF (F$SEARCH(OPT_FILE).EQS."") | ||
401 | $ THEN | ||
402 | $! | ||
403 | $! We Need A VAX C Linker Option File. | ||
404 | $! | ||
405 | $ CREATE 'OPT_FILE' | ||
406 | $DECK | ||
407 | ! | ||
408 | ! Default System Options File To Link Against | ||
409 | ! The Sharable VAX C Runtime Library. | ||
410 | ! | ||
411 | SYS$SHARE:VAXCRTL.EXE/SHARE | ||
412 | $EOD | ||
413 | $! | ||
414 | $! End The Option File Check. | ||
415 | $! | ||
416 | $ ENDIF | ||
417 | $! | ||
418 | $! End The VAXC Check. | ||
419 | $! | ||
420 | $ ENDIF | ||
421 | $! | ||
422 | $! Check To See If We Need A GNU C Option File. | ||
423 | $! | ||
424 | $ IF (COMPILER.EQS."GNUC") | ||
425 | $ THEN | ||
426 | $! | ||
427 | $! Check To See If We Already Have A GNU C Linker Option File. | ||
428 | $! | ||
429 | $ IF (F$SEARCH(OPT_FILE).EQS."") | ||
430 | $ THEN | ||
431 | $! | ||
432 | $! We Need A GNU C Linker Option File. | ||
433 | $! | ||
434 | $ CREATE 'OPT_FILE' | ||
435 | $DECK | ||
436 | ! | ||
437 | ! Default System Options File To Link Against | ||
438 | ! The Sharable C Runtime Library. | ||
439 | ! | ||
440 | GNU_CC:[000000]GCCLIB/LIBRARY | ||
441 | SYS$SHARE:VAXCRTL/SHARE | ||
442 | $EOD | ||
443 | $! | ||
444 | $! End The Option File Check. | ||
445 | $! | ||
446 | $ ENDIF | ||
447 | $! | ||
448 | $! End The GNU C Check. | ||
449 | $! | ||
450 | $ ENDIF | ||
451 | $! | ||
452 | $! Check To See If We Need A DEC C Option File. | ||
453 | $! | ||
454 | $ IF (COMPILER.EQS."DECC") | ||
455 | $ THEN | ||
456 | $! | ||
457 | $! Check To See If We Already Have A DEC C Linker Option File. | ||
458 | $! | ||
459 | $ IF (F$SEARCH(OPT_FILE).EQS."") | ||
460 | $ THEN | ||
461 | $! | ||
462 | $! Figure Out If We Need A non-VAX Or A VAX Linker Option File. | ||
463 | $! | ||
464 | $ IF (ARCH.EQS."VAX") | ||
465 | $ THEN | ||
466 | $! | ||
467 | $! We Need A DEC C Linker Option File For VAX. | ||
468 | $! | ||
469 | $ CREATE 'OPT_FILE' | ||
470 | $DECK | ||
471 | ! | ||
472 | ! Default System Options File To Link Against | ||
473 | ! The Sharable DEC C Runtime Library. | ||
474 | ! | ||
475 | SYS$SHARE:DECC$SHR.EXE/SHARE | ||
476 | $EOD | ||
477 | $! | ||
478 | $! Else... | ||
479 | $! | ||
480 | $ ELSE | ||
481 | $! | ||
482 | $! Create The non-VAX Linker Option File. | ||
483 | $! | ||
484 | $ CREATE 'OPT_FILE' | ||
485 | $DECK | ||
486 | ! | ||
487 | ! Default System Options File For non-VAX To Link Against | ||
488 | ! The Sharable C Runtime Library. | ||
489 | ! | ||
490 | SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE | ||
491 | SYS$SHARE:CMA$OPEN_RTL/SHARE | ||
492 | $EOD | ||
493 | $! | ||
494 | $! End The DEC C Option File Check. | ||
495 | $! | ||
496 | $ ENDIF | ||
497 | $! | ||
498 | $! End The Option File Search. | ||
499 | $! | ||
500 | $ ENDIF | ||
501 | $! | ||
502 | $! End The DEC C Check. | ||
503 | $! | ||
504 | $ ENDIF | ||
505 | $! | ||
506 | $! Tell The User What Linker Option File We Are Using. | ||
507 | $! | ||
508 | $ WRITE SYS$OUTPUT "Using Linker Option File ",OPT_FILE,"." | ||
509 | $! | ||
510 | $! Time To RETURN. | ||
511 | $! | ||
512 | $ RETURN | ||
513 | $ LIB_CHECK: | ||
514 | $! | ||
515 | $! Look For The VAX Library LIBSSL.OLB. | ||
516 | $! | ||
517 | $ IF (F$SEARCH(SSL_LIB).EQS."") | ||
518 | $ THEN | ||
519 | $! | ||
520 | $! Tell The User We Can't Find The LIBSSL.OLB Library. | ||
521 | $! | ||
522 | $ WRITE SYS$OUTPUT "" | ||
523 | $ WRITE SYS$OUTPUT "Can't Find The Library ",SSL_LIB,"." | ||
524 | $ WRITE SYS$OUTPUT "We Can't Link Without It." | ||
525 | $ WRITE SYS$OUTPUT "" | ||
526 | $! | ||
527 | $! Since We Can't Link Without It, Exit. | ||
528 | $! | ||
529 | $ EXIT | ||
530 | $! | ||
531 | $! End The LIBSSL.OLB Library Check. | ||
532 | $! | ||
533 | $ ENDIF | ||
534 | $! | ||
535 | $! Look For The Library LIBCRYPTO.OLB. | ||
536 | $! | ||
537 | $ IF (F$SEARCH(CRYPTO_LIB).EQS."") | ||
538 | $ THEN | ||
539 | $! | ||
540 | $! Tell The User We Can't Find The LIBCRYPTO.OLB Library. | ||
541 | $! | ||
542 | $ WRITE SYS$OUTPUT "" | ||
543 | $ WRITE SYS$OUTPUT "Can't Find The Library ",CRYPTO_LIB,"." | ||
544 | $ WRITE SYS$OUTPUT "We Can't Link Without It." | ||
545 | $ WRITE SYS$OUTPUT "" | ||
546 | $! | ||
547 | $! Since We Can't Link Without It, Exit. | ||
548 | $! | ||
549 | $ EXIT | ||
550 | $! | ||
551 | $! End The LIBCRYPTO.OLB Library Check. | ||
552 | $! | ||
553 | $ ENDIF | ||
554 | $! | ||
555 | $! Time To Return. | ||
556 | $! | ||
557 | $ RETURN | ||
558 | $! | ||
559 | $! Check The User's Options. | ||
560 | $! | ||
561 | $ CHECK_OPTIONS: | ||
562 | $! | ||
563 | $! Check To See If P1 Is Blank. | ||
564 | $! | ||
565 | $ IF (P1.EQS."ALL") | ||
566 | $ THEN | ||
567 | $! | ||
568 | $! P1 Is Blank, So Build Everything. | ||
569 | $! | ||
570 | $ BUILDALL = "TRUE" | ||
571 | $! | ||
572 | $! Else... | ||
573 | $! | ||
574 | $ ELSE | ||
575 | $! | ||
576 | $! Else, Check To See If P1 Has A Valid Argument. | ||
577 | $! | ||
578 | $ IF (P1.EQS."LIBRARY").OR.(P1.EQS."SSL_TASK") | ||
579 | $ THEN | ||
580 | $! | ||
581 | $! A Valid Argument. | ||
582 | $! | ||
583 | $ BUILDALL = P1 | ||
584 | $! | ||
585 | $! Else... | ||
586 | $! | ||
587 | $ ELSE | ||
588 | $! | ||
589 | $! Tell The User We Don't Know What They Want. | ||
590 | $! | ||
591 | $ WRITE SYS$OUTPUT "" | ||
592 | $ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:" | ||
593 | $ WRITE SYS$OUTPUT "" | ||
594 | $ WRITE SYS$OUTPUT " ALL : Just Build Everything." | ||
595 | $ WRITE SYS$OUTPUT " LIBRARY : To Compile Just The [.xxx.EXE.SSL]LIBSSL.OLB Library." | ||
596 | $ WRITE SYS$OUTPUT " SSL_TASK : To Compile Just The [.xxx.EXE.SSL]SSL_TASK.EXE Program." | ||
597 | $ WRITE SYS$OUTPUT "" | ||
598 | $ WRITE SYS$OUTPUT " Where 'xxx' Stands For:" | ||
599 | $ WRITE SYS$OUTPUT "" | ||
600 | $ WRITE SYS$OUTPUT " ALPHA[64]: Alpha Architecture." | ||
601 | $ WRITE SYS$OUTPUT " IA64[64] : IA64 Architecture." | ||
602 | $ WRITE SYS$OUTPUT " VAX : VAX Architecture." | ||
603 | $ WRITE SYS$OUTPUT "" | ||
604 | $! | ||
605 | $! Time To EXIT. | ||
606 | $! | ||
607 | $ EXIT | ||
608 | $! | ||
609 | $! End The Valid Argument Check. | ||
610 | $! | ||
611 | $ ENDIF | ||
612 | $! | ||
613 | $! End The P1 Check. | ||
614 | $! | ||
615 | $ ENDIF | ||
616 | $! | ||
617 | $! Check To See If P2 Is Blank. | ||
618 | $! | ||
619 | $ IF (P2.EQS."NODEBUG") | ||
620 | $ THEN | ||
621 | $! | ||
622 | $! P2 Is NODEBUG, So Compile Without Debugger Information. | ||
623 | $! | ||
624 | $ DEBUGGER = "NODEBUG" | ||
625 | $ LINKMAP = "NOMAP" | ||
626 | $ TRACEBACK = "NOTRACEBACK" | ||
627 | $ GCC_OPTIMIZE = "OPTIMIZE" | ||
628 | $ CC_OPTIMIZE = "OPTIMIZE" | ||
629 | $ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile." | ||
630 | $ WRITE SYS$OUTPUT "Compiling With Compiler Optimization." | ||
631 | $! | ||
632 | $! Else... | ||
633 | $! | ||
634 | $ ELSE | ||
635 | $! | ||
636 | $! Check To See If We Are To Compile With Debugger Information. | ||
637 | $! | ||
638 | $ IF (P2.EQS."DEBUG") | ||
639 | $ THEN | ||
640 | $! | ||
641 | $! Compile With Debugger Information. | ||
642 | $! | ||
643 | $ DEBUGGER = "DEBUG" | ||
644 | $ LINKMAP = "MAP" | ||
645 | $ TRACEBACK = "TRACEBACK" | ||
646 | $ GCC_OPTIMIZE = "NOOPTIMIZE" | ||
647 | $ CC_OPTIMIZE = "NOOPTIMIZE" | ||
648 | $ WRITE SYS$OUTPUT "Debugger Information Will Be Produced During Compile." | ||
649 | $ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization." | ||
650 | $ ELSE | ||
651 | $! | ||
652 | $! Tell The User Entered An Invalid Option. | ||
653 | $! | ||
654 | $ WRITE SYS$OUTPUT "" | ||
655 | $ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:" | ||
656 | $ WRITE SYS$OUTPUT "" | ||
657 | $ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information." | ||
658 | $ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information." | ||
659 | $ WRITE SYS$OUTPUT "" | ||
660 | $! | ||
661 | $! Time To EXIT. | ||
662 | $! | ||
663 | $ EXIT | ||
664 | $! | ||
665 | $! End The Valid Argument Check. | ||
666 | $! | ||
667 | $ ENDIF | ||
668 | $! | ||
669 | $! End The P2 Check. | ||
670 | $! | ||
671 | $ ENDIF | ||
672 | $! | ||
673 | $! Special Threads For OpenVMS v7.1 Or Later | ||
674 | $! | ||
675 | $! Written By: Richard Levitte | ||
676 | $! richard@levitte.org | ||
677 | $! | ||
678 | $! | ||
679 | $! Check To See If We Have A Option For P5. | ||
680 | $! | ||
681 | $ IF (P5.EQS."") | ||
682 | $ THEN | ||
683 | $! | ||
684 | $! Get The Version Of VMS We Are Using. | ||
685 | $! | ||
686 | $ ISSEVEN := | ||
687 | $ TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION"))) | ||
688 | $ TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP)) | ||
689 | $! | ||
690 | $! Check To See If The VMS Version Is v7.1 Or Later. | ||
691 | $! | ||
692 | $ IF (TMP.GE.71) | ||
693 | $ THEN | ||
694 | $! | ||
695 | $! We Have OpenVMS v7.1 Or Later, So Use The Special Threads. | ||
696 | $! | ||
697 | $ ISSEVEN := ,PTHREAD_USE_D4 | ||
698 | $! | ||
699 | $! End The VMS Version Check. | ||
700 | $! | ||
701 | $ ENDIF | ||
702 | $! | ||
703 | $! End The P5 Check. | ||
704 | $! | ||
705 | $ ENDIF | ||
706 | $! | ||
707 | $! Check P6 (POINTER_SIZE). | ||
708 | $! | ||
709 | $ IF (P6 .NES. "") .AND. (ARCH .NES. "VAX") | ||
710 | $ THEN | ||
711 | $! | ||
712 | $ IF (P6 .EQS. "32") | ||
713 | $ THEN | ||
714 | $ POINTER_SIZE = " /POINTER_SIZE=32" | ||
715 | $ ELSE | ||
716 | $ POINTER_SIZE = F$EDIT( P6, "COLLAPSE, UPCASE") | ||
717 | $ IF ((POINTER_SIZE .EQS. "64") .OR. - | ||
718 | (POINTER_SIZE .EQS. "64=") .OR. - | ||
719 | (POINTER_SIZE .EQS. "64=ARGV")) | ||
720 | $ THEN | ||
721 | $ ARCHD = ARCH+ "_64" | ||
722 | $ LIB32 = "" | ||
723 | $ POINTER_SIZE = " /POINTER_SIZE=64" | ||
724 | $ ELSE | ||
725 | $! | ||
726 | $! Tell The User Entered An Invalid Option. | ||
727 | $! | ||
728 | $ WRITE SYS$OUTPUT "" | ||
729 | $ WRITE SYS$OUTPUT "The Option ", P6, - | ||
730 | " Is Invalid. The Valid Options Are:" | ||
731 | $ WRITE SYS$OUTPUT "" | ||
732 | $ WRITE SYS$OUTPUT - | ||
733 | " """" : Compile with default (short) pointers." | ||
734 | $ WRITE SYS$OUTPUT - | ||
735 | " 32 : Compile with 32-bit (short) pointers." | ||
736 | $ WRITE SYS$OUTPUT - | ||
737 | " 64 : Compile with 64-bit (long) pointers (auto ARGV)." | ||
738 | $ WRITE SYS$OUTPUT - | ||
739 | " 64= : Compile with 64-bit (long) pointers (no ARGV)." | ||
740 | $ WRITE SYS$OUTPUT - | ||
741 | " 64=ARGV : Compile with 64-bit (long) pointers (ARGV)." | ||
742 | $ WRITE SYS$OUTPUT "" | ||
743 | $! | ||
744 | $! Time To EXIT. | ||
745 | $! | ||
746 | $ EXIT | ||
747 | $! | ||
748 | $ ENDIF | ||
749 | $! | ||
750 | $ ENDIF | ||
751 | $! | ||
752 | $! End The P6 (POINTER_SIZE) Check. | ||
753 | $! | ||
754 | $ ENDIF | ||
755 | $! | ||
756 | $! Set basic C compiler /INCLUDE directories. | ||
757 | $! | ||
758 | $ CC_INCLUDES = "SYS$DISK:[-.CRYPTO],SYS$DISK:[-]" | ||
759 | $! | ||
760 | $! Check To See If P3 Is Blank. | ||
761 | $! | ||
762 | $ IF (P3.EQS."") | ||
763 | $ THEN | ||
764 | $! | ||
765 | $! O.K., The User Didn't Specify A Compiler, Let's Try To | ||
766 | $! Find Out Which One To Use. | ||
767 | $! | ||
768 | $! Check To See If We Have GNU C. | ||
769 | $! | ||
770 | $ IF (F$TRNLNM("GNU_CC").NES."") | ||
771 | $ THEN | ||
772 | $! | ||
773 | $! Looks Like GNUC, Set To Use GNUC. | ||
774 | $! | ||
775 | $ P3 = "GNUC" | ||
776 | $! | ||
777 | $! End The GNU C Compiler Check. | ||
778 | $! | ||
779 | $ ELSE | ||
780 | $! | ||
781 | $! Check To See If We Have VAXC Or DECC. | ||
782 | $! | ||
783 | $ IF (ARCH.NES."VAX").OR.(F$TRNLNM("DECC$CC_DEFAULT").NES."") | ||
784 | $ THEN | ||
785 | $! | ||
786 | $! Looks Like DECC, Set To Use DECC. | ||
787 | $! | ||
788 | $ P3 = "DECC" | ||
789 | $! | ||
790 | $! Else... | ||
791 | $! | ||
792 | $ ELSE | ||
793 | $! | ||
794 | $! Looks Like VAXC, Set To Use VAXC. | ||
795 | $! | ||
796 | $ P3 = "VAXC" | ||
797 | $! | ||
798 | $! End The VAXC Compiler Check. | ||
799 | $! | ||
800 | $ ENDIF | ||
801 | $! | ||
802 | $! End The DECC & VAXC Compiler Check. | ||
803 | $! | ||
804 | $ ENDIF | ||
805 | $! | ||
806 | $! End The Compiler Check. | ||
807 | $! | ||
808 | $ ENDIF | ||
809 | $! | ||
810 | $! Check To See If We Have A Option For P4. | ||
811 | $! | ||
812 | $ IF (P4.EQS."") | ||
813 | $ THEN | ||
814 | $! | ||
815 | $! Find out what socket library we have available | ||
816 | $! | ||
817 | $ IF F$PARSE("SOCKETSHR:") .NES. "" | ||
818 | $ THEN | ||
819 | $! | ||
820 | $! We have SOCKETSHR, and it is my opinion that it's the best to use. | ||
821 | $! | ||
822 | $ P4 = "SOCKETSHR" | ||
823 | $! | ||
824 | $! Tell the user | ||
825 | $! | ||
826 | $ WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP" | ||
827 | $! | ||
828 | $! Else, let's look for something else | ||
829 | $! | ||
830 | $ ELSE | ||
831 | $! | ||
832 | $! Like UCX (the reason to do this before Multinet is that the UCX | ||
833 | $! emulation is easier to use...) | ||
834 | $! | ||
835 | $ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" - | ||
836 | .OR. F$PARSE("SYS$SHARE:UCX$IPC_SHR.EXE") .NES. "" - | ||
837 | .OR. F$PARSE("SYS$LIBRARY:UCX$IPC.OLB") .NES. "" | ||
838 | $ THEN | ||
839 | $! | ||
840 | $! Last resort: a UCX or UCX-compatible library | ||
841 | $! | ||
842 | $ P4 = "UCX" | ||
843 | $! | ||
844 | $! Tell the user | ||
845 | $! | ||
846 | $ WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP" | ||
847 | $! | ||
848 | $! That was all... | ||
849 | $! | ||
850 | $ ENDIF | ||
851 | $ ENDIF | ||
852 | $ ENDIF | ||
853 | $! | ||
854 | $! Set Up Initial CC Definitions, Possibly With User Ones | ||
855 | $! | ||
856 | $ CCDEFS = "TCPIP_TYPE_''P4'" | ||
857 | $ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS | ||
858 | $ CCEXTRAFLAGS = "" | ||
859 | $ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS | ||
860 | $ CCDISABLEWARNINGS = "" !!! "LONGLONGTYPE,LONGLONGSUFX,FOUNDCR" | ||
861 | $ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN - | ||
862 | CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS | ||
863 | $! | ||
864 | $! Check To See If We Have A ZLIB Option. | ||
865 | $! | ||
866 | $ ZLIB = P7 | ||
867 | $ IF (ZLIB .NES. "") | ||
868 | $ THEN | ||
869 | $! | ||
870 | $! Check for expected ZLIB files. | ||
871 | $! | ||
872 | $ err = 0 | ||
873 | $ file1 = f$parse( "zlib.h", ZLIB, , , "SYNTAX_ONLY") | ||
874 | $ if (f$search( file1) .eqs. "") | ||
875 | $ then | ||
876 | $ WRITE SYS$OUTPUT "" | ||
877 | $ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid." | ||
878 | $ WRITE SYS$OUTPUT " Can't find header: ''file1'" | ||
879 | $ err = 1 | ||
880 | $ endif | ||
881 | $ file1 = f$parse( "A.;", ZLIB)- "A.;" | ||
882 | $! | ||
883 | $ file2 = f$parse( ZLIB, "libz.olb", , , "SYNTAX_ONLY") | ||
884 | $ if (f$search( file2) .eqs. "") | ||
885 | $ then | ||
886 | $ if (err .eq. 0) | ||
887 | $ then | ||
888 | $ WRITE SYS$OUTPUT "" | ||
889 | $ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid." | ||
890 | $ endif | ||
891 | $ WRITE SYS$OUTPUT " Can't find library: ''file2'" | ||
892 | $ WRITE SYS$OUTPUT "" | ||
893 | $ err = err+ 2 | ||
894 | $ endif | ||
895 | $ if (err .eq. 1) | ||
896 | $ then | ||
897 | $ WRITE SYS$OUTPUT "" | ||
898 | $ endif | ||
899 | $! | ||
900 | $ if (err .ne. 0) | ||
901 | $ then | ||
902 | $ EXIT | ||
903 | $ endif | ||
904 | $! | ||
905 | $ CCDEFS = """ZLIB=1"", "+ CCDEFS | ||
906 | $ CC_INCLUDES = CC_INCLUDES+ ", "+ file1 | ||
907 | $ ZLIB_LIB = ", ''file2' /library" | ||
908 | $! | ||
909 | $! Print info | ||
910 | $! | ||
911 | $ WRITE SYS$OUTPUT "ZLIB library spec: ", file2 | ||
912 | $! | ||
913 | $! End The ZLIB Check. | ||
914 | $! | ||
915 | $ ENDIF | ||
916 | $! | ||
917 | $! Check To See If The User Entered A Valid Parameter. | ||
918 | $! | ||
919 | $ IF (P3.EQS."VAXC").OR.(P3.EQS."DECC").OR.(P3.EQS."GNUC") | ||
920 | $ THEN | ||
921 | $! | ||
922 | $! Check To See If The User Wanted DECC. | ||
923 | $! | ||
924 | $ IF (P3.EQS."DECC") | ||
925 | $ THEN | ||
926 | $! | ||
927 | $! Looks Like DECC, Set To Use DECC. | ||
928 | $! | ||
929 | $ COMPILER = "DECC" | ||
930 | $! | ||
931 | $! Tell The User We Are Using DECC. | ||
932 | $! | ||
933 | $ WRITE SYS$OUTPUT "Using DECC 'C' Compiler." | ||
934 | $! | ||
935 | $! Use DECC... | ||
936 | $! | ||
937 | $ CC = "CC" | ||
938 | $ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" - | ||
939 | THEN CC = "CC/DECC" | ||
940 | $ CC = CC + " /''CC_OPTIMIZE' /''DEBUGGER' /STANDARD=RELAXED"+ - | ||
941 | "''POINTER_SIZE' /NOLIST /PREFIX=ALL" + - | ||
942 | " /INCLUDE=(''CC_INCLUDES') " + CCEXTRAFLAGS | ||
943 | $! | ||
944 | $! Define The Linker Options File Name. | ||
945 | $! | ||
946 | $ OPT_FILE = "VAX_DECC_OPTIONS.OPT" | ||
947 | $! | ||
948 | $! End DECC Check. | ||
949 | $! | ||
950 | $ ENDIF | ||
951 | $! | ||
952 | $! Check To See If We Are To Use VAXC. | ||
953 | $! | ||
954 | $ IF (P3.EQS."VAXC") | ||
955 | $ THEN | ||
956 | $! | ||
957 | $! Looks Like VAXC, Set To Use VAXC. | ||
958 | $! | ||
959 | $ COMPILER = "VAXC" | ||
960 | $! | ||
961 | $! Tell The User We Are Using VAX C. | ||
962 | $! | ||
963 | $ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler." | ||
964 | $! | ||
965 | $! Compile Using VAXC. | ||
966 | $! | ||
967 | $ CC = "CC" | ||
968 | $ IF ARCH.NES."VAX" | ||
969 | $ THEN | ||
970 | $ WRITE SYS$OUTPUT "There is no VAX C on ''ARCH'!" | ||
971 | $ EXIT | ||
972 | $ ENDIF | ||
973 | $ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC" | ||
974 | $ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + - | ||
975 | "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS | ||
976 | $ CCDEFS = CCDEFS + ",""VAXC""" | ||
977 | $! | ||
978 | $! Define <sys> As SYS$COMMON:[SYSLIB] | ||
979 | $! | ||
980 | $ DEFINE/NOLOG SYS SYS$COMMON:[SYSLIB] | ||
981 | $! | ||
982 | $! Define The Linker Options File Name. | ||
983 | $! | ||
984 | $ OPT_FILE = "VAX_VAXC_OPTIONS.OPT" | ||
985 | $! | ||
986 | $! End VAXC Check | ||
987 | $! | ||
988 | $ ENDIF | ||
989 | $! | ||
990 | $! Check To See If We Are To Use GNU C. | ||
991 | $! | ||
992 | $ IF (P3.EQS."GNUC") | ||
993 | $ THEN | ||
994 | $! | ||
995 | $! Looks Like GNUC, Set To Use GNUC. | ||
996 | $! | ||
997 | $ COMPILER = "GNUC" | ||
998 | $! | ||
999 | $! Tell The User We Are Using GNUC. | ||
1000 | $! | ||
1001 | $ WRITE SYS$OUTPUT "Using GNU 'C' Compiler." | ||
1002 | $! | ||
1003 | $! Use GNU C... | ||
1004 | $! | ||
1005 | $ IF F$TYPE(GCC) .EQS. "" THEN GCC := GCC | ||
1006 | $ CC = GCC+"/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + - | ||
1007 | "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS | ||
1008 | $! | ||
1009 | $! Define The Linker Options File Name. | ||
1010 | $! | ||
1011 | $ OPT_FILE = "VAX_GNUC_OPTIONS.OPT" | ||
1012 | $! | ||
1013 | $! End The GNU C Check. | ||
1014 | $! | ||
1015 | $ ENDIF | ||
1016 | $! | ||
1017 | $! Set up default defines | ||
1018 | $! | ||
1019 | $ CCDEFS = """FLAT_INC=1""," + CCDEFS | ||
1020 | $! | ||
1021 | $! Finish up the definition of CC. | ||
1022 | $! | ||
1023 | $ IF COMPILER .EQS. "DECC" | ||
1024 | $ THEN | ||
1025 | $ IF CCDISABLEWARNINGS .EQS. "" | ||
1026 | $ THEN | ||
1027 | $ CC4DISABLEWARNINGS = "DOLLARID" | ||
1028 | $ ELSE | ||
1029 | $ CC4DISABLEWARNINGS = CCDISABLEWARNINGS + ",DOLLARID" | ||
1030 | $ CCDISABLEWARNINGS = " /WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))" | ||
1031 | $ ENDIF | ||
1032 | $ CC4DISABLEWARNINGS = " /WARNING=(DISABLE=(" + CC4DISABLEWARNINGS + "))" | ||
1033 | $ ELSE | ||
1034 | $ CCDISABLEWARNINGS = "" | ||
1035 | $ CC4DISABLEWARNINGS = "" | ||
1036 | $ ENDIF | ||
1037 | $ CC2 = CC + " /DEFINE=(" + CCDEFS + ",_POSIX_C_SOURCE)" + CCDISABLEWARNINGS | ||
1038 | $ CC3 = CC + " /DEFINE=(" + CCDEFS + ISSEVEN + ")" + CCDISABLEWARNINGS | ||
1039 | $ CC = CC + " /DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS | ||
1040 | $ IF COMPILER .EQS. "DECC" | ||
1041 | $ THEN | ||
1042 | $ CC4 = CC - CCDISABLEWARNINGS + CC4DISABLEWARNINGS | ||
1043 | $ CC5 = CC3 - CCDISABLEWARNINGS + CC4DISABLEWARNINGS | ||
1044 | $ ELSE | ||
1045 | $ CC4 = CC | ||
1046 | $ CC5 = CC3 | ||
1047 | $ ENDIF | ||
1048 | $! | ||
1049 | $! Show user the result | ||
1050 | $! | ||
1051 | $ WRITE/SYMBOL SYS$OUTPUT "Main Compiling Command: ",CC | ||
1052 | $! | ||
1053 | $! Else The User Entered An Invalid Argument. | ||
1054 | $! | ||
1055 | $ ELSE | ||
1056 | $! | ||
1057 | $! Tell The User We Don't Know What They Want. | ||
1058 | $! | ||
1059 | $ WRITE SYS$OUTPUT "" | ||
1060 | $ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:" | ||
1061 | $ WRITE SYS$OUTPUT "" | ||
1062 | $ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C." | ||
1063 | $ WRITE SYS$OUTPUT " DECC : To Compile With DEC C." | ||
1064 | $ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C." | ||
1065 | $ WRITE SYS$OUTPUT "" | ||
1066 | $! | ||
1067 | $! Time To EXIT. | ||
1068 | $! | ||
1069 | $ EXIT | ||
1070 | $ ENDIF | ||
1071 | $! | ||
1072 | $! Time to check the contents, and to make sure we get the correct library. | ||
1073 | $! | ||
1074 | $ IF P4.EQS."SOCKETSHR" .OR. P4.EQS."MULTINET" .OR. P4.EQS."UCX" - | ||
1075 | .OR. P4.EQS."TCPIP" .OR. P4.EQS."NONE" | ||
1076 | $ THEN | ||
1077 | $! | ||
1078 | $! Check to see if SOCKETSHR was chosen | ||
1079 | $! | ||
1080 | $ IF P4.EQS."SOCKETSHR" | ||
1081 | $ THEN | ||
1082 | $! | ||
1083 | $! Set the library to use SOCKETSHR | ||
1084 | $! | ||
1085 | $ TCPIP_LIB = ",SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT /OPTIONS" | ||
1086 | $! | ||
1087 | $! Done with SOCKETSHR | ||
1088 | $! | ||
1089 | $ ENDIF | ||
1090 | $! | ||
1091 | $! Check to see if MULTINET was chosen | ||
1092 | $! | ||
1093 | $ IF P4.EQS."MULTINET" | ||
1094 | $ THEN | ||
1095 | $! | ||
1096 | $! Set the library to use UCX emulation. | ||
1097 | $! | ||
1098 | $ P4 = "UCX" | ||
1099 | $! | ||
1100 | $! Done with MULTINET | ||
1101 | $! | ||
1102 | $ ENDIF | ||
1103 | $! | ||
1104 | $! Check to see if UCX was chosen | ||
1105 | $! | ||
1106 | $ IF P4.EQS."UCX" | ||
1107 | $ THEN | ||
1108 | $! | ||
1109 | $! Set the library to use UCX. | ||
1110 | $! | ||
1111 | $ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT /OPTIONS" | ||
1112 | $ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" | ||
1113 | $ THEN | ||
1114 | $ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT /OPTIONS" | ||
1115 | $ ELSE | ||
1116 | $ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN - | ||
1117 | TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT /OPTIONS" | ||
1118 | $ ENDIF | ||
1119 | $! | ||
1120 | $! Done with UCX | ||
1121 | $! | ||
1122 | $ ENDIF | ||
1123 | $! | ||
1124 | $! Check to see if TCPIP was chosen | ||
1125 | $! | ||
1126 | $ IF P4.EQS."TCPIP" | ||
1127 | $ THEN | ||
1128 | $! | ||
1129 | $! Set the library to use TCPIP (post UCX). | ||
1130 | $! | ||
1131 | $ TCPIP_LIB = ",SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT /OPTIONS" | ||
1132 | $! | ||
1133 | $! Done with TCPIP | ||
1134 | $! | ||
1135 | $ ENDIF | ||
1136 | $! | ||
1137 | $! Check to see if NONE was chosen | ||
1138 | $! | ||
1139 | $ IF P4.EQS."NONE" | ||
1140 | $ THEN | ||
1141 | $! | ||
1142 | $! Do not use a TCPIP library. | ||
1143 | $! | ||
1144 | $ TCPIP_LIB = "" | ||
1145 | $! | ||
1146 | $! Done with NONE | ||
1147 | $! | ||
1148 | $ ENDIF | ||
1149 | $! | ||
1150 | $! Print info | ||
1151 | $! | ||
1152 | $ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB- "," | ||
1153 | $! | ||
1154 | $! Else The User Entered An Invalid Argument. | ||
1155 | $! | ||
1156 | $ ELSE | ||
1157 | $! | ||
1158 | $! Tell The User We Don't Know What They Want. | ||
1159 | $! | ||
1160 | $ WRITE SYS$OUTPUT "" | ||
1161 | $ WRITE SYS$OUTPUT "The Option ",P4," Is Invalid. The Valid Options Are:" | ||
1162 | $ WRITE SYS$OUTPUT "" | ||
1163 | $ WRITE SYS$OUTPUT " SOCKETSHR : To link with SOCKETSHR TCP/IP library." | ||
1164 | $ WRITE SYS$OUTPUT " UCX : To link with UCX TCP/IP library." | ||
1165 | $ WRITE SYS$OUTPUT " TCPIP : To link with TCPIP (post UCX) TCP/IP library." | ||
1166 | $ WRITE SYS$OUTPUT "" | ||
1167 | $! | ||
1168 | $! Time To EXIT. | ||
1169 | $! | ||
1170 | $ EXIT | ||
1171 | $! | ||
1172 | $! Done with TCP/IP libraries | ||
1173 | $! | ||
1174 | $ ENDIF | ||
1175 | $! | ||
1176 | $! Time To RETURN... | ||
1177 | $! | ||
1178 | $ RETURN | ||
1179 | $! | ||
1180 | $ INITIALISE: | ||
1181 | $! | ||
1182 | $! Save old value of the logical name OPENSSL | ||
1183 | $! | ||
1184 | $ __SAVE_OPENSSL = F$TRNLNM("OPENSSL","LNM$PROCESS_TABLE") | ||
1185 | $! | ||
1186 | $! Save directory information | ||
1187 | $! | ||
1188 | $ __HERE = F$PARSE(F$PARSE("A.;",F$ENVIRONMENT("PROCEDURE"))-"A.;","[]A.;") - "A.;" | ||
1189 | $ __HERE = F$EDIT(__HERE,"UPCASE") | ||
1190 | $ __TOP = __HERE - "SSL]" | ||
1191 | $ __INCLUDE = __TOP + "INCLUDE.OPENSSL]" | ||
1192 | $! | ||
1193 | $! Set up the logical name OPENSSL to point at the include directory | ||
1194 | $! | ||
1195 | $ DEFINE OPENSSL/NOLOG '__INCLUDE' | ||
1196 | $! | ||
1197 | $! Done | ||
1198 | $! | ||
1199 | $ RETURN | ||
1200 | $! | ||
1201 | $ CLEANUP: | ||
1202 | $! | ||
1203 | $! Restore the logical name OPENSSL if it had a value | ||
1204 | $! | ||
1205 | $ IF __SAVE_OPENSSL .EQS. "" | ||
1206 | $ THEN | ||
1207 | $ DEASSIGN OPENSSL | ||
1208 | $ ELSE | ||
1209 | $ DEFINE/NOLOG OPENSSL '__SAVE_OPENSSL' | ||
1210 | $ ENDIF | ||
1211 | $! | ||
1212 | $! Done | ||
1213 | $! | ||
1214 | $ RETURN | ||
diff --git a/src/lib/libssl/src/ssl/ssl.h b/src/lib/libssl/src/ssl/ssl.h index 8b0c2a2dac..7219a0e64b 100644 --- a/src/lib/libssl/src/ssl/ssl.h +++ b/src/lib/libssl/src/ssl/ssl.h | |||
@@ -493,6 +493,9 @@ struct ssl_session_st | |||
493 | char *psk_identity_hint; | 493 | char *psk_identity_hint; |
494 | char *psk_identity; | 494 | char *psk_identity; |
495 | #endif | 495 | #endif |
496 | /* Used to indicate that session resumption is not allowed. | ||
497 | * Applications can also set this bit for a new session via | ||
498 | * not_resumable_session_cb to disable session caching and tickets. */ | ||
496 | int not_resumable; | 499 | int not_resumable; |
497 | 500 | ||
498 | /* The cert is the certificate used to establish this connection */ | 501 | /* The cert is the certificate used to establish this connection */ |
@@ -535,7 +538,7 @@ struct ssl_session_st | |||
535 | #endif /* OPENSSL_NO_EC */ | 538 | #endif /* OPENSSL_NO_EC */ |
536 | /* RFC4507 info */ | 539 | /* RFC4507 info */ |
537 | unsigned char *tlsext_tick; /* Session ticket */ | 540 | unsigned char *tlsext_tick; /* Session ticket */ |
538 | size_t tlsext_ticklen; /* Session ticket length */ | 541 | size_t tlsext_ticklen; /* Session ticket length */ |
539 | long tlsext_tick_lifetime_hint; /* Session lifetime hint in seconds */ | 542 | long tlsext_tick_lifetime_hint; /* Session lifetime hint in seconds */ |
540 | #endif | 543 | #endif |
541 | #ifndef OPENSSL_NO_SRP | 544 | #ifndef OPENSSL_NO_SRP |
@@ -552,11 +555,14 @@ struct ssl_session_st | |||
552 | #define SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG 0x00000008L | 555 | #define SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG 0x00000008L |
553 | #define SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG 0x00000010L | 556 | #define SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG 0x00000010L |
554 | #define SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER 0x00000020L | 557 | #define SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER 0x00000020L |
555 | #define SSL_OP_MSIE_SSLV2_RSA_PADDING 0x00000040L /* no effect since 0.9.7h and 0.9.8b */ | 558 | #define SSL_OP_SAFARI_ECDHE_ECDSA_BUG 0x00000040L |
556 | #define SSL_OP_SSLEAY_080_CLIENT_DH_BUG 0x00000080L | 559 | #define SSL_OP_SSLEAY_080_CLIENT_DH_BUG 0x00000080L |
557 | #define SSL_OP_TLS_D5_BUG 0x00000100L | 560 | #define SSL_OP_TLS_D5_BUG 0x00000100L |
558 | #define SSL_OP_TLS_BLOCK_PADDING_BUG 0x00000200L | 561 | #define SSL_OP_TLS_BLOCK_PADDING_BUG 0x00000200L |
559 | 562 | ||
563 | /* Hasn't done anything since OpenSSL 0.9.7h, retained for compatibility */ | ||
564 | #define SSL_OP_MSIE_SSLV2_RSA_PADDING 0x0 | ||
565 | |||
560 | /* Disable SSL 3.0/TLS 1.0 CBC vulnerability workaround that was added | 566 | /* Disable SSL 3.0/TLS 1.0 CBC vulnerability workaround that was added |
561 | * in OpenSSL 0.9.6d. Usually (depending on the application protocol) | 567 | * in OpenSSL 0.9.6d. Usually (depending on the application protocol) |
562 | * the workaround is not needed. Unfortunately some broken SSL/TLS | 568 | * the workaround is not needed. Unfortunately some broken SSL/TLS |
@@ -638,6 +644,12 @@ struct ssl_session_st | |||
638 | * TLS only.) "Released" buffers are put onto a free-list in the context | 644 | * TLS only.) "Released" buffers are put onto a free-list in the context |
639 | * or just freed (depending on the context's setting for freelist_max_len). */ | 645 | * or just freed (depending on the context's setting for freelist_max_len). */ |
640 | #define SSL_MODE_RELEASE_BUFFERS 0x00000010L | 646 | #define SSL_MODE_RELEASE_BUFFERS 0x00000010L |
647 | /* Send the current time in the Random fields of the ClientHello and | ||
648 | * ServerHello records for compatibility with hypothetical implementations | ||
649 | * that require it. | ||
650 | */ | ||
651 | #define SSL_MODE_SEND_CLIENTHELLO_TIME 0x00000020L | ||
652 | #define SSL_MODE_SEND_SERVERHELLO_TIME 0x00000040L | ||
641 | 653 | ||
642 | /* Note: SSL[_CTX]_set_{options,mode} use |= op on the previous value, | 654 | /* Note: SSL[_CTX]_set_{options,mode} use |= op on the previous value, |
643 | * they cannot be used to clear bits. */ | 655 | * they cannot be used to clear bits. */ |
@@ -903,7 +915,7 @@ struct ssl_ctx_st | |||
903 | */ | 915 | */ |
904 | unsigned int max_send_fragment; | 916 | unsigned int max_send_fragment; |
905 | 917 | ||
906 | #ifndef OPENSSL_ENGINE | 918 | #ifndef OPENSSL_NO_ENGINE |
907 | /* Engine to pass requests for client certs to | 919 | /* Engine to pass requests for client certs to |
908 | */ | 920 | */ |
909 | ENGINE *client_cert_engine; | 921 | ENGINE *client_cert_engine; |
@@ -927,6 +939,7 @@ struct ssl_ctx_st | |||
927 | /* Callback for status request */ | 939 | /* Callback for status request */ |
928 | int (*tlsext_status_cb)(SSL *ssl, void *arg); | 940 | int (*tlsext_status_cb)(SSL *ssl, void *arg); |
929 | void *tlsext_status_arg; | 941 | void *tlsext_status_arg; |
942 | |||
930 | /* draft-rescorla-tls-opaque-prf-input-00.txt information */ | 943 | /* draft-rescorla-tls-opaque-prf-input-00.txt information */ |
931 | int (*tlsext_opaque_prf_input_callback)(SSL *, void *peerinput, size_t len, void *arg); | 944 | int (*tlsext_opaque_prf_input_callback)(SSL *, void *peerinput, size_t len, void *arg); |
932 | void *tlsext_opaque_prf_input_callback_arg; | 945 | void *tlsext_opaque_prf_input_callback_arg; |
@@ -952,6 +965,7 @@ struct ssl_ctx_st | |||
952 | #endif | 965 | #endif |
953 | 966 | ||
954 | #ifndef OPENSSL_NO_TLSEXT | 967 | #ifndef OPENSSL_NO_TLSEXT |
968 | |||
955 | # ifndef OPENSSL_NO_NEXTPROTONEG | 969 | # ifndef OPENSSL_NO_NEXTPROTONEG |
956 | /* Next protocol negotiation information */ | 970 | /* Next protocol negotiation information */ |
957 | /* (for experimental NPN extension). */ | 971 | /* (for experimental NPN extension). */ |
@@ -2206,6 +2220,7 @@ void ERR_load_SSL_strings(void); | |||
2206 | #define SSL_F_SSL_GET_NEW_SESSION 181 | 2220 | #define SSL_F_SSL_GET_NEW_SESSION 181 |
2207 | #define SSL_F_SSL_GET_PREV_SESSION 217 | 2221 | #define SSL_F_SSL_GET_PREV_SESSION 217 |
2208 | #define SSL_F_SSL_GET_SERVER_SEND_CERT 182 | 2222 | #define SSL_F_SSL_GET_SERVER_SEND_CERT 182 |
2223 | #define SSL_F_SSL_GET_SERVER_SEND_PKEY 317 | ||
2209 | #define SSL_F_SSL_GET_SIGN_PKEY 183 | 2224 | #define SSL_F_SSL_GET_SIGN_PKEY 183 |
2210 | #define SSL_F_SSL_INIT_WBIO_BUFFER 184 | 2225 | #define SSL_F_SSL_INIT_WBIO_BUFFER 184 |
2211 | #define SSL_F_SSL_LOAD_CLIENT_CA_FILE 185 | 2226 | #define SSL_F_SSL_LOAD_CLIENT_CA_FILE 185 |
diff --git a/src/lib/libssl/src/ssl/ssl3.h b/src/lib/libssl/src/ssl/ssl3.h index 112e627de0..cb8b2492ec 100644 --- a/src/lib/libssl/src/ssl/ssl3.h +++ b/src/lib/libssl/src/ssl/ssl3.h | |||
@@ -539,6 +539,15 @@ typedef struct ssl3_state_st | |||
539 | /* Set if we saw the Next Protocol Negotiation extension from our peer. */ | 539 | /* Set if we saw the Next Protocol Negotiation extension from our peer. */ |
540 | int next_proto_neg_seen; | 540 | int next_proto_neg_seen; |
541 | #endif | 541 | #endif |
542 | |||
543 | #ifndef OPENSSL_NO_TLSEXT | ||
544 | #ifndef OPENSSL_NO_EC | ||
545 | /* This is set to true if we believe that this is a version of Safari | ||
546 | * running on OS X 10.6 or newer. We wish to know this because Safari | ||
547 | * on 10.8 .. 10.8.3 has broken ECDHE-ECDSA support. */ | ||
548 | char is_probably_safari; | ||
549 | #endif /* !OPENSSL_NO_EC */ | ||
550 | #endif /* !OPENSSL_NO_TLSEXT */ | ||
542 | } SSL3_STATE; | 551 | } SSL3_STATE; |
543 | 552 | ||
544 | #endif | 553 | #endif |
@@ -578,8 +587,10 @@ typedef struct ssl3_state_st | |||
578 | #define SSL3_ST_CW_CERT_VRFY_B (0x191|SSL_ST_CONNECT) | 587 | #define SSL3_ST_CW_CERT_VRFY_B (0x191|SSL_ST_CONNECT) |
579 | #define SSL3_ST_CW_CHANGE_A (0x1A0|SSL_ST_CONNECT) | 588 | #define SSL3_ST_CW_CHANGE_A (0x1A0|SSL_ST_CONNECT) |
580 | #define SSL3_ST_CW_CHANGE_B (0x1A1|SSL_ST_CONNECT) | 589 | #define SSL3_ST_CW_CHANGE_B (0x1A1|SSL_ST_CONNECT) |
590 | #ifndef OPENSSL_NO_NEXTPROTONEG | ||
581 | #define SSL3_ST_CW_NEXT_PROTO_A (0x200|SSL_ST_CONNECT) | 591 | #define SSL3_ST_CW_NEXT_PROTO_A (0x200|SSL_ST_CONNECT) |
582 | #define SSL3_ST_CW_NEXT_PROTO_B (0x201|SSL_ST_CONNECT) | 592 | #define SSL3_ST_CW_NEXT_PROTO_B (0x201|SSL_ST_CONNECT) |
593 | #endif | ||
583 | #define SSL3_ST_CW_FINISHED_A (0x1B0|SSL_ST_CONNECT) | 594 | #define SSL3_ST_CW_FINISHED_A (0x1B0|SSL_ST_CONNECT) |
584 | #define SSL3_ST_CW_FINISHED_B (0x1B1|SSL_ST_CONNECT) | 595 | #define SSL3_ST_CW_FINISHED_B (0x1B1|SSL_ST_CONNECT) |
585 | /* read from server */ | 596 | /* read from server */ |
@@ -629,8 +640,10 @@ typedef struct ssl3_state_st | |||
629 | #define SSL3_ST_SR_CERT_VRFY_B (0x1A1|SSL_ST_ACCEPT) | 640 | #define SSL3_ST_SR_CERT_VRFY_B (0x1A1|SSL_ST_ACCEPT) |
630 | #define SSL3_ST_SR_CHANGE_A (0x1B0|SSL_ST_ACCEPT) | 641 | #define SSL3_ST_SR_CHANGE_A (0x1B0|SSL_ST_ACCEPT) |
631 | #define SSL3_ST_SR_CHANGE_B (0x1B1|SSL_ST_ACCEPT) | 642 | #define SSL3_ST_SR_CHANGE_B (0x1B1|SSL_ST_ACCEPT) |
643 | #ifndef OPENSSL_NO_NEXTPROTONEG | ||
632 | #define SSL3_ST_SR_NEXT_PROTO_A (0x210|SSL_ST_ACCEPT) | 644 | #define SSL3_ST_SR_NEXT_PROTO_A (0x210|SSL_ST_ACCEPT) |
633 | #define SSL3_ST_SR_NEXT_PROTO_B (0x211|SSL_ST_ACCEPT) | 645 | #define SSL3_ST_SR_NEXT_PROTO_B (0x211|SSL_ST_ACCEPT) |
646 | #endif | ||
634 | #define SSL3_ST_SR_FINISHED_A (0x1C0|SSL_ST_ACCEPT) | 647 | #define SSL3_ST_SR_FINISHED_A (0x1C0|SSL_ST_ACCEPT) |
635 | #define SSL3_ST_SR_FINISHED_B (0x1C1|SSL_ST_ACCEPT) | 648 | #define SSL3_ST_SR_FINISHED_B (0x1C1|SSL_ST_ACCEPT) |
636 | /* write to client */ | 649 | /* write to client */ |
@@ -655,7 +668,9 @@ typedef struct ssl3_state_st | |||
655 | #define SSL3_MT_CLIENT_KEY_EXCHANGE 16 | 668 | #define SSL3_MT_CLIENT_KEY_EXCHANGE 16 |
656 | #define SSL3_MT_FINISHED 20 | 669 | #define SSL3_MT_FINISHED 20 |
657 | #define SSL3_MT_CERTIFICATE_STATUS 22 | 670 | #define SSL3_MT_CERTIFICATE_STATUS 22 |
671 | #ifndef OPENSSL_NO_NEXTPROTONEG | ||
658 | #define SSL3_MT_NEXT_PROTO 67 | 672 | #define SSL3_MT_NEXT_PROTO 67 |
673 | #endif | ||
659 | #define DTLS1_MT_HELLO_VERIFY_REQUEST 3 | 674 | #define DTLS1_MT_HELLO_VERIFY_REQUEST 3 |
660 | 675 | ||
661 | 676 | ||
diff --git a/src/lib/libssl/src/ssl/ssl_algs.c b/src/lib/libssl/src/ssl/ssl_algs.c index d443143c59..9c34d19725 100644 --- a/src/lib/libssl/src/ssl/ssl_algs.c +++ b/src/lib/libssl/src/ssl/ssl_algs.c | |||
@@ -94,6 +94,7 @@ int SSL_library_init(void) | |||
94 | EVP_add_cipher(EVP_aes_128_cbc_hmac_sha1()); | 94 | EVP_add_cipher(EVP_aes_128_cbc_hmac_sha1()); |
95 | EVP_add_cipher(EVP_aes_256_cbc_hmac_sha1()); | 95 | EVP_add_cipher(EVP_aes_256_cbc_hmac_sha1()); |
96 | #endif | 96 | #endif |
97 | |||
97 | #endif | 98 | #endif |
98 | #ifndef OPENSSL_NO_CAMELLIA | 99 | #ifndef OPENSSL_NO_CAMELLIA |
99 | EVP_add_cipher(EVP_camellia_128_cbc()); | 100 | EVP_add_cipher(EVP_camellia_128_cbc()); |
diff --git a/src/lib/libssl/src/ssl/ssl_cert.c b/src/lib/libssl/src/ssl/ssl_cert.c index 917be31876..5123a89182 100644 --- a/src/lib/libssl/src/ssl/ssl_cert.c +++ b/src/lib/libssl/src/ssl/ssl_cert.c | |||
@@ -164,14 +164,14 @@ static void ssl_cert_set_default_md(CERT *cert) | |||
164 | { | 164 | { |
165 | /* Set digest values to defaults */ | 165 | /* Set digest values to defaults */ |
166 | #ifndef OPENSSL_NO_DSA | 166 | #ifndef OPENSSL_NO_DSA |
167 | cert->pkeys[SSL_PKEY_DSA_SIGN].digest = EVP_dss1(); | 167 | cert->pkeys[SSL_PKEY_DSA_SIGN].digest = EVP_sha1(); |
168 | #endif | 168 | #endif |
169 | #ifndef OPENSSL_NO_RSA | 169 | #ifndef OPENSSL_NO_RSA |
170 | cert->pkeys[SSL_PKEY_RSA_SIGN].digest = EVP_sha1(); | 170 | cert->pkeys[SSL_PKEY_RSA_SIGN].digest = EVP_sha1(); |
171 | cert->pkeys[SSL_PKEY_RSA_ENC].digest = EVP_sha1(); | 171 | cert->pkeys[SSL_PKEY_RSA_ENC].digest = EVP_sha1(); |
172 | #endif | 172 | #endif |
173 | #ifndef OPENSSL_NO_ECDSA | 173 | #ifndef OPENSSL_NO_ECDSA |
174 | cert->pkeys[SSL_PKEY_ECC].digest = EVP_ecdsa(); | 174 | cert->pkeys[SSL_PKEY_ECC].digest = EVP_sha1(); |
175 | #endif | 175 | #endif |
176 | } | 176 | } |
177 | 177 | ||
diff --git a/src/lib/libssl/src/ssl/ssl_ciph.c b/src/lib/libssl/src/ssl/ssl_ciph.c index 92d1e94d6a..0aba8e048c 100644 --- a/src/lib/libssl/src/ssl/ssl_ciph.c +++ b/src/lib/libssl/src/ssl/ssl_ciph.c | |||
@@ -312,6 +312,7 @@ static const SSL_CIPHER cipher_aliases[]={ | |||
312 | {0,SSL_TXT_SSLV2,0, 0,0,0,0,SSL_SSLV2, 0,0,0,0}, | 312 | {0,SSL_TXT_SSLV2,0, 0,0,0,0,SSL_SSLV2, 0,0,0,0}, |
313 | {0,SSL_TXT_SSLV3,0, 0,0,0,0,SSL_SSLV3, 0,0,0,0}, | 313 | {0,SSL_TXT_SSLV3,0, 0,0,0,0,SSL_SSLV3, 0,0,0,0}, |
314 | {0,SSL_TXT_TLSV1,0, 0,0,0,0,SSL_TLSV1, 0,0,0,0}, | 314 | {0,SSL_TXT_TLSV1,0, 0,0,0,0,SSL_TLSV1, 0,0,0,0}, |
315 | {0,SSL_TXT_TLSV1_2,0, 0,0,0,0,SSL_TLSV1_2, 0,0,0,0}, | ||
315 | 316 | ||
316 | /* export flag */ | 317 | /* export flag */ |
317 | {0,SSL_TXT_EXP,0, 0,0,0,0,0,SSL_EXPORT,0,0,0}, | 318 | {0,SSL_TXT_EXP,0, 0,0,0,0,0,SSL_EXPORT,0,0,0}, |
@@ -1150,9 +1151,9 @@ static int ssl_cipher_process_rulestr(const char *rule_str, | |||
1150 | while ( ((ch >= 'A') && (ch <= 'Z')) || | 1151 | while ( ((ch >= 'A') && (ch <= 'Z')) || |
1151 | ((ch >= '0') && (ch <= '9')) || | 1152 | ((ch >= '0') && (ch <= '9')) || |
1152 | ((ch >= 'a') && (ch <= 'z')) || | 1153 | ((ch >= 'a') && (ch <= 'z')) || |
1153 | (ch == '-')) | 1154 | (ch == '-') || (ch == '.')) |
1154 | #else | 1155 | #else |
1155 | while ( isalnum(ch) || (ch == '-')) | 1156 | while ( isalnum(ch) || (ch == '-') || (ch == '.')) |
1156 | #endif | 1157 | #endif |
1157 | { | 1158 | { |
1158 | ch = *(++l); | 1159 | ch = *(++l); |
diff --git a/src/lib/libssl/src/ssl/ssl_err.c b/src/lib/libssl/src/ssl/ssl_err.c index 2577c6895a..370fb57e3b 100644 --- a/src/lib/libssl/src/ssl/ssl_err.c +++ b/src/lib/libssl/src/ssl/ssl_err.c | |||
@@ -228,6 +228,7 @@ static ERR_STRING_DATA SSL_str_functs[]= | |||
228 | {ERR_FUNC(SSL_F_SSL_GET_NEW_SESSION), "SSL_GET_NEW_SESSION"}, | 228 | {ERR_FUNC(SSL_F_SSL_GET_NEW_SESSION), "SSL_GET_NEW_SESSION"}, |
229 | {ERR_FUNC(SSL_F_SSL_GET_PREV_SESSION), "SSL_GET_PREV_SESSION"}, | 229 | {ERR_FUNC(SSL_F_SSL_GET_PREV_SESSION), "SSL_GET_PREV_SESSION"}, |
230 | {ERR_FUNC(SSL_F_SSL_GET_SERVER_SEND_CERT), "SSL_GET_SERVER_SEND_CERT"}, | 230 | {ERR_FUNC(SSL_F_SSL_GET_SERVER_SEND_CERT), "SSL_GET_SERVER_SEND_CERT"}, |
231 | {ERR_FUNC(SSL_F_SSL_GET_SERVER_SEND_PKEY), "SSL_GET_SERVER_SEND_PKEY"}, | ||
231 | {ERR_FUNC(SSL_F_SSL_GET_SIGN_PKEY), "SSL_GET_SIGN_PKEY"}, | 232 | {ERR_FUNC(SSL_F_SSL_GET_SIGN_PKEY), "SSL_GET_SIGN_PKEY"}, |
232 | {ERR_FUNC(SSL_F_SSL_INIT_WBIO_BUFFER), "SSL_INIT_WBIO_BUFFER"}, | 233 | {ERR_FUNC(SSL_F_SSL_INIT_WBIO_BUFFER), "SSL_INIT_WBIO_BUFFER"}, |
233 | {ERR_FUNC(SSL_F_SSL_LOAD_CLIENT_CA_FILE), "SSL_load_client_CA_file"}, | 234 | {ERR_FUNC(SSL_F_SSL_LOAD_CLIENT_CA_FILE), "SSL_load_client_CA_file"}, |
diff --git a/src/lib/libssl/src/ssl/ssl_lib.c b/src/lib/libssl/src/ssl/ssl_lib.c index c91f0018e4..f052deeb97 100644 --- a/src/lib/libssl/src/ssl/ssl_lib.c +++ b/src/lib/libssl/src/ssl/ssl_lib.c | |||
@@ -597,8 +597,10 @@ void SSL_free(SSL *s) | |||
597 | OPENSSL_free(s->next_proto_negotiated); | 597 | OPENSSL_free(s->next_proto_negotiated); |
598 | #endif | 598 | #endif |
599 | 599 | ||
600 | #ifndef OPENSSL_NO_SRTP | ||
600 | if (s->srtp_profiles) | 601 | if (s->srtp_profiles) |
601 | sk_SRTP_PROTECTION_PROFILE_free(s->srtp_profiles); | 602 | sk_SRTP_PROTECTION_PROFILE_free(s->srtp_profiles); |
603 | #endif | ||
602 | 604 | ||
603 | OPENSSL_free(s); | 605 | OPENSSL_free(s); |
604 | } | 606 | } |
@@ -1792,7 +1794,9 @@ SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth) | |||
1792 | CRYPTO_new_ex_data(CRYPTO_EX_INDEX_SSL_CTX, ret, &ret->ex_data); | 1794 | CRYPTO_new_ex_data(CRYPTO_EX_INDEX_SSL_CTX, ret, &ret->ex_data); |
1793 | 1795 | ||
1794 | ret->extra_certs=NULL; | 1796 | ret->extra_certs=NULL; |
1795 | ret->comp_methods=SSL_COMP_get_compression_methods(); | 1797 | /* No compression for DTLS */ |
1798 | if (meth->version != DTLS1_VERSION) | ||
1799 | ret->comp_methods=SSL_COMP_get_compression_methods(); | ||
1796 | 1800 | ||
1797 | ret->max_send_fragment = SSL3_RT_MAX_PLAIN_LENGTH; | 1801 | ret->max_send_fragment = SSL3_RT_MAX_PLAIN_LENGTH; |
1798 | 1802 | ||
@@ -1949,8 +1953,10 @@ void SSL_CTX_free(SSL_CTX *a) | |||
1949 | a->comp_methods = NULL; | 1953 | a->comp_methods = NULL; |
1950 | #endif | 1954 | #endif |
1951 | 1955 | ||
1956 | #ifndef OPENSSL_NO_SRTP | ||
1952 | if (a->srtp_profiles) | 1957 | if (a->srtp_profiles) |
1953 | sk_SRTP_PROTECTION_PROFILE_free(a->srtp_profiles); | 1958 | sk_SRTP_PROTECTION_PROFILE_free(a->srtp_profiles); |
1959 | #endif | ||
1954 | 1960 | ||
1955 | #ifndef OPENSSL_NO_PSK | 1961 | #ifndef OPENSSL_NO_PSK |
1956 | if (a->psk_identity_hint) | 1962 | if (a->psk_identity_hint) |
@@ -2284,7 +2290,7 @@ int ssl_check_srvr_ecc_cert_and_alg(X509 *x, SSL *s) | |||
2284 | #endif | 2290 | #endif |
2285 | 2291 | ||
2286 | /* THIS NEEDS CLEANING UP */ | 2292 | /* THIS NEEDS CLEANING UP */ |
2287 | X509 *ssl_get_server_send_cert(SSL *s) | 2293 | CERT_PKEY *ssl_get_server_send_pkey(const SSL *s) |
2288 | { | 2294 | { |
2289 | unsigned long alg_k,alg_a; | 2295 | unsigned long alg_k,alg_a; |
2290 | CERT *c; | 2296 | CERT *c; |
@@ -2339,12 +2345,20 @@ X509 *ssl_get_server_send_cert(SSL *s) | |||
2339 | i=SSL_PKEY_GOST01; | 2345 | i=SSL_PKEY_GOST01; |
2340 | else /* if (alg_a & SSL_aNULL) */ | 2346 | else /* if (alg_a & SSL_aNULL) */ |
2341 | { | 2347 | { |
2342 | SSLerr(SSL_F_SSL_GET_SERVER_SEND_CERT,ERR_R_INTERNAL_ERROR); | 2348 | SSLerr(SSL_F_SSL_GET_SERVER_SEND_PKEY,ERR_R_INTERNAL_ERROR); |
2343 | return(NULL); | 2349 | return(NULL); |
2344 | } | 2350 | } |
2345 | if (c->pkeys[i].x509 == NULL) return(NULL); | ||
2346 | 2351 | ||
2347 | return(c->pkeys[i].x509); | 2352 | return c->pkeys + i; |
2353 | } | ||
2354 | |||
2355 | X509 *ssl_get_server_send_cert(const SSL *s) | ||
2356 | { | ||
2357 | CERT_PKEY *cpk; | ||
2358 | cpk = ssl_get_server_send_pkey(s); | ||
2359 | if (!cpk) | ||
2360 | return NULL; | ||
2361 | return cpk->x509; | ||
2348 | } | 2362 | } |
2349 | 2363 | ||
2350 | EVP_PKEY *ssl_get_sign_pkey(SSL *s,const SSL_CIPHER *cipher, const EVP_MD **pmd) | 2364 | EVP_PKEY *ssl_get_sign_pkey(SSL *s,const SSL_CIPHER *cipher, const EVP_MD **pmd) |
@@ -2605,7 +2619,7 @@ const char *SSL_get_version(const SSL *s) | |||
2605 | return("TLSv1.2"); | 2619 | return("TLSv1.2"); |
2606 | else if (s->version == TLS1_1_VERSION) | 2620 | else if (s->version == TLS1_1_VERSION) |
2607 | return("TLSv1.1"); | 2621 | return("TLSv1.1"); |
2608 | if (s->version == TLS1_VERSION) | 2622 | else if (s->version == TLS1_VERSION) |
2609 | return("TLSv1"); | 2623 | return("TLSv1"); |
2610 | else if (s->version == SSL3_VERSION) | 2624 | else if (s->version == SSL3_VERSION) |
2611 | return("SSLv3"); | 2625 | return("SSLv3"); |
diff --git a/src/lib/libssl/src/ssl/ssl_locl.h b/src/lib/libssl/src/ssl/ssl_locl.h index c3c4c21d38..e485907748 100644 --- a/src/lib/libssl/src/ssl/ssl_locl.h +++ b/src/lib/libssl/src/ssl/ssl_locl.h | |||
@@ -841,13 +841,15 @@ int ssl_verify_cert_chain(SSL *s,STACK_OF(X509) *sk); | |||
841 | int ssl_undefined_function(SSL *s); | 841 | int ssl_undefined_function(SSL *s); |
842 | int ssl_undefined_void_function(void); | 842 | int ssl_undefined_void_function(void); |
843 | int ssl_undefined_const_function(const SSL *s); | 843 | int ssl_undefined_const_function(const SSL *s); |
844 | X509 *ssl_get_server_send_cert(SSL *); | 844 | CERT_PKEY *ssl_get_server_send_pkey(const SSL *s); |
845 | X509 *ssl_get_server_send_cert(const SSL *); | ||
845 | EVP_PKEY *ssl_get_sign_pkey(SSL *s,const SSL_CIPHER *c, const EVP_MD **pmd); | 846 | EVP_PKEY *ssl_get_sign_pkey(SSL *s,const SSL_CIPHER *c, const EVP_MD **pmd); |
846 | int ssl_cert_type(X509 *x,EVP_PKEY *pkey); | 847 | int ssl_cert_type(X509 *x,EVP_PKEY *pkey); |
847 | void ssl_set_cert_masks(CERT *c, const SSL_CIPHER *cipher); | 848 | void ssl_set_cert_masks(CERT *c, const SSL_CIPHER *cipher); |
848 | STACK_OF(SSL_CIPHER) *ssl_get_ciphers_by_id(SSL *s); | 849 | STACK_OF(SSL_CIPHER) *ssl_get_ciphers_by_id(SSL *s); |
849 | int ssl_verify_alarm_type(long type); | 850 | int ssl_verify_alarm_type(long type); |
850 | void ssl_load_ciphers(void); | 851 | void ssl_load_ciphers(void); |
852 | int ssl_fill_hello_random(SSL *s, int server, unsigned char *field, int len); | ||
851 | 853 | ||
852 | int ssl2_enc_init(SSL *s, int client); | 854 | int ssl2_enc_init(SSL *s, int client); |
853 | int ssl2_generate_key_material(SSL *s); | 855 | int ssl2_generate_key_material(SSL *s); |
@@ -1099,7 +1101,8 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **data, unsigned char *d, | |||
1099 | int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **data, unsigned char *d, int n, int *al); | 1101 | int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **data, unsigned char *d, int n, int *al); |
1100 | int ssl_prepare_clienthello_tlsext(SSL *s); | 1102 | int ssl_prepare_clienthello_tlsext(SSL *s); |
1101 | int ssl_prepare_serverhello_tlsext(SSL *s); | 1103 | int ssl_prepare_serverhello_tlsext(SSL *s); |
1102 | int ssl_check_clienthello_tlsext(SSL *s); | 1104 | int ssl_check_clienthello_tlsext_early(SSL *s); |
1105 | int ssl_check_clienthello_tlsext_late(SSL *s); | ||
1103 | int ssl_check_serverhello_tlsext(SSL *s); | 1106 | int ssl_check_serverhello_tlsext(SSL *s); |
1104 | 1107 | ||
1105 | #ifndef OPENSSL_NO_HEARTBEATS | 1108 | #ifndef OPENSSL_NO_HEARTBEATS |
diff --git a/src/lib/libssl/src/ssl/ssl_rsa.c b/src/lib/libssl/src/ssl/ssl_rsa.c index c0960b5712..60e7b66859 100644 --- a/src/lib/libssl/src/ssl/ssl_rsa.c +++ b/src/lib/libssl/src/ssl/ssl_rsa.c | |||
@@ -710,7 +710,7 @@ int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file) | |||
710 | 710 | ||
711 | ERR_clear_error(); /* clear error stack for SSL_CTX_use_certificate() */ | 711 | ERR_clear_error(); /* clear error stack for SSL_CTX_use_certificate() */ |
712 | 712 | ||
713 | in=BIO_new(BIO_s_file_internal()); | 713 | in = BIO_new(BIO_s_file_internal()); |
714 | if (in == NULL) | 714 | if (in == NULL) |
715 | { | 715 | { |
716 | SSLerr(SSL_F_SSL_CTX_USE_CERTIFICATE_CHAIN_FILE,ERR_R_BUF_LIB); | 716 | SSLerr(SSL_F_SSL_CTX_USE_CERTIFICATE_CHAIN_FILE,ERR_R_BUF_LIB); |
@@ -723,14 +723,16 @@ int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file) | |||
723 | goto end; | 723 | goto end; |
724 | } | 724 | } |
725 | 725 | ||
726 | x=PEM_read_bio_X509_AUX(in,NULL,ctx->default_passwd_callback,ctx->default_passwd_callback_userdata); | 726 | x=PEM_read_bio_X509_AUX(in,NULL,ctx->default_passwd_callback, |
727 | ctx->default_passwd_callback_userdata); | ||
727 | if (x == NULL) | 728 | if (x == NULL) |
728 | { | 729 | { |
729 | SSLerr(SSL_F_SSL_CTX_USE_CERTIFICATE_CHAIN_FILE,ERR_R_PEM_LIB); | 730 | SSLerr(SSL_F_SSL_CTX_USE_CERTIFICATE_CHAIN_FILE,ERR_R_PEM_LIB); |
730 | goto end; | 731 | goto end; |
731 | } | 732 | } |
732 | 733 | ||
733 | ret=SSL_CTX_use_certificate(ctx,x); | 734 | ret = SSL_CTX_use_certificate(ctx, x); |
735 | |||
734 | if (ERR_peek_error() != 0) | 736 | if (ERR_peek_error() != 0) |
735 | ret = 0; /* Key/certificate mismatch doesn't imply ret==0 ... */ | 737 | ret = 0; /* Key/certificate mismatch doesn't imply ret==0 ... */ |
736 | if (ret) | 738 | if (ret) |
@@ -742,13 +744,15 @@ int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file) | |||
742 | int r; | 744 | int r; |
743 | unsigned long err; | 745 | unsigned long err; |
744 | 746 | ||
745 | if (ctx->extra_certs != NULL) | 747 | if (ctx->extra_certs != NULL) |
746 | { | 748 | { |
747 | sk_X509_pop_free(ctx->extra_certs, X509_free); | 749 | sk_X509_pop_free(ctx->extra_certs, X509_free); |
748 | ctx->extra_certs = NULL; | 750 | ctx->extra_certs = NULL; |
749 | } | 751 | } |
750 | 752 | ||
751 | while ((ca = PEM_read_bio_X509(in,NULL,ctx->default_passwd_callback,ctx->default_passwd_callback_userdata)) | 753 | while ((ca = PEM_read_bio_X509(in, NULL, |
754 | ctx->default_passwd_callback, | ||
755 | ctx->default_passwd_callback_userdata)) | ||
752 | != NULL) | 756 | != NULL) |
753 | { | 757 | { |
754 | r = SSL_CTX_add_extra_chain_cert(ctx, ca); | 758 | r = SSL_CTX_add_extra_chain_cert(ctx, ca); |
diff --git a/src/lib/libssl/src/ssl/ssltest.c b/src/lib/libssl/src/ssl/ssltest.c index a0e2af6647..4f80be8ee4 100644 --- a/src/lib/libssl/src/ssl/ssltest.c +++ b/src/lib/libssl/src/ssl/ssltest.c | |||
@@ -150,8 +150,6 @@ | |||
150 | #include <stdlib.h> | 150 | #include <stdlib.h> |
151 | #include <string.h> | 151 | #include <string.h> |
152 | #include <time.h> | 152 | #include <time.h> |
153 | #include <inttypes.h> | ||
154 | #include <ctype.h> | ||
155 | 153 | ||
156 | #define USE_SOCKETS | 154 | #define USE_SOCKETS |
157 | #include "e_os.h" | 155 | #include "e_os.h" |
@@ -545,8 +543,8 @@ int main(int argc, char *argv[]) | |||
545 | int comp = 0; | 543 | int comp = 0; |
546 | #ifndef OPENSSL_NO_COMP | 544 | #ifndef OPENSSL_NO_COMP |
547 | COMP_METHOD *cm = NULL; | 545 | COMP_METHOD *cm = NULL; |
548 | #endif | ||
549 | STACK_OF(SSL_COMP) *ssl_comp_methods = NULL; | 546 | STACK_OF(SSL_COMP) *ssl_comp_methods = NULL; |
547 | #endif | ||
550 | int test_cipherlist = 0; | 548 | int test_cipherlist = 0; |
551 | #ifdef OPENSSL_FIPS | 549 | #ifdef OPENSSL_FIPS |
552 | int fips_mode=0; | 550 | int fips_mode=0; |
@@ -883,7 +881,13 @@ bad: | |||
883 | meth=SSLv23_method(); | 881 | meth=SSLv23_method(); |
884 | #else | 882 | #else |
885 | #ifdef OPENSSL_NO_SSL2 | 883 | #ifdef OPENSSL_NO_SSL2 |
886 | meth=SSLv3_method(); | 884 | if (tls1) |
885 | meth=TLSv1_method(); | ||
886 | else | ||
887 | if (ssl3) | ||
888 | meth=SSLv3_method(); | ||
889 | else | ||
890 | meth=SSLv23_method(); | ||
887 | #else | 891 | #else |
888 | meth=SSLv2_method(); | 892 | meth=SSLv2_method(); |
889 | #endif | 893 | #endif |
diff --git a/src/lib/libssl/src/ssl/t1_enc.c b/src/lib/libssl/src/ssl/t1_enc.c index 638405ec39..0c4cddedf8 100644 --- a/src/lib/libssl/src/ssl/t1_enc.c +++ b/src/lib/libssl/src/ssl/t1_enc.c | |||
@@ -361,7 +361,7 @@ int tls1_change_cipher_state(SSL *s, int which) | |||
361 | { | 361 | { |
362 | int i; | 362 | int i; |
363 | for (i=0; i<s->s3->tmp.key_block_length; i++) | 363 | for (i=0; i<s->s3->tmp.key_block_length; i++) |
364 | printf("%02x", key_block[i]); printf("\n"); | 364 | printf("%02x", s->s3->tmp.key_block[i]); printf("\n"); |
365 | } | 365 | } |
366 | #endif /* KSSL_DEBUG */ | 366 | #endif /* KSSL_DEBUG */ |
367 | 367 | ||
@@ -427,7 +427,7 @@ int tls1_change_cipher_state(SSL *s, int which) | |||
427 | s->write_hash = mac_ctx; | 427 | s->write_hash = mac_ctx; |
428 | } | 428 | } |
429 | else | 429 | else |
430 | mac_ctx = ssl_replace_hash(&s->write_hash,NULL); | 430 | mac_ctx = ssl_replace_hash(&s->write_hash,NULL); |
431 | #ifndef OPENSSL_NO_COMP | 431 | #ifndef OPENSSL_NO_COMP |
432 | if (s->compress != NULL) | 432 | if (s->compress != NULL) |
433 | { | 433 | { |
@@ -929,8 +929,8 @@ int tls1_final_finish_mac(SSL *s, | |||
929 | else | 929 | else |
930 | { | 930 | { |
931 | if (!EVP_MD_CTX_copy_ex(&ctx, hdgst) || | 931 | if (!EVP_MD_CTX_copy_ex(&ctx, hdgst) || |
932 | !EVP_DigestFinal_ex(&ctx,q,&i) || | 932 | !EVP_DigestFinal_ex(&ctx,q,&i) || |
933 | (i != (unsigned int)hashsize)) | 933 | (i != (unsigned int)hashsize)) |
934 | err = 1; | 934 | err = 1; |
935 | q+=hashsize; | 935 | q+=hashsize; |
936 | } | 936 | } |
@@ -986,7 +986,8 @@ int tls1_mac(SSL *ssl, unsigned char *md, int send) | |||
986 | } | 986 | } |
987 | else | 987 | else |
988 | { | 988 | { |
989 | EVP_MD_CTX_copy(&hmac,hash); | 989 | if (!EVP_MD_CTX_copy(&hmac,hash)) |
990 | return -1; | ||
990 | mac_ctx = &hmac; | 991 | mac_ctx = &hmac; |
991 | } | 992 | } |
992 | 993 | ||
diff --git a/src/lib/libssl/src/ssl/t1_lib.c b/src/lib/libssl/src/ssl/t1_lib.c index a649dafba9..bddffd92cc 100644 --- a/src/lib/libssl/src/ssl/t1_lib.c +++ b/src/lib/libssl/src/ssl/t1_lib.c | |||
@@ -342,19 +342,11 @@ static unsigned char tls12_sigalgs[] = { | |||
342 | #ifndef OPENSSL_NO_SHA | 342 | #ifndef OPENSSL_NO_SHA |
343 | tlsext_sigalg(TLSEXT_hash_sha1) | 343 | tlsext_sigalg(TLSEXT_hash_sha1) |
344 | #endif | 344 | #endif |
345 | #ifndef OPENSSL_NO_MD5 | ||
346 | tlsext_sigalg_rsa(TLSEXT_hash_md5) | ||
347 | #endif | ||
348 | }; | 345 | }; |
349 | 346 | ||
350 | int tls12_get_req_sig_algs(SSL *s, unsigned char *p) | 347 | int tls12_get_req_sig_algs(SSL *s, unsigned char *p) |
351 | { | 348 | { |
352 | size_t slen = sizeof(tls12_sigalgs); | 349 | size_t slen = sizeof(tls12_sigalgs); |
353 | #ifdef OPENSSL_FIPS | ||
354 | /* If FIPS mode don't include MD5 which is last */ | ||
355 | if (FIPS_mode()) | ||
356 | slen -= 2; | ||
357 | #endif | ||
358 | if (p) | 350 | if (p) |
359 | memcpy(p, tls12_sigalgs, slen); | 351 | memcpy(p, tls12_sigalgs, slen); |
360 | return (int)slen; | 352 | return (int)slen; |
@@ -649,6 +641,7 @@ unsigned char *ssl_add_clienthello_tlsext(SSL *s, unsigned char *p, unsigned cha | |||
649 | } | 641 | } |
650 | #endif | 642 | #endif |
651 | 643 | ||
644 | #ifndef OPENSSL_NO_SRTP | ||
652 | if(SSL_get_srtp_profiles(s)) | 645 | if(SSL_get_srtp_profiles(s)) |
653 | { | 646 | { |
654 | int el; | 647 | int el; |
@@ -667,6 +660,37 @@ unsigned char *ssl_add_clienthello_tlsext(SSL *s, unsigned char *p, unsigned cha | |||
667 | } | 660 | } |
668 | ret += el; | 661 | ret += el; |
669 | } | 662 | } |
663 | #endif | ||
664 | |||
665 | #ifdef TLSEXT_TYPE_padding | ||
666 | /* Add padding to workaround bugs in F5 terminators. | ||
667 | * See https://tools.ietf.org/html/draft-agl-tls-padding-03 | ||
668 | * | ||
669 | * NB: because this code works out the length of all existing | ||
670 | * extensions it MUST always appear last. | ||
671 | */ | ||
672 | { | ||
673 | int hlen = ret - (unsigned char *)s->init_buf->data; | ||
674 | /* The code in s23_clnt.c to build ClientHello messages includes the | ||
675 | * 5-byte record header in the buffer, while the code in s3_clnt.c does | ||
676 | * not. */ | ||
677 | if (s->state == SSL23_ST_CW_CLNT_HELLO_A) | ||
678 | hlen -= 5; | ||
679 | if (hlen > 0xff && hlen < 0x200) | ||
680 | { | ||
681 | hlen = 0x200 - hlen; | ||
682 | if (hlen >= 4) | ||
683 | hlen -= 4; | ||
684 | else | ||
685 | hlen = 0; | ||
686 | |||
687 | s2n(TLSEXT_TYPE_padding, ret); | ||
688 | s2n(hlen, ret); | ||
689 | memset(ret, 0, hlen); | ||
690 | ret += hlen; | ||
691 | } | ||
692 | } | ||
693 | #endif | ||
670 | 694 | ||
671 | if ((extdatalen = ret-p-2)== 0) | 695 | if ((extdatalen = ret-p-2)== 0) |
672 | return p; | 696 | return p; |
@@ -781,6 +805,7 @@ unsigned char *ssl_add_serverhello_tlsext(SSL *s, unsigned char *p, unsigned cha | |||
781 | } | 805 | } |
782 | #endif | 806 | #endif |
783 | 807 | ||
808 | #ifndef OPENSSL_NO_SRTP | ||
784 | if(s->srtp_profile) | 809 | if(s->srtp_profile) |
785 | { | 810 | { |
786 | int el; | 811 | int el; |
@@ -799,6 +824,7 @@ unsigned char *ssl_add_serverhello_tlsext(SSL *s, unsigned char *p, unsigned cha | |||
799 | } | 824 | } |
800 | ret+=el; | 825 | ret+=el; |
801 | } | 826 | } |
827 | #endif | ||
802 | 828 | ||
803 | if (((s->s3->tmp.new_cipher->id & 0xFFFF)==0x80 || (s->s3->tmp.new_cipher->id & 0xFFFF)==0x81) | 829 | if (((s->s3->tmp.new_cipher->id & 0xFFFF)==0x80 || (s->s3->tmp.new_cipher->id & 0xFFFF)==0x81) |
804 | && (SSL_get_options(s) & SSL_OP_CRYPTOPRO_TLSEXT_BUG)) | 830 | && (SSL_get_options(s) & SSL_OP_CRYPTOPRO_TLSEXT_BUG)) |
@@ -862,6 +888,89 @@ unsigned char *ssl_add_serverhello_tlsext(SSL *s, unsigned char *p, unsigned cha | |||
862 | return ret; | 888 | return ret; |
863 | } | 889 | } |
864 | 890 | ||
891 | #ifndef OPENSSL_NO_EC | ||
892 | /* ssl_check_for_safari attempts to fingerprint Safari using OS X | ||
893 | * SecureTransport using the TLS extension block in |d|, of length |n|. | ||
894 | * Safari, since 10.6, sends exactly these extensions, in this order: | ||
895 | * SNI, | ||
896 | * elliptic_curves | ||
897 | * ec_point_formats | ||
898 | * | ||
899 | * We wish to fingerprint Safari because they broke ECDHE-ECDSA support in 10.8, | ||
900 | * but they advertise support. So enabling ECDHE-ECDSA ciphers breaks them. | ||
901 | * Sadly we cannot differentiate 10.6, 10.7 and 10.8.4 (which work), from | ||
902 | * 10.8..10.8.3 (which don't work). | ||
903 | */ | ||
904 | static void ssl_check_for_safari(SSL *s, const unsigned char *data, const unsigned char *d, int n) { | ||
905 | unsigned short type, size; | ||
906 | static const unsigned char kSafariExtensionsBlock[] = { | ||
907 | 0x00, 0x0a, /* elliptic_curves extension */ | ||
908 | 0x00, 0x08, /* 8 bytes */ | ||
909 | 0x00, 0x06, /* 6 bytes of curve ids */ | ||
910 | 0x00, 0x17, /* P-256 */ | ||
911 | 0x00, 0x18, /* P-384 */ | ||
912 | 0x00, 0x19, /* P-521 */ | ||
913 | |||
914 | 0x00, 0x0b, /* ec_point_formats */ | ||
915 | 0x00, 0x02, /* 2 bytes */ | ||
916 | 0x01, /* 1 point format */ | ||
917 | 0x00, /* uncompressed */ | ||
918 | }; | ||
919 | |||
920 | /* The following is only present in TLS 1.2 */ | ||
921 | static const unsigned char kSafariTLS12ExtensionsBlock[] = { | ||
922 | 0x00, 0x0d, /* signature_algorithms */ | ||
923 | 0x00, 0x0c, /* 12 bytes */ | ||
924 | 0x00, 0x0a, /* 10 bytes */ | ||
925 | 0x05, 0x01, /* SHA-384/RSA */ | ||
926 | 0x04, 0x01, /* SHA-256/RSA */ | ||
927 | 0x02, 0x01, /* SHA-1/RSA */ | ||
928 | 0x04, 0x03, /* SHA-256/ECDSA */ | ||
929 | 0x02, 0x03, /* SHA-1/ECDSA */ | ||
930 | }; | ||
931 | |||
932 | if (data >= (d+n-2)) | ||
933 | return; | ||
934 | data += 2; | ||
935 | |||
936 | if (data > (d+n-4)) | ||
937 | return; | ||
938 | n2s(data,type); | ||
939 | n2s(data,size); | ||
940 | |||
941 | if (type != TLSEXT_TYPE_server_name) | ||
942 | return; | ||
943 | |||
944 | if (data+size > d+n) | ||
945 | return; | ||
946 | data += size; | ||
947 | |||
948 | if (TLS1_get_client_version(s) >= TLS1_2_VERSION) | ||
949 | { | ||
950 | const size_t len1 = sizeof(kSafariExtensionsBlock); | ||
951 | const size_t len2 = sizeof(kSafariTLS12ExtensionsBlock); | ||
952 | |||
953 | if (data + len1 + len2 != d+n) | ||
954 | return; | ||
955 | if (memcmp(data, kSafariExtensionsBlock, len1) != 0) | ||
956 | return; | ||
957 | if (memcmp(data + len1, kSafariTLS12ExtensionsBlock, len2) != 0) | ||
958 | return; | ||
959 | } | ||
960 | else | ||
961 | { | ||
962 | const size_t len = sizeof(kSafariExtensionsBlock); | ||
963 | |||
964 | if (data + len != d+n) | ||
965 | return; | ||
966 | if (memcmp(data, kSafariExtensionsBlock, len) != 0) | ||
967 | return; | ||
968 | } | ||
969 | |||
970 | s->s3->is_probably_safari = 1; | ||
971 | } | ||
972 | #endif /* !OPENSSL_NO_EC */ | ||
973 | |||
865 | int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, int n, int *al) | 974 | int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, int n, int *al) |
866 | { | 975 | { |
867 | unsigned short type; | 976 | unsigned short type; |
@@ -882,6 +991,11 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, in | |||
882 | SSL_TLSEXT_HB_DONT_SEND_REQUESTS); | 991 | SSL_TLSEXT_HB_DONT_SEND_REQUESTS); |
883 | #endif | 992 | #endif |
884 | 993 | ||
994 | #ifndef OPENSSL_NO_EC | ||
995 | if (s->options & SSL_OP_SAFARI_ECDHE_ECDSA_BUG) | ||
996 | ssl_check_for_safari(s, data, d, n); | ||
997 | #endif /* !OPENSSL_NO_EC */ | ||
998 | |||
885 | if (data >= (d+n-2)) | 999 | if (data >= (d+n-2)) |
886 | goto ri_check; | 1000 | goto ri_check; |
887 | n2s(data,len); | 1001 | n2s(data,len); |
@@ -1077,7 +1191,8 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, in | |||
1077 | int ellipticcurvelist_length = (*(sdata++) << 8); | 1191 | int ellipticcurvelist_length = (*(sdata++) << 8); |
1078 | ellipticcurvelist_length += (*(sdata++)); | 1192 | ellipticcurvelist_length += (*(sdata++)); |
1079 | 1193 | ||
1080 | if (ellipticcurvelist_length != size - 2) | 1194 | if (ellipticcurvelist_length != size - 2 || |
1195 | ellipticcurvelist_length < 1) | ||
1081 | { | 1196 | { |
1082 | *al = TLS1_AD_DECODE_ERROR; | 1197 | *al = TLS1_AD_DECODE_ERROR; |
1083 | return 0; | 1198 | return 0; |
@@ -1176,7 +1291,7 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, in | |||
1176 | } | 1291 | } |
1177 | } | 1292 | } |
1178 | else if (type == TLSEXT_TYPE_status_request && | 1293 | else if (type == TLSEXT_TYPE_status_request && |
1179 | s->version != DTLS1_VERSION && s->ctx->tlsext_status_cb) | 1294 | s->version != DTLS1_VERSION) |
1180 | { | 1295 | { |
1181 | 1296 | ||
1182 | if (size < 5) | 1297 | if (size < 5) |
@@ -1328,12 +1443,14 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p, unsigned char *d, in | |||
1328 | #endif | 1443 | #endif |
1329 | 1444 | ||
1330 | /* session ticket processed earlier */ | 1445 | /* session ticket processed earlier */ |
1446 | #ifndef OPENSSL_NO_SRTP | ||
1331 | else if (type == TLSEXT_TYPE_use_srtp) | 1447 | else if (type == TLSEXT_TYPE_use_srtp) |
1332 | { | 1448 | { |
1333 | if(ssl_parse_clienthello_use_srtp_ext(s, data, size, | 1449 | if(ssl_parse_clienthello_use_srtp_ext(s, data, size, |
1334 | al)) | 1450 | al)) |
1335 | return 0; | 1451 | return 0; |
1336 | } | 1452 | } |
1453 | #endif | ||
1337 | 1454 | ||
1338 | data+=size; | 1455 | data+=size; |
1339 | } | 1456 | } |
@@ -1433,7 +1550,8 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **p, unsigned char *d, in | |||
1433 | unsigned char *sdata = data; | 1550 | unsigned char *sdata = data; |
1434 | int ecpointformatlist_length = *(sdata++); | 1551 | int ecpointformatlist_length = *(sdata++); |
1435 | 1552 | ||
1436 | if (ecpointformatlist_length != size - 1) | 1553 | if (ecpointformatlist_length != size - 1 || |
1554 | ecpointformatlist_length < 1) | ||
1437 | { | 1555 | { |
1438 | *al = TLS1_AD_DECODE_ERROR; | 1556 | *al = TLS1_AD_DECODE_ERROR; |
1439 | return 0; | 1557 | return 0; |
@@ -1527,7 +1645,7 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **p, unsigned char *d, in | |||
1527 | unsigned char selected_len; | 1645 | unsigned char selected_len; |
1528 | 1646 | ||
1529 | /* We must have requested it. */ | 1647 | /* We must have requested it. */ |
1530 | if ((s->ctx->next_proto_select_cb == NULL)) | 1648 | if (s->ctx->next_proto_select_cb == NULL) |
1531 | { | 1649 | { |
1532 | *al = TLS1_AD_UNSUPPORTED_EXTENSION; | 1650 | *al = TLS1_AD_UNSUPPORTED_EXTENSION; |
1533 | return 0; | 1651 | return 0; |
@@ -1577,12 +1695,14 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **p, unsigned char *d, in | |||
1577 | } | 1695 | } |
1578 | } | 1696 | } |
1579 | #endif | 1697 | #endif |
1698 | #ifndef OPENSSL_NO_SRTP | ||
1580 | else if (type == TLSEXT_TYPE_use_srtp) | 1699 | else if (type == TLSEXT_TYPE_use_srtp) |
1581 | { | 1700 | { |
1582 | if(ssl_parse_serverhello_use_srtp_ext(s, data, size, | 1701 | if(ssl_parse_serverhello_use_srtp_ext(s, data, size, |
1583 | al)) | 1702 | al)) |
1584 | return 0; | 1703 | return 0; |
1585 | } | 1704 | } |
1705 | #endif | ||
1586 | 1706 | ||
1587 | data+=size; | 1707 | data+=size; |
1588 | } | 1708 | } |
@@ -1763,7 +1883,7 @@ int ssl_prepare_serverhello_tlsext(SSL *s) | |||
1763 | return 1; | 1883 | return 1; |
1764 | } | 1884 | } |
1765 | 1885 | ||
1766 | int ssl_check_clienthello_tlsext(SSL *s) | 1886 | int ssl_check_clienthello_tlsext_early(SSL *s) |
1767 | { | 1887 | { |
1768 | int ret=SSL_TLSEXT_ERR_NOACK; | 1888 | int ret=SSL_TLSEXT_ERR_NOACK; |
1769 | int al = SSL_AD_UNRECOGNIZED_NAME; | 1889 | int al = SSL_AD_UNRECOGNIZED_NAME; |
@@ -1782,42 +1902,12 @@ int ssl_check_clienthello_tlsext(SSL *s) | |||
1782 | else if (s->initial_ctx != NULL && s->initial_ctx->tlsext_servername_callback != 0) | 1902 | else if (s->initial_ctx != NULL && s->initial_ctx->tlsext_servername_callback != 0) |
1783 | ret = s->initial_ctx->tlsext_servername_callback(s, &al, s->initial_ctx->tlsext_servername_arg); | 1903 | ret = s->initial_ctx->tlsext_servername_callback(s, &al, s->initial_ctx->tlsext_servername_arg); |
1784 | 1904 | ||
1785 | /* If status request then ask callback what to do. | ||
1786 | * Note: this must be called after servername callbacks in case | ||
1787 | * the certificate has changed. | ||
1788 | */ | ||
1789 | if ((s->tlsext_status_type != -1) && s->ctx && s->ctx->tlsext_status_cb) | ||
1790 | { | ||
1791 | int r; | ||
1792 | r = s->ctx->tlsext_status_cb(s, s->ctx->tlsext_status_arg); | ||
1793 | switch (r) | ||
1794 | { | ||
1795 | /* We don't want to send a status request response */ | ||
1796 | case SSL_TLSEXT_ERR_NOACK: | ||
1797 | s->tlsext_status_expected = 0; | ||
1798 | break; | ||
1799 | /* status request response should be sent */ | ||
1800 | case SSL_TLSEXT_ERR_OK: | ||
1801 | if (s->tlsext_ocsp_resp) | ||
1802 | s->tlsext_status_expected = 1; | ||
1803 | else | ||
1804 | s->tlsext_status_expected = 0; | ||
1805 | break; | ||
1806 | /* something bad happened */ | ||
1807 | case SSL_TLSEXT_ERR_ALERT_FATAL: | ||
1808 | ret = SSL_TLSEXT_ERR_ALERT_FATAL; | ||
1809 | al = SSL_AD_INTERNAL_ERROR; | ||
1810 | goto err; | ||
1811 | } | ||
1812 | } | ||
1813 | else | ||
1814 | s->tlsext_status_expected = 0; | ||
1815 | |||
1816 | #ifdef TLSEXT_TYPE_opaque_prf_input | 1905 | #ifdef TLSEXT_TYPE_opaque_prf_input |
1817 | { | 1906 | { |
1818 | /* This sort of belongs into ssl_prepare_serverhello_tlsext(), | 1907 | /* This sort of belongs into ssl_prepare_serverhello_tlsext(), |
1819 | * but we might be sending an alert in response to the client hello, | 1908 | * but we might be sending an alert in response to the client hello, |
1820 | * so this has to happen here in ssl_check_clienthello_tlsext(). */ | 1909 | * so this has to happen here in |
1910 | * ssl_check_clienthello_tlsext_early(). */ | ||
1821 | 1911 | ||
1822 | int r = 1; | 1912 | int r = 1; |
1823 | 1913 | ||
@@ -1869,8 +1959,8 @@ int ssl_check_clienthello_tlsext(SSL *s) | |||
1869 | } | 1959 | } |
1870 | } | 1960 | } |
1871 | 1961 | ||
1872 | #endif | ||
1873 | err: | 1962 | err: |
1963 | #endif | ||
1874 | switch (ret) | 1964 | switch (ret) |
1875 | { | 1965 | { |
1876 | case SSL_TLSEXT_ERR_ALERT_FATAL: | 1966 | case SSL_TLSEXT_ERR_ALERT_FATAL: |
@@ -1888,6 +1978,71 @@ int ssl_check_clienthello_tlsext(SSL *s) | |||
1888 | } | 1978 | } |
1889 | } | 1979 | } |
1890 | 1980 | ||
1981 | int ssl_check_clienthello_tlsext_late(SSL *s) | ||
1982 | { | ||
1983 | int ret = SSL_TLSEXT_ERR_OK; | ||
1984 | int al; | ||
1985 | |||
1986 | /* If status request then ask callback what to do. | ||
1987 | * Note: this must be called after servername callbacks in case | ||
1988 | * the certificate has changed, and must be called after the cipher | ||
1989 | * has been chosen because this may influence which certificate is sent | ||
1990 | */ | ||
1991 | if ((s->tlsext_status_type != -1) && s->ctx && s->ctx->tlsext_status_cb) | ||
1992 | { | ||
1993 | int r; | ||
1994 | CERT_PKEY *certpkey; | ||
1995 | certpkey = ssl_get_server_send_pkey(s); | ||
1996 | /* If no certificate can't return certificate status */ | ||
1997 | if (certpkey == NULL) | ||
1998 | { | ||
1999 | s->tlsext_status_expected = 0; | ||
2000 | return 1; | ||
2001 | } | ||
2002 | /* Set current certificate to one we will use so | ||
2003 | * SSL_get_certificate et al can pick it up. | ||
2004 | */ | ||
2005 | s->cert->key = certpkey; | ||
2006 | r = s->ctx->tlsext_status_cb(s, s->ctx->tlsext_status_arg); | ||
2007 | switch (r) | ||
2008 | { | ||
2009 | /* We don't want to send a status request response */ | ||
2010 | case SSL_TLSEXT_ERR_NOACK: | ||
2011 | s->tlsext_status_expected = 0; | ||
2012 | break; | ||
2013 | /* status request response should be sent */ | ||
2014 | case SSL_TLSEXT_ERR_OK: | ||
2015 | if (s->tlsext_ocsp_resp) | ||
2016 | s->tlsext_status_expected = 1; | ||
2017 | else | ||
2018 | s->tlsext_status_expected = 0; | ||
2019 | break; | ||
2020 | /* something bad happened */ | ||
2021 | case SSL_TLSEXT_ERR_ALERT_FATAL: | ||
2022 | ret = SSL_TLSEXT_ERR_ALERT_FATAL; | ||
2023 | al = SSL_AD_INTERNAL_ERROR; | ||
2024 | goto err; | ||
2025 | } | ||
2026 | } | ||
2027 | else | ||
2028 | s->tlsext_status_expected = 0; | ||
2029 | |||
2030 | err: | ||
2031 | switch (ret) | ||
2032 | { | ||
2033 | case SSL_TLSEXT_ERR_ALERT_FATAL: | ||
2034 | ssl3_send_alert(s,SSL3_AL_FATAL,al); | ||
2035 | return -1; | ||
2036 | |||
2037 | case SSL_TLSEXT_ERR_ALERT_WARNING: | ||
2038 | ssl3_send_alert(s,SSL3_AL_WARNING,al); | ||
2039 | return 1; | ||
2040 | |||
2041 | default: | ||
2042 | return 1; | ||
2043 | } | ||
2044 | } | ||
2045 | |||
1891 | int ssl_check_serverhello_tlsext(SSL *s) | 2046 | int ssl_check_serverhello_tlsext(SSL *s) |
1892 | { | 2047 | { |
1893 | int ret=SSL_TLSEXT_ERR_NOACK; | 2048 | int ret=SSL_TLSEXT_ERR_NOACK; |
@@ -2189,7 +2344,7 @@ static int tls_decrypt_ticket(SSL *s, const unsigned char *etick, int eticklen, | |||
2189 | HMAC_Update(&hctx, etick, eticklen); | 2344 | HMAC_Update(&hctx, etick, eticklen); |
2190 | HMAC_Final(&hctx, tick_hmac, NULL); | 2345 | HMAC_Final(&hctx, tick_hmac, NULL); |
2191 | HMAC_CTX_cleanup(&hctx); | 2346 | HMAC_CTX_cleanup(&hctx); |
2192 | if (timingsafe_bcmp(tick_hmac, etick + eticklen, mlen)) | 2347 | if (CRYPTO_memcmp(tick_hmac, etick + eticklen, mlen)) |
2193 | return 2; | 2348 | return 2; |
2194 | /* Attempt to decrypt session data */ | 2349 | /* Attempt to decrypt session data */ |
2195 | /* Move p after IV to start of encrypted ticket, update length */ | 2350 | /* Move p after IV to start of encrypted ticket, update length */ |
@@ -2319,14 +2474,6 @@ const EVP_MD *tls12_get_hash(unsigned char hash_alg) | |||
2319 | { | 2474 | { |
2320 | switch(hash_alg) | 2475 | switch(hash_alg) |
2321 | { | 2476 | { |
2322 | #ifndef OPENSSL_NO_MD5 | ||
2323 | case TLSEXT_hash_md5: | ||
2324 | #ifdef OPENSSL_FIPS | ||
2325 | if (FIPS_mode()) | ||
2326 | return NULL; | ||
2327 | #endif | ||
2328 | return EVP_md5(); | ||
2329 | #endif | ||
2330 | #ifndef OPENSSL_NO_SHA | 2477 | #ifndef OPENSSL_NO_SHA |
2331 | case TLSEXT_hash_sha1: | 2478 | case TLSEXT_hash_sha1: |
2332 | return EVP_sha1(); | 2479 | return EVP_sha1(); |
@@ -2414,7 +2561,7 @@ int tls1_process_sigalgs(SSL *s, const unsigned char *data, int dsize) | |||
2414 | */ | 2561 | */ |
2415 | #ifndef OPENSSL_NO_DSA | 2562 | #ifndef OPENSSL_NO_DSA |
2416 | if (!c->pkeys[SSL_PKEY_DSA_SIGN].digest) | 2563 | if (!c->pkeys[SSL_PKEY_DSA_SIGN].digest) |
2417 | c->pkeys[SSL_PKEY_DSA_SIGN].digest = EVP_dss1(); | 2564 | c->pkeys[SSL_PKEY_DSA_SIGN].digest = EVP_sha1(); |
2418 | #endif | 2565 | #endif |
2419 | #ifndef OPENSSL_NO_RSA | 2566 | #ifndef OPENSSL_NO_RSA |
2420 | if (!c->pkeys[SSL_PKEY_RSA_SIGN].digest) | 2567 | if (!c->pkeys[SSL_PKEY_RSA_SIGN].digest) |
@@ -2425,7 +2572,7 @@ int tls1_process_sigalgs(SSL *s, const unsigned char *data, int dsize) | |||
2425 | #endif | 2572 | #endif |
2426 | #ifndef OPENSSL_NO_ECDSA | 2573 | #ifndef OPENSSL_NO_ECDSA |
2427 | if (!c->pkeys[SSL_PKEY_ECC].digest) | 2574 | if (!c->pkeys[SSL_PKEY_ECC].digest) |
2428 | c->pkeys[SSL_PKEY_ECC].digest = EVP_ecdsa(); | 2575 | c->pkeys[SSL_PKEY_ECC].digest = EVP_sha1(); |
2429 | #endif | 2576 | #endif |
2430 | return 1; | 2577 | return 1; |
2431 | } | 2578 | } |
diff --git a/src/lib/libssl/src/ssl/tls1.h b/src/lib/libssl/src/ssl/tls1.h index c39c267f0b..c992091e30 100644 --- a/src/lib/libssl/src/ssl/tls1.h +++ b/src/lib/libssl/src/ssl/tls1.h | |||
@@ -230,6 +230,12 @@ extern "C" { | |||
230 | /* ExtensionType value from RFC5620 */ | 230 | /* ExtensionType value from RFC5620 */ |
231 | #define TLSEXT_TYPE_heartbeat 15 | 231 | #define TLSEXT_TYPE_heartbeat 15 |
232 | 232 | ||
233 | /* ExtensionType value for TLS padding extension. | ||
234 | * http://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml | ||
235 | * http://tools.ietf.org/html/draft-agl-tls-padding-03 | ||
236 | */ | ||
237 | #define TLSEXT_TYPE_padding 21 | ||
238 | |||
233 | /* ExtensionType value from RFC4507 */ | 239 | /* ExtensionType value from RFC4507 */ |
234 | #define TLSEXT_TYPE_session_ticket 35 | 240 | #define TLSEXT_TYPE_session_ticket 35 |
235 | 241 | ||
diff --git a/src/lib/libssl/src/test/Makefile b/src/lib/libssl/src/test/Makefile index 09e6848764..4c9eabcc21 100644 --- a/src/lib/libssl/src/test/Makefile +++ b/src/lib/libssl/src/test/Makefile | |||
@@ -246,7 +246,7 @@ test_ecdh: | |||
246 | test_verify: | 246 | test_verify: |
247 | @echo "The following command should have some OK's and some failures" | 247 | @echo "The following command should have some OK's and some failures" |
248 | @echo "There are definitly a few expired certificates" | 248 | @echo "There are definitly a few expired certificates" |
249 | ../util/shlib_wrap.sh ../apps/openssl verify -CApath ../certs ../certs/*.pem | 249 | ../util/shlib_wrap.sh ../apps/openssl verify -CApath ../certs/demo ../certs/demo/*.pem |
250 | 250 | ||
251 | test_dh: | 251 | test_dh: |
252 | @echo "Generate a set of DH parameters" | 252 | @echo "Generate a set of DH parameters" |
diff --git a/src/lib/libssl/src/test/bctest.com b/src/lib/libssl/src/test/bctest.com deleted file mode 100644 index d7e5ec139e..0000000000 --- a/src/lib/libssl/src/test/bctest.com +++ /dev/null | |||
@@ -1,152 +0,0 @@ | |||
1 | $! | ||
2 | $! Check operation of "bc". | ||
3 | $! | ||
4 | $! 2010-04-05 SMS. New. Based (loosely) on "bctest". | ||
5 | $! | ||
6 | $! | ||
7 | $ tmp_file_name = "tmp.bctest" | ||
8 | $ failure = "" | ||
9 | $! | ||
10 | $! Basic command test. | ||
11 | $! | ||
12 | $ on warning then goto bc_fail | ||
13 | $ bc | ||
14 | $ on error then exit | ||
15 | $! | ||
16 | $! Test for SunOS 5.[78] bc bug. | ||
17 | $! | ||
18 | $ if (failure .eqs. "") | ||
19 | $ then | ||
20 | $! | ||
21 | $ define /user_mode sys$output 'tmp_file_name' | ||
22 | $ bc | ||
23 | obase=16 | ||
24 | ibase=16 | ||
25 | a=AD88C418F31B3FC712D0425001D522B3AE9134FF3A98C13C1FCC1682211195406C1A6C66C6A\ | ||
26 | CEEC1A0EC16950233F77F1C2F2363D56DD71A36C57E0B2511FC4BA8F22D261FE2E9356D99AF57\ | ||
27 | 10F3817C0E05BF79C423C3F66FDF321BE8D3F18F625D91B670931C1EF25F28E489BDA1C5422D1\ | ||
28 | C3F6F7A1AD21585746ECC4F10A14A778AF56F08898E965E9909E965E0CB6F85B514150C644759\ | ||
29 | 3BE731877B16EA07B552088FF2EA728AC5E0FF3A23EB939304519AB8B60F2C33D6BA0945B66F0\ | ||
30 | 4FC3CADF855448B24A9D7640BCF473E | ||
31 | b=DCE91E7D120B983EA9A104B5A96D634DD644C37657B1C7860B45E6838999B3DCE5A555583C6\ | ||
32 | 9209E41F413422954175A06E67FFEF6746DD652F0F48AEFECC3D8CAC13523BDAAD3F5AF4212BD\ | ||
33 | 8B3CD64126E1A82E190228020C05B91C8B141F1110086FC2A4C6ED631EBA129D04BB9A19FC53D\ | ||
34 | 3ED0E2017D60A68775B75481449 | ||
35 | (a/b)*b + (a%b) - a | ||
36 | $ status = $status | ||
37 | $ output_expected = "0" | ||
38 | $ gosub check_output | ||
39 | $ if (output .ne. 1) | ||
40 | $ then | ||
41 | $ failure = "SunOStest" | ||
42 | $ else | ||
43 | $ delete 'f$parse( tmp_file_name)' | ||
44 | $ endif | ||
45 | $ endif | ||
46 | $! | ||
47 | $! Test for SCO bc bug. | ||
48 | $! | ||
49 | $ if (failure .eqs. "") | ||
50 | $ then | ||
51 | $! | ||
52 | $ define /user_mode sys$output 'tmp_file_name' | ||
53 | $ bc | ||
54 | obase=16 | ||
55 | ibase=16 | ||
56 | -FFDD63BA1A4648F0D804F8A1C66C53F0D2110590E8A3907EC73B4AEC6F15AC177F176F2274D2\ | ||
57 | 9DC8022EA0D7DD3ABE9746D2D46DD3EA5B5F6F69DF12877E0AC5E7F5ADFACEE54573F5D256A06\ | ||
58 | 11B5D2BC24947724E22AE4EC3FB0C39D9B4694A01AFE5E43B4D99FB9812A0E4A5773D8B254117\ | ||
59 | 1239157EC6E3D8D50199 * -FFDD63BA1A4648F0D804F8A1C66C53F0D2110590E8A3907EC73B4\ | ||
60 | AEC6F15AC177F176F2274D29DC8022EA0D7DD3ABE9746D2D46DD3EA5B5F6F69DF12877E0AC5E7\ | ||
61 | F5ADFACEE54573F5D256A0611B5D2BC24947724E22AE4EC3FB0C39D9B4694A01AFE5E43B4D99F\ | ||
62 | B9812A0E4A5773D8B2541171239157EC6E3D8D50199 - FFBACC221682DA464B6D7F123482522\ | ||
63 | 02EDAEDCA38C3B69E9B7BBCD6165A9CD8716C4903417F23C09A85B851961F92C217258CEEB866\ | ||
64 | 85EFCC5DD131853A02C07A873B8E2AF2E40C6D5ED598CD0E8F35AD49F3C3A17FDB7653E4E2DC4\ | ||
65 | A8D23CC34686EE4AD01F7407A7CD74429AC6D36DBF0CB6A3E302D0E5BDFCD048A3B90C1BE5AA8\ | ||
66 | E16C3D5884F9136B43FF7BB443764153D4AEC176C681B078F4CC53D6EB6AB76285537DDEE7C18\ | ||
67 | 8C72441B52EDBDDBC77E02D34E513F2AABF92F44109CAFE8242BD0ECBAC5604A94B02EA44D43C\ | ||
68 | 04E9476E6FBC48043916BFA1485C6093603600273C9C33F13114D78064AE42F3DC466C7DA543D\ | ||
69 | 89C8D71 | ||
70 | AD534AFBED2FA39EE9F40E20FCF9E2C861024DB98DDCBA1CD118C49CA55EEBC20D6BA51B2271C\ | ||
71 | 928B693D6A73F67FEB1B4571448588B46194617D25D910C6A9A130CC963155CF34079CB218A44\ | ||
72 | 8A1F57E276D92A33386DDCA3D241DB78C8974ABD71DD05B0FA555709C9910D745185E6FE108E3\ | ||
73 | 37F1907D0C56F8BFBF52B9704 % -E557905B56B13441574CAFCE2BD257A750B1A8B2C88D0E36\ | ||
74 | E18EF7C38DAC80D3948E17ED63AFF3B3467866E3B89D09A81B3D16B52F6A3C7134D3C6F5123E9\ | ||
75 | F617E3145BBFBE9AFD0D6E437EA4FF6F04BC67C4F1458B4F0F47B64 - 1C2BBBB19B74E86FD32\ | ||
76 | 9E8DB6A8C3B1B9986D57ED5419C2E855F7D5469E35E76334BB42F4C43E3F3A31B9697C171DAC4\ | ||
77 | D97935A7E1A14AD209D6CF811F55C6DB83AA9E6DFECFCD6669DED7171EE22A40C6181615CAF3F\ | ||
78 | 5296964 | ||
79 | $ status = $status | ||
80 | $ output_expected = "0\0" | ||
81 | $ gosub check_output | ||
82 | $ if (output .ne. 1) | ||
83 | $ then | ||
84 | $ failure = "SCOtest" | ||
85 | $ else | ||
86 | $ delete 'f$parse( tmp_file_name)' | ||
87 | $ endif | ||
88 | $ endif | ||
89 | $! | ||
90 | $! Test for working 'print' command. | ||
91 | $! | ||
92 | $ if (failure .eqs. "") | ||
93 | $ then | ||
94 | $! | ||
95 | $ define /user_mode sys$output 'tmp_file_name' | ||
96 | $ bc | ||
97 | print "OK" | ||
98 | $ status = $status | ||
99 | $ output_expected = "OK" | ||
100 | $ gosub check_output | ||
101 | $ if (output .ne. 1) | ||
102 | $ then | ||
103 | $ failure = "printtest" | ||
104 | $ else | ||
105 | $ delete 'f$parse( tmp_file_name)' | ||
106 | $ endif | ||
107 | $ endif | ||
108 | $! | ||
109 | $ if (failure .nes. "") | ||
110 | $ then | ||
111 | $ write sys$output - | ||
112 | "No working bc found. Consider installing GNU bc." | ||
113 | $ exit %X00030000 ! %DCL-W-NORMAL | ||
114 | $ endif | ||
115 | $! | ||
116 | $ exit | ||
117 | $! | ||
118 | $! | ||
119 | $! Complete "bc" command failure. | ||
120 | $! | ||
121 | $ bc_fail: | ||
122 | $ write sys$output - | ||
123 | "No ""bc"" program/symbol found. Consider installing GNU bc." | ||
124 | $ exit %X00030000 ! %DCL-W-NORMAL | ||
125 | $! | ||
126 | $! | ||
127 | $! Output check subroutine. | ||
128 | $! | ||
129 | $ check_output: | ||
130 | $ eof = 0 | ||
131 | $ line_nr = 0 | ||
132 | $ open /read tmp_file 'tmp_file_name' | ||
133 | $ c_o_loop: | ||
134 | $ read /error = error_read tmp_file line | ||
135 | $ goto ok_read | ||
136 | $ error_read: | ||
137 | $ eof = 1 | ||
138 | $ ok_read: | ||
139 | $ line_expected = f$element( line_nr, "\", output_expected) | ||
140 | $ line_nr = line_nr+ 1 | ||
141 | $ if ((line_expected .nes. "\") .and. (.not. eof) .and. - | ||
142 | (line_expected .eqs. line)) then goto c_o_loop | ||
143 | $! | ||
144 | $ if ((line_expected .eqs. "\") .and. eof) | ||
145 | $ then | ||
146 | $ output = 1 | ||
147 | $ else | ||
148 | $ output = 0 | ||
149 | $ endif | ||
150 | $ close tmp_file | ||
151 | $ return | ||
152 | $! | ||
diff --git a/src/lib/libssl/src/test/bntest.com b/src/lib/libssl/src/test/bntest.com deleted file mode 100644 index 6545d2e5a5..0000000000 --- a/src/lib/libssl/src/test/bntest.com +++ /dev/null | |||
@@ -1,76 +0,0 @@ | |||
1 | $! | ||
2 | $! Analyze bntest output file. | ||
3 | $! | ||
4 | $! Exit status = 1 (success) if all tests passed, | ||
5 | $! 0 (warning) if any test failed. | ||
6 | $! | ||
7 | $! 2011-02-20 SMS. Added code to skip "#" comments in the input file. | ||
8 | $! | ||
9 | $! 2010-04-05 SMS. New. Based (loosely) on perl code in bntest-vms.sh. | ||
10 | $! | ||
11 | $! Expect data like: | ||
12 | $! test test_name1 | ||
13 | $! 0 | ||
14 | $! [...] | ||
15 | $! test test_name2 | ||
16 | $! 0 | ||
17 | $! [...] | ||
18 | $! [...] | ||
19 | $! | ||
20 | $! Some tests have no following "0" lines. | ||
21 | $! | ||
22 | $ result_file_name = f$edit( p1, "TRIM") | ||
23 | $ if (result_file_name .eqs. "") | ||
24 | $ then | ||
25 | $ result_file_name = "bntest-vms.out" | ||
26 | $ endif | ||
27 | $! | ||
28 | $ fail = 0 | ||
29 | $ passed = 0 | ||
30 | $ tests = 0 | ||
31 | $! | ||
32 | $ on control_c then goto tidy | ||
33 | $ on error then goto tidy | ||
34 | $! | ||
35 | $ open /read result_file 'result_file_name' | ||
36 | $! | ||
37 | $ read_loop: | ||
38 | $ read /end = read_loop_end /error = tidy result_file line | ||
39 | $ t1 = f$element( 0, " ", line) | ||
40 | $! | ||
41 | $! Skip "#" comment lines. | ||
42 | $ if (f$extract( 0, 1, f$edit( line, "TRIM")) .eqs. "#") then - | ||
43 | goto read_loop | ||
44 | $! | ||
45 | $ if (t1 .eqs. "test") | ||
46 | $ then | ||
47 | $ passed = passed+ 1 | ||
48 | $ tests = tests+ 1 | ||
49 | $ fail = 1 | ||
50 | $ t2 = f$extract( 5, 1000, line) | ||
51 | $ write sys$output "verify ''t2'" | ||
52 | $ else | ||
53 | $ if (t1 .nes. "0") | ||
54 | $ then | ||
55 | $ write sys$output "Failed! bc: ''line'" | ||
56 | $ passed = passed- fail | ||
57 | $ fail = 0 | ||
58 | $ endif | ||
59 | $ endif | ||
60 | $ goto read_loop | ||
61 | $ read_loop_end: | ||
62 | $ write sys$output "''passed'/''tests' tests passed" | ||
63 | $! | ||
64 | $ tidy: | ||
65 | $ if f$trnlnm( "result_file", "LNM$PROCESS_TABLE", , "SUPERVISOR", , "CONFINE") | ||
66 | $ then | ||
67 | $ close result_file | ||
68 | $ endif | ||
69 | $! | ||
70 | $ if ((tests .gt. 0) .and. (tests .eq. passed)) | ||
71 | $ then | ||
72 | $ exit 1 | ||
73 | $ else | ||
74 | $ exit 0 | ||
75 | $ endif | ||
76 | $! | ||
diff --git a/src/lib/libssl/src/test/clean_test.com b/src/lib/libssl/src/test/clean_test.com deleted file mode 100755 index 7df633fbef..0000000000 --- a/src/lib/libssl/src/test/clean_test.com +++ /dev/null | |||
@@ -1,35 +0,0 @@ | |||
1 | $! | ||
2 | $! Delete various test results files. | ||
3 | $! | ||
4 | $ def_orig = f$environment( "default") | ||
5 | $ proc = f$environment( "procedure") | ||
6 | $ proc_dev_dir = f$parse( "A.;", proc) - "A.;" | ||
7 | $! | ||
8 | $ on control_c then goto tidy | ||
9 | $ on error then goto tidy | ||
10 | $! | ||
11 | $ set default 'proc_dev_dir' | ||
12 | $! | ||
13 | $ files := *.cms;*, *.srl;*, *.ss;*, - | ||
14 | cms.err;*, cms.out;*, newreq.pem;*, - | ||
15 | p.txt-zlib-cipher;*, - | ||
16 | smtst.txt;*, testkey.pem;*, testreq.pem;*, - | ||
17 | test_*.err;*, test_*.out;*, - | ||
18 | .rnd;* | ||
19 | $! | ||
20 | $ delim = "," | ||
21 | $ i = 0 | ||
22 | $ loop: | ||
23 | $ file = f$edit( f$element( i, delim, files), "trim") | ||
24 | $ if (file .eqs. delim) then goto loop_end | ||
25 | $ if (f$search( file) .nes. "") then - | ||
26 | delete 'p1' 'file' | ||
27 | $ i = i+ 1 | ||
28 | $ goto loop | ||
29 | $ loop_end: | ||
30 | $! | ||
31 | $ tidy: | ||
32 | $ | ||
33 | $ if (f$type( def_orig) .nes. "") then - | ||
34 | set default 'def_orig' | ||
35 | $! | ||
diff --git a/src/lib/libssl/src/test/maketests.com b/src/lib/libssl/src/test/maketests.com deleted file mode 100644 index 9b64cba234..0000000000 --- a/src/lib/libssl/src/test/maketests.com +++ /dev/null | |||
@@ -1,1087 +0,0 @@ | |||
1 | $! | ||
2 | $! MAKETESTS.COM | ||
3 | $! Written By: Robert Byer | ||
4 | $! Vice-President | ||
5 | $! A-Com Computing, Inc. | ||
6 | $! byer@mail.all-net.net | ||
7 | $! | ||
8 | $! Changes by Richard Levitte <richard@levitte.org> | ||
9 | $! | ||
10 | $! This command files compiles and creates all the various different | ||
11 | $! "test" programs for the different types of encryption for OpenSSL. | ||
12 | $! It was written so it would try to determine what "C" compiler to | ||
13 | $! use or you can specify which "C" compiler to use. | ||
14 | $! | ||
15 | $! The test "executables" will be placed in a directory called | ||
16 | $! [.xxx.EXE.TEST] where "xxx" denotes ALPHA, IA64, or VAX, depending | ||
17 | $! on your machine architecture. | ||
18 | $! | ||
19 | $! Specify DEBUG or NODEBUG P1 to compile with or without debugger | ||
20 | $! information. | ||
21 | $! | ||
22 | $! Specify which compiler at P2 to try to compile under. | ||
23 | $! | ||
24 | $! VAXC For VAX C. | ||
25 | $! DECC For DEC C. | ||
26 | $! GNUC For GNU C. | ||
27 | $! | ||
28 | $! If you don't specify a compiler, it will try to determine which | ||
29 | $! "C" compiler to use. | ||
30 | $! | ||
31 | $! P3, if defined, sets a TCP/IP library to use, through one of the following | ||
32 | $! keywords: | ||
33 | $! | ||
34 | $! UCX for UCX | ||
35 | $! SOCKETSHR for SOCKETSHR+NETLIB | ||
36 | $! | ||
37 | $! P4, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up) | ||
38 | $! | ||
39 | $! | ||
40 | $! P5, if defined, specifies the C pointer size. Ignored on VAX. | ||
41 | $! ("64=ARGV" gives more efficient code with HP C V7.3 or newer.) | ||
42 | $! Supported values are: | ||
43 | $! | ||
44 | $! "" Compile with default (/NOPOINTER_SIZE) | ||
45 | $! 32 Compile with /POINTER_SIZE=32 (SHORT) | ||
46 | $! 64 Compile with /POINTER_SIZE=64[=ARGV] (LONG[=ARGV]) | ||
47 | $! (Automatically select ARGV if compiler supports it.) | ||
48 | $! 64= Compile with /POINTER_SIZE=64 (LONG). | ||
49 | $! 64=ARGV Compile with /POINTER_SIZE=64=ARGV (LONG=ARGV). | ||
50 | $! | ||
51 | $! P6, if defined, specifies a directory where ZLIB files (zlib.h, | ||
52 | $! libz.olb) may be found. Optionally, a non-default object library | ||
53 | $! name may be included ("dev:[dir]libz_64.olb", for example). | ||
54 | $! | ||
55 | $! | ||
56 | $! Announce/identify. | ||
57 | $! | ||
58 | $ proc = f$environment( "procedure") | ||
59 | $ write sys$output "@@@ "+ - | ||
60 | f$parse( proc, , , "name")+ f$parse( proc, , , "type") | ||
61 | $! | ||
62 | $! Define A TCP/IP Library That We Will Need To Link To. | ||
63 | $! (That is, If We Need To Link To One.) | ||
64 | $! | ||
65 | $ TCPIP_LIB = "" | ||
66 | $ ZLIB_LIB = "" | ||
67 | $! | ||
68 | $! Check Which Architecture We Are Using. | ||
69 | $! | ||
70 | $ if (f$getsyi( "cpu") .lt. 128) | ||
71 | $ then | ||
72 | $ ARCH = "VAX" | ||
73 | $ else | ||
74 | $ ARCH = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") | ||
75 | $ if (ARCH .eqs. "") then ARCH = "UNK" | ||
76 | $ endif | ||
77 | $! | ||
78 | $ ARCHD = ARCH | ||
79 | $ LIB32 = "32" | ||
80 | $ OPT_FILE = "" | ||
81 | $ POINTER_SIZE = "" | ||
82 | $! | ||
83 | $! Check To Make Sure We Have Valid Command Line Parameters. | ||
84 | $! | ||
85 | $ GOSUB CHECK_OPTIONS | ||
86 | $! | ||
87 | $! Define The OBJ and EXE Directories. | ||
88 | $! | ||
89 | $ OBJ_DIR := SYS$DISK:[-.'ARCHD'.OBJ.TEST] | ||
90 | $ EXE_DIR := SYS$DISK:[-.'ARCHD'.EXE.TEST] | ||
91 | $! | ||
92 | $! Specify the destination directory in any /MAP option. | ||
93 | $! | ||
94 | $ if (LINKMAP .eqs. "MAP") | ||
95 | $ then | ||
96 | $ LINKMAP = LINKMAP+ "=''EXE_DIR'" | ||
97 | $ endif | ||
98 | $! | ||
99 | $! Add the location prefix to the linker options file name. | ||
100 | $! | ||
101 | $ if (OPT_FILE .nes. "") | ||
102 | $ then | ||
103 | $ OPT_FILE = EXE_DIR+ OPT_FILE | ||
104 | $ endif | ||
105 | $! | ||
106 | $! Initialise logical names and such | ||
107 | $! | ||
108 | $ GOSUB INITIALISE | ||
109 | $! | ||
110 | $! Tell The User What Kind of Machine We Run On. | ||
111 | $! | ||
112 | $ WRITE SYS$OUTPUT "Host system architecture: ''ARCHD'" | ||
113 | $! | ||
114 | $! Define The CRYPTO-LIB We Are To Use. | ||
115 | $! | ||
116 | $ CRYPTO_LIB := SYS$DISK:[-.'ARCHD'.EXE.CRYPTO]SSL_LIBCRYPTO'LIB32'.OLB | ||
117 | $! | ||
118 | $! Define The SSL We Are To Use. | ||
119 | $! | ||
120 | $ SSL_LIB := SYS$DISK:[-.'ARCHD'.EXE.SSL]SSL_LIBSSL'LIB32'.OLB | ||
121 | $! | ||
122 | $! Create the OBJ and EXE Directories, if needed. | ||
123 | $! | ||
124 | $ IF (F$PARSE(OBJ_DIR).EQS."") THEN - | ||
125 | CREATE /DIRECTORY 'OBJ_DIR' | ||
126 | $ IF (F$PARSE(EXE_DIR).EQS."") THEN - | ||
127 | CREATE /DIRECTORY 'EXE_DIR' | ||
128 | $! | ||
129 | $! Check To See If We Have The Proper Libraries. | ||
130 | $! | ||
131 | $ GOSUB LIB_CHECK | ||
132 | $! | ||
133 | $! Check To See If We Have A Linker Option File. | ||
134 | $! | ||
135 | $ GOSUB CHECK_OPT_FILE | ||
136 | $! | ||
137 | $! Define The TEST Files. | ||
138 | $! NOTE: Some might think this list ugly. However, it's made this way to | ||
139 | $! reflect the EXE variable in Makefile as closely as possible, | ||
140 | $! thereby making it fairly easy to verify that the lists are the same. | ||
141 | $! | ||
142 | $ TEST_FILES = "BNTEST,ECTEST,ECDSATEST,ECDHTEST,IDEATEST,"+ - | ||
143 | "MD2TEST,MD4TEST,MD5TEST,HMACTEST,WP_TEST,"+ - | ||
144 | "RC2TEST,RC4TEST,RC5TEST,"+ - | ||
145 | "DESTEST,SHATEST,SHA1TEST,SHA256T,SHA512T,"+ - | ||
146 | "MDC2TEST,RMDTEST,"+ - | ||
147 | "RANDTEST,DHTEST,ENGINETEST,"+ - | ||
148 | "BFTEST,CASTTEST,SSLTEST,EXPTEST,DSATEST,RSA_TEST,"+ - | ||
149 | "EVP_TEST,IGETEST,JPAKETEST,SRPTEST,"+ - | ||
150 | "ASN1TEST" | ||
151 | $! Should we add MTTEST,PQ_TEST,LH_TEST,DIVTEST,TABTEST as well? | ||
152 | $! | ||
153 | $! Additional directory information. | ||
154 | $ T_D_BNTEST := [-.crypto.bn] | ||
155 | $ T_D_ECTEST := [-.crypto.ec] | ||
156 | $ T_D_ECDSATEST := [-.crypto.ecdsa] | ||
157 | $ T_D_ECDHTEST := [-.crypto.ecdh] | ||
158 | $ T_D_IDEATEST := [-.crypto.idea] | ||
159 | $ T_D_MD2TEST := [-.crypto.md2] | ||
160 | $ T_D_MD4TEST := [-.crypto.md4] | ||
161 | $ T_D_MD5TEST := [-.crypto.md5] | ||
162 | $ T_D_HMACTEST := [-.crypto.hmac] | ||
163 | $ T_D_WP_TEST := [-.crypto.whrlpool] | ||
164 | $ T_D_RC2TEST := [-.crypto.rc2] | ||
165 | $ T_D_RC4TEST := [-.crypto.rc4] | ||
166 | $ T_D_RC5TEST := [-.crypto.rc5] | ||
167 | $ T_D_DESTEST := [-.crypto.des] | ||
168 | $ T_D_SHATEST := [-.crypto.sha] | ||
169 | $ T_D_SHA1TEST := [-.crypto.sha] | ||
170 | $ T_D_SHA256T := [-.crypto.sha] | ||
171 | $ T_D_SHA512T := [-.crypto.sha] | ||
172 | $ T_D_MDC2TEST := [-.crypto.mdc2] | ||
173 | $ T_D_RMDTEST := [-.crypto.ripemd] | ||
174 | $ T_D_RANDTEST := [-.crypto.rand] | ||
175 | $ T_D_DHTEST := [-.crypto.dh] | ||
176 | $ T_D_ENGINETEST := [-.crypto.engine] | ||
177 | $ T_D_BFTEST := [-.crypto.bf] | ||
178 | $ T_D_CASTTEST := [-.crypto.cast] | ||
179 | $ T_D_SSLTEST := [-.ssl] | ||
180 | $ T_D_EXPTEST := [-.crypto.bn] | ||
181 | $ T_D_DSATEST := [-.crypto.dsa] | ||
182 | $ T_D_RSA_TEST := [-.crypto.rsa] | ||
183 | $ T_D_EVP_TEST := [-.crypto.evp] | ||
184 | $ T_D_IGETEST := [-.test] | ||
185 | $ T_D_JPAKETEST := [-.crypto.jpake] | ||
186 | $ T_D_SRPTEST := [-.crypto.srp] | ||
187 | $ T_D_ASN1TEST := [-.test] | ||
188 | $! | ||
189 | $ TCPIP_PROGRAMS = ",," | ||
190 | $ IF COMPILER .EQS. "VAXC" THEN - | ||
191 | TCPIP_PROGRAMS = ",SSLTEST," | ||
192 | $! | ||
193 | $! Define A File Counter And Set It To "0". | ||
194 | $! | ||
195 | $ FILE_COUNTER = 0 | ||
196 | $! | ||
197 | $! Top Of The File Loop. | ||
198 | $! | ||
199 | $ NEXT_FILE: | ||
200 | $! | ||
201 | $! O.K, Extract The File Name From The File List. | ||
202 | $! | ||
203 | $ FILE_NAME = F$ELEMENT(FILE_COUNTER,",",TEST_FILES) | ||
204 | $! | ||
205 | $! Check To See If We Are At The End Of The File List. | ||
206 | $! | ||
207 | $ IF (FILE_NAME.EQS.",") THEN GOTO FILE_DONE | ||
208 | $! | ||
209 | $! Increment The Counter. | ||
210 | $! | ||
211 | $ FILE_COUNTER = FILE_COUNTER + 1 | ||
212 | $! | ||
213 | $! Create The Source File Name. | ||
214 | $! | ||
215 | $ SOURCE_FILE = "SYS$DISK:" + T_D_'FILE_NAME' + FILE_NAME + ".C" | ||
216 | $! | ||
217 | $! Create The Object File Name. | ||
218 | $! | ||
219 | $ OBJECT_FILE = OBJ_DIR + FILE_NAME + ".OBJ" | ||
220 | $! | ||
221 | $! Create The Executable File Name. | ||
222 | $! | ||
223 | $ EXE_FILE = EXE_DIR + FILE_NAME + ".EXE" | ||
224 | $ ON WARNING THEN GOTO NEXT_FILE | ||
225 | $! | ||
226 | $! Check To See If The File We Want To Compile Actually Exists. | ||
227 | $! | ||
228 | $ IF (F$SEARCH(SOURCE_FILE).EQS."") | ||
229 | $ THEN | ||
230 | $! | ||
231 | $! Tell The User That The File Dosen't Exist. | ||
232 | $! | ||
233 | $ WRITE SYS$OUTPUT "" | ||
234 | $ WRITE SYS$OUTPUT "The File ",SOURCE_FILE," Dosen't Exist." | ||
235 | $ WRITE SYS$OUTPUT "" | ||
236 | $! | ||
237 | $! Exit The Build. | ||
238 | $! | ||
239 | $ GOTO EXIT | ||
240 | $ ENDIF | ||
241 | $! | ||
242 | $! Tell The User What We Are Building. | ||
243 | $! | ||
244 | $ WRITE SYS$OUTPUT "Building The ",FILE_NAME," Test Program." | ||
245 | $! | ||
246 | $! Compile The File. | ||
247 | $! | ||
248 | $ ON ERROR THEN GOTO NEXT_FILE | ||
249 | $ CC /OBJECT='OBJECT_FILE' 'SOURCE_FILE' | ||
250 | $ ON WARNING THEN GOTO NEXT_FILE | ||
251 | $! | ||
252 | $! Check If What We Are About To Compile Works Without A TCP/IP Library. | ||
253 | $! | ||
254 | $ IF ((TCPIP_LIB.EQS."").AND.((TCPIP_PROGRAMS-FILE_NAME).NES.TCPIP_PROGRAMS)) | ||
255 | $ THEN | ||
256 | $! | ||
257 | $! Inform The User That A TCP/IP Library Is Needed To Compile This Program. | ||
258 | $! | ||
259 | $ WRITE SYS$OUTPUT - | ||
260 | FILE_NAME," Needs A TCP/IP Library. Can't Link. Skipping..." | ||
261 | $ GOTO NEXT_FILE | ||
262 | $! | ||
263 | $! End The TCP/IP Library Check. | ||
264 | $! | ||
265 | $ ENDIF | ||
266 | $! | ||
267 | $! Link The Program, Check To See If We Need To Link With RSAREF Or Not. | ||
268 | $! Check To See If We Are To Link With A Specific TCP/IP Library. | ||
269 | $! | ||
270 | $! Don't Link With The RSAREF Routines And TCP/IP Library. | ||
271 | $! | ||
272 | $ LINK /'DEBUGGER' /'LINKMAP' /'TRACEBACK' /EXECTABLE = 'EXE_FILE' - | ||
273 | 'OBJECT_FILE', - | ||
274 | 'SSL_LIB' /LIBRARY, - | ||
275 | 'CRYPTO_LIB' /LIBRARY - | ||
276 | 'TCPIP_LIB' - | ||
277 | 'ZLIB_LIB' - | ||
278 | ,'OPT_FILE' /OPTIONS | ||
279 | $! | ||
280 | $! Go Back And Do It Again. | ||
281 | $! | ||
282 | $ GOTO NEXT_FILE | ||
283 | $! | ||
284 | $! All Done With This Library Part. | ||
285 | $! | ||
286 | $ FILE_DONE: | ||
287 | $! | ||
288 | $! All Done, Time To Exit. | ||
289 | $! | ||
290 | $ EXIT: | ||
291 | $ GOSUB CLEANUP | ||
292 | $ EXIT | ||
293 | $! | ||
294 | $! Check For The Link Option FIle. | ||
295 | $! | ||
296 | $ CHECK_OPT_FILE: | ||
297 | $! | ||
298 | $! Check To See If We Need To Make A VAX C Option File. | ||
299 | $! | ||
300 | $ IF (COMPILER.EQS."VAXC") | ||
301 | $ THEN | ||
302 | $! | ||
303 | $! Check To See If We Already Have A VAX C Linker Option File. | ||
304 | $! | ||
305 | $ IF (F$SEARCH(OPT_FILE).EQS."") | ||
306 | $ THEN | ||
307 | $! | ||
308 | $! We Need A VAX C Linker Option File. | ||
309 | $! | ||
310 | $ CREATE 'OPT_FILE' | ||
311 | $DECK | ||
312 | ! | ||
313 | ! Default System Options File To Link Against | ||
314 | ! The Sharable VAX C Runtime Library. | ||
315 | ! | ||
316 | SYS$SHARE:VAXCRTL.EXE /SHAREABLE | ||
317 | $EOD | ||
318 | $! | ||
319 | $! End The Option File Check. | ||
320 | $! | ||
321 | $ ENDIF | ||
322 | $! | ||
323 | $! End The VAXC Check. | ||
324 | $! | ||
325 | $ ENDIF | ||
326 | $! | ||
327 | $! Check To See If We Need A GNU C Option File. | ||
328 | $! | ||
329 | $ IF (COMPILER.EQS."GNUC") | ||
330 | $ THEN | ||
331 | $! | ||
332 | $! Check To See If We Already Have A GNU C Linker Option File. | ||
333 | $! | ||
334 | $ IF (F$SEARCH(OPT_FILE).EQS."") | ||
335 | $ THEN | ||
336 | $! | ||
337 | $! We Need A GNU C Linker Option File. | ||
338 | $! | ||
339 | $ CREATE 'OPT_FILE' | ||
340 | $DECK | ||
341 | ! | ||
342 | ! Default System Options File To Link Against | ||
343 | ! The Sharable C Runtime Library. | ||
344 | ! | ||
345 | GNU_CC:[000000]GCCLIB.OLB /LIBRARY | ||
346 | SYS$SHARE:VAXCRTL.EXE /SHAREABLE | ||
347 | $EOD | ||
348 | $! | ||
349 | $! End The Option File Check. | ||
350 | $! | ||
351 | $ ENDIF | ||
352 | $! | ||
353 | $! End The GNU C Check. | ||
354 | $! | ||
355 | $ ENDIF | ||
356 | $! | ||
357 | $! Check To See If We Need A DEC C Option File. | ||
358 | $! | ||
359 | $ IF (COMPILER.EQS."DECC") | ||
360 | $ THEN | ||
361 | $! | ||
362 | $! Check To See If We Already Have A DEC C Linker Option File. | ||
363 | $! | ||
364 | $ IF (F$SEARCH(OPT_FILE).EQS."") | ||
365 | $ THEN | ||
366 | $! | ||
367 | $! Figure Out If We Need A non-VAX Or A VAX Linker Option File. | ||
368 | $! | ||
369 | $ IF (ARCH.EQS."VAX") | ||
370 | $ THEN | ||
371 | $! | ||
372 | $! We Need A DEC C Linker Option File For VAX. | ||
373 | $! | ||
374 | $ CREATE 'OPT_FILE' | ||
375 | $DECK | ||
376 | ! | ||
377 | ! Default System Options File To Link Against | ||
378 | ! The Sharable DEC C Runtime Library. | ||
379 | ! | ||
380 | SYS$SHARE:DECC$SHR.EXE /SHAREABLE | ||
381 | $EOD | ||
382 | $! | ||
383 | $! Else... | ||
384 | $! | ||
385 | $ ELSE | ||
386 | $! | ||
387 | $! Create The non-VAX Linker Option File. | ||
388 | $! | ||
389 | $ CREATE 'OPT_FILE' | ||
390 | $DECK | ||
391 | ! | ||
392 | ! Default System Options File For non-VAX To Link Against | ||
393 | ! The Sharable C Runtime Library. | ||
394 | ! | ||
395 | SYS$SHARE:CMA$OPEN_LIB_SHR.EXE /SHAREABLE | ||
396 | SYS$SHARE:CMA$OPEN_RTL.EXE /SHAREABLE | ||
397 | $EOD | ||
398 | $! | ||
399 | $! End The DEC C Option File Check. | ||
400 | $! | ||
401 | $ ENDIF | ||
402 | $! | ||
403 | $! End The Option File Search. | ||
404 | $! | ||
405 | $ ENDIF | ||
406 | $! | ||
407 | $! End The DEC C Check. | ||
408 | $! | ||
409 | $ ENDIF | ||
410 | $! | ||
411 | $! Tell The User What Linker Option File We Are Using. | ||
412 | $! | ||
413 | $ WRITE SYS$OUTPUT "Using Linker Option File ",OPT_FILE,"." | ||
414 | $! | ||
415 | $! Time To RETURN. | ||
416 | $! | ||
417 | $ RETURN | ||
418 | $! | ||
419 | $! Check To See If We Have The Appropiate Libraries. | ||
420 | $! | ||
421 | $ LIB_CHECK: | ||
422 | $! | ||
423 | $! Look For The Library LIBCRYPTO.OLB. | ||
424 | $! | ||
425 | $ IF (F$SEARCH(CRYPTO_LIB).EQS."") | ||
426 | $ THEN | ||
427 | $! | ||
428 | $! Tell The User We Can't Find The LIBCRYPTO.OLB Library. | ||
429 | $! | ||
430 | $ WRITE SYS$OUTPUT "" | ||
431 | $ WRITE SYS$OUTPUT "Can't Find The Library ",CRYPTO_LIB,"." | ||
432 | $ WRITE SYS$OUTPUT "We Can't Link Without It." | ||
433 | $ WRITE SYS$OUTPUT "" | ||
434 | $! | ||
435 | $! Since We Can't Link Without It, Exit. | ||
436 | $! | ||
437 | $ EXIT | ||
438 | $! | ||
439 | $! End The Crypto Library Check. | ||
440 | $! | ||
441 | $ ENDIF | ||
442 | $! | ||
443 | $! Look For The Library LIBSSL.OLB. | ||
444 | $! | ||
445 | $ IF (F$SEARCH(SSL_LIB).EQS."") | ||
446 | $ THEN | ||
447 | $! | ||
448 | $! Tell The User We Can't Find The LIBSSL.OLB Library. | ||
449 | $! | ||
450 | $ WRITE SYS$OUTPUT "" | ||
451 | $ WRITE SYS$OUTPUT "Can't Find The Library ",SSL_LIB,"." | ||
452 | $ WRITE SYS$OUTPUT "Some Of The Test Programs Need To Link To It." | ||
453 | $ WRITE SYS$OUTPUT "" | ||
454 | $! | ||
455 | $! Since We Can't Link Without It, Exit. | ||
456 | $! | ||
457 | $ EXIT | ||
458 | $! | ||
459 | $! End The SSL Library Check. | ||
460 | $! | ||
461 | $ ENDIF | ||
462 | $! | ||
463 | $! Time To Return. | ||
464 | $! | ||
465 | $ RETURN | ||
466 | $! | ||
467 | $! Check The User's Options. | ||
468 | $! | ||
469 | $ CHECK_OPTIONS: | ||
470 | $! | ||
471 | $! Set basic C compiler /INCLUDE directories. | ||
472 | $! | ||
473 | $ CC_INCLUDES = "SYS$DISK:[-],SYS$DISK:[-.CRYPTO]" | ||
474 | $! | ||
475 | $! Check To See If P1 Is Blank. | ||
476 | $! | ||
477 | $ IF (P1.EQS."NODEBUG") | ||
478 | $ THEN | ||
479 | $! | ||
480 | $! P1 Is NODEBUG, So Compile Without Debugger Information. | ||
481 | $! | ||
482 | $ DEBUGGER = "NODEBUG" | ||
483 | $ LINKMAP = "NOMAP" | ||
484 | $ TRACEBACK = "NOTRACEBACK" | ||
485 | $ GCC_OPTIMIZE = "OPTIMIZE" | ||
486 | $ CC_OPTIMIZE = "OPTIMIZE" | ||
487 | $ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile." | ||
488 | $ WRITE SYS$OUTPUT "Compiling With Compiler Optimization." | ||
489 | $! | ||
490 | $! Else... | ||
491 | $! | ||
492 | $ ELSE | ||
493 | $! | ||
494 | $! Check To See If We Are To Compile With Debugger Information. | ||
495 | $! | ||
496 | $ IF (P1.EQS."DEBUG") | ||
497 | $ THEN | ||
498 | $! | ||
499 | $! Compile With Debugger Information. | ||
500 | $! | ||
501 | $ DEBUGGER = "DEBUG" | ||
502 | $ LINKMAP = "MAP" | ||
503 | $ TRACEBACK = "TRACEBACK" | ||
504 | $ GCC_OPTIMIZE = "NOOPTIMIZE" | ||
505 | $ CC_OPTIMIZE = "NOOPTIMIZE" | ||
506 | $ WRITE SYS$OUTPUT "Debugger Information Will Be Produced During Compile." | ||
507 | $ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization." | ||
508 | $! | ||
509 | $! Else... | ||
510 | $! | ||
511 | $ ELSE | ||
512 | $! | ||
513 | $! Tell The User Entered An Invalid Option. | ||
514 | $! | ||
515 | $ WRITE SYS$OUTPUT "" | ||
516 | $ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:" | ||
517 | $ WRITE SYS$OUTPUT "" | ||
518 | $ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information." | ||
519 | $ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information." | ||
520 | $ WRITE SYS$OUTPUT "" | ||
521 | $! | ||
522 | $! Time To EXIT. | ||
523 | $! | ||
524 | $ EXIT | ||
525 | $! | ||
526 | $! End The Valid Argument Check. | ||
527 | $! | ||
528 | $ ENDIF | ||
529 | $! | ||
530 | $! End The P1 Check. | ||
531 | $! | ||
532 | $ ENDIF | ||
533 | $! | ||
534 | $! Check P5 (POINTER_SIZE). | ||
535 | $! | ||
536 | $ IF (P5 .NES. "") .AND. (ARCH .NES. "VAX") | ||
537 | $ THEN | ||
538 | $! | ||
539 | $ IF (P5 .EQS. "32") | ||
540 | $ THEN | ||
541 | $ POINTER_SIZE = " /POINTER_SIZE=32" | ||
542 | $ ELSE | ||
543 | $ POINTER_SIZE = F$EDIT( P5, "COLLAPSE, UPCASE") | ||
544 | $ IF ((POINTER_SIZE .EQS. "64") .OR. - | ||
545 | (POINTER_SIZE .EQS. "64=") .OR. - | ||
546 | (POINTER_SIZE .EQS. "64=ARGV")) | ||
547 | $ THEN | ||
548 | $ ARCHD = ARCH+ "_64" | ||
549 | $ LIB32 = "" | ||
550 | $ IF (F$EXTRACT( 2, 1, POINTER_SIZE) .EQS. "=") | ||
551 | $ THEN | ||
552 | $! Explicit user choice: "64" or "64=ARGV". | ||
553 | $ IF (POINTER_SIZE .EQS. "64=") THEN POINTER_SIZE = "64" | ||
554 | $ ELSE | ||
555 | $ SET NOON | ||
556 | $ DEFINE /USER_MODE SYS$OUTPUT NL: | ||
557 | $ DEFINE /USER_MODE SYS$ERROR NL: | ||
558 | $ CC /NOLIST /NOOBJECT /POINTER_SIZE=64=ARGV NL: | ||
559 | $ IF ($STATUS .AND. %X0FFF0000) .EQ. %X00030000 | ||
560 | $ THEN | ||
561 | $ ! If we got here, it means DCL complained like this: | ||
562 | $ ! %DCL-W-NOVALU, value not allowed - remove value specification | ||
563 | $ ! \64=\ | ||
564 | $ ! | ||
565 | $ ! If the compiler was run, logicals defined in /USER would | ||
566 | $ ! have been deassigned automatically. However, when DCL | ||
567 | $ ! complains, they aren't, so we do it here (it might be | ||
568 | $ ! unnecessary, but just in case there will be another error | ||
569 | $ ! message further on that we don't want to miss) | ||
570 | $ DEASSIGN /USER_MODE SYS$ERROR | ||
571 | $ DEASSIGN /USER_MODE SYS$OUTPUT | ||
572 | $ ELSE | ||
573 | $ POINTER_SIZE = POINTER_SIZE + "=ARGV" | ||
574 | $ ENDIF | ||
575 | $ SET ON | ||
576 | $ ENDIF | ||
577 | $ POINTER_SIZE = " /POINTER_SIZE=''POINTER_SIZE'" | ||
578 | $ ELSE | ||
579 | $! | ||
580 | $! Tell The User Entered An Invalid Option. | ||
581 | $! | ||
582 | $ WRITE SYS$OUTPUT "" | ||
583 | $ WRITE SYS$OUTPUT "The Option ", P5, - | ||
584 | " Is Invalid. The Valid Options Are:" | ||
585 | $ WRITE SYS$OUTPUT "" | ||
586 | $ WRITE SYS$OUTPUT - | ||
587 | " """" : Compile with default (short) pointers." | ||
588 | $ WRITE SYS$OUTPUT - | ||
589 | " 32 : Compile with 32-bit (short) pointers." | ||
590 | $ WRITE SYS$OUTPUT - | ||
591 | " 64 : Compile with 64-bit (long) pointers (auto ARGV)." | ||
592 | $ WRITE SYS$OUTPUT - | ||
593 | " 64= : Compile with 64-bit (long) pointers (no ARGV)." | ||
594 | $ WRITE SYS$OUTPUT - | ||
595 | " 64=ARGV : Compile with 64-bit (long) pointers (ARGV)." | ||
596 | $ WRITE SYS$OUTPUT "" | ||
597 | $! | ||
598 | $! Time To EXIT. | ||
599 | $! | ||
600 | $ EXIT | ||
601 | $! | ||
602 | $ ENDIF | ||
603 | $! | ||
604 | $ ENDIF | ||
605 | $! | ||
606 | $! End The P5 (POINTER_SIZE) Check. | ||
607 | $! | ||
608 | $ ENDIF | ||
609 | $! | ||
610 | $! Check To See If P2 Is Blank. | ||
611 | $! | ||
612 | $ IF (P2.EQS."") | ||
613 | $ THEN | ||
614 | $! | ||
615 | $! O.K., The User Didn't Specify A Compiler, Let's Try To | ||
616 | $! Find Out Which One To Use. | ||
617 | $! | ||
618 | $! Check To See If We Have GNU C. | ||
619 | $! | ||
620 | $ IF (F$TRNLNM("GNU_CC").NES."") | ||
621 | $ THEN | ||
622 | $! | ||
623 | $! Looks Like GNUC, Set To Use GNUC. | ||
624 | $! | ||
625 | $ P2 = "GNUC" | ||
626 | $! | ||
627 | $! End The GNU C Compiler Check. | ||
628 | $! | ||
629 | $ ELSE | ||
630 | $! | ||
631 | $! Check To See If We Have VAXC Or DECC. | ||
632 | $! | ||
633 | $ IF (ARCH.NES."VAX").OR.(F$TRNLNM("DECC$CC_DEFAULT").NES."") | ||
634 | $ THEN | ||
635 | $! | ||
636 | $! Looks Like DECC, Set To Use DECC. | ||
637 | $! | ||
638 | $ P2 = "DECC" | ||
639 | $! | ||
640 | $! Else... | ||
641 | $! | ||
642 | $ ELSE | ||
643 | $! | ||
644 | $! Looks Like VAXC, Set To Use VAXC. | ||
645 | $! | ||
646 | $ P2 = "VAXC" | ||
647 | $! | ||
648 | $! End The VAXC Compiler Check. | ||
649 | $! | ||
650 | $ ENDIF | ||
651 | $! | ||
652 | $! End The DECC & VAXC Compiler Check. | ||
653 | $! | ||
654 | $ ENDIF | ||
655 | $! | ||
656 | $! End The Compiler Check. | ||
657 | $! | ||
658 | $ ENDIF | ||
659 | $! | ||
660 | $! Check To See If We Have A Option For P3. | ||
661 | $! | ||
662 | $ IF (P3.EQS."") | ||
663 | $ THEN | ||
664 | $! | ||
665 | $! Find out what socket library we have available | ||
666 | $! | ||
667 | $ IF F$PARSE("SOCKETSHR:") .NES. "" | ||
668 | $ THEN | ||
669 | $! | ||
670 | $! We have SOCKETSHR, and it is my opinion that it's the best to use. | ||
671 | $! | ||
672 | $ P3 = "SOCKETSHR" | ||
673 | $! | ||
674 | $! Tell the user | ||
675 | $! | ||
676 | $ WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP" | ||
677 | $! | ||
678 | $! Else, let's look for something else | ||
679 | $! | ||
680 | $ ELSE | ||
681 | $! | ||
682 | $! Like UCX (the reason to do this before Multinet is that the UCX | ||
683 | $! emulation is easier to use...) | ||
684 | $! | ||
685 | $ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" - | ||
686 | .OR. F$PARSE("SYS$SHARE:UCX$IPC_SHR.EXE") .NES. "" - | ||
687 | .OR. F$PARSE("SYS$LIBRARY:UCX$IPC.OLB") .NES. "" | ||
688 | $ THEN | ||
689 | $! | ||
690 | $! Last resort: a UCX or UCX-compatible library | ||
691 | $! | ||
692 | $ P3 = "UCX" | ||
693 | $! | ||
694 | $! Tell the user | ||
695 | $! | ||
696 | $ WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP" | ||
697 | $! | ||
698 | $! That was all... | ||
699 | $! | ||
700 | $ ENDIF | ||
701 | $ ENDIF | ||
702 | $ ENDIF | ||
703 | $! | ||
704 | $! Set Up Initial CC Definitions, Possibly With User Ones | ||
705 | $! | ||
706 | $ CCDEFS = "TCPIP_TYPE_''P3'" | ||
707 | $ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS | ||
708 | $ CCEXTRAFLAGS = "" | ||
709 | $ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS | ||
710 | $ CCDISABLEWARNINGS = "" !!! "LONGLONGTYPE,LONGLONGSUFX,FOUNDCR" | ||
711 | $ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN - | ||
712 | CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS | ||
713 | $! | ||
714 | $! Check To See If We Have A ZLIB Option. | ||
715 | $! | ||
716 | $ ZLIB = P6 | ||
717 | $ IF (ZLIB .NES. "") | ||
718 | $ THEN | ||
719 | $! | ||
720 | $! Check for expected ZLIB files. | ||
721 | $! | ||
722 | $ err = 0 | ||
723 | $ file1 = f$parse( "zlib.h", ZLIB, , , "SYNTAX_ONLY") | ||
724 | $ if (f$search( file1) .eqs. "") | ||
725 | $ then | ||
726 | $ WRITE SYS$OUTPUT "" | ||
727 | $ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid." | ||
728 | $ WRITE SYS$OUTPUT " Can't find header: ''file1'" | ||
729 | $ err = 1 | ||
730 | $ endif | ||
731 | $ file1 = f$parse( "A.;", ZLIB)- "A.;" | ||
732 | $! | ||
733 | $ file2 = f$parse( ZLIB, "libz.olb", , , "SYNTAX_ONLY") | ||
734 | $ if (f$search( file2) .eqs. "") | ||
735 | $ then | ||
736 | $ if (err .eq. 0) | ||
737 | $ then | ||
738 | $ WRITE SYS$OUTPUT "" | ||
739 | $ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid." | ||
740 | $ endif | ||
741 | $ WRITE SYS$OUTPUT " Can't find library: ''file2'" | ||
742 | $ WRITE SYS$OUTPUT "" | ||
743 | $ err = err+ 2 | ||
744 | $ endif | ||
745 | $ if (err .eq. 1) | ||
746 | $ then | ||
747 | $ WRITE SYS$OUTPUT "" | ||
748 | $ endif | ||
749 | $! | ||
750 | $ if (err .ne. 0) | ||
751 | $ then | ||
752 | $ GOTO EXIT | ||
753 | $ endif | ||
754 | $! | ||
755 | $ CCDEFS = """ZLIB=1"", "+ CCDEFS | ||
756 | $ CC_INCLUDES = CC_INCLUDES+ ", "+ file1 | ||
757 | $ ZLIB_LIB = ", ''file2' /library" | ||
758 | $! | ||
759 | $! Print info | ||
760 | $! | ||
761 | $ WRITE SYS$OUTPUT "ZLIB library spec: ", file2 | ||
762 | $! | ||
763 | $! End The P8 Check. | ||
764 | $! | ||
765 | $ ENDIF | ||
766 | $! | ||
767 | $! Check To See If The User Entered A Valid Parameter. | ||
768 | $! | ||
769 | $ IF (P2.EQS."VAXC").OR.(P2.EQS."DECC").OR.(P2.EQS."GNUC") | ||
770 | $ THEN | ||
771 | $! | ||
772 | $! Check To See If The User Wanted DECC. | ||
773 | $! | ||
774 | $ IF (P2.EQS."DECC") | ||
775 | $ THEN | ||
776 | $! | ||
777 | $! Looks Like DECC, Set To Use DECC. | ||
778 | $! | ||
779 | $ COMPILER = "DECC" | ||
780 | $! | ||
781 | $! Tell The User We Are Using DECC. | ||
782 | $! | ||
783 | $ WRITE SYS$OUTPUT "Using DECC 'C' Compiler." | ||
784 | $! | ||
785 | $! Use DECC... | ||
786 | $! | ||
787 | $ CC = "CC" | ||
788 | $ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" - | ||
789 | THEN CC = "CC /DECC" | ||
790 | $ CC = CC + " /''CC_OPTIMIZE' /''DEBUGGER' /STANDARD=RELAXED"+ - | ||
791 | "''POINTER_SIZE' /NOLIST /PREFIX=ALL" + - | ||
792 | " /INCLUDE=(''CC_INCLUDES') " + CCEXTRAFLAGS | ||
793 | $! | ||
794 | $! Define The Linker Options File Name. | ||
795 | $! | ||
796 | $ OPT_FILE = "VAX_DECC_OPTIONS.OPT" | ||
797 | $! | ||
798 | $! End DECC Check. | ||
799 | $! | ||
800 | $ ENDIF | ||
801 | $! | ||
802 | $! Check To See If We Are To Use VAXC. | ||
803 | $! | ||
804 | $ IF (P2.EQS."VAXC") | ||
805 | $ THEN | ||
806 | $! | ||
807 | $! Looks Like VAXC, Set To Use VAXC. | ||
808 | $! | ||
809 | $ COMPILER = "VAXC" | ||
810 | $! | ||
811 | $! Tell The User We Are Using VAX C. | ||
812 | $! | ||
813 | $ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler." | ||
814 | $! | ||
815 | $! Compile Using VAXC. | ||
816 | $! | ||
817 | $ CC = "CC" | ||
818 | $ IF ARCH.NES."VAX" | ||
819 | $ THEN | ||
820 | $ WRITE SYS$OUTPUT "There is no VAX C on ''ARCH'!" | ||
821 | $ EXIT | ||
822 | $ ENDIF | ||
823 | $ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC /VAXC" | ||
824 | $ CC = CC + "/''CC_OPTIMIZE' /''DEBUGGER' /NOLIST" + - | ||
825 | "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS | ||
826 | $ CCDEFS = CCDEFS + ",""VAXC""" | ||
827 | $! | ||
828 | $! Define <sys> As SYS$COMMON:[SYSLIB] | ||
829 | $! | ||
830 | $ DEFINE /NOLOG SYS SYS$COMMON:[SYSLIB] | ||
831 | $! | ||
832 | $! Define The Linker Options File Name. | ||
833 | $! | ||
834 | $ OPT_FILE = "VAX_VAXC_OPTIONS.OPT" | ||
835 | $! | ||
836 | $! End VAXC Check | ||
837 | $! | ||
838 | $ ENDIF | ||
839 | $! | ||
840 | $! Check To See If We Are To Use GNU C. | ||
841 | $! | ||
842 | $ IF (P2.EQS."GNUC") | ||
843 | $ THEN | ||
844 | $! | ||
845 | $! Looks Like GNUC, Set To Use GNUC. | ||
846 | $! | ||
847 | $ COMPILER = "GNUC" | ||
848 | $! | ||
849 | $! Tell The User We Are Using GNUC. | ||
850 | $! | ||
851 | $ WRITE SYS$OUTPUT "Using GNU 'C' Compiler." | ||
852 | $! | ||
853 | $! Use GNU C... | ||
854 | $! | ||
855 | $ CC = "GCC /NOCASE_HACK /''GCC_OPTIMIZE' /''DEBUGGER' /NOLIST" + - | ||
856 | "/INCLUDE=(''CC_INCLUDES')" + CCEXTRAFLAGS | ||
857 | $! | ||
858 | $! Define The Linker Options File Name. | ||
859 | $! | ||
860 | $ OPT_FILE = "VAX_GNUC_OPTIONS.OPT" | ||
861 | $! | ||
862 | $! End The GNU C Check. | ||
863 | $! | ||
864 | $ ENDIF | ||
865 | $! | ||
866 | $! Set up default defines | ||
867 | $! | ||
868 | $ CCDEFS = """FLAT_INC=1""," + CCDEFS | ||
869 | $! | ||
870 | $! Finish up the definition of CC. | ||
871 | $! | ||
872 | $ IF COMPILER .EQS. "DECC" | ||
873 | $ THEN | ||
874 | $ IF CCDISABLEWARNINGS .EQS. "" | ||
875 | $ THEN | ||
876 | $ CC4DISABLEWARNINGS = "DOLLARID" | ||
877 | $ ELSE | ||
878 | $ CC4DISABLEWARNINGS = CCDISABLEWARNINGS + ",DOLLARID" | ||
879 | $ CCDISABLEWARNINGS = " /WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))" | ||
880 | $ ENDIF | ||
881 | $ CC4DISABLEWARNINGS = " /WARNING=(DISABLE=(" + CC4DISABLEWARNINGS + "))" | ||
882 | $ ELSE | ||
883 | $ CCDISABLEWARNINGS = "" | ||
884 | $ CC4DISABLEWARNINGS = "" | ||
885 | $ ENDIF | ||
886 | $ CC = CC + " /DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS | ||
887 | $! | ||
888 | $! Show user the result | ||
889 | $! | ||
890 | $ WRITE /SYMBOL SYS$OUTPUT "Main Compiling Command: ", CC | ||
891 | $! | ||
892 | $! Else The User Entered An Invalid Argument. | ||
893 | $! | ||
894 | $ ELSE | ||
895 | $! | ||
896 | $! Tell The User We Don't Know What They Want. | ||
897 | $! | ||
898 | $ WRITE SYS$OUTPUT "" | ||
899 | $ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:" | ||
900 | $ WRITE SYS$OUTPUT "" | ||
901 | $ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C." | ||
902 | $ WRITE SYS$OUTPUT " DECC : To Compile With DEC C." | ||
903 | $ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C." | ||
904 | $ WRITE SYS$OUTPUT "" | ||
905 | $! | ||
906 | $! Time To EXIT. | ||
907 | $! | ||
908 | $ EXIT | ||
909 | $ ENDIF | ||
910 | $! | ||
911 | $! Time to check the contents, and to make sure we get the correct library. | ||
912 | $! | ||
913 | $ IF P3.EQS."SOCKETSHR" .OR. P3.EQS."MULTINET" .OR. P3.EQS."UCX" - | ||
914 | .OR. P3.EQS."TCPIP" .OR. P3.EQS."NONE" | ||
915 | $ THEN | ||
916 | $! | ||
917 | $! Check to see if SOCKETSHR was chosen | ||
918 | $! | ||
919 | $ IF P3.EQS."SOCKETSHR" | ||
920 | $ THEN | ||
921 | $! | ||
922 | $! Set the library to use SOCKETSHR | ||
923 | $! | ||
924 | $ TCPIP_LIB = ",SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT /OPTIONS" | ||
925 | $! | ||
926 | $! Done with SOCKETSHR | ||
927 | $! | ||
928 | $ ENDIF | ||
929 | $! | ||
930 | $! Check to see if MULTINET was chosen | ||
931 | $! | ||
932 | $ IF P3.EQS."MULTINET" | ||
933 | $ THEN | ||
934 | $! | ||
935 | $! Set the library to use UCX emulation. | ||
936 | $! | ||
937 | $ P3 = "UCX" | ||
938 | $! | ||
939 | $! Done with MULTINET | ||
940 | $! | ||
941 | $ ENDIF | ||
942 | $! | ||
943 | $! Check to see if UCX was chosen | ||
944 | $! | ||
945 | $ IF P3.EQS."UCX" | ||
946 | $ THEN | ||
947 | $! | ||
948 | $! Set the library to use UCX. | ||
949 | $! | ||
950 | $ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT /OPTIONS" | ||
951 | $ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" | ||
952 | $ THEN | ||
953 | $ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT /OPTIONS" | ||
954 | $ ELSE | ||
955 | $ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN - | ||
956 | TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT /OPTIONS" | ||
957 | $ ENDIF | ||
958 | $! | ||
959 | $! Done with UCX | ||
960 | $! | ||
961 | $ ENDIF | ||
962 | $! | ||
963 | $! Check to see if TCPIP was chosen | ||
964 | $! | ||
965 | $ IF P3.EQS."TCPIP" | ||
966 | $ THEN | ||
967 | $! | ||
968 | $! Set the library to use TCPIP (post UCX). | ||
969 | $! | ||
970 | $ TCPIP_LIB = ",SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT /OPTIONS" | ||
971 | $! | ||
972 | $! Done with TCPIP | ||
973 | $! | ||
974 | $ ENDIF | ||
975 | $! | ||
976 | $! Check to see if NONE was chosen | ||
977 | $! | ||
978 | $ IF P3.EQS."NONE" | ||
979 | $ THEN | ||
980 | $! | ||
981 | $! Do not use a TCPIP library. | ||
982 | $! | ||
983 | $ TCPIP_LIB = "" | ||
984 | $! | ||
985 | $! Done with NONE | ||
986 | $! | ||
987 | $ ENDIF | ||
988 | $! | ||
989 | $! Print info | ||
990 | $! | ||
991 | $ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB- "," | ||
992 | $! | ||
993 | $! Else The User Entered An Invalid Argument. | ||
994 | $! | ||
995 | $ ELSE | ||
996 | $! | ||
997 | $! Tell The User We Don't Know What They Want. | ||
998 | $! | ||
999 | $ WRITE SYS$OUTPUT "" | ||
1000 | $ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:" | ||
1001 | $ WRITE SYS$OUTPUT "" | ||
1002 | $ WRITE SYS$OUTPUT " SOCKETSHR : To link with SOCKETSHR TCP/IP library." | ||
1003 | $ WRITE SYS$OUTPUT " UCX : To link with UCX TCP/IP library." | ||
1004 | $ WRITE SYS$OUTPUT " TCPIP : To link with TCPIP (post UCX) TCP/IP library." | ||
1005 | $ WRITE SYS$OUTPUT "" | ||
1006 | $! | ||
1007 | $! Time To EXIT. | ||
1008 | $! | ||
1009 | $ EXIT | ||
1010 | $! | ||
1011 | $! Done with TCP/IP libraries | ||
1012 | $! | ||
1013 | $ ENDIF | ||
1014 | $! | ||
1015 | $! Special Threads For OpenVMS v7.1 Or Later | ||
1016 | $! | ||
1017 | $! Written By: Richard Levitte | ||
1018 | $! richard@levitte.org | ||
1019 | $! | ||
1020 | $! | ||
1021 | $! Check To See If We Have A Option For P4. | ||
1022 | $! | ||
1023 | $ IF (P4.EQS."") | ||
1024 | $ THEN | ||
1025 | $! | ||
1026 | $! Get The Version Of VMS We Are Using. | ||
1027 | $! | ||
1028 | $ ISSEVEN := | ||
1029 | $ TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION"))) | ||
1030 | $ TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP)) | ||
1031 | $! | ||
1032 | $! Check To See If The VMS Version Is v7.1 Or Later. | ||
1033 | $! | ||
1034 | $ IF (TMP.GE.71) | ||
1035 | $ THEN | ||
1036 | $! | ||
1037 | $! We Have OpenVMS v7.1 Or Later, So Use The Special Threads. | ||
1038 | $! | ||
1039 | $ ISSEVEN := ,PTHREAD_USE_D4 | ||
1040 | $! | ||
1041 | $! End The VMS Version Check. | ||
1042 | $! | ||
1043 | $ ENDIF | ||
1044 | $! | ||
1045 | $! End The P4 Check. | ||
1046 | $! | ||
1047 | $ ENDIF | ||
1048 | $! | ||
1049 | $! Time To RETURN... | ||
1050 | $! | ||
1051 | $ RETURN | ||
1052 | $! | ||
1053 | $ INITIALISE: | ||
1054 | $! | ||
1055 | $! Save old value of the logical name OPENSSL | ||
1056 | $! | ||
1057 | $ __SAVE_OPENSSL = F$TRNLNM("OPENSSL","LNM$PROCESS_TABLE") | ||
1058 | $! | ||
1059 | $! Save directory information | ||
1060 | $! | ||
1061 | $ __HERE = F$PARSE(F$PARSE("A.;",F$ENVIRONMENT("PROCEDURE"))-"A.;","[]A.;") - "A.;" | ||
1062 | $ __HERE = F$EDIT(__HERE,"UPCASE") | ||
1063 | $ __TOP = __HERE - "TEST]" | ||
1064 | $ __INCLUDE = __TOP + "INCLUDE.OPENSSL]" | ||
1065 | $! | ||
1066 | $! Set up the logical name OPENSSL to point at the include directory | ||
1067 | $! | ||
1068 | $ DEFINE OPENSSL /NOLOG '__INCLUDE' | ||
1069 | $! | ||
1070 | $! Done | ||
1071 | $! | ||
1072 | $ RETURN | ||
1073 | $! | ||
1074 | $ CLEANUP: | ||
1075 | $! | ||
1076 | $! Restore the logical name OPENSSL if it had a value | ||
1077 | $! | ||
1078 | $ IF __SAVE_OPENSSL .EQS. "" | ||
1079 | $ THEN | ||
1080 | $ DEASSIGN OPENSSL | ||
1081 | $ ELSE | ||
1082 | $ DEFINE /NOLOG OPENSSL '__SAVE_OPENSSL' | ||
1083 | $ ENDIF | ||
1084 | $! | ||
1085 | $! Done | ||
1086 | $! | ||
1087 | $ RETURN | ||
diff --git a/src/lib/libssl/src/test/tcrl.com b/src/lib/libssl/src/test/tcrl.com deleted file mode 100644 index dd96a2b6dd..0000000000 --- a/src/lib/libssl/src/test/tcrl.com +++ /dev/null | |||
@@ -1,88 +0,0 @@ | |||
1 | $! TCRL.COM -- Tests crl keys | ||
2 | $ | ||
3 | $ __arch = "VAX" | ||
4 | $ if f$getsyi("cpu") .ge. 128 then - | ||
5 | __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") | ||
6 | $ if __arch .eqs. "" then __arch = "UNK" | ||
7 | $! | ||
8 | $ if (p2 .eqs. "64") then __arch = __arch+ "_64" | ||
9 | $! | ||
10 | $ exe_dir = "sys$disk:[-.''__arch'.exe.apps]" | ||
11 | $ | ||
12 | $ cmd = "mcr ''exe_dir'openssl crl" | ||
13 | $ | ||
14 | $ t = "testcrl.pem" | ||
15 | $ if p1 .nes. "" then t = p1 | ||
16 | $ | ||
17 | $ write sys$output "testing CRL conversions" | ||
18 | $ if f$search("fff.*") .nes "" then delete fff.*;* | ||
19 | $ if f$search("ff.*") .nes "" then delete ff.*;* | ||
20 | $ if f$search("f.*") .nes "" then delete f.*;* | ||
21 | $ convert/fdl=sys$input: 't' fff.p | ||
22 | RECORD | ||
23 | FORMAT STREAM_LF | ||
24 | $ | ||
25 | $ write sys$output "p -> d" | ||
26 | $ 'cmd' -in fff.p -inform p -outform d -out f.d | ||
27 | $ if $severity .ne. 1 then exit 3 | ||
28 | $! write sys$output "p -> t" | ||
29 | $! 'cmd' -in fff.p -inform p -outform t -out f.t | ||
30 | $! if $severity .ne. 1 then exit 3 | ||
31 | $ write sys$output "p -> p" | ||
32 | $ 'cmd' -in fff.p -inform p -outform p -out f.p | ||
33 | $ if $severity .ne. 1 then exit 3 | ||
34 | $ | ||
35 | $ write sys$output "d -> d" | ||
36 | $ 'cmd' -in f.d -inform d -outform d -out ff.d1 | ||
37 | $ if $severity .ne. 1 then exit 3 | ||
38 | $! write sys$output "t -> d" | ||
39 | $! 'cmd' -in f.t -inform t -outform d -out ff.d2 | ||
40 | $! if $severity .ne. 1 then exit 3 | ||
41 | $ write sys$output "p -> d" | ||
42 | $ 'cmd' -in f.p -inform p -outform d -out ff.d3 | ||
43 | $ if $severity .ne. 1 then exit 3 | ||
44 | $ | ||
45 | $! write sys$output "d -> t" | ||
46 | $! 'cmd' -in f.d -inform d -outform t -out ff.t1 | ||
47 | $! if $severity .ne. 1 then exit 3 | ||
48 | $! write sys$output "t -> t" | ||
49 | $! 'cmd' -in f.t -inform t -outform t -out ff.t2 | ||
50 | $! if $severity .ne. 1 then exit 3 | ||
51 | $! write sys$output "p -> t" | ||
52 | $! 'cmd' -in f.p -inform p -outform t -out ff.t3 | ||
53 | $! if $severity .ne. 1 then exit 3 | ||
54 | $ | ||
55 | $ write sys$output "d -> p" | ||
56 | $ 'cmd' -in f.d -inform d -outform p -out ff.p1 | ||
57 | $ if $severity .ne. 1 then exit 3 | ||
58 | $! write sys$output "t -> p" | ||
59 | $! 'cmd' -in f.t -inform t -outform p -out ff.p2 | ||
60 | $! if $severity .ne. 1 then exit 3 | ||
61 | $ write sys$output "p -> p" | ||
62 | $ 'cmd' -in f.p -inform p -outform p -out ff.p3 | ||
63 | $ if $severity .ne. 1 then exit 3 | ||
64 | $ | ||
65 | $ backup/compare fff.p f.p | ||
66 | $ if $severity .ne. 1 then exit 3 | ||
67 | $ backup/compare fff.p ff.p1 | ||
68 | $ if $severity .ne. 1 then exit 3 | ||
69 | $! backup/compare fff.p ff.p2 | ||
70 | $! if $severity .ne. 1 then exit 3 | ||
71 | $ backup/compare fff.p ff.p3 | ||
72 | $ if $severity .ne. 1 then exit 3 | ||
73 | $ | ||
74 | $! backup/compare f.t ff.t1 | ||
75 | $! if $severity .ne. 1 then exit 3 | ||
76 | $! backup/compare f.t ff.t2 | ||
77 | $! if $severity .ne. 1 then exit 3 | ||
78 | $! backup/compare f.t ff.t3 | ||
79 | $! if $severity .ne. 1 then exit 3 | ||
80 | $ | ||
81 | $ backup/compare f.p ff.p1 | ||
82 | $ if $severity .ne. 1 then exit 3 | ||
83 | $! backup/compare f.p ff.p2 | ||
84 | $! if $severity .ne. 1 then exit 3 | ||
85 | $ backup/compare f.p ff.p3 | ||
86 | $ if $severity .ne. 1 then exit 3 | ||
87 | $ | ||
88 | $ delete f.*;*,ff.*;*,fff.*;* | ||
diff --git a/src/lib/libssl/src/test/testca.com b/src/lib/libssl/src/test/testca.com deleted file mode 100644 index 78cda9ec5a..0000000000 --- a/src/lib/libssl/src/test/testca.com +++ /dev/null | |||
@@ -1,52 +0,0 @@ | |||
1 | $! TESTCA.COM | ||
2 | $ | ||
3 | $ __arch = "VAX" | ||
4 | $ if f$getsyi("cpu") .ge. 128 then - | ||
5 | __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") | ||
6 | $ if __arch .eqs. "" then __arch = "UNK" | ||
7 | $! | ||
8 | $ if (p1 .eqs. "64") then __arch = __arch+ "_64" | ||
9 | $ | ||
10 | $ openssl = "mcr ''exe_dir'openssl" | ||
11 | $ | ||
12 | $ SSLEAY_CONFIG="-config ""CAss.cnf""" | ||
13 | $ | ||
14 | $ set noon | ||
15 | $ if f$search("demoCA.dir") .nes. "" | ||
16 | $ then | ||
17 | $ @[-.util]deltree [.demoCA]*.* | ||
18 | $ set file/prot=(S:RWED,O:RWED,G:RWED,W:RWED) demoCA.dir;* | ||
19 | $ delete demoCA.dir;* | ||
20 | $ endif | ||
21 | $ set on | ||
22 | $ open/read sys$ca_input VMSca-response.1 | ||
23 | $ @[-.apps]CA.com -input sys$ca_input -newca | ||
24 | $ close sys$ca_input | ||
25 | $ if $severity .ne. 1 then exit 3 | ||
26 | $ | ||
27 | $ | ||
28 | $ SSLEAY_CONFIG="-config ""Uss.cnf""" | ||
29 | $ @[-.apps]CA.com -newreq | ||
30 | $ if $severity .ne. 1 then exit 3 | ||
31 | $ | ||
32 | $ | ||
33 | $ SSLEAY_CONFIG="-config [-.apps]openssl-vms.cnf" | ||
34 | $ open/read sys$ca_input VMSca-response.2 | ||
35 | $ @[-.apps]CA.com -input sys$ca_input -sign | ||
36 | $ close sys$ca_input | ||
37 | $ if $severity .ne. 1 then exit 3 | ||
38 | $ | ||
39 | $ | ||
40 | $ @[-.apps]CA.com -verify newcert.pem | ||
41 | $ if $severity .ne. 1 then exit 3 | ||
42 | $ | ||
43 | $ set noon | ||
44 | $ @[-.util]deltree [.demoCA]*.* | ||
45 | $ set file/prot=(S:RWED,O:RWED,G:RWED,W:RWED) demoCA.dir;* | ||
46 | $ delete demoCA.dir;* | ||
47 | $ if f$search("newcert.pem") .nes. "" then delete newcert.pem;* | ||
48 | $ if f$search("newcert.pem") .nes. "" then delete newreq.pem;* | ||
49 | $ set on | ||
50 | $! #usage: CA -newcert|-newreq|-newca|-sign|-verify | ||
51 | $ | ||
52 | $ exit | ||
diff --git a/src/lib/libssl/src/test/testenc.com b/src/lib/libssl/src/test/testenc.com deleted file mode 100644 index 75acd6f07f..0000000000 --- a/src/lib/libssl/src/test/testenc.com +++ /dev/null | |||
@@ -1,66 +0,0 @@ | |||
1 | $! TESTENC.COM -- Test encoding and decoding | ||
2 | $ | ||
3 | $ __arch = "VAX" | ||
4 | $ if f$getsyi("cpu") .ge. 128 then - | ||
5 | __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") | ||
6 | $ if __arch .eqs. "" then __arch = "UNK" | ||
7 | $! | ||
8 | $ if (p1 .eqs. 64) then __arch = __arch+ "_64" | ||
9 | $ | ||
10 | $ exe_dir = "sys$disk:[-.''__arch'.exe.apps]" | ||
11 | $ testsrc = "makefile." | ||
12 | $ test = "p.txt" | ||
13 | $ cmd = "mcr ''exe_dir'openssl" | ||
14 | $ | ||
15 | $ if f$search(test) .nes. "" then delete 'test';* | ||
16 | $ convert/fdl=sys$input: 'testsrc' 'test' | ||
17 | RECORD | ||
18 | FORMAT STREAM_LF | ||
19 | $ | ||
20 | $ if f$search(test+"-cipher") .nes. "" then delete 'test'-cipher;* | ||
21 | $ if f$search(test+"-clear") .nes. "" then delete 'test'-clear;* | ||
22 | $ | ||
23 | $ write sys$output "cat" | ||
24 | $ 'cmd' enc -in 'test' -out 'test'-cipher | ||
25 | $ 'cmd' enc -in 'test'-cipher -out 'test'-clear | ||
26 | $ backup/compare 'test' 'test'-clear | ||
27 | $ if $severity .ne. 1 then exit 3 | ||
28 | $ delete 'test'-cipher;*,'test'-clear;* | ||
29 | $ | ||
30 | $ write sys$output "base64" | ||
31 | $ 'cmd' enc -a -e -in 'test' -out 'test'-cipher | ||
32 | $ 'cmd' enc -a -d -in 'test'-cipher -out 'test'-clear | ||
33 | $ backup/compare 'test' 'test'-clear | ||
34 | $ if $severity .ne. 1 then exit 3 | ||
35 | $ delete 'test'-cipher;*,'test'-clear;* | ||
36 | $ | ||
37 | $ define/user sys$output 'test'-cipher-commands | ||
38 | $ 'cmd' list-cipher-commands | ||
39 | $ open/read f 'test'-cipher-commands | ||
40 | $ loop_cipher_commands: | ||
41 | $ read/end=loop_cipher_commands_end f i | ||
42 | $ write sys$output i | ||
43 | $ | ||
44 | $ if f$search(test+"-"+i+"-cipher") .nes. "" then - | ||
45 | delete 'test'-'i'-cipher;* | ||
46 | $ if f$search(test+"-"+i+"-clear") .nes. "" then - | ||
47 | delete 'test'-'i'-clear;* | ||
48 | $ | ||
49 | $ 'cmd' 'i' -bufsize 113 -e -k test -in 'test' -out 'test'-'i'-cipher | ||
50 | $ 'cmd' 'i' -bufsize 157 -d -k test -in 'test'-'i'-cipher -out 'test'-'i'-clear | ||
51 | $ backup/compare 'test' 'test'-'i'-clear | ||
52 | $ if $severity .ne. 1 then exit 3 | ||
53 | $ delete 'test'-'i'-cipher;*,'test'-'i'-clear;* | ||
54 | $ | ||
55 | $ write sys$output i," base64" | ||
56 | $ 'cmd' 'i' -bufsize 113 -a -e -k test -in 'test' -out 'test'-'i'-cipher | ||
57 | $ 'cmd' 'i' -bufsize 157 -a -d -k test -in 'test'-'i'-cipher -out 'test'-'i'-clear | ||
58 | $ backup/compare 'test' 'test'-'i'-clear | ||
59 | $ if $severity .ne. 1 then exit 3 | ||
60 | $ delete 'test'-'i'-cipher;*,'test'-'i'-clear;* | ||
61 | $ | ||
62 | $ goto loop_cipher_commands | ||
63 | $ loop_cipher_commands_end: | ||
64 | $ close f | ||
65 | $ delete 'test'-cipher-commands;* | ||
66 | $ delete 'test';* | ||
diff --git a/src/lib/libssl/src/test/testgen.com b/src/lib/libssl/src/test/testgen.com deleted file mode 100644 index e076da2f30..0000000000 --- a/src/lib/libssl/src/test/testgen.com +++ /dev/null | |||
@@ -1,58 +0,0 @@ | |||
1 | $! TESTGEN.COM | ||
2 | $ | ||
3 | $ __arch = "VAX" | ||
4 | $ if f$getsyi("cpu") .ge. 128 then - | ||
5 | __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") | ||
6 | $ if __arch .eqs. "" then __arch = "UNK" | ||
7 | $ if (p1 .eqs. 64) then __arch = __arch+ "_64" | ||
8 | $ exe_dir = "sys$disk:[-.''__arch'.exe.apps]" | ||
9 | $ | ||
10 | $ T = "testcert" | ||
11 | $ KEY = 512 | ||
12 | $ CA = "[-.certs]testca.pem" | ||
13 | $ | ||
14 | $ set noon | ||
15 | $ if f$search(T+".1;*") .nes. "" then delete 'T'.1;* | ||
16 | $ if f$search(T+".2;*") .nes. "" then delete 'T'.2;* | ||
17 | $ if f$search(T+".key;*") .nes. "" then delete 'T'.key;* | ||
18 | $ set on | ||
19 | $ | ||
20 | $ write sys$output "generating certificate request" | ||
21 | $ | ||
22 | $ append/new nl: .rnd | ||
23 | $ open/append random_file .rnd | ||
24 | $ write random_file - | ||
25 | "string to make the random number generator think it has entropy" | ||
26 | $ close random_file | ||
27 | $ | ||
28 | $ set noon | ||
29 | $ define/user sys$output nla0: | ||
30 | $ mcr 'exe_dir'openssl no-rsa | ||
31 | $ save_severity=$SEVERITY | ||
32 | $ set on | ||
33 | $ if save_severity | ||
34 | $ then | ||
35 | $ req_new="-newkey dsa:[-.apps]dsa512.pem" | ||
36 | $ else | ||
37 | $ req_new="-new" | ||
38 | $ write sys$output - | ||
39 | "There should be a 2 sequences of .'s and some +'s." | ||
40 | $ write sys$output - | ||
41 | "There should not be more that at most 80 per line" | ||
42 | $ endif | ||
43 | $ | ||
44 | $ write sys$output "This could take some time." | ||
45 | $ | ||
46 | $ mcr 'exe_dir'openssl req -config test.cnf 'req_new' -out testreq.pem | ||
47 | $ if $severity .ne. 1 | ||
48 | $ then | ||
49 | $ write sys$output "problems creating request" | ||
50 | $ exit 3 | ||
51 | $ endif | ||
52 | $ | ||
53 | $ mcr 'exe_dir'openssl req -config test.cnf -verify -in testreq.pem -noout | ||
54 | $ if $severity .ne. 1 | ||
55 | $ then | ||
56 | $ write sys$output "signature on req is wrong" | ||
57 | $ exit 3 | ||
58 | $ endif | ||
diff --git a/src/lib/libssl/src/test/tests.com b/src/lib/libssl/src/test/tests.com deleted file mode 100644 index a840d5078f..0000000000 --- a/src/lib/libssl/src/test/tests.com +++ /dev/null | |||
@@ -1,375 +0,0 @@ | |||
1 | $! TESTS.COM -- Performs the necessary tests | ||
2 | $! | ||
3 | $! P1 tests to be performed. Empty means all. | ||
4 | $! P2 Pointer size: "", "32", or "64". | ||
5 | $! | ||
6 | $! Announce/identify. | ||
7 | $! | ||
8 | $ proc = f$environment( "procedure") | ||
9 | $ write sys$output "@@@ "+ - | ||
10 | f$parse( proc, , , "name")+ f$parse( proc, , , "type") | ||
11 | $! | ||
12 | $ __proc = f$element(0,";",f$environment("procedure")) | ||
13 | $ __here = f$parse(f$parse("A.;",__proc) - "A.;","[]A.;") - "A.;" | ||
14 | $ __save_default = f$environment("default") | ||
15 | $ __arch = "VAX" | ||
16 | $ if f$getsyi("cpu") .ge. 128 then - | ||
17 | __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") | ||
18 | $ if __arch .eqs. "" then __arch = "UNK" | ||
19 | $! | ||
20 | $ __archd = __arch | ||
21 | $ pointer_size = "" | ||
22 | $ if (p2 .eq. "64") | ||
23 | $ then | ||
24 | $ pointer_size = "64" | ||
25 | $ __archd = __arch+ "_64" | ||
26 | $ endif | ||
27 | $! | ||
28 | $ texe_dir := sys$disk:[-.'__archd'.exe.test] | ||
29 | $ exe_dir := sys$disk:[-.'__archd'.exe.apps] | ||
30 | $ | ||
31 | $ set default '__here' | ||
32 | $ | ||
33 | $ ROOT = F$PARSE("sys$disk:[-]A.;0",,,,"SYNTAX_ONLY,NO_CONCEAL") - "A.;0" | ||
34 | $ ROOT_DEV = F$PARSE(ROOT,,,"DEVICE","SYNTAX_ONLY") | ||
35 | $ ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") - | ||
36 | - ".][000000" - "[000000." - "][" - "[" - "]" | ||
37 | $ ROOT = ROOT_DEV + "[" + ROOT_DIR | ||
38 | $ DEFINE/NOLOG SSLROOT 'ROOT'.APPS.] /TRANS=CONC | ||
39 | $ openssl_conf := sslroot:[000000]openssl-vms.cnf | ||
40 | $ | ||
41 | $ on control_y then goto exit | ||
42 | $ on error then goto exit | ||
43 | $ | ||
44 | $ if p1 .nes. "" | ||
45 | $ then | ||
46 | $ tests = p1 | ||
47 | $ else | ||
48 | $! NOTE: This list reflects the list of dependencies following the | ||
49 | $! "alltests" target in Makefile. This should make it easy to see | ||
50 | $! if there's a difference that needs to be taken care of. | ||
51 | $ tests := - | ||
52 | test_des,test_idea,test_sha,test_md4,test_md5,test_hmac,- | ||
53 | test_md2,test_mdc2,test_wp,- | ||
54 | test_rmd,test_rc2,test_rc4,test_rc5,test_bf,test_cast,test_aes,- | ||
55 | test_rand,test_bn,test_ec,test_ecdsa,test_ecdh,- | ||
56 | test_enc,test_x509,test_rsa,test_crl,test_sid,- | ||
57 | test_gen,test_req,test_pkcs7,test_verify,test_dh,test_dsa,- | ||
58 | test_ss,test_ca,test_engine,test_evp,test_ssl,test_tsa,test_ige,- | ||
59 | test_jpake,test_srp,test_cms | ||
60 | $ endif | ||
61 | $ tests = f$edit(tests,"COLLAPSE") | ||
62 | $ | ||
63 | $ BNTEST := bntest | ||
64 | $ ECTEST := ectest | ||
65 | $ ECDSATEST := ecdsatest | ||
66 | $ ECDHTEST := ecdhtest | ||
67 | $ EXPTEST := exptest | ||
68 | $ IDEATEST := ideatest | ||
69 | $ SHATEST := shatest | ||
70 | $ SHA1TEST := sha1test | ||
71 | $ SHA256TEST := sha256t | ||
72 | $ SHA512TEST := sha512t | ||
73 | $ MDC2TEST := mdc2test | ||
74 | $ RMDTEST := rmdtest | ||
75 | $ MD2TEST := md2test | ||
76 | $ MD4TEST := md4test | ||
77 | $ MD5TEST := md5test | ||
78 | $ HMACTEST := hmactest | ||
79 | $ WPTEST := wp_test | ||
80 | $ RC2TEST := rc2test | ||
81 | $ RC4TEST := rc4test | ||
82 | $ RC5TEST := rc5test | ||
83 | $ BFTEST := bftest | ||
84 | $ CASTTEST := casttest | ||
85 | $ DESTEST := destest | ||
86 | $ RANDTEST := randtest | ||
87 | $ DHTEST := dhtest | ||
88 | $ DSATEST := dsatest | ||
89 | $ METHTEST := methtest | ||
90 | $ SSLTEST := ssltest | ||
91 | $ RSATEST := rsa_test | ||
92 | $ ENGINETEST := enginetest | ||
93 | $ EVPTEST := evp_test | ||
94 | $ IGETEST := igetest | ||
95 | $ JPAKETEST := jpaketest | ||
96 | $ SRPTEST := srptest | ||
97 | $ ASN1TEST := asn1test | ||
98 | $! | ||
99 | $ tests_i = 0 | ||
100 | $ loop_tests: | ||
101 | $ tests_e = f$element(tests_i,",",tests) | ||
102 | $ tests_i = tests_i + 1 | ||
103 | $ if tests_e .eqs. "," then goto exit | ||
104 | $ write sys$output "---> ''tests_e'" | ||
105 | $ gosub 'tests_e' | ||
106 | $ goto loop_tests | ||
107 | $ | ||
108 | $ test_evp: | ||
109 | $ mcr 'texe_dir''evptest' 'ROOT'.CRYPTO.EVP]evptests.txt | ||
110 | $ return | ||
111 | $ test_des: | ||
112 | $ mcr 'texe_dir''destest' | ||
113 | $ return | ||
114 | $ test_idea: | ||
115 | $ mcr 'texe_dir''ideatest' | ||
116 | $ return | ||
117 | $ test_sha: | ||
118 | $ mcr 'texe_dir''shatest' | ||
119 | $ mcr 'texe_dir''sha1test' | ||
120 | $ mcr 'texe_dir''sha256test' | ||
121 | $ mcr 'texe_dir''sha512test' | ||
122 | $ return | ||
123 | $ test_mdc2: | ||
124 | $ mcr 'texe_dir''mdc2test' | ||
125 | $ return | ||
126 | $ test_md5: | ||
127 | $ mcr 'texe_dir''md5test' | ||
128 | $ return | ||
129 | $ test_md4: | ||
130 | $ mcr 'texe_dir''md4test' | ||
131 | $ return | ||
132 | $ test_hmac: | ||
133 | $ mcr 'texe_dir''hmactest' | ||
134 | $ return | ||
135 | $ test_wp: | ||
136 | $ mcr 'texe_dir''wptest' | ||
137 | $ return | ||
138 | $ test_md2: | ||
139 | $ mcr 'texe_dir''md2test' | ||
140 | $ return | ||
141 | $ test_rmd: | ||
142 | $ mcr 'texe_dir''rmdtest' | ||
143 | $ return | ||
144 | $ test_bf: | ||
145 | $ mcr 'texe_dir''bftest' | ||
146 | $ return | ||
147 | $ test_cast: | ||
148 | $ mcr 'texe_dir''casttest' | ||
149 | $ return | ||
150 | $ test_rc2: | ||
151 | $ mcr 'texe_dir''rc2test' | ||
152 | $ return | ||
153 | $ test_rc4: | ||
154 | $ mcr 'texe_dir''rc4test' | ||
155 | $ return | ||
156 | $ test_rc5: | ||
157 | $ mcr 'texe_dir''rc5test' | ||
158 | $ return | ||
159 | $ test_rand: | ||
160 | $ mcr 'texe_dir''randtest' | ||
161 | $ return | ||
162 | $ test_enc: | ||
163 | $ @testenc.com 'pointer_size' | ||
164 | $ return | ||
165 | $ test_x509: | ||
166 | $ set noon | ||
167 | $ define sys$error test_x509.err | ||
168 | $ write sys$output "test normal x509v1 certificate" | ||
169 | $ @tx509.com "" 'pointer_size' | ||
170 | $ write sys$output "test first x509v3 certificate" | ||
171 | $ @tx509.com v3-cert1.pem 'pointer_size' | ||
172 | $ write sys$output "test second x509v3 certificate" | ||
173 | $ @tx509.com v3-cert2.pem 'pointer_size' | ||
174 | $ deassign sys$error | ||
175 | $ set on | ||
176 | $ return | ||
177 | $ test_rsa: | ||
178 | $ set noon | ||
179 | $ define sys$error test_rsa.err | ||
180 | $ @trsa.com "" 'pointer_size' | ||
181 | $ deassign sys$error | ||
182 | $ mcr 'texe_dir''rsatest' | ||
183 | $ set on | ||
184 | $ return | ||
185 | $ test_crl: | ||
186 | $ set noon | ||
187 | $ define sys$error test_crl.err | ||
188 | $ @tcrl.com "" 'pointer_size' | ||
189 | $ deassign sys$error | ||
190 | $ set on | ||
191 | $ return | ||
192 | $ test_sid: | ||
193 | $ set noon | ||
194 | $ define sys$error test_sid.err | ||
195 | $ @tsid.com "" 'pointer_size' | ||
196 | $ deassign sys$error | ||
197 | $ set on | ||
198 | $ return | ||
199 | $ test_req: | ||
200 | $ set noon | ||
201 | $ define sys$error test_req.err | ||
202 | $ @treq.com "" 'pointer_size' | ||
203 | $ @treq.com testreq2.pem 'pointer_size' | ||
204 | $ deassign sys$error | ||
205 | $ set on | ||
206 | $ return | ||
207 | $ test_pkcs7: | ||
208 | $ set noon | ||
209 | $ define sys$error test_pkcs7.err | ||
210 | $ @tpkcs7.com "" 'pointer_size' | ||
211 | $ @tpkcs7d.com "" 'pointer_size' | ||
212 | $ deassign sys$error | ||
213 | $ set on | ||
214 | $ return | ||
215 | $ test_bn: | ||
216 | $ write sys$output - | ||
217 | "starting big number library test, could take a while..." | ||
218 | $ set noon | ||
219 | $ define sys$error test_bn.err | ||
220 | $ define sys$output test_bn.out | ||
221 | $ @ bctest.com | ||
222 | $ status = $status | ||
223 | $ deassign sys$error | ||
224 | $ deassign sys$output | ||
225 | $ set on | ||
226 | $ if (status) | ||
227 | $ then | ||
228 | $ create /fdl = sys$input bntest-vms.tmp | ||
229 | FILE | ||
230 | ORGANIZATION sequential | ||
231 | RECORD | ||
232 | FORMAT stream_lf | ||
233 | $ define /user_mode sys$output bntest-vms.tmp | ||
234 | $ mcr 'texe_dir''bntest' | ||
235 | $ define /user_mode sys$input bntest-vms.tmp | ||
236 | $ define /user_mode sys$output bntest-vms.out | ||
237 | $ bc | ||
238 | $ @ bntest.com bntest-vms.out | ||
239 | $ status = $status | ||
240 | $ if (status) | ||
241 | $ then | ||
242 | $ delete bntest-vms.out;* | ||
243 | $ delete bntest-vms.tmp;* | ||
244 | $ endif | ||
245 | $ else | ||
246 | $ create /fdl = sys$input bntest-vms.sh | ||
247 | FILE | ||
248 | ORGANIZATION sequential | ||
249 | RECORD | ||
250 | FORMAT stream_lf | ||
251 | $ open /append bntest_file bntest-vms.sh | ||
252 | $ type /output = bntest_file sys$input: | ||
253 | << __FOO__ sh -c "`sh ./bctest`" | perl -e '$i=0; while (<STDIN>) {if (/^test (.*)/) {print STDERR "\nverify $1";} elsif (!/^0$/) {die "\nFailed! bc: $_";} else {print STDERR "."; $i++;}} print STDERR "\n$i tests passed\n"' | ||
254 | $ define /user_mode sys$output bntest-vms.tmp | ||
255 | $ mcr 'texe_dir''bntest' | ||
256 | $ copy bntest-vms.tmp bntest_file | ||
257 | $ delete bntest-vms.tmp;* | ||
258 | $ type /output = bntest_file sys$input: | ||
259 | __FOO__ | ||
260 | $ close bntest_file | ||
261 | $ write sys$output "-- copy the [.test]bntest-vms.sh and [.test]bctest files to a Unix system and" | ||
262 | $ write sys$output "-- run bntest-vms.sh through sh or bash to verify that the bignum operations" | ||
263 | $ write sys$output "-- went well." | ||
264 | $ write sys$output "" | ||
265 | $ endif | ||
266 | $ write sys$output "test a^b%c implementations" | ||
267 | $ mcr 'texe_dir''exptest' | ||
268 | $ return | ||
269 | $ test_ec: | ||
270 | $ write sys$output "test elliptic curves" | ||
271 | $ mcr 'texe_dir''ectest' | ||
272 | $ return | ||
273 | $ test_ecdsa: | ||
274 | $ write sys$output "test ecdsa" | ||
275 | $ mcr 'texe_dir''ecdsatest' | ||
276 | $ return | ||
277 | $ test_ecdh: | ||
278 | $ write sys$output "test ecdh" | ||
279 | $ mcr 'texe_dir''ecdhtest' | ||
280 | $ return | ||
281 | $ test_verify: | ||
282 | $ write sys$output "The following command should have some OK's and some failures" | ||
283 | $ write sys$output "There are definitly a few expired certificates" | ||
284 | $ @tverify.com 'pointer_size' | ||
285 | $ return | ||
286 | $ test_dh: | ||
287 | $ write sys$output "Generate a set of DH parameters" | ||
288 | $ mcr 'texe_dir''dhtest' | ||
289 | $ return | ||
290 | $ test_dsa: | ||
291 | $ write sys$output "Generate a set of DSA parameters" | ||
292 | $ mcr 'texe_dir''dsatest' | ||
293 | $ return | ||
294 | $ test_gen: | ||
295 | $ write sys$output "Generate and verify a certificate request" | ||
296 | $ @testgen.com 'pointer_size' | ||
297 | $ return | ||
298 | $ maybe_test_ss: | ||
299 | $ testss_RDT = f$cvtime(f$file_attributes("testss.com","RDT")) | ||
300 | $ if f$cvtime(f$file_attributes("keyU.ss","RDT")) .les. testss_RDT then - | ||
301 | goto test_ss | ||
302 | $ if f$cvtime(f$file_attributes("certU.ss","RDT")) .les. testss_RDT then - | ||
303 | goto test_ss | ||
304 | $ if f$cvtime(f$file_attributes("certCA.ss","RDT")) .les. testss_RDT then - | ||
305 | goto test_ss | ||
306 | $ return | ||
307 | $ test_ss: | ||
308 | $ write sys$output "Generate and certify a test certificate" | ||
309 | $ @testss.com 'pointer_size' | ||
310 | $ return | ||
311 | $ test_engine: | ||
312 | $ write sys$output "Manipulate the ENGINE structures" | ||
313 | $ mcr 'texe_dir''enginetest' | ||
314 | $ return | ||
315 | $ test_ssl: | ||
316 | $ write sys$output "test SSL protocol" | ||
317 | $ gosub maybe_test_ss | ||
318 | $ @testssl.com keyU.ss certU.ss certCA.ss 'pointer_size' | ||
319 | $ return | ||
320 | $ test_ca: | ||
321 | $ set noon | ||
322 | $ define /user_mode sys$output test_ca.out | ||
323 | $ mcr 'exe_dir'openssl no-rsa | ||
324 | $ save_severity=$SEVERITY | ||
325 | $ set on | ||
326 | $ if save_severity | ||
327 | $ then | ||
328 | $ write sys$output "skipping CA.com test -- requires RSA" | ||
329 | $ else | ||
330 | $ write sys$output "Generate and certify a test certificate via the 'ca' program" | ||
331 | $ @testca.com 'pointer_size' | ||
332 | $ endif | ||
333 | $ return | ||
334 | $ test_aes: | ||
335 | $! write sys$output "test AES" | ||
336 | $! !mcr 'texe_dir''aestest' | ||
337 | $ return | ||
338 | $ test_tsa: | ||
339 | $ set noon | ||
340 | $ define /user_mode sys$output nla0: | ||
341 | $ mcr 'exe_dir'openssl no-rsa | ||
342 | $ save_severity=$SEVERITY | ||
343 | $ set on | ||
344 | $ if save_severity | ||
345 | $ then | ||
346 | $ write sys$output "skipping testtsa.com test -- requires RSA" | ||
347 | $ else | ||
348 | $ @testtsa.com "" "" "" 'pointer_size' | ||
349 | $ endif | ||
350 | $ return | ||
351 | $ test_ige: | ||
352 | $ write sys$output "Test IGE mode" | ||
353 | $ mcr 'texe_dir''igetest' | ||
354 | $ return | ||
355 | $ test_jpake: | ||
356 | $ write sys$output "Test JPAKE" | ||
357 | $ mcr 'texe_dir''jpaketest' | ||
358 | $ return | ||
359 | $ test_cms: | ||
360 | $ write sys$output "CMS consistency test" | ||
361 | $ ! Define the logical name used to find openssl.exe in the perl script. | ||
362 | $ define /user_mode osslx 'exe_dir' | ||
363 | $ perl CMS-TEST.PL | ||
364 | $ return | ||
365 | $ test_srp: | ||
366 | $ write sys$output "Test SRP" | ||
367 | $ mcr 'texe_dir''srptest' | ||
368 | $ return | ||
369 | $ | ||
370 | $ | ||
371 | $ exit: | ||
372 | $ mcr 'exe_dir'openssl version -a | ||
373 | $ set default '__save_default' | ||
374 | $ deassign sslroot | ||
375 | $ exit | ||
diff --git a/src/lib/libssl/src/test/testss.com b/src/lib/libssl/src/test/testss.com deleted file mode 100644 index 32a74d0fc2..0000000000 --- a/src/lib/libssl/src/test/testss.com +++ /dev/null | |||
@@ -1,123 +0,0 @@ | |||
1 | $! TESTSS.COM | ||
2 | $ | ||
3 | $ __arch = "VAX" | ||
4 | $ if f$getsyi("cpu") .ge. 128 then - | ||
5 | __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") | ||
6 | $ if __arch .eqs. "" then __arch = "UNK" | ||
7 | $! | ||
8 | $ if (p1 .eqs. "64") then __arch = __arch+ "_64" | ||
9 | $! | ||
10 | $ exe_dir = "sys$disk:[-.''__arch'.exe.apps]" | ||
11 | $ | ||
12 | $ digest="-md5" | ||
13 | $ reqcmd = "mcr ''exe_dir'openssl req" | ||
14 | $ x509cmd = "mcr ''exe_dir'openssl x509 ''digest'" | ||
15 | $ verifycmd = "mcr ''exe_dir'openssl verify" | ||
16 | $ dummycnf = "sys$disk:[-.apps]openssl-vms.cnf" | ||
17 | $ | ||
18 | $ CAkey="""keyCA.ss""" | ||
19 | $ CAcert="""certCA.ss""" | ||
20 | $ CAreq="""reqCA.ss""" | ||
21 | $ CAconf="""CAss.cnf""" | ||
22 | $ CAreq2="""req2CA.ss""" ! temp | ||
23 | $ | ||
24 | $ Uconf="""Uss.cnf""" | ||
25 | $ Ukey="""keyU.ss""" | ||
26 | $ Ureq="""reqU.ss""" | ||
27 | $ Ucert="""certU.ss""" | ||
28 | $ | ||
29 | $ write sys$output "" | ||
30 | $ write sys$output "make a certificate request using 'req'" | ||
31 | $ | ||
32 | $ set noon | ||
33 | $ define/user sys$output nla0: | ||
34 | $ mcr 'exe_dir'openssl no-rsa | ||
35 | $ save_severity=$SEVERITY | ||
36 | $ set on | ||
37 | $ if save_severity | ||
38 | $ then | ||
39 | $ req_new="-newkey dsa:[-.apps]dsa512.pem" | ||
40 | $ else | ||
41 | $ req_new="-new" | ||
42 | $ endif | ||
43 | $ | ||
44 | $ 'reqcmd' -config 'CAconf' -out 'CAreq' -keyout 'CAkey' 'req_new' ! -out err.ss | ||
45 | $ if $severity .ne. 1 | ||
46 | $ then | ||
47 | $ write sys$output "error using 'req' to generate a certificate request" | ||
48 | $ exit 3 | ||
49 | $ endif | ||
50 | $ write sys$output "" | ||
51 | $ write sys$output "convert the certificate request into a self signed certificate using 'x509'" | ||
52 | $ define /user sys$output err.ss | ||
53 | $ 'x509cmd' "-CAcreateserial" -in 'CAreq' -days 30 -req -out 'CAcert' -signkey 'CAkey' | ||
54 | $ if $severity .ne. 1 | ||
55 | $ then | ||
56 | $ write sys$output "error using 'x509' to self sign a certificate request" | ||
57 | $ exit 3 | ||
58 | $ endif | ||
59 | $ | ||
60 | $ write sys$output "" | ||
61 | $ write sys$output "convert a certificate into a certificate request using 'x509'" | ||
62 | $ define /user sys$output err.ss | ||
63 | $ 'x509cmd' -in 'CAcert' -x509toreq -signkey 'CAkey' -out 'CAreq2' | ||
64 | $ if $severity .ne. 1 | ||
65 | $ then | ||
66 | $ write sys$output "error using 'x509' convert a certificate to a certificate request" | ||
67 | $ exit 3 | ||
68 | $ endif | ||
69 | $ | ||
70 | $ 'reqcmd' -config 'dummycnf' -verify -in 'CAreq' -noout | ||
71 | $ if $severity .ne. 1 | ||
72 | $ then | ||
73 | $ write sys$output "first generated request is invalid" | ||
74 | $ exit 3 | ||
75 | $ endif | ||
76 | $ | ||
77 | $ 'reqcmd' -config 'dummycnf' -verify -in 'CAreq2' -noout | ||
78 | $ if $severity .ne. 1 | ||
79 | $ then | ||
80 | $ write sys$output "second generated request is invalid" | ||
81 | $ exit 3 | ||
82 | $ endif | ||
83 | $ | ||
84 | $ 'verifycmd' "-CAfile" 'CAcert' 'CAcert' | ||
85 | $ if $severity .ne. 1 | ||
86 | $ then | ||
87 | $ write sys$output "first generated cert is invalid" | ||
88 | $ exit 3 | ||
89 | $ endif | ||
90 | $ | ||
91 | $ write sys$output "" | ||
92 | $ write sys$output "make another certificate request using 'req'" | ||
93 | $ define /user sys$output err.ss | ||
94 | $ 'reqcmd' -config 'Uconf' -out 'Ureq' -keyout 'Ukey' 'req_new' | ||
95 | $ if $severity .ne. 1 | ||
96 | $ then | ||
97 | $ write sys$output "error using 'req' to generate a certificate request" | ||
98 | $ exit 3 | ||
99 | $ endif | ||
100 | $ | ||
101 | $ write sys$output "" | ||
102 | $ write sys$output "sign certificate request with the just created CA via 'x509'" | ||
103 | $ define /user sys$output err.ss | ||
104 | $ 'x509cmd' "-CAcreateserial" -in 'Ureq' -days 30 -req -out 'Ucert' "-CA" 'CAcert' "-CAkey" 'CAkey' | ||
105 | $ if $severity .ne. 1 | ||
106 | $ then | ||
107 | $ write sys$output "error using 'x509' to sign a certificate request" | ||
108 | $ exit 3 | ||
109 | $ endif | ||
110 | $ | ||
111 | $ 'verifycmd' "-CAfile" 'CAcert' 'Ucert' | ||
112 | $ write sys$output "" | ||
113 | $ write sys$output "Certificate details" | ||
114 | $ 'x509cmd' -subject -issuer -startdate -enddate -noout -in 'Ucert' | ||
115 | $ | ||
116 | $ write sys$output "" | ||
117 | $ write sys$output "The generated CA certificate is ",CAcert | ||
118 | $ write sys$output "The generated CA private key is ",CAkey | ||
119 | $ | ||
120 | $ write sys$output "The generated user certificate is ",Ucert | ||
121 | $ write sys$output "The generated user private key is ",Ukey | ||
122 | $ | ||
123 | $ if f$search("err.ss;*") .nes. "" then delete err.ss;* | ||
diff --git a/src/lib/libssl/src/test/testssl b/src/lib/libssl/src/test/testssl index 5ae4dc8720..4e8542b556 100644 --- a/src/lib/libssl/src/test/testssl +++ b/src/lib/libssl/src/test/testssl | |||
@@ -119,6 +119,23 @@ $ssltest -bio_pair -server_auth -client_auth $CA $extra || exit 1 | |||
119 | echo test sslv2/sslv3 with both client and server authentication via BIO pair and app verify | 119 | echo test sslv2/sslv3 with both client and server authentication via BIO pair and app verify |
120 | $ssltest -bio_pair -server_auth -client_auth -app_verify $CA $extra || exit 1 | 120 | $ssltest -bio_pair -server_auth -client_auth -app_verify $CA $extra || exit 1 |
121 | 121 | ||
122 | echo "Testing ciphersuites" | ||
123 | for protocol in TLSv1.2 SSLv3; do | ||
124 | echo "Testing ciphersuites for $protocol" | ||
125 | for cipher in `../util/shlib_wrap.sh ../apps/openssl ciphers "RSA+$protocol" | tr ':' ' '`; do | ||
126 | echo "Testing $cipher" | ||
127 | prot="" | ||
128 | if [ $protocol = "SSLv3" ] ; then | ||
129 | prot="-ssl3" | ||
130 | fi | ||
131 | $ssltest -cipher $cipher $prot | ||
132 | if [ $? -ne 0 ] ; then | ||
133 | echo "Failed $cipher" | ||
134 | exit 1 | ||
135 | fi | ||
136 | done | ||
137 | done | ||
138 | |||
122 | ############################################################################# | 139 | ############################################################################# |
123 | 140 | ||
124 | if ../util/shlib_wrap.sh ../apps/openssl no-dh; then | 141 | if ../util/shlib_wrap.sh ../apps/openssl no-dh; then |
diff --git a/src/lib/libssl/src/test/testssl.com b/src/lib/libssl/src/test/testssl.com deleted file mode 100644 index f19edc4719..0000000000 --- a/src/lib/libssl/src/test/testssl.com +++ /dev/null | |||
@@ -1,208 +0,0 @@ | |||
1 | $! TESTSSL.COM | ||
2 | $ | ||
3 | $ __arch = "VAX" | ||
4 | $ if f$getsyi("cpu") .ge. 128 then - | ||
5 | __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") | ||
6 | $ if __arch .eqs. "" then __arch = "UNK" | ||
7 | $! | ||
8 | $ if (p4 .eqs. "64") then __arch = __arch+ "_64" | ||
9 | $! | ||
10 | $ texe_dir = "sys$disk:[-.''__arch'.exe.test]" | ||
11 | $ exe_dir = "sys$disk:[-.''__arch'.exe.apps]" | ||
12 | $ | ||
13 | $ if p1 .eqs. "" | ||
14 | $ then | ||
15 | $ key="[-.apps]server.pem" | ||
16 | $ else | ||
17 | $ key=p1 | ||
18 | $ endif | ||
19 | $ if p2 .eqs. "" | ||
20 | $ then | ||
21 | $ cert="[-.apps]server.pem" | ||
22 | $ else | ||
23 | $ cert=p2 | ||
24 | $ endif | ||
25 | $ ssltest = "mcr ''texe_dir'ssltest -key ''key'"+ - | ||
26 | " -cert ''cert' -c_key ''key' -c_cert ''cert'" | ||
27 | $! | ||
28 | $ set noon | ||
29 | $ define/user sys$output testssl-x509-output. | ||
30 | $ define/user sys$error nla0: | ||
31 | $ mcr 'exe_dir'openssl x509 -in 'cert' -text -noout | ||
32 | $ define/user sys$error nla0: | ||
33 | $ search/output=nla0: testssl-x509-output. "DSA Public Key"/exact | ||
34 | $ if $severity .eq. 1 | ||
35 | $ then | ||
36 | $ dsa_cert = "YES" | ||
37 | $ else | ||
38 | $ dsa_cert = "NO" | ||
39 | $ endif | ||
40 | $ delete testssl-x509-output.;* | ||
41 | $ | ||
42 | $ if p3 .eqs. "" | ||
43 | $ then | ||
44 | $ copy/concatenate [-.certs]*.pem certs.tmp | ||
45 | $ CA = """-CAfile"" certs.tmp" | ||
46 | $ else | ||
47 | $ CA = """-CAfile"" "+p3 | ||
48 | $ endif | ||
49 | $ | ||
50 | $!########################################################################### | ||
51 | $ | ||
52 | $ write sys$output "test sslv2" | ||
53 | $ 'ssltest' -ssl2 | ||
54 | $ if $severity .ne. 1 then goto exit3 | ||
55 | $ | ||
56 | $ write sys$output "test sslv2 with server authentication" | ||
57 | $ 'ssltest' -ssl2 -server_auth 'CA' | ||
58 | $ if $severity .ne. 1 then goto exit3 | ||
59 | $ | ||
60 | $ if .not. dsa_cert | ||
61 | $ then | ||
62 | $ write sys$output "test sslv2 with client authentication" | ||
63 | $ 'ssltest' -ssl2 -client_auth 'CA' | ||
64 | $ if $severity .ne. 1 then goto exit3 | ||
65 | $ | ||
66 | $ write sys$output "test sslv2 with both client and server authentication" | ||
67 | $ 'ssltest' -ssl2 -server_auth -client_auth 'CA' | ||
68 | $ if $severity .ne. 1 then goto exit3 | ||
69 | $ endif | ||
70 | $ | ||
71 | $ write sys$output "test sslv3" | ||
72 | $ 'ssltest' -ssl3 | ||
73 | $ if $severity .ne. 1 then goto exit3 | ||
74 | $ | ||
75 | $ write sys$output "test sslv3 with server authentication" | ||
76 | $ 'ssltest' -ssl3 -server_auth 'CA' | ||
77 | $ if $severity .ne. 1 then goto exit3 | ||
78 | $ | ||
79 | $ write sys$output "test sslv3 with client authentication" | ||
80 | $ 'ssltest' -ssl3 -client_auth 'CA' | ||
81 | $ if $severity .ne. 1 then goto exit3 | ||
82 | $ | ||
83 | $ write sys$output "test sslv3 with both client and server authentication" | ||
84 | $ 'ssltest' -ssl3 -server_auth -client_auth 'CA' | ||
85 | $ if $severity .ne. 1 then goto exit3 | ||
86 | $ | ||
87 | $ write sys$output "test sslv2/sslv3" | ||
88 | $ 'ssltest' | ||
89 | $ if $severity .ne. 1 then goto exit3 | ||
90 | $ | ||
91 | $ write sys$output "test sslv2/sslv3 with server authentication" | ||
92 | $ 'ssltest' -server_auth 'CA' | ||
93 | $ if $severity .ne. 1 then goto exit3 | ||
94 | $ | ||
95 | $ write sys$output "test sslv2/sslv3 with client authentication" | ||
96 | $ 'ssltest' -client_auth 'CA' | ||
97 | $ if $severity .ne. 1 then goto exit3 | ||
98 | $ | ||
99 | $ write sys$output "test sslv2/sslv3 with both client and server authentication" | ||
100 | $ 'ssltest' -server_auth -client_auth 'CA' | ||
101 | $ if $severity .ne. 1 then goto exit3 | ||
102 | $ | ||
103 | $ write sys$output "test sslv2 via BIO pair" | ||
104 | $ 'ssltest' -bio_pair -ssl2 | ||
105 | $ if $severity .ne. 1 then goto exit3 | ||
106 | $ | ||
107 | $ write sys$output "test sslv2 with server authentication via BIO pair" | ||
108 | $ 'ssltest' -bio_pair -ssl2 -server_auth 'CA' | ||
109 | $ if $severity .ne. 1 then goto exit3 | ||
110 | $ | ||
111 | $ if .not. dsa_cert | ||
112 | $ then | ||
113 | $ write sys$output "test sslv2 with client authentication via BIO pair" | ||
114 | $ 'ssltest' -bio_pair -ssl2 -client_auth 'CA' | ||
115 | $ if $severity .ne. 1 then goto exit3 | ||
116 | $ | ||
117 | $ write sys$output "test sslv2 with both client and server authentication via BIO pair" | ||
118 | $ 'ssltest' -bio_pair -ssl2 -server_auth -client_auth 'CA' | ||
119 | $ if $severity .ne. 1 then goto exit3 | ||
120 | $ endif | ||
121 | $ | ||
122 | $ write sys$output "test sslv3 via BIO pair" | ||
123 | $ 'ssltest' -bio_pair -ssl3 | ||
124 | $ if $severity .ne. 1 then goto exit3 | ||
125 | $ | ||
126 | $ write sys$output "test sslv3 with server authentication via BIO pair" | ||
127 | $ 'ssltest' -bio_pair -ssl3 -server_auth 'CA' | ||
128 | $ if $severity .ne. 1 then goto exit3 | ||
129 | $ | ||
130 | $ write sys$output "test sslv3 with client authentication via BIO pair" | ||
131 | $ 'ssltest' -bio_pair -ssl3 -client_auth 'CA' | ||
132 | $ if $severity .ne. 1 then goto exit3 | ||
133 | |||
134 | $ write sys$output "test sslv3 with both client and server authentication via BIO pair" | ||
135 | $ 'ssltest' -bio_pair -ssl3 -server_auth -client_auth 'CA' | ||
136 | $ if $severity .ne. 1 then goto exit3 | ||
137 | $ | ||
138 | $ write sys$output "test sslv2/sslv3 via BIO pair" | ||
139 | $ 'ssltest' | ||
140 | $ if $severity .ne. 1 then goto exit3 | ||
141 | $ | ||
142 | $ if .not. dsa_cert | ||
143 | $ then | ||
144 | $ write sys$output "test sslv2/sslv3 w/o DHE via BIO pair" | ||
145 | $ 'ssltest' -bio_pair -no_dhe | ||
146 | $ if $severity .ne. 1 then goto exit3 | ||
147 | $ endif | ||
148 | $ | ||
149 | $ write sys$output "test sslv2/sslv3 with 1024 bit DHE via BIO pair" | ||
150 | $ 'ssltest' -bio_pair -dhe1024dsa -v | ||
151 | $ if $severity .ne. 1 then goto exit3 | ||
152 | $ | ||
153 | $ write sys$output "test sslv2/sslv3 with server authentication" | ||
154 | $ 'ssltest' -bio_pair -server_auth 'CA' | ||
155 | $ if $severity .ne. 1 then goto exit3 | ||
156 | $ | ||
157 | $ write sys$output "test sslv2/sslv3 with client authentication via BIO pair" | ||
158 | $ 'ssltest' -bio_pair -client_auth 'CA' | ||
159 | $ if $severity .ne. 1 then goto exit3 | ||
160 | $ | ||
161 | $ write sys$output "test sslv2/sslv3 with both client and server authentication via BIO pair" | ||
162 | $ 'ssltest' -bio_pair -server_auth -client_auth 'CA' | ||
163 | $ if $severity .ne. 1 then goto exit3 | ||
164 | $ | ||
165 | $!########################################################################### | ||
166 | $ | ||
167 | $ define/user sys$output nla0: | ||
168 | $ mcr 'exe_dir'openssl no-rsa | ||
169 | $ no_rsa=$SEVERITY | ||
170 | $ define/user sys$output nla0: | ||
171 | $ mcr 'exe_dir'openssl no-dh | ||
172 | $ no_dh=$SEVERITY | ||
173 | $ | ||
174 | $ if no_dh | ||
175 | $ then | ||
176 | $ write sys$output "skipping anonymous DH tests" | ||
177 | $ else | ||
178 | $ write sys$output "test tls1 with 1024bit anonymous DH, multiple handshakes" | ||
179 | $ 'ssltest' -v -bio_pair -tls1 -cipher "ADH" -dhe1024dsa -num 10 -f -time | ||
180 | $ if $severity .ne. 1 then goto exit3 | ||
181 | $ endif | ||
182 | $ | ||
183 | $ if no_rsa | ||
184 | $ then | ||
185 | $ write sys$output "skipping RSA tests" | ||
186 | $ else | ||
187 | $ write sys$output "test tls1 with 1024bit RSA, no DHE, multiple handshakes" | ||
188 | $ mcr 'texe_dir'ssltest -v -bio_pair -tls1 -cert [-.apps]server2.pem -no_dhe -num 10 -f -time | ||
189 | $ if $severity .ne. 1 then goto exit3 | ||
190 | $ | ||
191 | $ if no_dh | ||
192 | $ then | ||
193 | $ write sys$output "skipping RSA+DHE tests" | ||
194 | $ else | ||
195 | $ write sys$output "test tls1 with 1024bit RSA, 1024bit DHE, multiple handshakes" | ||
196 | $ mcr 'texe_dir'ssltest -v -bio_pair -tls1 -cert [-.apps]server2.pem -dhe1024dsa -num 10 -f -time | ||
197 | $ if $severity .ne. 1 then goto exit3 | ||
198 | $ endif | ||
199 | $ endif | ||
200 | $ | ||
201 | $ RET = 1 | ||
202 | $ goto exit | ||
203 | $ exit3: | ||
204 | $ RET = 3 | ||
205 | $ exit: | ||
206 | $ if p3 .eqs. "" then delete certs.tmp;* | ||
207 | $ set on | ||
208 | $ exit 'RET' | ||
diff --git a/src/lib/libssl/src/test/testtsa.com b/src/lib/libssl/src/test/testtsa.com deleted file mode 100644 index 29fb1d0e63..0000000000 --- a/src/lib/libssl/src/test/testtsa.com +++ /dev/null | |||
@@ -1,255 +0,0 @@ | |||
1 | $! | ||
2 | $! A few very basic tests for the 'ts' time stamping authority command. | ||
3 | $! | ||
4 | $ | ||
5 | $ __arch = "VAX" | ||
6 | $ if f$getsyi("cpu") .ge. 128 then - | ||
7 | __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") | ||
8 | $ if __arch .eqs. "" then __arch = "UNK" | ||
9 | $! | ||
10 | $ if (p4 .eqs. "64") then __arch = __arch+ "_64" | ||
11 | $! | ||
12 | $ exe_dir = "sys$disk:[-.''__arch'.exe.apps]" | ||
13 | $ | ||
14 | $ openssl = "mcr ''f$parse(exe_dir+"openssl.exe")'" | ||
15 | $ OPENSSL_CONF = "[-]CAtsa.cnf" | ||
16 | $ ! Because that's what ../apps/CA.sh really looks at | ||
17 | $ SSLEAY_CONFIG = "-config " + OPENSSL_CONF | ||
18 | $ | ||
19 | $ error: | ||
20 | $ subroutine | ||
21 | $ write sys$error "TSA test failed!" | ||
22 | $ exit 3 | ||
23 | $ endsubroutine | ||
24 | $ | ||
25 | $ setup_dir: | ||
26 | $ subroutine | ||
27 | $ | ||
28 | $ if f$search("tsa.dir") .nes "" | ||
29 | $ then | ||
30 | $ @[-.util]deltree [.tsa]*.* | ||
31 | $ set file/prot=(S:RWED,O:RWED,G:RWED,W:RWED) tsa.dir;* | ||
32 | $ delete tsa.dir;* | ||
33 | $ endif | ||
34 | $ | ||
35 | $ create/dir [.tsa] | ||
36 | $ set default [.tsa] | ||
37 | $ endsubroutine | ||
38 | $ | ||
39 | $ clean_up_dir: | ||
40 | $ subroutine | ||
41 | $ | ||
42 | $ set default [-] | ||
43 | $ @[-.util]deltree [.tsa]*.* | ||
44 | $ set file/prot=(S:RWED,O:RWED,G:RWED,W:RWED) tsa.dir;* | ||
45 | $ delete tsa.dir;* | ||
46 | $ endsubroutine | ||
47 | $ | ||
48 | $ create_ca: | ||
49 | $ subroutine | ||
50 | $ | ||
51 | $ write sys$output "Creating a new CA for the TSA tests..." | ||
52 | $ TSDNSECT = "ts_ca_dn" | ||
53 | $ openssl req -new -x509 -nodes - | ||
54 | -out tsaca.pem -keyout tsacakey.pem | ||
55 | $ if $severity .ne. 1 then call error | ||
56 | $ endsubroutine | ||
57 | $ | ||
58 | $ create_tsa_cert: | ||
59 | $ subroutine | ||
60 | $ | ||
61 | $ INDEX=p1 | ||
62 | $ EXT=p2 | ||
63 | $ TSDNSECT = "ts_cert_dn" | ||
64 | $ | ||
65 | $ openssl req -new - | ||
66 | -out tsa_req'INDEX'.pem -keyout tsa_key'INDEX'.pem | ||
67 | $ if $severity .ne. 1 then call error | ||
68 | $ | ||
69 | $ write sys$output "Using extension ''EXT'" | ||
70 | $ openssl x509 -req - | ||
71 | -in tsa_req'INDEX'.pem -out tsa_cert'INDEX'.pem - | ||
72 | "-CA" tsaca.pem "-CAkey" tsacakey.pem "-CAcreateserial" - | ||
73 | -extfile 'OPENSSL_CONF' -extensions "''EXT'" | ||
74 | $ if $severity .ne. 1 then call error | ||
75 | $ endsubroutine | ||
76 | $ | ||
77 | $ print_request: | ||
78 | $ subroutine | ||
79 | $ | ||
80 | $ openssl ts -query -in 'p1' -text | ||
81 | $ endsubroutine | ||
82 | $ | ||
83 | $ create_time_stamp_request1: subroutine | ||
84 | $ | ||
85 | $ openssl ts -query -data [-]testtsa.com -policy tsa_policy1 - | ||
86 | -cert -out req1.tsq | ||
87 | $ if $severity .ne. 1 then call error | ||
88 | $ endsubroutine | ||
89 | $ | ||
90 | $ create_time_stamp_request2: subroutine | ||
91 | $ | ||
92 | $ openssl ts -query -data [-]testtsa.com -policy tsa_policy2 - | ||
93 | -no_nonce -out req2.tsq | ||
94 | $ if $severity .ne. 1 then call error | ||
95 | $ endsubroutine | ||
96 | $ | ||
97 | $ create_time_stamp_request3: subroutine | ||
98 | $ | ||
99 | $ openssl ts -query -data [-]CAtsa.cnf -no_nonce -out req3.tsq | ||
100 | $ if $severity .ne. 1 then call error | ||
101 | $ endsubroutine | ||
102 | $ | ||
103 | $ print_response: | ||
104 | $ subroutine | ||
105 | $ | ||
106 | $ openssl ts -reply -in 'p1' -text | ||
107 | $ if $severity .ne. 1 then call error | ||
108 | $ endsubroutine | ||
109 | $ | ||
110 | $ create_time_stamp_response: | ||
111 | $ subroutine | ||
112 | $ | ||
113 | $ openssl ts -reply -section 'p3' -queryfile 'p1' -out 'p2' | ||
114 | $ if $severity .ne. 1 then call error | ||
115 | $ endsubroutine | ||
116 | $ | ||
117 | $ time_stamp_response_token_test: | ||
118 | $ subroutine | ||
119 | $ | ||
120 | $ RESPONSE2 = p2+ "-copy_tsr" | ||
121 | $ TOKEN_DER = p2+ "-token_der" | ||
122 | $ openssl ts -reply -in 'p2' -out 'TOKEN_DER' -token_out | ||
123 | $ if $severity .ne. 1 then call error | ||
124 | $ openssl ts -reply -in 'TOKEN_DER' -token_in -out 'RESPONSE2' | ||
125 | $ if $severity .ne. 1 then call error | ||
126 | $ backup/compare 'RESPONSE2' 'p2' | ||
127 | $ if $severity .ne. 1 then call error | ||
128 | $ openssl ts -reply -in 'p2' -text -token_out | ||
129 | $ if $severity .ne. 1 then call error | ||
130 | $ openssl ts -reply -in 'TOKEN_DER' -token_in -text -token_out | ||
131 | $ if $severity .ne. 1 then call error | ||
132 | $ openssl ts -reply -queryfile 'p1' -text -token_out | ||
133 | $ if $severity .ne. 1 then call error | ||
134 | $ endsubroutine | ||
135 | $ | ||
136 | $ verify_time_stamp_response: | ||
137 | $ subroutine | ||
138 | $ | ||
139 | $ openssl ts -verify -queryfile 'p1' -in 'p2' - | ||
140 | "-CAfile" tsaca.pem -untrusted tsa_cert1.pem | ||
141 | $ if $severity .ne. 1 then call error | ||
142 | $ openssl ts -verify -data 'p3' -in 'p2' - | ||
143 | "-CAfile" tsaca.pem -untrusted tsa_cert1.pem | ||
144 | $ if $severity .ne. 1 then call error | ||
145 | $ endsubroutine | ||
146 | $ | ||
147 | $ verify_time_stamp_token: | ||
148 | $ subroutine | ||
149 | $ | ||
150 | $ ! create the token from the response first | ||
151 | $ openssl ts -reply -in "''p2'" -out "''p2'-token" -token_out | ||
152 | $ if $severity .ne. 1 then call error | ||
153 | $ openssl ts -verify -queryfile "''p1'" -in "''p2'-token" - | ||
154 | -token_in "-CAfile" tsaca.pem -untrusted tsa_cert1.pem | ||
155 | $ if $severity .ne. 1 then call error | ||
156 | $ openssl ts -verify -data "''p3'" -in "''p2'-token" - | ||
157 | -token_in "-CAfile" tsaca.pem -untrusted tsa_cert1.pem | ||
158 | $ if $severity .ne. 1 then call error | ||
159 | $ endsubroutine | ||
160 | $ | ||
161 | $ verify_time_stamp_response_fail: | ||
162 | $ subroutine | ||
163 | $ | ||
164 | $ openssl ts -verify -queryfile 'p1' -in 'p2' - | ||
165 | "-CAfile" tsaca.pem -untrusted tsa_cert1.pem | ||
166 | $ ! Checks if the verification failed, as it should have. | ||
167 | $ if $severity .eq. 1 then call error | ||
168 | $ write sys$output "Ok" | ||
169 | $ endsubroutine | ||
170 | $ | ||
171 | $ ! Main body ---------------------------------------------------------- | ||
172 | $ | ||
173 | $ set noon | ||
174 | $ | ||
175 | $ write sys$output "Setting up TSA test directory..." | ||
176 | $ call setup_dir | ||
177 | $ | ||
178 | $ write sys$output "Creating CA for TSA tests..." | ||
179 | $ call create_ca | ||
180 | $ | ||
181 | $ write sys$output "Creating tsa_cert1.pem TSA server cert..." | ||
182 | $ call create_tsa_cert 1 "tsa_cert" | ||
183 | $ | ||
184 | $ write sys$output "Creating tsa_cert2.pem non-TSA server cert..." | ||
185 | $ call create_tsa_cert 2 "non_tsa_cert" | ||
186 | $ | ||
187 | $ write sys$output "Creating req1.req time stamp request for file testtsa..." | ||
188 | $ call create_time_stamp_request1 | ||
189 | $ | ||
190 | $ write sys$output "Printing req1.req..." | ||
191 | $ call print_request "req1.tsq" | ||
192 | $ | ||
193 | $ write sys$output "Generating valid response for req1.req..." | ||
194 | $ call create_time_stamp_response "req1.tsq" "resp1.tsr" "tsa_config1" | ||
195 | $ | ||
196 | $ write sys$output "Printing response..." | ||
197 | $ call print_response "resp1.tsr" | ||
198 | $ | ||
199 | $ write sys$output "Verifying valid response..." | ||
200 | $ call verify_time_stamp_response "req1.tsq" "resp1.tsr" "[-]testtsa.com" | ||
201 | $ | ||
202 | $ write sys$output "Verifying valid token..." | ||
203 | $ call verify_time_stamp_token "req1.tsq" "resp1.tsr" "[-]testtsa.com" | ||
204 | $ | ||
205 | $ ! The tests below are commented out, because invalid signer certificates | ||
206 | $ ! can no longer be specified in the config file. | ||
207 | $ | ||
208 | $ ! write sys$output "Generating _invalid_ response for req1.req..." | ||
209 | $ ! call create_time_stamp_response "req1.tsq" "resp1_bad.tsr" "tsa_config2" | ||
210 | $ | ||
211 | $ ! write sys$output "Printing response..." | ||
212 | $ ! call print_response "resp1_bad.tsr" | ||
213 | $ | ||
214 | $ ! write sys$output "Verifying invalid response, it should fail..." | ||
215 | $ ! call verify_time_stamp_response_fail "req1.tsq" "resp1_bad.tsr" | ||
216 | $ | ||
217 | $ write sys$output "Creating req2.req time stamp request for file testtsa..." | ||
218 | $ call create_time_stamp_request2 | ||
219 | $ | ||
220 | $ write sys$output "Printing req2.req..." | ||
221 | $ call print_request "req2.tsq" | ||
222 | $ | ||
223 | $ write sys$output "Generating valid response for req2.req..." | ||
224 | $ call create_time_stamp_response "req2.tsq" "resp2.tsr" "tsa_config1" | ||
225 | $ | ||
226 | $ write sys$output "Checking '-token_in' and '-token_out' options with '-reply'..." | ||
227 | $ call time_stamp_response_token_test "req2.tsq" "resp2.tsr" | ||
228 | $ | ||
229 | $ write sys$output "Printing response..." | ||
230 | $ call print_response "resp2.tsr" | ||
231 | $ | ||
232 | $ write sys$output "Verifying valid response..." | ||
233 | $ call verify_time_stamp_response "req2.tsq" "resp2.tsr" "[-]testtsa.com" | ||
234 | $ | ||
235 | $ write sys$output "Verifying response against wrong request, it should fail..." | ||
236 | $ call verify_time_stamp_response_fail "req1.tsq" "resp2.tsr" | ||
237 | $ | ||
238 | $ write sys$output "Verifying response against wrong request, it should fail..." | ||
239 | $ call verify_time_stamp_response_fail "req2.tsq" "resp1.tsr" | ||
240 | $ | ||
241 | $ write sys$output "Creating req3.req time stamp request for file CAtsa.cnf..." | ||
242 | $ call create_time_stamp_request3 | ||
243 | $ | ||
244 | $ write sys$output "Printing req3.req..." | ||
245 | $ call print_request "req3.tsq" | ||
246 | $ | ||
247 | $ write sys$output "Verifying response against wrong request, it should fail..." | ||
248 | $ call verify_time_stamp_response_fail "req3.tsq" "resp1.tsr" | ||
249 | $ | ||
250 | $ write sys$output "Cleaning up..." | ||
251 | $ call clean_up_dir | ||
252 | $ | ||
253 | $ set on | ||
254 | $ | ||
255 | $ exit | ||
diff --git a/src/lib/libssl/src/test/tpkcs7.com b/src/lib/libssl/src/test/tpkcs7.com deleted file mode 100644 index 3fc4982bb0..0000000000 --- a/src/lib/libssl/src/test/tpkcs7.com +++ /dev/null | |||
@@ -1,59 +0,0 @@ | |||
1 | $! TPKCS7.COM -- Tests pkcs7 keys | ||
2 | $ | ||
3 | $ __arch = "VAX" | ||
4 | $ if f$getsyi("cpu") .ge. 128 then - | ||
5 | __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") | ||
6 | $ if __arch .eqs. "" then __arch = "UNK" | ||
7 | $! | ||
8 | $ if (p2 .eqs. "64") then __arch = __arch+ "_64" | ||
9 | $! | ||
10 | $ exe_dir = "sys$disk:[-.''__arch'.exe.apps]" | ||
11 | $ | ||
12 | $ cmd = "mcr ''exe_dir'openssl pkcs7" | ||
13 | $ | ||
14 | $ t = "testp7.pem" | ||
15 | $ if p1 .nes. "" then t = p1 | ||
16 | $ | ||
17 | $ write sys$output "testing PKCS7 conversions" | ||
18 | $ if f$search("fff.*") .nes "" then delete fff.*;* | ||
19 | $ if f$search("ff.*") .nes "" then delete ff.*;* | ||
20 | $ if f$search("f.*") .nes "" then delete f.*;* | ||
21 | $ convert/fdl=sys$input: 't' fff.p | ||
22 | RECORD | ||
23 | FORMAT STREAM_LF | ||
24 | $ | ||
25 | $ write sys$output "p -> d" | ||
26 | $ 'cmd' -in fff.p -inform p -outform d -out f.d | ||
27 | $ if $severity .ne. 1 then exit 3 | ||
28 | $ write sys$output "p -> p" | ||
29 | $ 'cmd' -in fff.p -inform p -outform p -out f.p | ||
30 | $ if $severity .ne. 1 then exit 3 | ||
31 | $ | ||
32 | $ write sys$output "d -> d" | ||
33 | $ 'cmd' -in f.d -inform d -outform d -out ff.d1 | ||
34 | $ if $severity .ne. 1 then exit 3 | ||
35 | $ write sys$output "p -> d" | ||
36 | $ 'cmd' -in f.p -inform p -outform d -out ff.d3 | ||
37 | $ if $severity .ne. 1 then exit 3 | ||
38 | $ | ||
39 | $ | ||
40 | $ write sys$output "d -> p" | ||
41 | $ 'cmd' -in f.d -inform d -outform p -out ff.p1 | ||
42 | $ if $severity .ne. 1 then exit 3 | ||
43 | $ write sys$output "p -> p" | ||
44 | $ 'cmd' -in f.p -inform p -outform p -out ff.p3 | ||
45 | $ if $severity .ne. 1 then exit 3 | ||
46 | $ | ||
47 | $ backup/compare fff.p f.p | ||
48 | $ if $severity .ne. 1 then exit 3 | ||
49 | $ backup/compare fff.p ff.p1 | ||
50 | $ if $severity .ne. 1 then exit 3 | ||
51 | $ backup/compare fff.p ff.p3 | ||
52 | $ if $severity .ne. 1 then exit 3 | ||
53 | $ | ||
54 | $ backup/compare f.p ff.p1 | ||
55 | $ if $severity .ne. 1 then exit 3 | ||
56 | $ backup/compare f.p ff.p3 | ||
57 | $ if $severity .ne. 1 then exit 3 | ||
58 | $ | ||
59 | $ delete f.*;*,ff.*;*,fff.*;* | ||
diff --git a/src/lib/libssl/src/test/tpkcs7d.com b/src/lib/libssl/src/test/tpkcs7d.com deleted file mode 100644 index eea8c888ee..0000000000 --- a/src/lib/libssl/src/test/tpkcs7d.com +++ /dev/null | |||
@@ -1,52 +0,0 @@ | |||
1 | $! TPKCS7.COM -- Tests pkcs7 keys | ||
2 | $ | ||
3 | $ __arch = "VAX" | ||
4 | $ if f$getsyi("cpu") .ge. 128 then - | ||
5 | __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") | ||
6 | $ if __arch .eqs. "" then __arch = "UNK" | ||
7 | $! | ||
8 | $ if (p2 .eqs. "64") then __arch = __arch+ "_64" | ||
9 | $! | ||
10 | $ exe_dir = "sys$disk:[-.''__arch'.exe.apps]" | ||
11 | $ | ||
12 | $ cmd = "mcr ''exe_dir'openssl pkcs7" | ||
13 | $ | ||
14 | $ t = "pkcs7-1.pem" | ||
15 | $ if p1 .nes. "" then t = p1 | ||
16 | $ | ||
17 | $ write sys$output "testing PKCS7 conversions (2)" | ||
18 | $ if f$search("fff.*") .nes "" then delete fff.*;* | ||
19 | $ if f$search("ff.*") .nes "" then delete ff.*;* | ||
20 | $ if f$search("f.*") .nes "" then delete f.*;* | ||
21 | $ convert/fdl=sys$input: 't' fff.p | ||
22 | RECORD | ||
23 | FORMAT STREAM_LF | ||
24 | $ | ||
25 | $ write sys$output "p -> d" | ||
26 | $ 'cmd' -in fff.p -inform p -outform d -out f.d | ||
27 | $ if $severity .ne. 1 then exit 3 | ||
28 | $ write sys$output "p -> p" | ||
29 | $ 'cmd' -in fff.p -inform p -outform p -out f.p | ||
30 | $ if $severity .ne. 1 then exit 3 | ||
31 | $ | ||
32 | $ write sys$output "d -> d" | ||
33 | $ 'cmd' -in f.d -inform d -outform d -out ff.d1 | ||
34 | $ if $severity .ne. 1 then exit 3 | ||
35 | $ write sys$output "p -> d" | ||
36 | $ 'cmd' -in f.p -inform p -outform d -out ff.d3 | ||
37 | $ if $severity .ne. 1 then exit 3 | ||
38 | $ | ||
39 | $ | ||
40 | $ write sys$output "d -> p" | ||
41 | $ 'cmd' -in f.d -inform d -outform p -out ff.p1 | ||
42 | $ if $severity .ne. 1 then exit 3 | ||
43 | $ write sys$output "p -> p" | ||
44 | $ 'cmd' -in f.p -inform p -outform p -out ff.p3 | ||
45 | $ if $severity .ne. 1 then exit 3 | ||
46 | $ | ||
47 | $ backup/compare f.p ff.p1 | ||
48 | $ if $severity .ne. 1 then exit 3 | ||
49 | $ backup/compare f.p ff.p3 | ||
50 | $ if $severity .ne. 1 then exit 3 | ||
51 | $ | ||
52 | $ delete f.*;*,ff.*;*,fff.*;* | ||
diff --git a/src/lib/libssl/src/test/treq.com b/src/lib/libssl/src/test/treq.com deleted file mode 100644 index acf08b79ef..0000000000 --- a/src/lib/libssl/src/test/treq.com +++ /dev/null | |||
@@ -1,88 +0,0 @@ | |||
1 | $! TREQ.COM -- Tests req keys | ||
2 | $ | ||
3 | $ __arch = "VAX" | ||
4 | $ if f$getsyi("cpu") .ge. 128 then - | ||
5 | __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") | ||
6 | $ if __arch .eqs. "" then __arch = "UNK" | ||
7 | $! | ||
8 | $ if (p2 .eqs. "64") then __arch = __arch+ "_64" | ||
9 | $! | ||
10 | $ exe_dir = "sys$disk:[-.''__arch'.exe.apps]" | ||
11 | $ | ||
12 | $ cmd = "mcr ''exe_dir'openssl req -config [-.apps]openssl-vms.cnf" | ||
13 | $ | ||
14 | $ t = "testreq.pem" | ||
15 | $ if p1 .nes. "" then t = p1 | ||
16 | $ | ||
17 | $ write sys$output "testing req conversions" | ||
18 | $ if f$search("fff.*") .nes "" then delete fff.*;* | ||
19 | $ if f$search("ff.*") .nes "" then delete ff.*;* | ||
20 | $ if f$search("f.*") .nes "" then delete f.*;* | ||
21 | $ convert/fdl=sys$input: 't' fff.p | ||
22 | RECORD | ||
23 | FORMAT STREAM_LF | ||
24 | $ | ||
25 | $ write sys$output "p -> d" | ||
26 | $ 'cmd' -in fff.p -inform p -outform d -out f.d | ||
27 | $ if $severity .ne. 1 then exit 3 | ||
28 | $! write sys$output "p -> t" | ||
29 | $! 'cmd' -in fff.p -inform p -outform t -out f.t | ||
30 | $! if $severity .ne. 1 then exit 3 | ||
31 | $ write sys$output "p -> p" | ||
32 | $ 'cmd' -in fff.p -inform p -outform p -out f.p | ||
33 | $ if $severity .ne. 1 then exit 3 | ||
34 | $ | ||
35 | $ write sys$output "d -> d" | ||
36 | $ 'cmd' -verify -in f.d -inform d -outform d -out ff.d1 | ||
37 | $ if $severity .ne. 1 then exit 3 | ||
38 | $! write sys$output "t -> d" | ||
39 | $! 'cmd' -verify -in f.t -inform t -outform d -out ff.d2 | ||
40 | $! if $severity .ne. 1 then exit 3 | ||
41 | $ write sys$output "p -> d" | ||
42 | $ 'cmd' -verify -in f.p -inform p -outform d -out ff.d3 | ||
43 | $ if $severity .ne. 1 then exit 3 | ||
44 | $ | ||
45 | $! write sys$output "d -> t" | ||
46 | $! 'cmd' -in f.d -inform d -outform t -out ff.t1 | ||
47 | $! if $severity .ne. 1 then exit 3 | ||
48 | $! write sys$output "t -> t" | ||
49 | $! 'cmd' -in f.t -inform t -outform t -out ff.t2 | ||
50 | $! if $severity .ne. 1 then exit 3 | ||
51 | $! write sys$output "p -> t" | ||
52 | $! 'cmd' -in f.p -inform p -outform t -out ff.t3 | ||
53 | $! if $severity .ne. 1 then exit 3 | ||
54 | $ | ||
55 | $ write sys$output "d -> p" | ||
56 | $ 'cmd' -in f.d -inform d -outform p -out ff.p1 | ||
57 | $ if $severity .ne. 1 then exit 3 | ||
58 | $! write sys$output "t -> p" | ||
59 | $! 'cmd' -in f.t -inform t -outform p -out ff.p2 | ||
60 | $! if $severity .ne. 1 then exit 3 | ||
61 | $ write sys$output "p -> p" | ||
62 | $ 'cmd' -in f.p -inform p -outform p -out ff.p3 | ||
63 | $ if $severity .ne. 1 then exit 3 | ||
64 | $ | ||
65 | $ backup/compare fff.p f.p | ||
66 | $ if $severity .ne. 1 then exit 3 | ||
67 | $ backup/compare fff.p ff.p1 | ||
68 | $ if $severity .ne. 1 then exit 3 | ||
69 | $! backup/compare fff.p ff.p2 | ||
70 | $! if $severity .ne. 1 then exit 3 | ||
71 | $ backup/compare fff.p ff.p3 | ||
72 | $ if $severity .ne. 1 then exit 3 | ||
73 | $ | ||
74 | $! backup/compare f.t ff.t1 | ||
75 | $! if $severity .ne. 1 then exit 3 | ||
76 | $! backup/compare f.t ff.t2 | ||
77 | $! if $severity .ne. 1 then exit 3 | ||
78 | $! backup/compare f.t ff.t3 | ||
79 | $! if $severity .ne. 1 then exit 3 | ||
80 | $ | ||
81 | $ backup/compare f.p ff.p1 | ||
82 | $ if $severity .ne. 1 then exit 3 | ||
83 | $! backup/compare f.p ff.p2 | ||
84 | $! if $severity .ne. 1 then exit 3 | ||
85 | $ backup/compare f.p ff.p3 | ||
86 | $ if $severity .ne. 1 then exit 3 | ||
87 | $ | ||
88 | $ delete f.*;*,ff.*;*,fff.*;* | ||
diff --git a/src/lib/libssl/src/test/trsa.com b/src/lib/libssl/src/test/trsa.com deleted file mode 100644 index 54180843ee..0000000000 --- a/src/lib/libssl/src/test/trsa.com +++ /dev/null | |||
@@ -1,99 +0,0 @@ | |||
1 | $! TRSA.COM -- Tests rsa keys | ||
2 | $ | ||
3 | $ __arch = "VAX" | ||
4 | $ if f$getsyi("cpu") .ge. 128 then - | ||
5 | __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") | ||
6 | $ if __arch .eqs. "" then __arch = "UNK" | ||
7 | $! | ||
8 | $ if (p2 .eqs. "64") then __arch = __arch+ "_64" | ||
9 | $! | ||
10 | $ exe_dir = "sys$disk:[-.''__arch'.exe.apps]" | ||
11 | $ | ||
12 | $ set noon | ||
13 | $ define/user sys$output nla0: | ||
14 | $ mcr 'exe_dir'openssl no-rsa | ||
15 | $ save_severity=$SEVERITY | ||
16 | $ set on | ||
17 | $ if save_severity | ||
18 | $ then | ||
19 | $ write sys$output "skipping RSA conversion test" | ||
20 | $ exit | ||
21 | $ endif | ||
22 | $ | ||
23 | $ cmd = "mcr ''exe_dir'openssl rsa" | ||
24 | $ | ||
25 | $ t = "testrsa.pem" | ||
26 | $ if p1 .nes. "" then t = p1 | ||
27 | $ | ||
28 | $ write sys$output "testing RSA conversions" | ||
29 | $ if f$search("fff.*") .nes "" then delete fff.*;* | ||
30 | $ if f$search("ff.*") .nes "" then delete ff.*;* | ||
31 | $ if f$search("f.*") .nes "" then delete f.*;* | ||
32 | $ convert/fdl=sys$input: 't' fff.p | ||
33 | RECORD | ||
34 | FORMAT STREAM_LF | ||
35 | $ | ||
36 | $ write sys$output "p -> d" | ||
37 | $ 'cmd' -in fff.p -inform p -outform d -out f.d | ||
38 | $ if $severity .ne. 1 then exit 3 | ||
39 | $! write sys$output "p -> t" | ||
40 | $! 'cmd' -in fff.p -inform p -outform t -out f.t | ||
41 | $! if $severity .ne. 1 then exit 3 | ||
42 | $ write sys$output "p -> p" | ||
43 | $ 'cmd' -in fff.p -inform p -outform p -out f.p | ||
44 | $ if $severity .ne. 1 then exit 3 | ||
45 | $ | ||
46 | $ write sys$output "d -> d" | ||
47 | $ 'cmd' -in f.d -inform d -outform d -out ff.d1 | ||
48 | $ if $severity .ne. 1 then exit 3 | ||
49 | $! write sys$output "t -> d" | ||
50 | $! 'cmd' -in f.t -inform t -outform d -out ff.d2 | ||
51 | $! if $severity .ne. 1 then exit 3 | ||
52 | $ write sys$output "p -> d" | ||
53 | $ 'cmd' -in f.p -inform p -outform d -out ff.d3 | ||
54 | $ if $severity .ne. 1 then exit 3 | ||
55 | $ | ||
56 | $! write sys$output "d -> t" | ||
57 | $! 'cmd' -in f.d -inform d -outform t -out ff.t1 | ||
58 | $! if $severity .ne. 1 then exit 3 | ||
59 | $! write sys$output "t -> t" | ||
60 | $! 'cmd' -in f.t -inform t -outform t -out ff.t2 | ||
61 | $! if $severity .ne. 1 then exit 3 | ||
62 | $! write sys$output "p -> t" | ||
63 | $! 'cmd' -in f.p -inform p -outform t -out ff.t3 | ||
64 | $! if $severity .ne. 1 then exit 3 | ||
65 | $ | ||
66 | $ write sys$output "d -> p" | ||
67 | $ 'cmd' -in f.d -inform d -outform p -out ff.p1 | ||
68 | $ if $severity .ne. 1 then exit 3 | ||
69 | $! write sys$output "t -> p" | ||
70 | $! 'cmd' -in f.t -inform t -outform p -out ff.p2 | ||
71 | $! if $severity .ne. 1 then exit 3 | ||
72 | $ write sys$output "p -> p" | ||
73 | $ 'cmd' -in f.p -inform p -outform p -out ff.p3 | ||
74 | $ if $severity .ne. 1 then exit 3 | ||
75 | $ | ||
76 | $ backup/compare fff.p f.p | ||
77 | $ if $severity .ne. 1 then exit 3 | ||
78 | $ backup/compare fff.p ff.p1 | ||
79 | $ if $severity .ne. 1 then exit 3 | ||
80 | $! backup/compare fff.p ff.p2 | ||
81 | $! if $severity .ne. 1 then exit 3 | ||
82 | $ backup/compare fff.p ff.p3 | ||
83 | $ if $severity .ne. 1 then exit 3 | ||
84 | $ | ||
85 | $! backup/compare f.t ff.t1 | ||
86 | $! if $severity .ne. 1 then exit 3 | ||
87 | $! backup/compare f.t ff.t2 | ||
88 | $! if $severity .ne. 1 then exit 3 | ||
89 | $! backup/compare f.t ff.t3 | ||
90 | $! if $severity .ne. 1 then exit 3 | ||
91 | $ | ||
92 | $ backup/compare f.p ff.p1 | ||
93 | $ if $severity .ne. 1 then exit 3 | ||
94 | $! backup/compare f.p ff.p2 | ||
95 | $! if $severity .ne. 1 then exit 3 | ||
96 | $ backup/compare f.p ff.p3 | ||
97 | $ if $severity .ne. 1 then exit 3 | ||
98 | $ | ||
99 | $ delete f.*;*,ff.*;*,fff.*;* | ||
diff --git a/src/lib/libssl/src/test/tsid.com b/src/lib/libssl/src/test/tsid.com deleted file mode 100644 index b6c4e49473..0000000000 --- a/src/lib/libssl/src/test/tsid.com +++ /dev/null | |||
@@ -1,88 +0,0 @@ | |||
1 | $! TSID.COM -- Tests sid keys | ||
2 | $ | ||
3 | $ __arch = "VAX" | ||
4 | $ if f$getsyi("cpu") .ge. 128 then - | ||
5 | __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") | ||
6 | $ if __arch .eqs. "" then __arch = "UNK" | ||
7 | $! | ||
8 | $ if (p2 .eqs. "64") then __arch = __arch+ "_64" | ||
9 | $! | ||
10 | $ exe_dir = "sys$disk:[-.''__arch'.exe.apps]" | ||
11 | $ | ||
12 | $ cmd = "mcr ''exe_dir'openssl sess_id" | ||
13 | $ | ||
14 | $ t = "testsid.pem" | ||
15 | $ if p1 .nes. "" then t = p1 | ||
16 | $ | ||
17 | $ write sys$output "testing session-id conversions" | ||
18 | $ if f$search("fff.*") .nes "" then delete fff.*;* | ||
19 | $ if f$search("ff.*") .nes "" then delete ff.*;* | ||
20 | $ if f$search("f.*") .nes "" then delete f.*;* | ||
21 | $ convert/fdl=sys$input: 't' fff.p | ||
22 | RECORD | ||
23 | FORMAT STREAM_LF | ||
24 | $ | ||
25 | $ write sys$output "p -> d" | ||
26 | $ 'cmd' -in fff.p -inform p -outform d -out f.d | ||
27 | $ if $severity .ne. 1 then exit 3 | ||
28 | $! write sys$output "p -> t" | ||
29 | $! 'cmd' -in fff.p -inform p -outform t -out f.t | ||
30 | $! if $severity .ne. 1 then exit 3 | ||
31 | $ write sys$output "p -> p" | ||
32 | $ 'cmd' -in fff.p -inform p -outform p -out f.p | ||
33 | $ if $severity .ne. 1 then exit 3 | ||
34 | $ | ||
35 | $ write sys$output "d -> d" | ||
36 | $ 'cmd' -in f.d -inform d -outform d -out ff.d1 | ||
37 | $ if $severity .ne. 1 then exit 3 | ||
38 | $! write sys$output "t -> d" | ||
39 | $! 'cmd' -in f.t -inform t -outform d -out ff.d2 | ||
40 | $! if $severity .ne. 1 then exit 3 | ||
41 | $ write sys$output "p -> d" | ||
42 | $ 'cmd' -in f.p -inform p -outform d -out ff.d3 | ||
43 | $ if $severity .ne. 1 then exit 3 | ||
44 | $ | ||
45 | $! write sys$output "d -> t" | ||
46 | $! 'cmd' -in f.d -inform d -outform t -out ff.t1 | ||
47 | $! if $severity .ne. 1 then exit 3 | ||
48 | $! write sys$output "t -> t" | ||
49 | $! 'cmd' -in f.t -inform t -outform t -out ff.t2 | ||
50 | $! if $severity .ne. 1 then exit 3 | ||
51 | $! write sys$output "p -> t" | ||
52 | $! 'cmd' -in f.p -inform p -outform t -out ff.t3 | ||
53 | $! if $severity .ne. 1 then exit 3 | ||
54 | $ | ||
55 | $ write sys$output "d -> p" | ||
56 | $ 'cmd' -in f.d -inform d -outform p -out ff.p1 | ||
57 | $ if $severity .ne. 1 then exit 3 | ||
58 | $! write sys$output "t -> p" | ||
59 | $! 'cmd' -in f.t -inform t -outform p -out ff.p2 | ||
60 | $! if $severity .ne. 1 then exit 3 | ||
61 | $ write sys$output "p -> p" | ||
62 | $ 'cmd' -in f.p -inform p -outform p -out ff.p3 | ||
63 | $ if $severity .ne. 1 then exit 3 | ||
64 | $ | ||
65 | $ backup/compare fff.p f.p | ||
66 | $ if $severity .ne. 1 then exit 3 | ||
67 | $ backup/compare fff.p ff.p1 | ||
68 | $ if $severity .ne. 1 then exit 3 | ||
69 | $! backup/compare fff.p ff.p2 | ||
70 | $! if $severity .ne. 1 then exit 3 | ||
71 | $ backup/compare fff.p ff.p3 | ||
72 | $ if $severity .ne. 1 then exit 3 | ||
73 | $ | ||
74 | $! backup/compare f.t ff.t1 | ||
75 | $! if $severity .ne. 1 then exit 3 | ||
76 | $! backup/compare f.t ff.t2 | ||
77 | $! if $severity .ne. 1 then exit 3 | ||
78 | $! backup/compare f.t ff.t3 | ||
79 | $! if $severity .ne. 1 then exit 3 | ||
80 | $ | ||
81 | $ backup/compare f.p ff.p1 | ||
82 | $ if $severity .ne. 1 then exit 3 | ||
83 | $! backup/compare f.p ff.p2 | ||
84 | $! if $severity .ne. 1 then exit 3 | ||
85 | $ backup/compare f.p ff.p3 | ||
86 | $ if $severity .ne. 1 then exit 3 | ||
87 | $ | ||
88 | $ delete f.*;*,ff.*;*,fff.*;* | ||
diff --git a/src/lib/libssl/src/test/tverify.com b/src/lib/libssl/src/test/tverify.com deleted file mode 100644 index d888344637..0000000000 --- a/src/lib/libssl/src/test/tverify.com +++ /dev/null | |||
@@ -1,65 +0,0 @@ | |||
1 | $! TVERIFY.COM | ||
2 | $ | ||
3 | $ __arch = "VAX" | ||
4 | $ if f$getsyi("cpu") .ge. 128 then - | ||
5 | __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") | ||
6 | $ if __arch .eqs. "" then __arch = "UNK" | ||
7 | $! | ||
8 | $ if (p1 .eqs. "64") then __arch = __arch+ "_64" | ||
9 | $! | ||
10 | $ line_max = 255 ! Could be longer on modern non-VAX. | ||
11 | $ temp_file_name = "certs_"+ f$getjpi( "", "PID")+ ".tmp" | ||
12 | $ exe_dir = "sys$disk:[-.''__arch'.exe.apps]" | ||
13 | $ cmd = "mcr ''exe_dir'openssl verify ""-CAfile"" ''temp_file_name'" | ||
14 | $ cmd_len = f$length( cmd) | ||
15 | $ pems = "[-.certs...]*.pem" | ||
16 | $! | ||
17 | $! Concatenate all the certificate files. | ||
18 | $! | ||
19 | $ copy /concatenate 'pems' 'temp_file_name' | ||
20 | $! | ||
21 | $! Loop through all the certificate files. | ||
22 | $! | ||
23 | $ args = "" | ||
24 | $ old_f = "" | ||
25 | $ loop_file: | ||
26 | $ f = f$search( pems) | ||
27 | $ if ((f .nes. "") .and. (f .nes. old_f)) | ||
28 | $ then | ||
29 | $ old_f = f | ||
30 | $! | ||
31 | $! If this file name would over-extend the command line, then | ||
32 | $! run the command now. | ||
33 | $! | ||
34 | $ if (cmd_len+ f$length( args)+ 1+ f$length( f) .gt. line_max) | ||
35 | $ then | ||
36 | $ if (args .eqs. "") then goto disaster | ||
37 | $ 'cmd''args' | ||
38 | $ args = "" | ||
39 | $ endif | ||
40 | $! Add the next file to the argument list. | ||
41 | $ args = args+ " "+ f | ||
42 | $ else | ||
43 | $! No more files in the list | ||
44 | $ goto loop_file_end | ||
45 | $ endif | ||
46 | $ goto loop_file | ||
47 | $ loop_file_end: | ||
48 | $! | ||
49 | $! Run the command for any left-over arguments. | ||
50 | $! | ||
51 | $ if (args .nes. "") | ||
52 | $ then | ||
53 | $ 'cmd''args' | ||
54 | $ endif | ||
55 | $! | ||
56 | $! Delete the temporary file. | ||
57 | $! | ||
58 | $ if (f$search( "''temp_file_name';*") .nes. "") then - | ||
59 | delete 'temp_file_name';* | ||
60 | $! | ||
61 | $ exit | ||
62 | $! | ||
63 | $ disaster: | ||
64 | $ write sys$output " Command line too long. Doomed." | ||
65 | $! | ||
diff --git a/src/lib/libssl/src/test/tx509.com b/src/lib/libssl/src/test/tx509.com deleted file mode 100644 index 93ce988b41..0000000000 --- a/src/lib/libssl/src/test/tx509.com +++ /dev/null | |||
@@ -1,88 +0,0 @@ | |||
1 | $! TX509.COM -- Tests x509 certificates | ||
2 | $ | ||
3 | $ __arch = "VAX" | ||
4 | $ if f$getsyi("cpu") .ge. 128 then - | ||
5 | __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") | ||
6 | $ if __arch .eqs. "" then __arch = "UNK" | ||
7 | $! | ||
8 | $ if (p2 .eqs. "64") then __arch = __arch+ "_64" | ||
9 | $! | ||
10 | $ exe_dir = "sys$disk:[-.''__arch'.exe.apps]" | ||
11 | $ | ||
12 | $ cmd = "mcr ''exe_dir'openssl x509" | ||
13 | $ | ||
14 | $ t = "testx509.pem" | ||
15 | $ if p1 .nes. "" then t = p1 | ||
16 | $ | ||
17 | $ write sys$output "testing X509 conversions" | ||
18 | $ if f$search("fff.*") .nes "" then delete fff.*;* | ||
19 | $ if f$search("ff.*") .nes "" then delete ff.*;* | ||
20 | $ if f$search("f.*") .nes "" then delete f.*;* | ||
21 | $ convert/fdl=sys$input: 't' fff.p | ||
22 | RECORD | ||
23 | FORMAT STREAM_LF | ||
24 | $ | ||
25 | $ write sys$output "p -> d" | ||
26 | $ 'cmd' -in fff.p -inform p -outform d -out f.d | ||
27 | $ if $severity .ne. 1 then exit 3 | ||
28 | $ write sys$output "p -> n" | ||
29 | $ 'cmd' -in fff.p -inform p -outform n -out f.n | ||
30 | $ if $severity .ne. 1 then exit 3 | ||
31 | $ write sys$output "p -> p" | ||
32 | $ 'cmd' -in fff.p -inform p -outform p -out f.p | ||
33 | $ if $severity .ne. 1 then exit 3 | ||
34 | $ | ||
35 | $ write sys$output "d -> d" | ||
36 | $ 'cmd' -in f.d -inform d -outform d -out ff.d1 | ||
37 | $ if $severity .ne. 1 then exit 3 | ||
38 | $ write sys$output "n -> d" | ||
39 | $ 'cmd' -in f.n -inform n -outform d -out ff.d2 | ||
40 | $ if $severity .ne. 1 then exit 3 | ||
41 | $ write sys$output "p -> d" | ||
42 | $ 'cmd' -in f.p -inform p -outform d -out ff.d3 | ||
43 | $ if $severity .ne. 1 then exit 3 | ||
44 | $ | ||
45 | $ write sys$output "d -> n" | ||
46 | $ 'cmd' -in f.d -inform d -outform n -out ff.n1 | ||
47 | $ if $severity .ne. 1 then exit 3 | ||
48 | $ write sys$output "n -> n" | ||
49 | $ 'cmd' -in f.n -inform n -outform n -out ff.n2 | ||
50 | $ if $severity .ne. 1 then exit 3 | ||
51 | $ write sys$output "p -> n" | ||
52 | $ 'cmd' -in f.p -inform p -outform n -out ff.n3 | ||
53 | $ if $severity .ne. 1 then exit 3 | ||
54 | $ | ||
55 | $ write sys$output "d -> p" | ||
56 | $ 'cmd' -in f.d -inform d -outform p -out ff.p1 | ||
57 | $ if $severity .ne. 1 then exit 3 | ||
58 | $ write sys$output "n -> p" | ||
59 | $ 'cmd' -in f.n -inform n -outform p -out ff.p2 | ||
60 | $ if $severity .ne. 1 then exit 3 | ||
61 | $ write sys$output "p -> p" | ||
62 | $ 'cmd' -in f.p -inform p -outform p -out ff.p3 | ||
63 | $ if $severity .ne. 1 then exit 3 | ||
64 | $ | ||
65 | $ backup/compare fff.p f.p | ||
66 | $ if $severity .ne. 1 then exit 3 | ||
67 | $ backup/compare fff.p ff.p1 | ||
68 | $ if $severity .ne. 1 then exit 3 | ||
69 | $ backup/compare fff.p ff.p2 | ||
70 | $ if $severity .ne. 1 then exit 3 | ||
71 | $ backup/compare fff.p ff.p3 | ||
72 | $ if $severity .ne. 1 then exit 3 | ||
73 | $ | ||
74 | $ backup/compare f.n ff.n1 | ||
75 | $ if $severity .ne. 1 then exit 3 | ||
76 | $ backup/compare f.n ff.n2 | ||
77 | $ if $severity .ne. 1 then exit 3 | ||
78 | $ backup/compare f.n ff.n3 | ||
79 | $ if $severity .ne. 1 then exit 3 | ||
80 | $ | ||
81 | $ backup/compare f.p ff.p1 | ||
82 | $ if $severity .ne. 1 then exit 3 | ||
83 | $ backup/compare f.p ff.p2 | ||
84 | $ if $severity .ne. 1 then exit 3 | ||
85 | $ backup/compare f.p ff.p3 | ||
86 | $ if $severity .ne. 1 then exit 3 | ||
87 | $ | ||
88 | $ delete f.*;*,ff.*;*,fff.*;* | ||
diff --git a/src/lib/libssl/src/util/deltree.com b/src/lib/libssl/src/util/deltree.com deleted file mode 100644 index 9f36b1a5e9..0000000000 --- a/src/lib/libssl/src/util/deltree.com +++ /dev/null | |||
@@ -1,34 +0,0 @@ | |||
1 | $! DELTREE.COM | ||
2 | $ | ||
3 | $ call deltree 'p1' | ||
4 | $ exit $status | ||
5 | $ | ||
6 | $ deltree: subroutine ! P1 is a name of a directory | ||
7 | $ on control_y then goto dt_STOP | ||
8 | $ on warning then goto dt_exit | ||
9 | $ _dt_def = f$trnlnm("SYS$DISK")+f$directory() | ||
10 | $ if f$parse(p1) .eqs. "" then exit | ||
11 | $ set default 'f$parse(p1,,,"DEVICE")''f$parse(p1,,,"DIRECTORY")' | ||
12 | $ p1 = f$parse(p1,,,"NAME") + f$parse(p1,,,"TYPE") | ||
13 | $ _fp = f$parse(".DIR",p1) | ||
14 | $ dt_loop: | ||
15 | $ _f = f$search(_fp) | ||
16 | $ if _f .eqs. "" then goto dt_loopend | ||
17 | $ call deltree [.'f$parse(_f,,,"NAME")']*.* | ||
18 | $ goto dt_loop | ||
19 | $ dt_loopend: | ||
20 | $ _fp = f$parse(p1,".;*") | ||
21 | $ if f$search(_fp) .eqs. "" then goto dt_exit | ||
22 | $ set noon | ||
23 | $ set file/prot=(S:RWED,O:RWED,G:RWED,W:RWED) '_fp' | ||
24 | $ set on | ||
25 | $ delete/nolog '_fp' | ||
26 | $ dt_exit: | ||
27 | $ set default '_dt_def' | ||
28 | $ goto dt_end | ||
29 | $ dt_STOP: | ||
30 | $ set default '_dt_def' | ||
31 | $ stop/id="" | ||
32 | $ exit | ||
33 | $ dt_end: | ||
34 | $ endsubroutine | ||
diff --git a/src/lib/libssl/src/util/libeay.num b/src/lib/libssl/src/util/libeay.num index 93f80ba0c6..aa86b2b8b1 100644 --- a/src/lib/libssl/src/util/libeay.num +++ b/src/lib/libssl/src/util/libeay.num | |||
@@ -3510,6 +3510,8 @@ BIO_get_callback_arg 3902 EXIST::FUNCTION: | |||
3510 | BIO_set_callback 3903 EXIST::FUNCTION: | 3510 | BIO_set_callback 3903 EXIST::FUNCTION: |
3511 | d2i_ASIdOrRange 3904 EXIST::FUNCTION:RFC3779 | 3511 | d2i_ASIdOrRange 3904 EXIST::FUNCTION:RFC3779 |
3512 | i2d_ASIdentifiers 3905 EXIST::FUNCTION:RFC3779 | 3512 | i2d_ASIdentifiers 3905 EXIST::FUNCTION:RFC3779 |
3513 | CRYPTO_memcmp 3906 EXIST::FUNCTION: | ||
3514 | BN_consttime_swap 3907 EXIST::FUNCTION: | ||
3513 | SEED_decrypt 3908 EXIST::FUNCTION:SEED | 3515 | SEED_decrypt 3908 EXIST::FUNCTION:SEED |
3514 | SEED_encrypt 3909 EXIST::FUNCTION:SEED | 3516 | SEED_encrypt 3909 EXIST::FUNCTION:SEED |
3515 | SEED_cbc_encrypt 3910 EXIST::FUNCTION:SEED | 3517 | SEED_cbc_encrypt 3910 EXIST::FUNCTION:SEED |
@@ -3687,7 +3689,7 @@ FIPS_dh_new 4073 NOEXIST::FUNCTION: | |||
3687 | FIPS_corrupt_dsa_keygen 4074 NOEXIST::FUNCTION: | 3689 | FIPS_corrupt_dsa_keygen 4074 NOEXIST::FUNCTION: |
3688 | FIPS_dh_free 4075 NOEXIST::FUNCTION: | 3690 | FIPS_dh_free 4075 NOEXIST::FUNCTION: |
3689 | fips_pkey_signature_test 4076 NOEXIST::FUNCTION: | 3691 | fips_pkey_signature_test 4076 NOEXIST::FUNCTION: |
3690 | EVP_add_alg_module 4077 NOEXIST::FUNCTION: | 3692 | EVP_add_alg_module 4077 EXIST::FUNCTION: |
3691 | int_RAND_init_engine_callbacks 4078 NOEXIST::FUNCTION: | 3693 | int_RAND_init_engine_callbacks 4078 NOEXIST::FUNCTION: |
3692 | int_EVP_CIPHER_set_engine_callbacks 4079 NOEXIST::FUNCTION: | 3694 | int_EVP_CIPHER_set_engine_callbacks 4079 NOEXIST::FUNCTION: |
3693 | int_EVP_MD_init_engine_callbacks 4080 NOEXIST::FUNCTION: | 3695 | int_EVP_MD_init_engine_callbacks 4080 NOEXIST::FUNCTION: |
diff --git a/src/lib/libssl/src/util/mk1mf.pl b/src/lib/libssl/src/util/mk1mf.pl index 458f830401..72fa089f6b 100644 --- a/src/lib/libssl/src/util/mk1mf.pl +++ b/src/lib/libssl/src/util/mk1mf.pl | |||
@@ -1222,7 +1222,7 @@ sub read_options | |||
1222 | } | 1222 | } |
1223 | } | 1223 | } |
1224 | } | 1224 | } |
1225 | elsif (/^([^=]*)=(.*)$/ && !/^-D/){ $VARS{$1}=$2; } | 1225 | elsif (/^([^=]*)=(.*)$/){ $VARS{$1}=$2; } |
1226 | elsif (/^-[lL].*$/) { $l_flags.="$_ "; } | 1226 | elsif (/^-[lL].*$/) { $l_flags.="$_ "; } |
1227 | elsif ((!/^-help/) && (!/^-h/) && (!/^-\?/) && /^-.*$/) | 1227 | elsif ((!/^-help/) && (!/^-h/) && (!/^-\?/) && /^-.*$/) |
1228 | { $c_flags.="$_ "; } | 1228 | { $c_flags.="$_ "; } |
diff --git a/src/lib/libssl/src/util/pl/BC-32.pl b/src/lib/libssl/src/util/pl/BC-32.pl index 1f1e13fb40..b41bb45e82 100644 --- a/src/lib/libssl/src/util/pl/BC-32.pl +++ b/src/lib/libssl/src/util/pl/BC-32.pl | |||
@@ -18,7 +18,7 @@ $out_def="out32"; | |||
18 | $tmp_def="tmp32"; | 18 | $tmp_def="tmp32"; |
19 | $inc_def="inc32"; | 19 | $inc_def="inc32"; |
20 | #enable max error messages, disable most common warnings | 20 | #enable max error messages, disable most common warnings |
21 | $cflags="-DWIN32_LEAN_AND_MEAN -q -w-ccc -w-rch -w-pia -w-aus -w-par -w-inl -c -tWC -tWM -DOPENSSL_SYSNAME_WIN32 -DL_ENDIAN -DDSO_WIN32 -D_stricmp=stricmp -D_strnicmp=strnicmp "; | 21 | $cflags="-DWIN32_LEAN_AND_MEAN -q -w-ccc -w-rch -w-pia -w-aus -w-par -w-inl -c -tWC -tWM -DOPENSSL_SYSNAME_WIN32 -DL_ENDIAN -DDSO_WIN32 -D_stricmp=stricmp -D_strnicmp=strnicmp -D_timeb=timeb -D_ftime=ftime "; |
22 | if ($debug) | 22 | if ($debug) |
23 | { | 23 | { |
24 | $cflags.="-Od -y -v -vi- -D_DEBUG"; | 24 | $cflags.="-Od -y -v -vi- -D_DEBUG"; |
@@ -38,7 +38,7 @@ $efile=""; | |||
38 | $exep='.exe'; | 38 | $exep='.exe'; |
39 | if ($no_sock) | 39 | if ($no_sock) |
40 | { $ex_libs=""; } | 40 | { $ex_libs=""; } |
41 | else { $ex_libs="cw32mt.lib import32.lib"; } | 41 | else { $ex_libs="cw32mt.lib import32.lib crypt32.lib ws2_32.lib"; } |
42 | 42 | ||
43 | # static library stuff | 43 | # static library stuff |
44 | $mklib='tlib /P64'; | 44 | $mklib='tlib /P64'; |
@@ -51,8 +51,8 @@ $lfile=''; | |||
51 | $shlib_ex_obj=""; | 51 | $shlib_ex_obj=""; |
52 | $app_ex_obj="c0x32.obj"; | 52 | $app_ex_obj="c0x32.obj"; |
53 | 53 | ||
54 | $asm='nasmw -f obj -d__omf__'; | 54 | $asm=(`nasm -v 2>NUL` ge `nasmw -v 2>NUL`?"nasm":"nasmw")." -f obj -d__omf__"; |
55 | $asm.=" /Zi" if $debug; | 55 | $asm.=" -g" if $debug; |
56 | $afile='-o'; | 56 | $afile='-o'; |
57 | 57 | ||
58 | $bn_mulw_obj=''; | 58 | $bn_mulw_obj=''; |
diff --git a/src/lib/libssl/src/util/pl/VC-32.pl b/src/lib/libssl/src/util/pl/VC-32.pl index c503bd52b9..3705fc73b7 100644 --- a/src/lib/libssl/src/util/pl/VC-32.pl +++ b/src/lib/libssl/src/util/pl/VC-32.pl | |||
@@ -27,6 +27,8 @@ $zlib_lib="zlib1.lib"; | |||
27 | $l_flags =~ s/-L("\[^"]+")/\/libpath:$1/g; | 27 | $l_flags =~ s/-L("\[^"]+")/\/libpath:$1/g; |
28 | $l_flags =~ s/-L(\S+)/\/libpath:$1/g; | 28 | $l_flags =~ s/-L(\S+)/\/libpath:$1/g; |
29 | 29 | ||
30 | my $ff = ""; | ||
31 | |||
30 | # C compiler stuff | 32 | # C compiler stuff |
31 | $cc='cl'; | 33 | $cc='cl'; |
32 | if ($FLAVOR =~ /WIN64/) | 34 | if ($FLAVOR =~ /WIN64/) |
@@ -118,7 +120,7 @@ elsif ($FLAVOR =~ /CE/) | |||
118 | $base_cflags.=' -I$(WCECOMPAT)/include' if (defined($ENV{'WCECOMPAT'})); | 120 | $base_cflags.=' -I$(WCECOMPAT)/include' if (defined($ENV{'WCECOMPAT'})); |
119 | $base_cflags.=' -I$(PORTSDK_LIBPATH)/../../include' if (defined($ENV{'PORTSDK_LIBPATH'})); | 121 | $base_cflags.=' -I$(PORTSDK_LIBPATH)/../../include' if (defined($ENV{'PORTSDK_LIBPATH'})); |
120 | $opt_cflags=' /MC /O1i'; # optimize for space, but with intrinsics... | 122 | $opt_cflags=' /MC /O1i'; # optimize for space, but with intrinsics... |
121 | $dbg_clfags=' /MC /Od -DDEBUG -D_DEBUG'; | 123 | $dbg_cflags=' /MC /Od -DDEBUG -D_DEBUG'; |
122 | $lflags="/nologo /opt:ref $wcelflag"; | 124 | $lflags="/nologo /opt:ref $wcelflag"; |
123 | } | 125 | } |
124 | else # Win32 | 126 | else # Win32 |
@@ -126,6 +128,7 @@ else # Win32 | |||
126 | $base_cflags= " $mf_cflag"; | 128 | $base_cflags= " $mf_cflag"; |
127 | my $f = $shlib || $fips ?' /MD':' /MT'; | 129 | my $f = $shlib || $fips ?' /MD':' /MT'; |
128 | $lib_cflag='/Zl' if (!$shlib); # remove /DEFAULTLIBs from static lib | 130 | $lib_cflag='/Zl' if (!$shlib); # remove /DEFAULTLIBs from static lib |
131 | $ff = "/fixed"; | ||
129 | $opt_cflags=$f.' /Ox /O2 /Ob2'; | 132 | $opt_cflags=$f.' /Ox /O2 /Ob2'; |
130 | $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG'; | 133 | $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG'; |
131 | $lflags="/nologo /subsystem:console /opt:ref"; | 134 | $lflags="/nologo /subsystem:console /opt:ref"; |
@@ -318,7 +321,7 @@ sub do_lib_rule | |||
318 | $ret.="\tSET FIPS_SHA1_EXE=\$(FIPS_SHA1_EXE)\n"; | 321 | $ret.="\tSET FIPS_SHA1_EXE=\$(FIPS_SHA1_EXE)\n"; |
319 | $ret.="\tSET FIPS_TARGET=$target\n"; | 322 | $ret.="\tSET FIPS_TARGET=$target\n"; |
320 | $ret.="\tSET FIPSLIB_D=\$(FIPSLIB_D)\n"; | 323 | $ret.="\tSET FIPSLIB_D=\$(FIPSLIB_D)\n"; |
321 | $ret.="\t\$(FIPSLINK) \$(MLFLAGS) /map $base_arg $efile$target "; | 324 | $ret.="\t\$(FIPSLINK) \$(MLFLAGS) $ff /map $base_arg $efile$target "; |
322 | $ret.="$name @<<\n \$(SHLIB_EX_OBJ) $objs \$(EX_LIBS) "; | 325 | $ret.="$name @<<\n \$(SHLIB_EX_OBJ) $objs \$(EX_LIBS) "; |
323 | $ret.="\$(OBJ_D)${o}fips_premain.obj $ex\n<<\n"; | 326 | $ret.="\$(OBJ_D)${o}fips_premain.obj $ex\n<<\n"; |
324 | } | 327 | } |
@@ -355,7 +358,7 @@ sub do_link_rule | |||
355 | $ret.="\tSET FIPS_TARGET=$target\n"; | 358 | $ret.="\tSET FIPS_TARGET=$target\n"; |
356 | $ret.="\tSET FIPS_SHA1_EXE=\$(FIPS_SHA1_EXE)\n"; | 359 | $ret.="\tSET FIPS_SHA1_EXE=\$(FIPS_SHA1_EXE)\n"; |
357 | $ret.="\tSET FIPSLIB_D=\$(FIPSLIB_D)\n"; | 360 | $ret.="\tSET FIPSLIB_D=\$(FIPSLIB_D)\n"; |
358 | $ret.="\t\$(FIPSLINK) \$(LFLAGS) /map $efile$target @<<\n"; | 361 | $ret.="\t\$(FIPSLINK) \$(LFLAGS) $ff /map $efile$target @<<\n"; |
359 | $ret.="\t\$(APP_EX_OBJ) $files \$(OBJ_D)${o}fips_premain.obj $libs\n<<\n"; | 362 | $ret.="\t\$(APP_EX_OBJ) $files \$(OBJ_D)${o}fips_premain.obj $libs\n<<\n"; |
360 | } | 363 | } |
361 | else | 364 | else |