summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErwin Lansing <erwin@FreeBSD.org>2012-12-17 10:58:24 +0000
committerErwin Lansing <erwin@FreeBSD.org>2012-12-17 10:58:24 +0000
commit823eb5f9dd4d336a5cd85e9129ab1da5676191df (patch)
tree840dc4ed116d4d74d5bf86e593e1d96d38b4b07f
parente65fce108837a6a80efa79ff174877e27db324c0 (diff)
downloadsrc-test2-vendor/bind9-9.6.tar.gz
src-test2-vendor/bind9-9.6.zip
Vendor import of Bind 9.6-ESV-R8vendor/bind9/9.6-ESV-R8vendor/bind9-9.6
Approved by: delphij (mentor) Sponsored by: DK Hostmaster A/S
Notes
Notes: svn path=/vendor/bind9/dist-9.6/; revision=244353 svn path=/vendor/bind9/9.6-ESV-R8/; revision=244354; tag=vendor/bind9/9.6-ESV-R8
-rw-r--r--CHANGES66
-rw-r--r--README9
-rw-r--r--bin/check/check-tool.c5
-rw-r--r--bin/dig/nslookup.c9
-rw-r--r--bin/dnssec/dnssec-signzone.c5
-rw-r--r--bin/named/controlconf.c6
-rwxr-xr-xbin/named/convertxsl.pl2
-rw-r--r--bin/named/statschannel.c35
-rw-r--r--bin/nsupdate/nsupdate.c51
-rw-r--r--configure.in4
-rw-r--r--doc/Makefile.in2
-rw-r--r--doc/arm/Bv9ARM-book.xml8
-rw-r--r--doc/arm/Bv9ARM.ch06.html8
-rw-r--r--doc/arm/Bv9ARM.pdf2251
-rw-r--r--doc/misc/format-options.pl2
-rwxr-xr-xdoc/misc/sort-options.pl2
-rw-r--r--isc-config.sh.in2
-rw-r--r--lib/Makefile.in2
-rw-r--r--lib/bind9/api2
-rw-r--r--lib/bind9/check.c70
-rw-r--r--lib/bind9/include/Makefile.in2
-rw-r--r--lib/bind9/include/bind9/Makefile.in2
-rw-r--r--lib/dns/adb.c19
-rw-r--r--lib/dns/api4
-rw-r--r--lib/dns/dnssec.c100
-rw-r--r--lib/dns/dst_openssl.h3
-rw-r--r--lib/dns/dst_parse.c35
-rw-r--r--lib/dns/dst_result.c4
-rw-r--r--lib/dns/include/Makefile.in2
-rw-r--r--lib/dns/include/dns/dnssec.h13
-rw-r--r--lib/dns/include/dns/iptable.h4
-rw-r--r--lib/dns/include/dns/log.h2
-rw-r--r--lib/dns/include/dns/stats.h10
-rw-r--r--lib/dns/include/dns/zone.h2
-rw-r--r--lib/dns/include/dst/Makefile.in2
-rw-r--r--lib/dns/include/dst/result.h6
-rw-r--r--lib/dns/log.c2
-rw-r--r--lib/dns/master.c48
-rw-r--r--lib/dns/masterdump.c12
-rw-r--r--lib/dns/openssl_link.c42
-rw-r--r--lib/dns/openssldh_link.c16
-rw-r--r--lib/dns/openssldsa_link.c34
-rw-r--r--lib/dns/opensslrsa_link.c52
-rw-r--r--lib/dns/rbtdb.c27
-rw-r--r--lib/dns/rdata.c12
-rwxr-xr-xlib/dns/spnego_asn1.pl2
-rw-r--r--lib/dns/zone.c80
-rw-r--r--lib/isc/alpha/Makefile.in2
-rw-r--r--lib/isc/alpha/include/Makefile.in2
-rw-r--r--lib/isc/alpha/include/isc/Makefile.in2
-rw-r--r--lib/isc/api6
-rw-r--r--lib/isc/ia64/Makefile.in2
-rw-r--r--lib/isc/ia64/include/Makefile.in2
-rw-r--r--lib/isc/ia64/include/isc/Makefile.in2
-rw-r--r--lib/isc/ia64/include/isc/atomic.h4
-rw-r--r--lib/isc/include/Makefile.in2
-rw-r--r--lib/isc/include/isc/file.h5
-rw-r--r--lib/isc/mem.c6
-rw-r--r--lib/isc/mips/Makefile.in2
-rw-r--r--lib/isc/mips/include/Makefile.in2
-rw-r--r--lib/isc/mips/include/isc/Makefile.in2
-rw-r--r--lib/isc/noatomic/Makefile.in2
-rw-r--r--lib/isc/noatomic/include/Makefile.in2
-rw-r--r--lib/isc/noatomic/include/isc/Makefile.in2
-rw-r--r--lib/isc/nothreads/include/Makefile.in2
-rw-r--r--lib/isc/nothreads/include/isc/Makefile.in2
-rw-r--r--lib/isc/powerpc/Makefile.in2
-rw-r--r--lib/isc/powerpc/include/Makefile.in2
-rw-r--r--lib/isc/powerpc/include/isc/Makefile.in2
-rw-r--r--lib/isc/pthreads/condition.c11
-rw-r--r--lib/isc/pthreads/include/Makefile.in2
-rw-r--r--lib/isc/pthreads/include/isc/Makefile.in2
-rw-r--r--lib/isc/sparc64/Makefile.in2
-rw-r--r--lib/isc/sparc64/include/Makefile.in2
-rw-r--r--lib/isc/sparc64/include/isc/Makefile.in2
-rw-r--r--lib/isc/unix/file.c5
-rw-r--r--lib/isc/unix/include/Makefile.in2
-rw-r--r--lib/isc/unix/include/isc/Makefile.in2
-rw-r--r--lib/isc/x86_32/Makefile.in2
-rw-r--r--lib/isc/x86_32/include/Makefile.in2
-rw-r--r--lib/isc/x86_32/include/isc/Makefile.in2
-rw-r--r--lib/isc/x86_64/Makefile.in2
-rw-r--r--lib/isc/x86_64/include/Makefile.in2
-rw-r--r--lib/isc/x86_64/include/isc/Makefile.in2
-rw-r--r--lib/isccc/api2
-rw-r--r--lib/isccc/cc.c6
-rw-r--r--lib/isccc/include/Makefile.in2
-rw-r--r--lib/isccc/include/isccc/Makefile.in2
-rw-r--r--lib/isccfg/include/Makefile.in2
-rw-r--r--lib/isccfg/include/isccfg/Makefile.in2
-rw-r--r--lib/lwres/Makefile.in2
-rw-r--r--lib/lwres/api2
-rw-r--r--lib/lwres/getaddrinfo.c6
-rw-r--r--lib/lwres/include/Makefile.in2
-rw-r--r--lib/lwres/include/lwres/Makefile.in2
-rw-r--r--lib/lwres/man/Makefile.in2
-rw-r--r--lib/lwres/unix/Makefile.in2
-rw-r--r--lib/lwres/unix/include/Makefile.in2
-rw-r--r--lib/lwres/unix/include/lwres/Makefile.in2
-rw-r--r--make/rules.in2
-rw-r--r--version2
101 files changed, 1793 insertions, 1426 deletions
diff --git a/CHANGES b/CHANGES
index 19f47f7acca1..6e8b138a8716 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,33 +1,87 @@
- --- 9.6-ESV-R7-P4 released ---
+ --- 9.6-ESV-R8 released ---
3383. [security] A certain combination of records in the RBT could
cause named to hang while populating the additional
section of a response. [RT #31090]
- --- 9.6-ESV-R7-P3 released ---
+3373. [bug] win32: open raw files in binary mode. [RT #30944]
3364. [security] Named could die on specially crafted record.
[RT #30416]
-3358 [bug] Fix declaration of fatal in bin/named/server.c
+ --- 9.6-ESV-R8rc1 released ---
+
+3369. [bug] nsupdate terminated unexpectedly in interactive mode
+ if built with readline support. [RT #29550]
+
+3368. [bug] <dns/iptable.h> and <dns/zone.h> were not C++ safe.
+
+3366. [bug] Fixed Read-After-Write dependency violation for IA64
+ atomic operations. [RT #25181]
+
+3365. [bug] Removed spurious newlines from log messages in
+ zone.c [RT #30675]
+
+3362. [bug] Setting some option values to 0 in named.conf
+ could trigger an assertion failure on startup.
+ [RT #27730]
+
+3360. [bug] 'host -w' could die. [RT #18723]
+
+3359. [bug] An improperly-formed TSIG secret could cause a
+ memory leak. [RT #30607]
+
+3358. [bug] Fix declaration of fatal in bin/named/server.c
and bin/nsupdate/main.c. [RT #30522]
- --- 9.6-ESV-R7-P2 released ---
+3357. [port] Add support for libxml2-2.8.x [RT #30440]
+
+ --- 9.6-ESV-R8b1 released ---
+
+3354. [func] Improve OpenSSL error logging. [RT #29932]
+
+3352. [bug] Ensure that learned server attributes timeout of the
+ adb cache. [RT #29856]
+
+3350. [bug] Memory read overrun in isc___mem_reallocate if
+ ISC_MEM_DEBUGCTX memory debugging flag is set.
+ [RT #30240]
+
+3348. [bug] Prevent RRSIG data from being cached if a negative
+ record matching the covering type exists at a higher
+ trust level. Such data already can't be retrieved from
+ the cache since change 3218 -- this prevents it
+ being inserted into the cache as well. [RT #26809]
3346. [security] Bad-cache data could be used before it was
initialized, causing an assert. [RT #30025]
-3343. [bug] Relax isc_random_jitter() REQUIRE tests. [RT #29821]
+3343. [bug] Relax isc_random_jitter() REQUIRE tests. [RT #29821]
3342. [bug] Change #3314 broke saving of stub zones to disk
resulting in excessive cpu usage in some cases.
[RT #29952]
- --- 9.6-ESV-R7-P1 released ---
+3337. [bug] Change #3294 broke support for the multiple keys
+ in controls. [RT #29694]
+
+3335. [func] nslookup: return a nonzero exit code when unable
+ to get an answer. [RT #29492]
+
+3332. [bug] Re-use cached DS rrsets if possible. [RT #29446]
3331. [security] dns_rdataslab_fromrdataset could produce bad
rdataslabs. [RT #29644]
+3329. [bug] Handle RRSIG signer-name case consistently: We
+ generate RRSIG records with the signer-name in
+ lower case. We accept them with any case, but if
+ they fail to validate, we try again in lower case.
+ [RT #27451]
+
+3328. [bug] Fixed inconsistent data checking in dst_parse.c.
+ [RT #29401]
+
--- 9.6-ESV-R7 released ---
3318. [tuning] Reduce the amount of work performed while holding a
diff --git a/README b/README
index 28750be5d831..23c48ea5e66b 100644
--- a/README
+++ b/README
@@ -48,9 +48,14 @@ BIND 9
For up-to-date release notes and errata, see
http://www.isc.org/software/bind9/releasenotes
+BIND 9.6-ESV-R8 (Extended Support Version)
+
+ BIND 9.6-ESV-R8 includes several bug fixes and patches security
+ flaws described in CVE-2012-1667, CVE-2012-3817 and CVE-2012-4244.
+
BIND 9.6-ESV-R7 (Extended Support Version)
- BIND 9.4-ESV-R7 is a maintenance release, fixing bugs in BIND
+ BIND 9.6-ESV-R7 is a maintenance release, fixing bugs in BIND
9.6-ESV-R6.
BIND 9.6-ESV-R6 (Extended Support Version)
@@ -60,7 +65,7 @@ BIND 9.6-ESV-R6 (Extended Support Version)
BIND 9.6-ESV-R5 (Extended Support Version)
- BIND 9.4-ESV-R5 is a maintenance release, fixing bugs in BIND
+ BIND 9.6-ESV-R5 is a maintenance release, fixing bugs in BIND
9.6-ESV-R4.
BIND 9.6.3/BIND 9.6-ESV-R4
diff --git a/bin/check/check-tool.c b/bin/check/check-tool.c
index e936b7cc9dd2..cb330f2f7db2 100644
--- a/bin/check/check-tool.c
+++ b/bin/check/check-tool.c
@@ -640,6 +640,9 @@ dump_zone(const char *zonename, dns_zone_t *zone, const char *filename,
{
isc_result_t result;
FILE *output = stdout;
+ const char *flags;
+
+ flags = (fileformat == dns_masterformat_text) ? "w+" : "wb+";
if (debug) {
if (filename != NULL && strcmp(filename, "-") != 0)
@@ -650,7 +653,7 @@ dump_zone(const char *zonename, dns_zone_t *zone, const char *filename,
}
if (filename != NULL && strcmp(filename, "-") != 0) {
- result = isc_stdio_open(filename, "w+", &output);
+ result = isc_stdio_open(filename, flags, &output);
if (result != ISC_R_SUCCESS) {
fprintf(stderr, "could not open output "
diff --git a/bin/dig/nslookup.c b/bin/dig/nslookup.c
index e990055ab237..ba586195e167 100644
--- a/bin/dig/nslookup.c
+++ b/bin/dig/nslookup.c
@@ -57,6 +57,7 @@ static isc_boolean_t in_use = ISC_FALSE;
static char defclass[MXRD] = "IN";
static char deftype[MXRD] = "A";
static isc_event_t *global_event = NULL;
+static int query_error = 1, print_error = 0;
static char domainopt[DNS_NAME_MAXTEXT];
@@ -406,6 +407,9 @@ isc_result_t
printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) {
char servtext[ISC_SOCKADDR_FORMATSIZE];
+ /* I've we've gotten this far, we've reached a server. */
+ query_error = 0;
+
debug("printmessage()");
isc_sockaddr_format(&query->sockaddr, servtext, sizeof(servtext));
@@ -433,6 +437,9 @@ printmessage(dig_query_t *query, dns_message_t *msg, isc_boolean_t headers) {
(msg->rcode != dns_rcode_nxdomain) ? nametext :
query->lookup->textname, rcode_totext(msg->rcode));
debug("returning with rcode == 0");
+
+ /* the lookup failed */
+ print_error |= 1;
return (ISC_R_SUCCESS);
}
@@ -903,5 +910,5 @@ main(int argc, char **argv) {
destroy_libs();
isc_app_finish();
- return (0);
+ return (query_error | print_error);
}
diff --git a/bin/dnssec/dnssec-signzone.c b/bin/dnssec/dnssec-signzone.c
index 92697100c4c1..4b2188699772 100644
--- a/bin/dnssec/dnssec-signzone.c
+++ b/bin/dnssec/dnssec-signzone.c
@@ -3520,7 +3520,10 @@ main(int argc, char *argv[]) {
check_result(result, "isc_file_mktemplate");
fp = NULL;
- result = isc_file_openunique(tempfile, &fp);
+ if (outputformat == dns_masterformat_text)
+ result = isc_file_openunique(tempfile, &fp);
+ else
+ result = isc_file_bopenunique(tempfile, &fp);
if (result != ISC_R_SUCCESS)
fatal("failed to open temporary output file: %s",
isc_result_totext(result));
diff --git a/bin/named/controlconf.c b/bin/named/controlconf.c
index 2dede0d59172..98f2f1516a55 100644
--- a/bin/named/controlconf.c
+++ b/bin/named/controlconf.c
@@ -373,8 +373,10 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
if (result == ISC_R_SUCCESS)
break;
isc_mem_put(listener->mctx, secret.rstart, REGION_SIZE(secret));
- log_invalid(&conn->ccmsg, result);
- goto cleanup;
+ if (result != ISCCC_R_BADAUTH) {
+ log_invalid(&conn->ccmsg, result);
+ goto cleanup;
+ }
}
if (key == NULL) {
diff --git a/bin/named/convertxsl.pl b/bin/named/convertxsl.pl
index 87550b3c1a58..f3553685be39 100755
--- a/bin/named/convertxsl.pl
+++ b/bin/named/convertxsl.pl
@@ -1,6 +1,6 @@
#!/usr/bin/env perl
#
-# Copyright (C) 2006-2008 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2006-2008, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/bin/named/statschannel.c b/bin/named/statschannel.c
index 633ccc9644d9..8d8f108fd383 100644
--- a/bin/named/statschannel.c
+++ b/bin/named/statschannel.c
@@ -84,16 +84,19 @@ static const char *nsstats_desc[dns_nsstatscounter_max];
static const char *resstats_desc[dns_resstatscounter_max];
static const char *zonestats_desc[dns_zonestatscounter_max];
static const char *sockstats_desc[isc_sockstatscounter_max];
+static const char *dnssecstats_desc[dns_dnssecstats_max];
#ifdef HAVE_LIBXML2
static const char *nsstats_xmldesc[dns_nsstatscounter_max];
static const char *resstats_xmldesc[dns_resstatscounter_max];
static const char *zonestats_xmldesc[dns_zonestatscounter_max];
static const char *sockstats_xmldesc[isc_sockstatscounter_max];
+static const char *dnssecstats_xmldesc[dns_dnssecstats_max];
#else
#define nsstats_xmldesc NULL
#define resstats_xmldesc NULL
#define zonestats_xmldesc NULL
#define sockstats_xmldesc NULL
+#define dnssecstats_xmldesc NULL
#endif /* HAVE_LIBXML2 */
#define TRY0(a) do { xmlrc = (a); if (xmlrc < 0) goto error; } while(0)
@@ -107,6 +110,7 @@ static int nsstats_index[dns_nsstatscounter_max];
static int resstats_index[dns_resstatscounter_max];
static int zonestats_index[dns_zonestatscounter_max];
static int sockstats_index[isc_sockstatscounter_max];
+static int dnssecstats_index[dns_dnssecstats_max];
static inline void
set_desc(int counter, int maxcounter, const char *fdesc, const char **fdescs,
@@ -408,6 +412,33 @@ init_desc(void) {
"FDwatchRecvErr");
INSIST(i == isc_sockstatscounter_max);
+ /* Initialize DNSSEC statistics */
+ for (i = 0; i < dns_dnssecstats_max; i++)
+ dnssecstats_desc[i] = NULL;
+#ifdef HAVE_LIBXML2
+ for (i = 0; i < dns_dnssecstats_max; i++)
+ dnssecstats_xmldesc[i] = NULL;
+#endif
+
+#define SET_DNSSECSTATDESC(counterid, desc, xmldesc) \
+ do { \
+ set_desc(dns_dnssecstats_ ## counterid, \
+ dns_dnssecstats_max, \
+ desc, dnssecstats_desc,\
+ xmldesc, dnssecstats_xmldesc); \
+ dnssecstats_index[i++] = dns_dnssecstats_ ## counterid; \
+ } while (0)
+
+ i = 0;
+ SET_DNSSECSTATDESC(asis, "dnssec validation success with signer "
+ "\"as is\"", "DNSSECasis");
+ SET_DNSSECSTATDESC(downcase, "dnssec validation success with signer "
+ "lower cased", "DNSSECdowncase");
+ SET_DNSSECSTATDESC(wildcard, "dnssec validation of wildcard signature",
+ "DNSSECwild");
+ SET_DNSSECSTATDESC(fail, "dnssec validation failures", "DNSSECfail");
+ INSIST(i == dns_dnssecstats_max);
+
/* Sanity check */
for (i = 0; i < dns_nsstatscounter_max; i++)
INSIST(nsstats_desc[i] != NULL);
@@ -417,6 +448,8 @@ init_desc(void) {
INSIST(zonestats_desc[i] != NULL);
for (i = 0; i < isc_sockstatscounter_max; i++)
INSIST(sockstats_desc[i] != NULL);
+ for (i = 0; i < dns_dnssecstats_max; i++)
+ INSIST(dnssecstats_desc[i] != NULL);
#ifdef HAVE_LIBXML2
for (i = 0; i < dns_nsstatscounter_max; i++)
INSIST(nsstats_xmldesc[i] != NULL);
@@ -426,6 +459,8 @@ init_desc(void) {
INSIST(zonestats_xmldesc[i] != NULL);
for (i = 0; i < isc_sockstatscounter_max; i++)
INSIST(sockstats_xmldesc[i] != NULL);
+ for (i = 0; i < dns_dnssecstats_max; i++)
+ INSIST(dnssecstats_xmldesc[i] != NULL);
#endif
}
diff --git a/bin/nsupdate/nsupdate.c b/bin/nsupdate/nsupdate.c
index 3c10b5fd369f..5f25d3c68848 100644
--- a/bin/nsupdate/nsupdate.c
+++ b/bin/nsupdate/nsupdate.c
@@ -1011,7 +1011,7 @@ parse_name(char **cmdlinep, dns_message_t *msg, dns_name_t **namep) {
isc_buffer_t source;
word = nsu_strsep(cmdlinep, " \t\r\n");
- if (*word == 0) {
+ if (word == NULL || *word == 0) {
fprintf(stderr, "could not read owner name\n");
return (STATUS_SYNTAX);
}
@@ -1044,6 +1044,11 @@ parse_rdata(char **cmdlinep, dns_rdataclass_t rdataclass,
dns_rdatacallbacks_t callbacks;
isc_result_t result;
+ if (cmdline == NULL) {
+ rdata->flags = DNS_RDATA_UPDATE;
+ return (STATUS_MORE);
+ }
+
while (*cmdline != 0 && isspace((unsigned char)*cmdline))
cmdline++;
@@ -1110,7 +1115,7 @@ make_prereq(char *cmdline, isc_boolean_t ispositive, isc_boolean_t isrrset) {
*/
if (isrrset) {
word = nsu_strsep(&cmdline, " \t\r\n");
- if (*word == 0) {
+ if (word == NULL || *word == 0) {
fprintf(stderr, "could not read class or type\n");
goto failure;
}
@@ -1126,7 +1131,7 @@ make_prereq(char *cmdline, isc_boolean_t ispositive, isc_boolean_t isrrset) {
* Now read the type.
*/
word = nsu_strsep(&cmdline, " \t\r\n");
- if (*word == 0) {
+ if (word == NULL || *word == 0) {
fprintf(stderr, "could not read type\n");
goto failure;
}
@@ -1200,7 +1205,7 @@ evaluate_prereq(char *cmdline) {
ddebug("evaluate_prereq()");
word = nsu_strsep(&cmdline, " \t\r\n");
- if (*word == 0) {
+ if (word == NULL || *word == 0) {
fprintf(stderr, "could not read operation code\n");
return (STATUS_SYNTAX);
}
@@ -1229,14 +1234,14 @@ evaluate_server(char *cmdline) {
long port;
word = nsu_strsep(&cmdline, " \t\r\n");
- if (*word == 0) {
+ if (word == NULL || *word == 0) {
fprintf(stderr, "could not read server name\n");
return (STATUS_SYNTAX);
}
server = word;
word = nsu_strsep(&cmdline, " \t\r\n");
- if (*word == 0)
+ if (word == NULL || *word == 0)
port = DNSDEFAULTPORT;
else {
char *endp;
@@ -1270,14 +1275,14 @@ evaluate_local(char *cmdline) {
struct in6_addr in6;
word = nsu_strsep(&cmdline, " \t\r\n");
- if (*word == 0) {
+ if (word == NULL || *word == 0) {
fprintf(stderr, "could not read server name\n");
return (STATUS_SYNTAX);
}
local = word;
word = nsu_strsep(&cmdline, " \t\r\n");
- if (*word == 0)
+ if (word == NULL || *word == 0)
port = 0;
else {
char *endp;
@@ -1326,7 +1331,7 @@ evaluate_key(char *cmdline) {
char *n;
namestr = nsu_strsep(&cmdline, " \t\r\n");
- if (*namestr == 0) {
+ if (namestr == NULL || *namestr == 0) {
fprintf(stderr, "could not read key name\n");
return (STATUS_SYNTAX);
}
@@ -1350,7 +1355,7 @@ evaluate_key(char *cmdline) {
}
secretstr = nsu_strsep(&cmdline, "\r\n");
- if (*secretstr == 0) {
+ if (secretstr == NULL || *secretstr == 0) {
fprintf(stderr, "could not read key secret\n");
return (STATUS_SYNTAX);
}
@@ -1391,7 +1396,7 @@ evaluate_zone(char *cmdline) {
isc_result_t result;
word = nsu_strsep(&cmdline, " \t\r\n");
- if (*word == 0) {
+ if (word == NULL || *word == 0) {
fprintf(stderr, "could not read zone name\n");
return (STATUS_SYNTAX);
}
@@ -1418,7 +1423,7 @@ evaluate_realm(char *cmdline) {
char buf[1024];
word = nsu_strsep(&cmdline, " \t\r\n");
- if (*word == 0) {
+ if (word == NULL || *word == 0) {
if (realm != NULL)
isc_mem_free(mctx, realm);
realm = NULL;
@@ -1443,7 +1448,7 @@ evaluate_ttl(char *cmdline) {
isc_uint32_t ttl;
word = nsu_strsep(&cmdline, " \t\r\n");
- if (*word == 0) {
+ if (word == NULL || *word == 0) {
fprintf(stderr, "could not ttl\n");
return (STATUS_SYNTAX);
}
@@ -1477,7 +1482,7 @@ evaluate_class(char *cmdline) {
dns_rdataclass_t rdclass;
word = nsu_strsep(&cmdline, " \t\r\n");
- if (*word == 0) {
+ if (word == NULL || *word == 0) {
fprintf(stderr, "could not read class name\n");
return (STATUS_SYNTAX);
}
@@ -1535,7 +1540,7 @@ update_addordelete(char *cmdline, isc_boolean_t isdelete) {
* If it's a delete, ignore a TTL if present (for compatibility).
*/
word = nsu_strsep(&cmdline, " \t\r\n");
- if (*word == 0) {
+ if (word == NULL || *word == 0) {
if (!isdelete) {
fprintf(stderr, "could not read owner ttl\n");
goto failure;
@@ -1576,7 +1581,7 @@ update_addordelete(char *cmdline, isc_boolean_t isdelete) {
*/
word = nsu_strsep(&cmdline, " \t\r\n");
parseclass:
- if (*word == 0) {
+ if (word == NULL || *word == 0) {
if (isdelete) {
rdataclass = dns_rdataclass_any;
rdatatype = dns_rdatatype_any;
@@ -1600,7 +1605,7 @@ update_addordelete(char *cmdline, isc_boolean_t isdelete) {
* Now read the type.
*/
word = nsu_strsep(&cmdline, " \t\r\n");
- if (*word == 0) {
+ if (word == NULL || *word == 0) {
if (isdelete) {
rdataclass = dns_rdataclass_any;
rdatatype = dns_rdatatype_any;
@@ -1680,7 +1685,7 @@ evaluate_update(char *cmdline) {
ddebug("evaluate_update()");
word = nsu_strsep(&cmdline, " \t\r\n");
- if (*word == 0) {
+ if (word == NULL || *word == 0) {
fprintf(stderr, "could not read operation code\n");
return (STATUS_SYNTAX);
}
@@ -1770,6 +1775,7 @@ get_next_command(void) {
char cmdlinebuf[MAXCMD];
char *cmdline;
char *word;
+ char *tmp;
ddebug("get_next_command()");
if (interactive) {
@@ -1781,11 +1787,18 @@ get_next_command(void) {
isc_app_unblock();
if (cmdline == NULL)
return (STATUS_QUIT);
+
+ /*
+ * Normalize input by removing any eol.
+ */
+ tmp = cmdline;
+ (void)nsu_strsep(&tmp, "\r\n");
+
word = nsu_strsep(&cmdline, " \t\r\n");
if (feof(input))
return (STATUS_QUIT);
- if (*word == 0)
+ if (word == NULL || *word == 0)
return (STATUS_SEND);
if (word[0] == ';')
return (STATUS_MORE);
diff --git a/configure.in b/configure.in
index c4ff207b754c..7e7079b62185 100644
--- a/configure.in
+++ b/configure.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2011 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1998-2003 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
@@ -1090,7 +1090,7 @@ case "$use_libxml2" in
;;
auto|yes)
case X`(xml2-config --version) 2>/dev/null` in
- X2.[[67]].*)
+ X2.[[678]].*)
libxml2_libs=`xml2-config --libs`
libxml2_cflags=`xml2-config --cflags`
;;
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 14d35bc2d648..29074b53fb1c 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004-2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2000, 2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/doc/arm/Bv9ARM-book.xml b/doc/arm/Bv9ARM-book.xml
index 5719397b9b51..5d179d9a0192 100644
--- a/doc/arm/Bv9ARM-book.xml
+++ b/doc/arm/Bv9ARM-book.xml
@@ -9978,7 +9978,7 @@ zone <replaceable>zone_name</replaceable> <optional><replaceable>class</replacea
(machine$@REALM) for machine in REALM and
and converts it machine.realm allowing the machine
to update machine.realm. The REALM to be matched
- is specified in the <replacable>identity</replacable>
+ is specified in the <replaceable>identity</replaceable>
field.
</para>
</entry>
@@ -9995,7 +9995,7 @@ zone <replaceable>zone_name</replaceable> <optional><replaceable>class</replacea
converts it to machine.realm allowing the machine
to update subdomains of machine.realm. The REALM
to be matched is specified in the
- <replacable>identity</replacable> field.
+ <replaceable>identity</replaceable> field.
</para>
</entry>
</row>
@@ -10010,7 +10010,7 @@ zone <replaceable>zone_name</replaceable> <optional><replaceable>class</replacea
(host/machine@REALM) for machine in REALM and
and converts it machine.realm allowing the machine
to update machine.realm. The REALM to be matched
- is specified in the <replacable>identity</replacable>
+ is specified in the <replaceable>identity</replaceable>
field.
</para>
</entry>
@@ -10027,7 +10027,7 @@ zone <replaceable>zone_name</replaceable> <optional><replaceable>class</replacea
converts it to machine.realm allowing the machine
to update subdomains of machine.realm. The REALM
to be matched is specified in the
- <replacable>identity</replacable> field.
+ <replaceable>identity</replaceable> field.
</para>
</entry>
</row>
diff --git a/doc/arm/Bv9ARM.ch06.html b/doc/arm/Bv9ARM.ch06.html
index 679c08722385..ba8f9e10d2ca 100644
--- a/doc/arm/Bv9ARM.ch06.html
+++ b/doc/arm/Bv9ARM.ch06.html
@@ -6255,7 +6255,7 @@ zone <em class="replaceable"><code>zone_name</code></em> [<span class="optional"
(machine$@REALM) for machine in REALM and
and converts it machine.realm allowing the machine
to update machine.realm. The REALM to be matched
- is specified in the <font color="red">&lt;replacable&gt;identity&lt;/replacable&gt;</font>
+ is specified in the <em class="replaceable"><code>identity</code></em>
field.
</p>
</td>
@@ -6273,7 +6273,7 @@ zone <em class="replaceable"><code>zone_name</code></em> [<span class="optional"
converts it to machine.realm allowing the machine
to update subdomains of machine.realm. The REALM
to be matched is specified in the
- <font color="red">&lt;replacable&gt;identity&lt;/replacable&gt;</font> field.
+ <em class="replaceable"><code>identity</code></em> field.
</p>
</td>
</tr>
@@ -6289,7 +6289,7 @@ zone <em class="replaceable"><code>zone_name</code></em> [<span class="optional"
(host/machine@REALM) for machine in REALM and
and converts it machine.realm allowing the machine
to update machine.realm. The REALM to be matched
- is specified in the <font color="red">&lt;replacable&gt;identity&lt;/replacable&gt;</font>
+ is specified in the <em class="replaceable"><code>identity</code></em>
field.
</p>
</td>
@@ -6307,7 +6307,7 @@ zone <em class="replaceable"><code>zone_name</code></em> [<span class="optional"
converts it to machine.realm allowing the machine
to update subdomains of machine.realm. The REALM
to be matched is specified in the
- <font color="red">&lt;replacable&gt;identity&lt;/replacable&gt;</font> field.
+ <em class="replaceable"><code>identity</code></em> field.
</p>
</td>
</tr>
diff --git a/doc/arm/Bv9ARM.pdf b/doc/arm/Bv9ARM.pdf
index 87a4d6f16b59..60a5658c1551 100644
--- a/doc/arm/Bv9ARM.pdf
+++ b/doc/arm/Bv9ARM.pdf
@@ -7371,29 +7371,19 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
1521 0 obj <<
-/Length 3196
-/Filter /FlateDecode
->>
-stream
-xÚÍZ[oÛÈ~÷¯} ‹á܇}Ú쮓f/Ië¸XÙ<Pm±¡D­HÅ Ðßsæ É!EYNì
-Ð"”¾Ù,üД’uVUémFCW©Wí h¸ÙÅgß/­«lÙë—r%ZyÊå6Û¥þ°(Ül7ÄX”(Å݆òõ:[æi¹ lB[qXK{J·—%åÓÏlJJoö;˜sG#üZ*ßwwÎì4£Bö)]ç›l G ¹ž>§Úî¡àpTº]BåÝ*ÛPŽ¶™*¿ÝÀŒ½ýSÓH$#ï/m€¬FfÅò‚ÚÚN ìiÛMÛnTo¨2],J·ÝeJ— mwy½¡Bp (ù¥àÑŽÜU„UÊu+Tq¿Ý×UÛl‘;êKÏ¢›‘Δó‹ˆÚ¹M”nÜܯK,kNòÜÝÖÑåþ¹Ï)³¤Ö›rG|¤DÀGŒ©È
-äÝŽÛY•7# §X$83¾ã8-Y£š.º.åQb&âI"|ONÙGÚ£sÀõV5;uî zV¾Ë:ÝnóÍ-µ>£dK½ðì>¹ƒ›qa"!`é½Ë[”¤Ôʼõ¾ªƒ;\J
-”ò±â#lý!ƒý‰8™î+‡3ÈÕ%- ‘ékÜ•b§í$åfU‚„ËïNž`[JÉõ/—ÿ¦\öi±J7·~¨Ã8Å<;gS7
-ƒ@º 9Ú)=Ùj•vŒ Í|Çúâ(— b
-WbšUI5ž%øt“Ý–uÞ(2äƬ^•KÊÓª07ÿLéË·ogˆ¯ *Þ­rb2>¤ó"¯¼Üä nýäÓ :·´¦ÂPi²îªX¢¦¿d»yæN¿¬¨4ýf‘oÓ‚Šxž˜¶#E“áâb§ÞWTVÞ
-²¡œ³¬®Øzñõlv÷ýª /Ëušo¾‘x,6‘Jt#há yÂ=ä›…JT™DÎP$“ 9ŽCêÐÏh)}ÇVÖ áPÖ8q(À ”VÄ!
-«‡‚Æ’^ÄcRyMÈÀcšÿ'[ÔÔ¯.©ò§×oÇIi@Ù6Ý Äuô`¼â͇Ðv³¨£‹‚ªAÊ“¤ÛYÖû¢Î·MW29šq#è¾=[–DLƒùxòpØ錉ááö•¨“:mt¹·²y8ûsŸ=O ¡<‰qw/îÚ€³ÐSó/P 0ó¤±Ê , K¿À»¹:ªwE®V³•‹Z:’©uuŒd‘•‚=”­i?÷[?¤gE¤-¸; =@©jÌ®a®£DÆ,Xâ=tŠ„i/yœÉ༥–ö@`ÐÑèÜå—F`úØ>ðúz>´'~?WÀO›eyç[œÂ…´/¹ÈWsJ¬XûŽ7Rkp}À|§Â<+ÊÍm3[9j:a)Ókk Ë&ô¡¬‰I1c†qJ?¦(ø1OÒʈóÖît6ÉáT\D ºÜÇQ†¾q Ãû€pù=R^x-Çöo"ËcóàE3mM~ ØÞWqâ!ÜÜã7ö893“†ƒ„
-#€©Ö)ÜEÒ6ö8li-,´Á,PôDé­s¨j&Ú/óÌ9¹(ÒɃZö£{¤²hÛ’Øh´M2Šƒ È¡à01ï´á1Á Ú½Õ¡7¢K‚—/Y'ÜÃãîQ$bk¿ \8‡[V'Ð",ÚœT8}È4!Y†^Y.bM<­‰`Æûêk1ÀB °iC6¥Ä­h6¢Îæ,o.ú6Ç~. fmK®ž@ÝÍ<~„Š¬V_B²q?ÜÂX%§
-Ž§‘ÉÐ^šbC˜¶ŽœÐäÈa¥sä0Ówä°&täDbÚø((u8vm†
-}ð@ÊPJÞHCÉ›X÷ØÇžûXÙb?ìá#ŸÐ3‹
-€š{‰Ù.üˆ-nõ8Ë~x:<6æÈÃI6#Žã1 ØÄ õ'ŒÅ`FrŸ±:&Ëà ºûd‰îî[î|`Ã4ío «ü}be{ŸXߣà¥ËPŒu¢HpIa1.ˆ"ð¨A™9v±LÄPÍ”àG8€.Á=ÉyL2¬7÷ëÏo7¥Rì¶.#‹”{žïsªiµ*÷Ľ
-£Ÿ6ö6?hEÑD},ªÄd "Ȫ‡y¼xòÃÑJvÓ·s}qëpÁÓŒƒ5Ï8ÿÝ'jÓFh¬Ëª¦š}•Ý싾À
-ä4×'€b@{%Rž
-ïŒ!EÄ¡Q{C
-Ò)XG
-˜ùJÉ“HI`¯¤8š)˜+7Åg?i€×2†™ã2JŒƒPëq¨¶~F‹˜‡ã$¸§
-ÈAc”ý’͈£@aÀ¶Æh{(`´0+Ù‰@ÛNlÊ°®/ýùú”’^D»´qil >¿aÅþ:õSÝ ¿|uùü×ßš§Côx2¢£Š…´Õ†²®?õua°®Í€Ñ8:×Çlç,I&Ý·-ÁZúQuÇæÀÈ€N¤ç¡º] ¼ÞÆlû¡Ûõ™éûÁ4hmF¯„°Í~„ð™0dï Ó=ÂÁ‚cXH{Ú  ît£Çíèw4ó¶Hé¼ÈÞ=sx÷l´ÓIw=„ãã þm¹Fhаì~¦Áo½2¶üAAàÿ7Îœç|'ÂZ‡H˜AÖq v¤—1äb1b HI >ë:`®“€]°ä_¾%Á§*M¯40mxóÙ ¹ëöpR4Š½«æ:ø]a–‚¡Æ‹üð›2>xf‡²óÜ÷Þë›2O‡Ê§åä)yÇèˆsuŠwÀÖàæžü\4_¡mâJžu\>õéà¥Vµ(s¥ŽFn¹ n<ócBæ±\ó`¦cIôÚIí`Ö# »y$Hlë Ø
-J¤o± ¤×ÔªÛ¨ªëßZÁmGuLÃXfœe´×7Ø¡a
+/Length 3198
+/Filter /FlateDecode
+>>
+stream
+xÚÍZ[oÛF~÷¯Š}ù÷©iëdÓKºëxQ,Ú>Ðmq#‘ªHÅ °?~Ï™3$‡i9± , yîgnß¹rØ,†?6S:Ò Of&‘‘Š™š-·gñìÚ^Ÿ1ßgÑtZ„½¾¹>{ñJ˜Y%šëÙõm@ËF±µlv½úu®#…xþíÏo_½yý¯«—çFίßüüö|ÁU<õæÇKʽ¾zùÓO/¯ÎÌ*6ÿöï/ÿq}yEMÚÓøæÍÛï¨&¡d‚èÕå«Ë«Ë·ß^žÿ~ýýÙåu»—p¿,¸‘?Î~ý=ž­`ÛߟőH¬šÝC!ŽX’ðÙöL*))DS³9{wöÏ–`Ðꆎž‹#.49@ÎÇP%‘\¸¼^çmªI×å=eRJöçv~ØdTXe¿Å1/ò:/ ªÙ”åûêox/^ILÏ<‰¬µnžßbŸ/tÏïöiQSö¿”¬²âå £\•u^ûú"Ýfõ§]Ö•(÷+%ØTQöwZIoãÍJLâ–r™.×°v­ƒ­AÁ­«¢|¹ÇÔàÊòÌ×íöù‡|“Ýe E(;ÿ¹Xú¡)%Û¬ªÒ»Œ†®S?®:,—Ðp{Øl>ù~i½\g«ÞX¿” (ØÐÚS.wÙ>õ‡ DáŽ`{¸!Æ¢D)î6”o·Ù*OëÌM`ÚŠ›ÀZÚ Tº½¬(Ÿ>S””Þö0çžFøµT¾ïþœÙyF…ìcºÍ‹lG ¹ž¿¤Úî¡àpTº]Båý:+(G[ƒL•ß0co?ÄÔ4ÉHãûK «†ÙfuAmm'‚vˆ´í¦m· ªÎ ªL—ËÒmw•ÒåBÛ}^¯G¨J~)x´#wDca•rÝ
+UÜo÷uÕ.[æŽúʳh1Ò™r~Q;·‰Á›ûm‰€e͉Cž»[Â:ºÜ?9eVÔz[øˆ1Y¡€¼ÛÑr·¨²ÍíÃ) ÎŒï8N‹GÖ¨¦‹®K9IÌD<I„ï Ò)û@›`t¸Þª†c' ®Â}AÏÊwÙ¦»]^ÜQë JvÔ Ïî£;¸&–Þ»¼eY ¥VæmUÜáàR N^ŒõÂwÛIM€Àc9¥N’ƒCMJÅû|³Z¶gÑ0Ê,öÛcl~AãjR¸Œ>»ô&¹4]¿{óº??T ”aë÷ìOÄÉüP9œA®.iYˆL_ã®;íV Ñ(߀4«j< \~qòÛRJ®¸ü7å²ËuZÜù¡N ã7Ù9›»AP¬
+6»ÿz]Wå6Í‹¯F$‹M¤ÝZ8hžpùf!ÇU&‘3É$hŽã˜:ô3ZJß±•5H8”5N
+0(¥•qˆ‚Æê¡ ±¤ñX€T^S'²ð˜nþ“-kêW—TùÝÛwã¤4 l—(q=ï‡xó!´Ý,êè͆ªAÊ“¤ÛY¶‡Mïš®þdr4ãFÐ}=z¶,‰˜óñäá*°ÓÃÃí+ P'uÚèroe;ópñÇ!Ýô4>„ò$Æݽh¸kÎBOÍ¿BA,ÀhlÌ“jÄ*7°@0,ýßïoÔ¤Þ¸ZÍV.FhéHv¤¶Õ!É"+{,!ZÓáÆoý˜ž‘¶àî4ô
+7Ù¦,îšÙÊQÓq‚l¤L{¬­5<.k˜ÐDz&&ÅŒÆ)ýn@Áy’VFœ·v§³IŽ§â"JÐåžFúÆ- Âiä÷HyáµÛ¿‰,Í£5Î@´5ù9T`{_ĉG„psOßØÓäÌB¸©Ç1O‘82Jl+¦?[✠wJΰÈ<~q¹YNÙ4¸—€ ¹„2â1~Vï¢ah‹Å á\}©ôc‚[BÚÈÄfÜú²QÍB0šãy}r4.Z>ÛŒè“Z´›ZH©Ñ·m謊àùJkfRsÔì!AÇ“pÑ€åòcº¬ÞMF
+î±==ö±²Å~ØÃG>¡g:
+¶5FÛ@£…YÉNÚÆpbÃP†5p}éûÌק”ô"ÚØ¥Kckðù ‹(ö·é¨Ÿêýåë«Ë—?þÔ<¢Ç U,ä ­
+ʺþÔ×=„Áº6Fãè\²½³$™t߶kéGAÔ›#:‘ž‡êv5Xðz³í‡n×g1¦ïÓ µi½Â6ûÂ;d½'L÷ Ža!íik$€ºÓµ†¯>óë×4Ç„P|¼ÿ\Ž´+{˜að;¯Œ-T
+endstream
endobj
1520 0 obj <<
/Type /Page
@@ -7416,15 +7406,21 @@ endobj
/ProcSet [ /PDF /Text ]
>> endobj
1527 0 obj <<
-/Length 2586
+/Length 2585
/Filter /FlateDecode
>>
stream
-xÚÍYKsÛ8¾ûWèHUEž|ìi5¶œñìŒâ•5µµ“ä@QpÄŠ$jH*Ž÷×o7¤(‰Ž“IR5å*l4€Fãë$þÄ 6Œ«D¢D3Ã…d› >xc¯.„ç5L£.×Oó‹—×*$, e8˜ßwÖŠc1˜/ß—?oç“Ùp$ B6™?ÝL¯ˆ’Psùzz}óê÷Ùxé`~ózJäÙäz2›L/'ÑPÚHX@ù%þx=Óõͯ“á»ù/“y+r÷X‚+”÷Ï‹7ïø` §ûå‚3•Äfð
-2…æémi Ûú®IX™ødW8uÄ´‰Põ<fR4¯EGóB++e¬*©œê?” 3ªö‹e±Ió-ªèåµ”ig‰T(²ÏWyzÖ\å0ökë¿êôƒmFRßþË– [EÍÐ&ÍVù¶™´+óm–ïÒ5î ;Œ„`‰1Òmõ–¾*ªú¥ŸóÏÙdüëo@ÃQ,Up_”Ôi׌¥ò¡¶ÔuüÄ’n—}[dÅö£-kNS^c G)èÛ¯ËÜ lºÞÐpº^ùö=1Õ+{Ä}¼Ä~·Lk{¼5A¾U9l®d÷؆ç›"”5Å[bð§Â9¸ ’–¾7i­lïIñÖЪÍò·œK`s¸s×Ò9 ó†vÞ­Ó,]¬í;϶´Û:¯=ÏË^&·îzÉN Mƒ¥Ea(|~ä•Ž™÷àO˜äækÖl§<iG&LÉs†& ‹M¨†ël7ªìúþY#~À
-BÛjW÷}F«T–(&cÃNÏ pÛÂçžNÅ,Ö ÜîÝ|ã}²8x™ÁèU|e7ÄXµXÆßÁuþ`¬%8Z¸òÏ»cÈø˜lâ®.¬ ýUþXsò•®ƒ³©·#¿†¡í“g*°Áoã]ñHmºõì@ªa³€Óç‘ÞIR(ÝH¤­­Šò‘ÑÉ#ñ‰YYQz_¼+¶Kçªqüæö£&†t9ê{ëÁ!ãPFøTO‚1Q뜺Ý.]æ€&VP›’þazG$”Û«éø· Íf•­«ã™ Û§ ˆ%Mrâ»®D„œ­j<<QìÓNÜÀÚàÍßÕ‹k½Ä¨ç¼¸†‚ ¬D|W/® 8—HˆàÅ»KÆ‹ë0d<LÔñâò½x÷nþæ^<ù®^üË…Ä9N*â¿6«D@ú­"(PG’*îVÒgµâ!ƒóGT[óD„]S:yP±bÂÄ&n|ù
-Øn O¨ò÷[w™<ÉØ1Y»<a'=·reËŽGPØu¼)è©J,ÚܵéVÃë­hä³(ûΉêtù9Ù”ëHð¤ŸÁÓatà’˜(¨ŠÒ‡ŽÎÌÍ~]绵Ÿît%½N°³å&¯Éb¹VÅñbWç›üŽs_âV~³–Ó~JÑî{cã÷ò?Í™`>.í³i¹ð̤Nê/ÚJ8o< ^bYÕŒnãÎÚÓGiÉD("¨ƒâËi4X¾÷%Þ¬›b7ü£î„óû|]<ïøð¿î! ÔˆgE—PÆCýÚÝâü糆ëI4ìnZKâƒÎq­g Äsó¥ªhùŸàlÝ'U¡Oe2<b
-KŒÏª¢åzF’óÕP_A@•Ëd"âãbÞ„&硶àåO´›ï4n² ,¼Ì‡±œ±}Û‹83I$ÿz©yЇdŠ¡–}:ãmz÷Í¿õ~ïÖ Þ8–OXDSœ‚T¸j7ŠÎ.\ÅX÷\Ñÿã?“Òendstream
+xÚÍY[sÛ¶~÷¯à#5!¸òÒ§£ÚrêžVqeuÎœ6} $8âD’ŠãóëÏ.¤(‰Ž“&™éxÆ
+å@öÙ*¯@Ϛ˰$á~mýW½³ÍHæÛÛrnËH¢Úd‹U¾m&íÊ|»ÈwÙ÷…†B°Ôé¶zà _UýÒÏù×t<úåW ŠÁ0‘*¼/Jê´k&R‡ù@„[ê:~bɶ˾-Åöƒ-kNS^c G)èÛ¯ËÜ l¶ÞÐp¶^ùö-1Õ+{Ä}¼Ä~·Ìj{¼5A¾U9l®d÷ØFç›"”5Å[bð§Â9¸ ’æ–¾7Y½XÙÞ“â­¡T;»Èßp.ÍàÎ]‹çp—Ðì\~ÂâTiùùÒnë¼~ìA‰Ø
+¡<£Û`½d§§Áäâ(’A¨_‡}¥¦À ¤Lró%k¶Sž4(¥Œ‹ô9‹ŠÒ”%&Òîðõb7¬ìúþY[!ÀÒÔã$Mà*²šÈ«ìƒ¥ÞÜÚ-VpDûgÔ™]ÞRam åa•/VÔõ7|Äfen …HÞíßðqOö»¡/B»’
+ºçjVv—v犺Æ$MÎIè âØtℾ©1ô+çðàX†¢´u¾
+$mmýP”N‰OÌZ¥÷Å»b»t®Çon?hbÈ–Ã>°·Re„Ïù$µÎ©ÛíÒ¥hbµé&wDB ±½šŒ~ÓÐtZÙº:ž9·}Ê€XÒd)Ž±ëÚIDHÞªÆÃÅ>íÄ ¬ nÐüS½¸VÐKz΋k¨œÀJÄ7õâÚ€s‰…ø^¼»ô'¼¸Ž"Æ£T}/.¿Ò‹wïæîÅÓoêÅ?_Hœóø¤4þ{³A¤ß*†Ju(A ©’nI}VZ+18LE6OEÔ5¥ó'•(&LBaâÆ×A
+‚}‡"f©’>‚’Rr(‡ jëÇË–±B'oItûq·Îy–…ßÏ/`&E
+ÿºîðÚ"¶šÏ‚m„^'iãöéyEñ¸«ƒŠÆ2ÏR,-ÞM¢Â1]œ'Ro•³Ce@ º;â :‚Pó-¸†MÖà]ÊÆ‹â  Ê—eØ¢ÿ{c¬ÏÓê~sè¸ÍµèÛ\óîæÄÖõˆøMÑP³ËJÈ\÷h“îÛë z°æ¢Ø@:Û,Ðì_Y˜é*JüâS0hr¶ê-—¼•aäPPg’
+S^èе‘¥
+Þ蚢¶ÛªüíÖ]&$Or vLÖ.OØIÏm\Ùòƒãv¯G
+zª‹6wmºÕðºC+ùÁ,ʾs¢:]~AÎG6å:¼é'ðtEcº$&«¢ô¡£3s³_×ùní§;]I¯$ìl¹Ék²XîŸUq¼ØÕù&ÿŸGãÜ—x…•ß¬å´3´ûÞØßøý£üÏGóC&Ø…KûlVÎ=3©“úó¶Îƒ—XV5£Û¸³ö´ÀQZ2‰jFÅ ørE –o}‰7í¦Ø ÿ°;á<Å>_Ï{ç>üÏ|È5âYÑ%¤ñP¿v·8ÿ­ázF {€›Ç’ø s\ëñÜ|®*Zþç8[÷IUèS™ ™Â㓪h¹ž‘ä|5”ÄWPå2™Šä¸„˜5¡Éy¨-xù“D'ëæ;›lK'/óaì‡Ó#¶o{1g&åß/5úLãA@ñ"Ò²Og¼Mï¾úGßÃßÔ›$ò ‹hŠS
+×BíÆñÙ…«kø–«#úÿ‰M“(endstream
endobj
1526 0 obj <<
/Type /Page
@@ -7476,7 +7472,7 @@ endobj
/D [1526 0 R /XYZ 85.0394 70.9957 null]
>> endobj
1525 0 obj <<
-/Font << /F37 802 0 R /F41 939 0 R /F22 737 0 R /F62 1062 0 R /F53 1029 0 R /F21 714 0 R >>
+/Font << /F37 802 0 R /F41 939 0 R /F22 737 0 R /F53 1029 0 R /F62 1062 0 R /F21 714 0 R >>
/XObject << /Im2 1051 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
@@ -10549,7 +10545,7 @@ endobj
stream
xÚíte\Ôí¶6Ò ˆtÃÐÝÝÝÝ¡Ä0 00Ì ÝÝÝÝ’‚R"‚´t ÒÈ‹>ïÞûüž³?³?½¿w¾Ìÿ^×Z׺î7¶‡Œ5Ü
¬‡¹rðpr‹ t´P(ÐWç…C­fL9g0ЇÉ]Á¢
-Äü{fXE
+Äü{fXE
0Üú÷äè¹aÖÃöOÃoäæìüØã?ûÿxýœÿŒ=ì a.ÌÁAb¡ö™9Y® Ä£ò/z{xÂœ*Þè—ÖÁ»2#×Dj,ïêÃ8›ÇEµyÍî;Ýoª²n öA™ºÓÁß‹(üèX>ã.3v±ms™W`gÅúϨ¯"›
rn­êèš—ß¡RŽwð9£_²Ò¹Ð_8=óe4%v>oFÀk(Ù?`LÙ½¼`êú4ð±ûåÃ&9[~ƒ˜;26cLà«|r)Sƒj…×Íl(ßÛ
b¬Å7ÎßÊçÏVð™h9Žù,¢I‚°RÊ• e®äß·RÆ%=²ìÙ êt›œ(†Ì%³LÇî)®Ž>1Ù¥‘„µ…^Ñ2¼éˆO£Ý %õ‰>•pjÕr{2–ÂwÍ<–g¬™-j—!3cäáakIè,AŒ$ÁLˆÇÆ‹J¯³nöùU»Ïm›Þ‰D3
@@ -10572,7 +10568,7 @@ $OíœàÅ€DÈ
t‡Í=žÝbóÆÃwî6ß"£“˵?”JËOP2RÐ oQo+†â1)©w†¦ÜèådîI½ÈZ¿VÍ­(e÷åû È"QÔüFØs(úF$'‘qL ®/¶!õÔ ¤HvkÖ‰Œh¼È‰¬ê؉á¶o?Ùa:Šÿ±qêcŒ° gã!_QÇ~ÏWê¡1üaœ¯UÝGmã§Yñmn%ìRãr9÷¬ß0qˆ5†/‚E…(êÚ“†,W‚˜$Ù½ï¶åçLxËÎÔ|ú奕£w†Z|ÂV€ãž÷,éOd
ÞyŠGÝ ŽÎ¨Ý3lÍ4©¿Î\×T2Zª½Ag—.7Ù#ÏPæï™v¼eŦQLÞ»±Oþ¼Ô\’ ¬ÿĵJÅñ¾(š3Ç].Å*,MÎ>ÛBx(ÃSÃó|D³uû‚Þ¡ï†{:Ò‘Á¨2G9¡Cê{É•<|?ÒK áéá@F)Ø,êw÷ó?È ¸¢Ëa„Çh%Ù±o^Œñ{‹6™Ý @¥-«ä%Å~jÉwXjz1îi´·î¬%uÕ3^¿±g¸`d+ÎK[ŽDe—„]âò†YèÖýÇ?Ï>£³HjË,èkѸÍhÔ8Š” ™v_Å [ªJÖ®²9m=·âú?\‹k>¼à¬‡¤*³Ñ³ž,Y ê<‹ý¹uÓ Z/ZV$S·é#ƒmNOš¨5M@¿§rãÝ0Hõ7¬&7[àçŽAØñêOõƧÈêÚ5±pE6~d»Ž^.x¨T1¬µ¤$£Í7¿ÿ4òÆêüj§‹G1¬èípoóÌ3³QýÐZ:œNÍÆéç,0½‹Š‡Zg‹ðâ£à)‹Q©¯³‹X""œÛÆ0ÏÁ¾äBvFA‚)Y9(ÎYÖý…ì¬S…|¸Ôü¾“qbæÇN.LÔX§…_ï‚¿œ%%½¥åŒìé|°D>W²7}C–Í#—ZR¸­$º`bÛGο…a¿9gÝS%\”Á/œîñhC|?s§ Ø…šg¯ÎÙÈ)ª¬m}ÐvÖËk†Ÿ.bÉ&O
üõí+uqfº`Îa‡„°£â,I§ã¯½/‘˜÷ÇÝ›Á¤'P6ߢH‚Ú?÷›½šÙ¹˜Žà9¦ŠmHr7:pMRYŸ#£ 'æW¥¿ðKCß|-¡mWÝ躖nᲶË0–«ÞÐ3äÛÙ=j’¸Ë-,n–³e±€¢üb½iÙ;‘˜Hâ°l<)žL.ßÐYÖÿ°Ú·)wL=(‚Œ£± L|)=å'ÀÆ-Å@²öò¾µ<ÃNrä³6îµEôʃ3±d¶kÓ»¬ÿ‹%ôµøü·(kD~ô(¬_yñ‡Í; ¯åä²fùOî{&*‰äyÒ¯9ÛB±T¨d>è.<Sâ¢éX3p7«Á~ª"럽Ÿ“lË´ÍÔDQÿfŒ°Ì
-*s"}Y ;Ò‰¢ú{YÌÝÇí]p¶Òݯ€Ž¶Xo³êÙ}
+*s"}Y ;Ò‰¢ú{YÌÝÇí]p¶Òݯ€Ž¶Xo³êÙ}
endobj
1651 0 obj <<
/Type /Font
@@ -10581,14 +10577,14 @@ endobj
/FirstChar 67
/LastChar 85
/Widths 2150 0 R
-/BaseFont /HLUYVA+URWPalladioL-Bold-Slant_167
+/BaseFont /MOWKTY+URWPalladioL-Bold-Slant_167
/FontDescriptor 1649 0 R
>> endobj
1649 0 obj <<
/Ascent 708
/CapHeight 672
/Descent -266
-/FontName /HLUYVA+URWPalladioL-Bold-Slant_167
+/FontName /MOWKTY+URWPalladioL-Bold-Slant_167
/ItalicAngle -9
/StemV 123
/XHeight 471
@@ -10608,35 +10604,29 @@ endobj
/Filter /FlateDecode
>>
stream
-xÚíVuTÔí¶VA!¤†”ºQº¤»{€!f€J¤SJº !¤‘RBpé–NI%‰‹~÷;ßYß=ÝsþºëÎZ3ë÷îgïg?;~ïFZu-Ik¸%DCrpsr‰€t4õÔ--¬¡pe)¸£µ"ÒÂtñ¥]!H(&c„ˆ€ô Ö ˆˆ‡Ä-,, `Iý\¡¶vHó  û_–_. K¯?‘›HÔbºyp‡8 0ä Åÿ:P !í ¨#$­¦n ¨*b–WÕÉC`×›"ÔÝ,¡V e¨†€°€là® Ç? +8Ìú«4ç —$dB8C¬ 7aO+ˆó/ˆä qu‚"7Ï (dëjCÞô
-ý-à …Ùþ¥€ä
-±µpµv„ 747Ü¿ºóW ªÞÂÙÙÑëw4ü·×?4@‘ˆ£ '€›ç&§ò&·-
-âàæâú¦mµr€ýj?ÿfýwí7ƒú­¬úL_RS‹í_ß®¿}Õo¶
-—™_T†pÖŠ\5yo;_®*±®õv9>nO†ìåQùг¼Ï'šgz'ȶ6-ÆOûªå½?¦¼€i(À¥»¶Ô¯¡iZtq8øŽ×{ÿ”ÅŸÞ=ߟ”áÄ™À×*åí«-„µ·ˆ«
-¶¿2%lžž<îêûØÓÝ~x÷ý*%[ö+FQwL|¦H—lʧ†:¥²åoUoÇå!±:±àáWòž/¯åÞb°Î4Ћ¥lb<Ô‰<1 ËÄOƒ®¼Ûòרfß©J±¹–†ìÂSj–ìcÓ÷%:YÙ(h}õß]ôsùƒD“Â{Yûñà.™u
-ñîÉØè®­ŠÌ!s]%Öu…h&¾EÓu`ÑÀšHô^9zˆUæó~nØ@L~¢È© µíŒxzò”³÷‡ÇGe{îOtÏÉ ‰ƒ>¿•ûÎî«pOÄJl.{¸j =þ:mŸ
-)£ žŒ³,†‡í™œ¾ŒËoo£L>p˜Ö DzAªÓ×Ñ#âÞF]uãŽ$ULeçÁKEúÅÚš‘ÀíöPT›ù[×Mîª
-˜]M/„ª¡Q°˜
-‰ÆpJðÉ@{žÞ~~ÜiЋ“”¼—.Dteà¿ûÞ-k¤þ¬µî*a¶o¬lêÞ÷}L˔Ϩä|¤}¦GU,°~Ù(6®¨Ñçº3š!íÿètoSè”ÁˆD>
-v×Vâ#– ´W>£’ pHOê@ÙPZ¬v–BT rדôɪ®éœ9Jl¢–x–4!©a9êì¸w_>µúÉÑrd7S½êê@¯RUÜfÙúŽÎòb
-hÿTÍÎV^‘3/®ïN~®þÓTëxìKÜÎÈë:ç Ü‹·[^œÂKËé:ñå#”½{‰•Á²]ĹóZ^"8Ð%âô#!gìLrªqÀãiµª‘w×øÒ)j#ÉЇx>ÎPoD;j¦K77ZþvÖNhÍWu†¸6×Qõ³ãû<K+ûSh~„t‘¢bZ]£µªòB^(i;‡\àöƒsc|P=•‚þ»×ÃÍ %¸2öfÈÖT‚p‰Ïj$å9ƒb=ÖK³Ïî‚*Yž¹îgÔ¨&Dï‹“U39ù¥ŠóîïŒFVQ²ÃeµÂ)³>¼Ùy¹|˜’‘Ƀ º>—Ólèqû*ÉЋšI Þ
- óó83S€“ÔdäÒ@¡©Ã¦Þ‡N·Š<ìMm(qG.:µcºq)øûëä÷h%µaŽ^ hè$ &BÞ™*¬í ²stÕ|V‰È;K!¯­¢Á7ÙÐÀdÎ!3aFnÕ;´zh:ÛKÎkoÐJŠ²H´øYíb"S“{ÂÃ=1áwžÇÆ/ïu’Ô­Ãak<%)í¯3.ò<Ž«j‰d|†³û  ìÖ
-d4} d䣮6ó胦˜ Ö¢(Bŵê}®¿€ ´í¤páÈœM¢t¥ÁÝ;_‹LÅñøŠLòO‚ä$*`"–ÑÑD$ÏŸí²û{Ÿw§Ï-Ô ¾­HadÓ$¤„óžÕ¾™ÓM4‘$rGQ„+œyh2¬2bZ¦pÀ¾f ˆº—õ‹o„ÖÅ°äP‡éRÔ§Õ±uay+;=jÞiãßÅQSr’¶ÎĘLORˆ”Ç5 ïUÒ©&Õ?c‹Ô%VÆ“ê¿Ä¥N!.Wo}Ü(Þ¾EÓC˜zyRgjDIdš’º+æ2éÉëDQÅÄqö­Ž™5‰¨FÉmE¢@©Œ’-
-‡æëðsÉƺ“Jµ$Í€‚*vylµ™s$a`F éúÀ Õ (X×Ñ | |
-=<G¥]Ü<V,~Uaÿs2˜Ñ³ßÇi†¿ÎŽ¦mõçV|:Ës7v1YsX’áT{ÑC®oßÑꌤӪdŒÅ[8‚l˜vÒ²ZE¶*bWÐèg
-¥ºŸ0ÞÓLs=šA.ÉSŸ‘<Ýkîå);”ˆú“7g_á軽çiŽ‡ñ•üè$+ùN7crȵq=œb'Rpû|@0k\l7jKý'x6ìQë×.4c®-böB*‹eÕgƒZø›’Ç„·@®!J¸ö_|m`{sÞ°¡žvÌÒìbûz+†9•FPŽrÔ|d4HâüT£¯Êß…ÎC·kŸb…&J3? ãõ‡MÊ&í(g ['’½M2yR ;ß‘ñÄú1N\xŸ¹*˜¿f?c»O`üÁÁë!TÇÖÔ« ÊHÇÜÊ <ƒ­æ'á¸A”{í}ˆ¡zÆ, Üg¦kXiažµ‹È”!"‘P"SYà“éÉy’jcÿ|wÕwt/¥iˆB¸y½¼°¤6_|kÞÄþÉX×K—t‡÷ñ«1½›Ž`†L„±ÕÆ=w©5Vjæq7'a=È€]f 5ˆôeûºØ†õ³eÍ'!¾xdíZô‘¼9¿â(°Uâ;ò<„aÉ¿g§IQ•jy{oqäû!nÉÍ_6¹MªòÜF[µ.
-`¹¿œ€JfL„/&kË¢E§ÝŠÞš'§Û$ý°ì–(qqZÓgZÉÖûáfõ/xa”U9ïQÜñox ö­6Ȭß6à *¼Å[Æc]gŠQn=0oÏò›T_‡y5,©ïQæâJF•UIL™cÙìÂg4¾ÙɃ«¢q¶†‰ªž¦o~ÓÏ{ Ê««:Ç¢¢´PÇ>¼[QNç mh a ¸˜¨¸;Œ3ܼ nq%‡ÓÅÅ;7£Ѹú†Öëí
-Ù{¼&¼+¢Bo`Ïs%2º6\ŒÐC8,kn!+86¹ÕV°g;n„É©]1A`ï|œÜÂ)ÈJX¾z/ òa_ÈÊÆC5âg!Äd*¿‡‰9_ Üép;Å—ƒD\`Úª=Ô¶wîIЧG¦'»¢v2¤[íø#MûŸD…÷N‘cœvH¾xèÞó@!Ç]&óîÀpÁ:·€“K{E#íÅ‘ïðô…[:ÎçòX÷?f…FyCÎnà|ª1ü€
-Oéž8L.Ï ­2PnÚëâ*6»RMˆ{j¼YGÓ­µØå<Ÿ¨_Ó?ÜêžSN G rQD¿-‹Èõ~vÃÀ²öȉ¬Ü8ý1ÁüÓn¥"íƒÇ¸Œ/ß%Ü7NKˆ”:½>GÑ0­ ûQµMo]”ôWóé
-Œ¼åÇ°üg<ž¢BÉžmaNYî)ËLêò³}!ÞŸˆ³–xõê?þ"r¯èYÒrÈ&*aÜÎí–Ü ТD–*£|µð`šPÅ¥Iñ¢?¤ê )7I”ZiÏï¤`W*¶mªª}_®S›(…\9b±ŒÏ‹µWOT›ºˆ$6 »”£Ý»ˆ%ZêÆ
-ˆ`ž70'Š%â‹ ß”°ž®ÒìÙw¯]ÎÉ¿šÀ§ÎˆÈº¼Û¥,û‚ êïÇm…)‘·HW» +¸ü"¿ µ¼ûª;¥Ö¹À{ÆŒÚÞEÍ>:i¤Ý0A]_„3—·¾ÙžE9¹Ú¦»–w@b …¬ö¸b ,oiËkk!_•/4>œT’D^ÞÛ~“„³äRÈA.×=~|ún6óÅ=Á³µ0ÍãÁÖ–\^-Už&(
-–ËÓ»\IFÙØS­˜õOW_ºhýÐj-®
-X{$¬½‰¼û£@†rlZ‰âéžËŠ1O(­$¶ˆmèö¡àé»÷ÝõäIŒ]Œ_-ô‹ 8ßû ò%zŸT¶n76Gت”·& øì‰Ç†‹5ÎÔ‰Šd¾<B‡›&ª½úøמ¶ɇÆc˧ œ?µÆ(_¹à™q3áNZ¬/ˆ]c24íŒË —'{.ö%¥×î§Çz̓¯ÛKÃ{u`‡:s±¹ Á<º'—0— HMq±tåRnC@x«Ôs̈W6ß>uä3¾õˆ;)EO4,Ÿj&l‰#õŽ¾„˜¬Ù¶³
-¾höânF] Ÿx'´ÅfÊ`\ñè{Ý?¬¹¶=ê3‹ XTÑW©(¬§ _Ee¶){‘@ù‡„{:ƒ!¡X¾BK ”G½èßj²¾F!Ææ!ÆØœÍ*ªÞAO^ÕîÊ…¼
-3Îôä¬I'4tùÀþÝ-CœýöMÇ[9èHïr}Üo_¿¿¨æ}>ç_`—Ôy[8¶.χãZð-ôü’Òg]}ÖŽŽl¹'4ã!DI½º+ju¹õ8å™òT°CHÖ‘_e‘‰ÿð:û5r€ë3.ñ4v—W”Ò]ª[)ïó–äXÁ—â݈HÞ÷ó§qWru?̦hÌ‘ê¼7ôòÀ…U^ÎK8%į v›AŸ7°ë1ÌÇÛtOn4
-ºØËc‹í—R°£36‚FÅ
-ݹÎ%:¢‰»•¯·0Î&SwªR V‹­C%#ìN^©Û™KuÓšˆ<~f‚â¢Ï8”‹qyœ_U æ=¢¦#fœÞ*¨4í¶²(‚柘\oi›–•`ûljYÛWʈ¹ºœ2Ž(IwŒpyˆ ¥6Í]š†}„¯j¾Ÿ“&cðÓ½ö¢õníio=|_{ÅŠ{²¬>l¦Hðãä:XàÊ£ånMçxºýu+ÙVDɲéõýV“¥bððÁÁÈ·©e—¶Ê]œjwÆ«(öe"æ}Õ„§8$‰,
-ùHaÒDÚ]|¾"`N„¨L=s÷ ,¢Á’Ú•¦QÀ˜¯|[Ö ¦§†IP˜þîqÖ*oûƒÆÆnåÉf,ÅÛp™|Ä€(SÖ~ž²GøÝTfÞˆ‘†g“¡Á‡ÚõÉ&®v^ó3 X]î)˜C ãû&5ÀI©[hû5¼z¥pOŠÌå£Cïêt}æyjöi!–†o\38˜·œá¦ÑU“!4+£+»×øúÖ¢ÏÇP~nd*[Çw;r¤Ûqôß5=ò–WÛÜFa›®¢ÙíÏdî2§Î#ȧ$†üsƒBLe-)ÖTùf°ÁÔ1‰ÇÞ£W¦¹t%g\ÿæðÿÿ'¬!®H¸“…«à¿
+xÚíVuTÔí¶VA!¤†n†n”.IéΆ˜f(‘N)én$†FJ Á!¤[:%•$.úÝï|g}÷üuÏùë®;kͬ߻Ÿ½Ÿýìø½ki5´8¥¬á–y8 ÉÉÃÅ-
+Òy¦§aáèha …«pJí•Ž H
+±@Bá0Y $D¤±ÉB¬@¼¼ 
+µµC‚XnxXÙÙ9þ²ürYzý‰ÜD" ¶0Ó̓;Äîì!o(þ×ZiÙ@! u %5‹‚šHƒ¸Þ¡áf鵩@­ 0„dw9þq
+³rt³þ%àÆnÿ-ÈÙ~ãátƒÝiÀH„•+Ô ºÉª!+ÿ‡N¤òWnôÁmn<­áVn¿JúÝÐÜ H ( BB<‘¿rYB@ÖP„³£…×Mî2gWèon(Ìö/ Wˆ­…«µ#¸¡¹áþÕ¿êýSõÎÎŽ^¿£á¿½þ¡ŠD@m¸
+ÿóü{é!Oˆ`zn%lŸš‘†¬"Ïéé—5úÐÁƒÑâ\\£ý:ß¿Þî—¾(Rf~QÂU;(zÕä5¾í|¹ªÌ¶ÖÛAæÈÜž ÙË£ò¡g}ŸO4ÏôNˆ}-lZŒŸöU/Ê{LeÓP[wm©_ó™iÑÅ=àà;>WìýSVz÷|R†g_«”·¯´ÖÞ"®*ØþÊ”°yzÂÜÕ÷±§»ýðîûUJöìW8Œbî˜øL‘þ.Ù”O uJåÊߪݎË;BbubÁï<_^Ë¿Å`i¢KÙÅy¨yc@–‰Ÿ'\;ø$·®Q;S-”âs/, 9D¦Ô#,9ƦïKv²±SÐúê¿»èçö‰%…÷²õ-âÁ]3ëãÝ“±Ñ][™CæºÊlëŠÑLü‹¦ëÀ¢€5‘ؽrô›ìç3üÜ°˜üDÑSjÛðôä)Wï8Ž*öÜŸèž“3@'}~+ÏÝ6‘žˆ•Ø\Žpµ<züuÚ>AbåPóبLbZ÷a3ÒYÍEœVÁ= ¾‹­{·^®2<¿}5aq€©ÿ_5¹Ûðòµ÷>›À¥´ê$C}ÀXŠ¹­œÕ÷ji—û­€G‡/§Œdû-!j¹;Ë6#ÔÜŠ.Oé­×ôÎc´¼$z¾I(ñØÇ/ Wj®½"¹ßKÒÿ¾ð{Lš¿ÞH¥hԻí:iÓFRF<g] Û39}—ÞÞF™8|à0­‰å
+b݇a›yKÜ£%t×TcaÖËF˨?B:äÐ 3ÚZP ‚ÌÆŠ} fñφôˆƒTU‡J鉽žj:»«Ï‹ºôN)/ÂÕ äE½¬^gº‹ ^/«k¯&6Ö7%³"”-ήQËòÍ“ ñÆ‘r¾“'#
+ñÀèHvo»Vüy½¼Òç³³”ÎjÁÕŸ,_Âh^§–p³/â#Ó„HÊÀç„»ûÄŒ[‡¤Ê»B8Ò¬’%PË ™#¹&}Ô7uo(à–îu•úµÒ95ÀŒ¾?ËêcÕ8—ÄñâθÑ,™ê:f”†.‡Ðà¡ÝõÁ41hÀ›3):«;Ícƒ·ú‘¶Þ,èðY½:Nç5u…QEð ‰rŸ–²ÌûŠ!&.ÜYâü×É ú;á$¤`×yme~b©@{•3*¹
+·³®pBk¾j0ĵ¹Žjœßç]ZÙŸB dŠÌÓš­U•
+ÂIÛ9ä‚·œãƒÂè©õß½n^(Á•Ýh´7C¶¦2„K~V')Ïï±^š}zTÉúÔu?£F-!z_‚¬šÉÉ/U‚og4²Š’.§N™EhôáÍÎËåÔŒL^ѽð¹œfCÛïPI†^ÔLʸðˆ§/çÓö±’¾¿Ÿ\S ³©»ï™ή0‰Ú·˜O%”çp×ù1ÔA?P(åÞ.¤gÔ>
+ó¥ªÕl^Œ¨­Ý)e»ò3Pp[´dbõ¬ðVŠÿÒ³Ü4Å+β&VÊBÔ eŒCuOé‚¿# U9fiêCl·\r«ÒzÃÐWü®6êb1~i“EÉ5ÚÒ A¦¹§üÑœNƒÇ=< l””íyIæj%‡¨äÄiñ(<ÈO› õ;Zõ}¾TªL’[î^åÛA€Z…êþHKJühØûñœq/fóÄf¢8³?€æ¢%K]TkcÑøKEÄL1‡•·FÆîšÃºåØ KCÂCkÇxG®ï[v“
+‰ÌÙd%JWܽóµÈT¿È$ÿ$H~@²&jM¤Iòüé.‡¿÷ywúÜB½ÐÛŠFög„”p¾áÚÀ7sº‰&RDî(ŠpÅ3¯ƒgƒL«Œ˜–)\°¯b„îeý¡u1ì9ÔaºÔ0•i l]˜dÞÊNºwÚøw T甼T ­31&Óãâå"q è{•tjIõOÙ#u‰Uð¤û/qA©SˆËÕ[7Š·oÑ4Ʀ^žÔ™Q™¦¤îŠ»Lzò9QT1q†}«caK"ªQv[‘,P.£d¡ù:üœFª±î¤R=éY@A
+‡¶úL9’00#†ô}à…Ú¬ëè¾>€à)…fbˆû†7sÓ¿×ÄÅ}ä׊³ÒgÍ¿?FІæIP›˜ké÷2è´à2|Ö§™¥£[¶WBMåtè³<èù:28¢Ä;Xf1S§³EŠ&´×å0Ä0d—5ŤÐ4|ylæ©@Är˜léË@È}±}µ\"òSÐd5ŒÓkùp ü3ʇÏÎ
++˜^h€&9I‰òÝ3¥–\—qaâ)&J™NBb0šNí`Ò.'39ë4^€îg(}*v–õ
+d ¯òˆ¦:ôw
+ýL¡T÷Æ{ši®G3È¥ã"y+â3’§[cͽ<å†Q@òæì+}·÷¼Íñ0þ’Dâ%ßéfL¹7®‡SìD nŸe‹ïãF cé¯ÿäφ=jýúÑ…fìÁµAÌ^He±œÆÌ€PP‹@Sò˜ÈÈ5D7Âþ˃¯íãìoÎ64ÒŽY›]l_o%а¤ÒÉSŽšŒæ©óAüŸhöUù»ÐyèvíS¬ÐD=ËOÃxýa“²I;ÊÃÖ‰do“LÈÁd<±~ŒÞg®¨ÙÏØÃîpðzÕ±5õ*¨2Ò1·2BÏ`«ùñG8nå^{bh…Þƒ1K÷©éVZ˜gí"2eF˜ˆA4”ÈTøxzrA¤ÚØ?ß]íÝÇKÚ
+ö”bÇЃ 9µ³+&ì“[8Y)
+ ‘x£´J60>y®ê$´7An¦“_ƒúµZ³+i5ºÅ‡Á) ¿{iR`FªFý“Sð™ñå»ÿa%€ðeå÷uì†Ò*ড়ÅÊÎ9 |ÀÑå|,´­Hƒèn_ÙË%i·˜³¼Ã'µ+c% ü麖‘Ý@;¶zu@ Ëf#[2aPàØÄë üSÑò“ëùIý1›„túÉb¯Mˆ·gÃÞç+kÚ:ÙîSRc;¦ EKZªâ¤ØjU¡ª†z­iRûRž2ã ­¾~æ9 ¶hKI<üORdÑ*ãAŸYëêà“ºñp0Ÿéj<°÷8KgQ»$`¹dÌù4à|ÐÈ¥ñ„î±ÃäÂñœð*S
+(Z¢`‘®~VpùEaAzy÷UwJ­s÷Œ?´½‹š|: }ÒH»a‚º¾g)o}³=‹rrµM3v-ï€Ä@ Ùì'pÅXßÒ–×
+ÕB¾ª\h~8©$‰¼¼·ý˜7!g;É¥ƒ\®cf>}7›ùâžÐÙZسãÁÖ–Ü^-Už&(
+ÖËÓ»ÜIFÙØS­˜õOV_ºhýÐn-®
+X{$¢½‰¼û£@–rlZ™âɞˊ1o(­¶¨mèö¡Ðé»÷ÝõäIŒ]Œ_-ô‹ ¸Þû ò'zŸT¶n76Gت–·& úìIĆ‹7ÎÔ‰‰f¾<B‡›&ª½úŒ×ž´)„Æc+¤ œ?µÆ(_¹à™ñ0áNZ¬/ˆ_c24íŒË¢—'{.ö¥dÖî§Çz̓¯ÛKÃ{u`‡:s±¹ Á<º'—0— HMq±LåRnC@x›ôs̈W6ß>uä3¾õˆ;)EO4,Źk&l‰#õŽ¾„˜¬Ù¶³ ½höâiF] ‹œx'´ÅfÊb\ñê{Ý?¬¹¶=ê3¤XTÕW©*®§‰\Ee¶©x‘@†Dz:ƒ!¡X¾ÂK ”G½èß>c{BŒÍCŒ±¹0šUÕ¼ƒ¿ªÝ•5xfœéÉU“Nhèòã»Z–$8û훎·òБÞåú¸;ß¾2~%~QÍ÷*|6οÀ.©ó¶H&l]ážçµÐ[èù%¥κƬ!ÙrOxÆ!.B˜“zuW,Ôêr‹9å™ÊT°CHÖ‘_e‘‰ÿð:û5r€û3.ñ4v—W”ò]ª[)ïó–äÙÀ—݈H¾ÌûùSŽ¸+¹ºfS4çHõ¿ÞzyàÂ*/ç%Šâ׻͠Ï8ôæãmº'7…\ì°Å÷K)8ÐÁ@£bÅî\ç±ÄÝÊ‚×[g“©»5é«ÅÖ¡’'¯ÔíÌ¥ºégˆ<‚â¢Ï8TŠqùœ_U å=¢¦#fœÞ*ª6í¶²*æ›\oi›–•`ûlj[ÛW*ˆ»ºœ2Ž(ËtŒp{ˆ¥6Í]š†}„¯>{?'CÆà§5zíEëÝÚÓÞ&vø¾öŠ ÷dYcØL‰8àÇÉu°à•GËÝšÎñtûëV²­ˆ’eÓëû­&KÅàჃ‘oS*.m•»8ÕîŒWQì3ÊDÌûj OpHY²ï®f>×¼ù‰_ôŸö‘Ƥ‰´»ø|EÀ’=PzêîXDƒ%½+C£ˆ1_ù¶‡=AýYœ:&Aaú;æ¬U¾öÝ*“ÍXJ·=à²ùˆ1¦¬ý<ð»©,|# O'Cƒµë“M]í¼æf°ºÜS4‡AÇ÷Mj€“Ò·ÐökxõÊáž™ËG‡ÞÕéú,óÔ92‚¬ ߸gp0o9)ÁM£«&ChVF=Vv¯ñõ­Åž¡üÜÈT·Žïvä(Ê´ãé¿7jzä­ ¾¹Â6]E³ÚŸÉÞeIGOIùç…&˜+ÊZ Sl©
+Í`ƒ©c½G¯Lsé:JθÿÍàÿ þOX9B,\‘p' WÀãÉy¥endstream
endobj
1628 0 obj <<
/Type /Font
@@ -10645,14 +10635,14 @@ endobj
/FirstChar 66
/LastChar 78
/Widths 2151 0 R
-/BaseFont /NKXARS+URWPalladioL-BoldItal
+/BaseFont /JEPNFY+URWPalladioL-BoldItal
/FontDescriptor 1626 0 R
>> endobj
1626 0 obj <<
/Ascent 728
/CapHeight 669
/Descent -256
-/FontName /NKXARS+URWPalladioL-BoldItal
+/FontName /JEPNFY+URWPalladioL-BoldItal
/ItalicAngle -9.9
/StemV 114
/XHeight 469
@@ -10672,17 +10662,13 @@ endobj
/Filter /FlateDecode
>>
stream
-xÚíRkTSW‘ª¡¬òRIÕzX%2yj  @ÄX4¼_soÈ-ɽôrIˆø ’ª,‹Øè’§¨(Vú@©%Va
-ø"­" °©Z_sÁººJÎüš5çü9ûÛßÙû;ßÙ49Caa † “#Á2™”Ãä™Í¦ÐhÁ8¬  Q°p°Z§Ü€ÍòVy|
- céIUÀ+˜>Iâ‘Æ¥2¡†µd ¥Bä˜ ˆ4°~òFXgÀx& 1)€%6©JaMj’¢* ðßÂ.ý]*Æ3HQÀkJ&"! Õ
-MWBú7¥ƒ,“xÿþµSÉ‚‘†t°ÿ`OÅœ?bÒ$у6“ÍæDr¿;%Mk&F•„ ©€Ëó
-W(ä‘9
-Ã)“ÿêÃ, œ‘1‰¾¸€•:9{¤{“Ø_Ÿ„éŒ\ÀàòÈV앾€Ïcçü‰¨Ôá8ŒSãCô.V!¤§0¬‡•ëMLé·õÓ}§·×䊫:ÙÓ3šlm?¿í”Ù9Üëçroü)þè7çmΟ"ÇJF¿aA*^õ´(Ûb”³¶õ8[Ýèûå³*‡“g\.kký@{pÇ=ëâÁôFï‡?{>»›yÞ¾nÍ}¿’:R8³æÖÍWOrÓ6uôY¾†<‡J(IegÖì…£ÿy·èêăP¬
-³V_žŸ¸ÿ™ëk+µõNwÚmG³ÀT&³»aö9‡M׫ú;(œi‹­±¥‚Õráì…>×£ËÍÀæCsl@sS¸ì×Ù]tÁ€‡ùýni~NIXŒ4jtÁ±
-eÍh5Õ®ooÑ  ë×廤Õwrý‹9é{iëSÆ_Ñ~[²sæÓ¤/zŸ¿1Q[*6î'fÄxûÌôò¦·³©ö×¾°xÄ)Ô_Ý#Da½«LmÚ¿ög7É@¬àFžÛÍ£_xZ¹”ûÂqí¾ò¿É⽿m²ìIëmq—Ðû+ýëR‹é
-;~9³B¦’½IïM™¯Ê2è;çe5u•.p*×3¼¶žùÄø%÷«Ó¦ÆÍ6óðµÒè;[uûöë®Wⵜ-1=÷ùÑØŽ|»÷s
-WS©Ÿ¡¦¥ucúýua¥ƒ}Gw^ÊŠú°Àr×+Ú½T\òÚ6.ºn¨Ý¶,ñ0WèÒ¨l¬7í¹XYìøq´&/ÌW¶ÝNÞ²zXV×pb·ÃÎ!uvq×Ü‚æY wnþÙíñ²LyÅ×ñçùù™Ñç$¼¾À9ß{..RPrÎÉ¡"qõÁÔ{âž°ìç?|
-h›…/ØͺÿÑոϿK©æŒ]·$]ëùrtÝNþKk‹žTÄP«ºyó¬ŸfEί¢Öö³ÿÃEùÿ‰J ¬À L«ÀÓ(ÿ.Œ¦endstream
+xÚíRiTSבª¡¬2©¤j=,Œ‚4ÆPÀ
+l@’QŒÆžÐ$Á”8à¿amêÛT:B¤Q¢€Û¤Lw@‰„qL­0¢¤±WãT7„Òòß5µxV­^-×L”Ÿtê_y¹UëÿbàšT-‰@ŠÃM¥F#oÄIÕj¦f%¤\*DX²Lh9‹³ü Ž¦¡:CI…
+(åê4dG0xªÊ¿IìÐ5Qa῾v2&G12BŸŠ
+-A 99>”Aoc%JyŠ :DA3ßÀÞ[>Þ{j[uŽ¸²ã¨µ{Ú|ãá-m綞4z³†z¼® ?F üa¿Õþcô˜]ñpèWlXÉ륟e™2eì­Ýö&['÷ò}²Cñ‰Ó.•¶¶¼§9°ý®yá@jƒÇƒŸ\ŸÞI?g]»êį L¯¾yãå㜔í½f›/a×ÁbZBééU{¨_ï^¿ŒWâæªKsã÷=u|e¦·ÜîJ¹ekJ¥V×>/fqÜuʾv´?e¡9¦D°R&œ9ßóZT™X¼ïãbŒñmj •þ>³¿Ó]Ðïb|·K’—]-‰™w´ÜAQ=Oí\E·DêZÖ5k|± ùuáy)u\Ÿ"(µacmÒØKÆ‹vL’ðüyϳ×zóE¦‹…óñiÑ^ûýÒÝ<†ÜÛ8të«Ÿ™\båª/î’"¿›†VÍ~}YM£R#¸žëtãÈg®f.ížpL³·ìCé:¯M»ãÅ: AìE죾Š‡¿]l6ìç&Äõ$‰¸éq©¦þ|e cMþôScPPå¢Æ™xw¿ÿ\_ÇùÞ³íDñ@µÓ|¡KWx_u6Ë7>¶à˜Ðó@× ïÁ‹#M Ç=äXnž—²“u?bi¦×ïVçBk’ô^5'LßÏY²ŽÈb†ïM9VZ½M£$˜µç¨ î!dU–uö‰¨ñ;e)QjÝB7>]êÞÊX¹æiWö¼"‰EÄúinÁlàøXf:÷Ìšõ<ïøäW]¾‡×¬ÊܵñÁ£›Ël_OÚôu÷ è©âO‹s^oéÖÚØ‹ÛâÌØÝ£ÆÛß÷¢‚þÍgÚk]}b¾ZìÛL¯=ÿËèŠp&×^‘ÉQÇzXö3à¦
+Mv¸ä/Ov3;›¤ŽßJž8c¦¦Tö ’qèå‰Êâ(vÎ@÷Š“ž.äªÑ
+!&[,9¥^j1íöôÑÇÅÎO‰M®†ðëËvÂ~·ÊÃÖ”ûÜé×æ:^.hÿùô2©Rú:N¶'i®2C¯ë˜“ÑØY2Ï®LÀtÛrzMæçÜ/N6YÌ!VKÂào,UmÛ®9^ ‰²Õ@›£:î³#1íyVïf¬¤Ó?Á ‹kGuûjCJz츘ù~¾éŽ[”s‰¸ø•elTí`›eiü!®Ð¡AÑPgØ}¡¢Èö£(u
+5"'H\#'Rh/ÙŒªendstream
endobj
1397 0 obj <<
/Type /Font
@@ -10691,14 +10677,14 @@ endobj
/FirstChar 60
/LastChar 62
/Widths 2153 0 R
-/BaseFont /CSXZHF+CMMI10
+/BaseFont /KOVPQI+CMMI10
/FontDescriptor 1395 0 R
>> endobj
1395 0 obj <<
/Ascent 694
/CapHeight 683
/Descent -194
-/FontName /CSXZHF+CMMI10
+/FontName /KOVPQI+CMMI10
/ItalicAngle -14.04
/StemV 72
/XHeight 431
@@ -10718,25 +10704,22 @@ endobj
/Length1 1199
/Length2 2269
/Length3 544
-/Length 3056
-/Filter /FlateDecode
->>
-stream
-xÚíWWXÛ”(A¤—R‚@
-(½{‚¡ƒJH&a $B/
-‚‘¦"E]Å.E Q¤
-(*(*Ø@)‚Gï€G½ÇëÛ}»ßy˜½×¿Ö¿Öú÷Ú£¦L êXR˜ “ÁÑÁ¡±xÀ
- ಉ$ÆVm ëÈ!Ñ0 !ÕÔÜ ü¥ Z³@b2lHØÇ- 8‘X€.ÀañXc¼>^cõ¾92Yx€À‚B˜Ñ
-—AÜ’™Ä ÄÅ„2C*‰Îã *1lR8pX\0.æßî8@È
-gÑø3‚Ž1o”ƒ“¨#ƒ{ ħiLòµ«M–dÜ/”½»²ÉÐvΧ^¨¸ÿö^»AÙ` ±ÃÅ*Ó_ñØ7Ø\£µLûî6ê>·a§‘~É(Ý÷rR¹ :fÒÚë:»‚V©ÈM,îç‰j^ó>£<Á«üëÉÞÖÝù³çlÐ4T£ñoN×óéøœ§^>âiHÏ/}¸9”áGÝf¦r­Â¨çâ\Ö¹:±sÈ—ÏñvWâN¦ù•Š+ôÿù§²Ó½1Dl¸òb i¡ó‚Ã{͉¡á]Ž·æzêØŸåzV£ƒ ŠúYÄH4¾ 2sà͇¤˜DŸu+Öy^SAB…ÆoÆ“´ƒî¯êŒ>²c¸'Í”ÈûíéêSzÇäì³À æÀÉ4;z
-5¿µfa¶e"ÓÚ‘×;Tû;X}Ž0yµ@ò”¹á£c`~ž¨¹/Ÿiêƒà³Y6V#7(<WpxwÞDjô
-º™i.ÄAwY½«˜ÛÔÄ—¡$@ ÿ$øÇøÉ`çŸÎpæ›Ãç2oçG{Ì5S3ÍÅîW>|ÍÖ»'aP¦iZs~{Àoµé°×-Slð@23ßµíS[û±ž·ƒZ­•.w±Ó]fìO*ó§Ì,’ÚS> "«|4:Þ–… ‰[†ŠV4±’L†ì^}þh;šq,ùZá!n@GP1b†ДWëØ$‘å”I#©­ïL;Èß?cÖ5ØlLµ‹-[çÙ5ÅKC**’‘0í9zS$(B¶ª^²PÓ 8øÜ?Ù¤*D¶ß¼c㨪bz…í!H)ÂfuÖ6õê-eøEe¢†ÂÈëÈúU¨|ÞîLžýý|"ßø“¦ê¤ãŠõaýÒ®SònŸFõÊuŽgΖEl²‘{d®›Õ^z¼~LJùu†úã3Ä_0.Þs~."¥BÄ#îGžÛ®
-í³èÙùˆÿž$‡£NÙyµ-Gß$0$z.ó#oë‡ø= (QçÛ¨íþ"Å9—v-¸pý&³Üõ_F†ó»Þ8q¯·z¾,=U9y§ªy°ÁÓ Îcš—vUO ¢m¤t"œ ÇÉUs‚§ëe
-?¾d}OzíƒKc_ôXν®DÛ<•¸ºœt¯íÞi^ §8ôA§·Ñê™yD²á™´UjM·|veç*çÆ’#\„¼íC Ã=Ÿ"[Eäž*ìVߺÞòÒÕÌ ~9ׄ˂¸… ”åå.Þ‘¼º÷ئÔn™>Œ‡“:ÉÖãá)ñ{Ó)Ø÷´çî ÉÊSÝÇù½ohâ ê•»—iÆv[£âÃJÊãºw»|tIœÇVpë>>º—ßÃÊÊܯ„É°ÏMS
-§éEV—½HÃáô•%œ¬ŽëŸjݳÔ¤SF/=<ž(ÙWzþƒÔ—|Ý·
-)È“U[ÛXq/fôûv“òIÏã#*oëNˆ˜($L¤‰›»ì¢ˆòo,`· nBŠ¶Ëã)“)®ri¿¿{]hÍ/Ò,Ó™ÔcßpùÑaÝüš®Þ«‚Oô'LÛ OT¹’ÞùOv²gúÓ
-‹¥ùm²5Y±µy9±NG\Î$÷Õú¬p-²Ûø¾8A§ÀÂœ!ŸóN¿˜•*}Gt¸ÈðЈê1ÍíŒjp‘äl­Xœ©›ÆÝÈ54±ì‰L (×<yzßPŵ”ß7uê~ýñ~O·šÏ¨ÓjѾƒúÏ(Î52EÒ³>UÒµþb?y’×zÈ3°K9^­ø@êÑ…_ZŸú…ba³µÈJîš Yå‚ç ·”3úŠÚe°ÿåƒü?Áÿ™’Xf‰ŒŒalø‡réß ù/ñ2@©endstream
+/Length 3059
+/Filter /FlateDecode
+>>
+stream
+xÚíWi<”k2ed‰,ñe„1c§ìcë„ÑØ©Œ™gÆ0f˜Å¾E'[YJ$KŽl•¢Å’h1Ed ¥¢$J–,Ñ©÷Q§zOoßÞoïï}žÏ}_ÿëú_×õ¿¯ûã(‡Å©›é> ÆRG#Q†€=%À‡ÍÄái{Ô÷‚d¶- O @WTt¢°¨à/] ЂâY: ƒgA>N¾lÀÏ
+…Pkï÷Õ>èp‰t5쇻=>
+5ìq?;º‚_/Äßt?Ã_ÙÍhd*¨£5¿)L+J(HÄRX߯³óMnâ—
+béLÊÚ‡BtÐ?aN¾‚? d2¡Cù4âOI-i:‘B#84¢xñ»a &° H§/'Å~Û“(P‰ 
+àƒýtÂÎC~5‡–/˜I…¨¿| Õªë¼ø™-« O¡r!¹[ì%üÏIi.ègåc°÷}«=×Û­çJL—²LÑ ñ70oDnIæ¶I’|ƒ¼´ËÞpóÌ&D×,ªU2ã¨DNÁk‹°;6ïä*Ý-:„q‰tјm˯&‚`R2ÅU¼ý*b+qÓ6ÔhGCX/§ ƒò‹;œÃ·ûFÝÃÊ»=øêÞ,‰T5
+{÷õß2ç׉éM´†³jf|¤ÜÏé6uÜÐ\ñ-¯'­\àëìÖÚ8¬ÖyÉ‘ò.®É\õäÖ ìWo$âÝVÈ·”D•—L7—=)ì¨UQD¿T’y´Ú|¸™_x°±™G:PýÏ×¹Iض&.›Gatv™­˜ç 5q9çÏz•8%ó>§
+‘;xè)Ot²òœ.W»âTq꣉ë›t-—<êùŠúï¶:ó”˜
+ô§ÇãÕüž­è ÏÝ?\†ã Šdÿöbãy­<Iëtp’>p6يꃺŸµ^„ó>k~xˆ÷áý7 ˆ¡îd™áU9·#>èN[i!Óœ\ÒŽ#ì¸Ú_ºY¹[bÄȱh¡Ùópû‡uf¥!y,íײü$¹2@5âv¿ÌFùý!ÞAɦü¿í 1uQM¦Ï³lÚÅ7^Ñ)F”\³}n í¸òÒl¾x5•¸°:¶ßK¨ÈÜ°«')B2¾º€&¢ ¼»Ü-ã½ûø–ïÎŒ#¤ñLTß>á°çU׊3¼pUÉž-µtÜÍãÒ1wÊ„$NîâȾ¶nb¬Ï‹ƒQŒÛÛ.õÆGyá1êácN&Æ·[m»ù÷\kñQï ±KG)ð»ÕòêBÒ¼„ŽâfomëæÁuõ‹‹C 5@eÂ}–Kðr¨V»ÛzŸÈ€þ¦@“»›V[&Ó,l9½CÕó¨ÁÊËØ©ù[Ï›è>=00æd ™xr%=ö¿”þgc%|»ô+i›™ZÑÑëÈfº  Ùe>snùIdSWª,1ø#ïãgýí'>Ö³çZ2Ì¢ßË w=že¬h”…:ª~ò¦¥{OÌ x\´`ëýö˜Û|çI·»F(ÿsð´Ƕmí×·ô¼Tui-wx€R™ë2f~”_N=olß~šøŽÜà¡Ü±ò®4
+J¾ö9¨´g›ÙÕiu^™7ùKýئ ¨Ùµ.NnvÍ<jAœ.zP¼OÃÅN oéòä¼ðùDÔ<ù•óJ±²$çqn÷Û*hz¹®gec*‘݈蠆ⲨîƒÎ>œã–QçØ5ž>Ìéa¤§n=*«‘j•,LÖ
+­,z}áºÃ)ë‹Yé·>V;§Ç(Š%Ž^}r:nk_Ií{ÑÏ9šï®Ð¤;éçDyBÏVìicD½>•ÚÃïÙÏÁ¿Š)¿§­;)h 3™,lâKâÞ‘ÏlãÝ j)’2$N%:J&ÿ>ó¶À‚[°Y¼3¾ÇºáÚÎF`ySWïíþgúcæ¬ø'+ ð3ÞSÌ…þä‚"1®8L†Š>#²:;3Ò.×ábB_µÇ:Ç2?‹±óE1êù¦&4©Ìí"F’Ø}¡áBÝ#
+yX²ÓEÿ­‹Õ[¢Œœ”„n"oɘL3¥d™$Ì
+ :–p{&Í>ª?½ÂÍãêTõ qAñ ’ÇsPû%ѾJ¼PlÑ£b{Šê_Ìçϳ[ã8F“V‰§‚+e|‹>Ö«ëñ$÷)Õño†—³7mO/ã­ÅÞKåé+lGý—üÿÿ*ˆg°èx†?<‚2¡ʵ3ø¿
endobj
1137 0 obj <<
/Type /Font
@@ -10745,14 +10728,14 @@ endobj
/FirstChar 97
/LastChar 110
/Widths 2154 0 R
-/BaseFont /AZGAZO+NimbusSanL-ReguItal
+/BaseFont /KLAGHD+NimbusSanL-ReguItal
/FontDescriptor 1135 0 R
>> endobj
1135 0 obj <<
/Ascent 712
/CapHeight 712
/Descent -213
-/FontName /AZGAZO+NimbusSanL-ReguItal
+/FontName /KLAGHD+NimbusSanL-ReguItal
/ItalicAngle -12
/StemV 88
/XHeight 523
@@ -10775,7 +10758,8 @@ stream
xÚívgPTݶ-HPPÉ™&çÐÉ™–œƒº–††î&K(HÎQÉH ’sÎ 9#$ˆ€øÐïžsn}ïüº÷üzõvÕ®ÚkιÆsŽ¹VmVF-]^Yª„p@óùž4`ö–Î(]°ƒ¯ÜEXYå‘P0†pP
G8ÚCзÿãºP(
²BÂÑ€Û¬Z
-JñDÛ‚Ñ¿s£`·n
+JñDÛ‚Ñ¿s£`·n
+÷ßoÓ?QZ·ª£õÜo‰ýWêÈ?¿1ään
uƒZ|™BX‰¼LLIB—Qdt (<okbu:æ}Ò{ŸíûÑ쓼,Vôâº4¯rèéMûäŽãÏõg\=-äpöæxèA­3gkö£¶Qî ~ó<¤]ÃpÏà µ%l“Ç+Ú:æ¹×w醄x‡ß9}™]²}IYΉ¼­*"ÉVb—åìì²Å|ý~ÎÞÑÛÝÕÙ|ŒÓºNÉÏ*î‚MÈæë”N#m¢_äa™ ŒéøÛÔªÏ!´0sL^µ$0ÙÂÿTh5ë¹[­Fúù{ª\™ÏíßÉúÐâ¦Ùé%üföC ~–fí*!Î:‰EvýÔzð­´÷Û6гßÕ•Ü 곺£Âgü«e‰;}ƒv©b]ùßÖÒï6”‡ùÚ}sø.Gj¢T«$Kñ£•I âQ–®‹Â~ÒìEÛ1w.ì*Çbr|¬½}$oÖ‡·Gs]> Ã?V1ñŸx£+w¿³^õ9’e‡Ð†ŠÚ¥ÍäÊu””7œœ¸äN­Ñ÷ˆ¨/ùŠõ.‹ú…'Ð)á0äPùÝÚ…ke
¸éÛR§ö
]8sô&sß±­|*åŸî#>cÕ¯‡‹úœ‚ œEëÑymeê÷AÆ€>8m„ 1œ4¬jõõr¦XÜâd8„²³¤¿V>M¼çÀ7ÁÜ&N\€*ÄJÒÜOµøï8•^Ýçôáö¼J%qõ‡ ‘®.µ&у;ìXBÒ0ÊÚcVKŸ0-SÛ·ߌG?óí·Eƒòñ(€(§¸Ëš’=´øô•ú+y\J6.æꔋ‚œÞ»ó^eúÞ‚·V„(õb*$Ã=AÁžéÌmEéïa9žoñ€Rý3™ÙÑS×!÷8ÎãÒ9‹ÅÕçÜrƒÅ£‘C™Äù\‹-ÕÕ²k±ò¡øáÃÍ8
@@ -10807,7 +10791,7 @@ QH;ǘ¢&šùŸe“ô¿žUÙ|µ°Sc0R2YE]¨
‡á{__bçâ.°ßþ
LóÃI8GU–¿Bã¡\‚–Ÿˆ{éõ´Sû›7M‹Š–…;ûÛ䃵h¹0GQœ&÷ <‹"œ_ý¼ÈAze‰ÀN2ÿPÜJ"u]©¶ÕLòs.}æQùü‰iõHö5¨ñ‹‚‘öqLðëƒýUj[’ =Á®…1Ñè²YÆHOŠåoq ’„!¿‡RÒ¯¸ð%ê«~u¯ ³¿0Š×·6î;>nE=m½aÔ\{\ÄcïQq”&T/bµ^þü‹}m“¹ò A’ü陈×O/ÍI>c×b%ÒÌ&ìýºªú· ¶mJ;û7žb{ª6eC‰Æô_è<@ÀbW’+Q'‘šäçÚU›‚ݧ/ˆ+ƒË°a
<¤þdÑ _IÒõ.˜ê¢Ï\9¾§é-xÚÖ-9?›ìÐv_ wóý}¾éH`…Ñ'>Êß4¬>äŽT‹¬ÌÛúGäµGÔà…$Í ï‚7LI›u`žUJ2ì„΃79ç¯~f´lá­ÊΚìïW 5?|¸':U—.ûrJo ÇÓlÔË5áAÜçxE ³º×ا‰3Ç•ÚTñ#åKþtâ•.iKW@ö/É›ÔÑ÷ ûj&Q ¦Œ²È˜¥t°Èð§Äh-ؤ1íý b?e¾™F Š– ÉXrÙ/&Šjz©¨rAÁM°re.2Òe%ÉÍ£™6"5[¹(H4 :\mdb“™[i:ýP½2“¿Ýä÷ö0JÑ»pÕh¯QšQ¨ý±Qó_»Ã7;mþã«÷Aú^ÁÐ; Ó èvñ¡Õñ¥ã«*’Hóß¹,QëtT½}…ÁbWý€g”ùxÔ$Ó¬GÞ×™®'}¡uÞói õ´’D§ùõ; ¼xðÞÔ¡Æ°~. °öâ%ÅÅ4O”˜»ª¡ Þ»Bï­\ÿÆÈæ 
-†ìvm…$t§³ÎLd?莑ˆ+í–«I&VñZ"-¿35MGöÊìä§7À Ñ4‰>ÅauA×W¯½r‚…`Hã×W{Ûw1Û®­¹E¥^["W¬%BŽ… >«íÜMÑ#nNCuy‹¼Hû %Tž,TÜþ0]4.ïdîžk0œPañœ„5ðY ÓëF–?ªU'?Õ‹«žäfü¸Š·Ö¤qCr®až1j,†º¿÷2Ó“=²õáÿ¶D4ÏØeÊÀ¿I Üóv¼vþ´b„dîÿ¼ø)xý)\+"oÜ´¦ÜD1å[|)h$úØûeGUeŸ?õ¾†Ó<åízznKB†Éd–¬ö…Àÿò!øÿ
+†ìvm…$t§³ÎLd?莑ˆ+í–«I&VñZ"-¿35MGöÊìä§7À Ñ4‰>ÅauA×W¯½r‚…`Hã×W{Ûw1Û®­¹E¥^["W¬%BŽ… >«íÜMÑ#nNCuy‹¼Hû %Tž,TÜþ0]4.ïdîžk0œPañœ„5ðY ÓëF–?ªU'?Õ‹«žäfü¸Š·Ö¤qCr®až1j,†º¿÷2Ó“=²õáÿ¶D4ÏØeÊÀ¿I Üóv¼vþ´b„dîÿ¼ø)xý)\+"oÜ´¦ÜD1å[|)h$úØûeGUeŸ?õ¾†Ó<åízznKB†Éd–¬ö…Àÿò!øÿ
endobj
1065 0 obj <<
/Type /Font
@@ -10816,14 +10800,14 @@ endobj
/FirstChar 36
/LastChar 121
/Widths 2155 0 R
-/BaseFont /LKLLHM+NimbusSanL-Bold
+/BaseFont /KXNXTH+NimbusSanL-Bold
/FontDescriptor 1063 0 R
>> endobj
1063 0 obj <<
/Ascent 722
/CapHeight 722
/Descent -217
-/FontName /LKLLHM+NimbusSanL-Bold
+/FontName /KXNXTH+NimbusSanL-Bold
/ItalicAngle 0
/StemV 141
/XHeight 532
@@ -10846,7 +10830,7 @@ stream
xÚízUX\[ÖmàÜ¡pww—à.…+ pªp‚— Á58„àN°àîî—
ìhùgK–nÎì:Ž`7Ð[™ÿ ~Pþ…Yƒ\¼\‚\
ò[^(>P3wÀâòõù߉ß¡pr,Á®
-{ 9Ø888Üÿ\¿¨¥“£½×¿ÂUÍ@
+{ 9Ø888Üÿ\¿¨¥“£½×¿ÂUÍ@
òrÿ]ñŸ^üåߨºøêäø—ä[G+'€à?Úyññ¯–ÜAèËlþcFÀ¿ë«:¹‚-@
ähù·”²ŽN–`Gk€–ëËTšA,ÿ üA[¸A /öüy@/ïþµ·¿y‚,Pçœ,„ƒmk‚[oª$I<XwƸ»ùt®žÝ(xP¢ía¶Ø`»T íJIxr $eɨÛˆU©ÀÁ„Æ‘ÈFó{Ø Jµ±!bã„`Ã*D³ÕŠ¨
¡!1Lüâè&ŽÿH˜’s íÕ§pJYve@+&=Š­ê„çOvÜÛwQC !/Ë/GVÛŸcÄ¿ <QS°÷ÓB˜l—á° KAUìh˜¼¥W¢6_ã”·a›ÎÎõH¡óúÏ„Ê£¸Öœ™“”ò µvpÝÙ|ùfuW5èœÏ«Èmì¼ÌÒ›ˆj˜·Ù«ÿ¸ØÊl燅ð©·$Ú·ŒM”¼Õ8P!B ¸éXèC•ÔÑtÆ<ÛV¦Ò«³.ŸU¿"ïVtÇåþ´Q«¢ÓeYóŽbÒ¿ÙZƒxS›§ñZ§í\O2~«{E3
@@ -10881,7 +10865,7 @@ j6ïàѲËY[M'㣩ëÓ3ëK)ÎdâˆE~=‰ÓÐâZ1ŠY±SÍçw¿
Ã{Q”(õ¦ú`í|ª[]˜’·.YMðÉÆ–™“ƒ]ZÜ•[NgN»Ã‹¨×ê-Tt×n9ÑB{^Ù¤â¡?Á’#]ü–KÝcôƒvÖoÚS)ãPß7cï·Ž
_™v5Ìh­a6ÃŒmäs\mµ1;×Û,¤æ‚pVƒ?Qñ:7i‚ð,yK%Ô‰‚/²Þ4?à'…ÒpV¥ú®”ÊYøÖåw»:/û 0JpaäÒ´øm'v¼ÝŽ[#}é<‚ú$OY°ÒÃ^;W ‹ƒô <
3M©VÞM` €o³z˜ ™Z`¦›E?É÷c¤«?\ejÆö>îÆø°Ü·M• BöºI@;xl¨Sã0¨ ûŸFTWIƒìg#YNßÙð~+\ @O,¨­ ¦ñåiA7Th¡†QüÅö«a¿8ý ¥Ù¨ó³8Œ±g±ÂC…ì/¿õNìññáß$d×.†”Ó‘µ¡DÅ$!Œ˜%eÜ''¶¢
-ïË»6ä½ã¬#Q2Ï EèÈMmaYEÞêÆ´¼F_wKßûLãqq‡ÿeO-âùgk=þIh®.íéÖ9ûr‹ÕÑÅ)­µ–aJ_Ü’ÁæG&Sb÷~ã‡gŽÝoûé ·ÃAAWQLÆ|C¦Ä,hèÓ×Ê›'jý1ÃʱåwôF5
+ïË»6ä½ã¬#Q2Ï EèÈMmaYEÞêÆ´¼F_wKßûLãqq‡ÿeO-âùgk=þIh®.íéÖ9ûr‹ÕÑÅ)­µ–aJ_Ü’ÁæG&Sb÷~ã‡gŽÝoûé ·ÃAAWQLÆ|C¦Ä,hèÓ×Ê›'jý1ÃʱåwôF5
endobj
1062 0 obj <<
/Type /Font
@@ -10890,14 +10874,14 @@ endobj
/FirstChar 2
/LastChar 151
/Widths 2156 0 R
-/BaseFont /TBJFWK+NimbusSanL-Regu
+/BaseFont /MRNCPP+NimbusSanL-Regu
/FontDescriptor 1060 0 R
>> endobj
1060 0 obj <<
/Ascent 712
/CapHeight 712
/Descent -213
-/FontName /TBJFWK+NimbusSanL-Regu
+/FontName /MRNCPP+NimbusSanL-Regu
/ItalicAngle 0
/StemV 85
/XHeight 523
@@ -10917,33 +10901,42 @@ endobj
/Filter /FlateDecode
>>
stream
-xÚíwePœë–.îîNCpwM‚»Üh ±†¦qw'H°à’àA îî48A“
-‹ß5á\ãb­Þsß]v”Ùv»I™»Ò@§Tþ/X¿â¯1µ ³ï†p›•`géÇùžÍªn  ñèínji›}üB=ÞÎE;»e záQDÄpã‚`•^ÿ–¸¯Ž ¶èûSÊÁí sßÐ×þ® ä/;”ì¹oÑÅ=°™bƒ\s)%Œt+|£^Ë àcš¤HÓ¯øbD{ˆÂÓ®hå_ãO•Ñ8V§%Ål¢¾Æ3Ö`éT¤¼‚cØÄÍùÉDF͸wvÎ%™îåH%ãc×ÊÎrYÓÀfhجس_ Ë7åCüUœB>þ¾o¤²:ØÏ Ô÷¾î}'CL!Ôk‡»Pôë*/Ìò[! ­â‚Y?ËSR]¸½ní΄Ê~Åœ Ž #DiþqõÒi!Oï
-ùÊaº5BOsö;5¤²nÛ®”‡1?ß×!¶Õ¼Fä›`¾EïÎf%¥üÍNJ]Ë`| ü^VÒ#5“Ù>U¶,lT*$A6 /WÍo¿D)9A[ßÞE»¯oOäÁçeˆbAÔ²²O,m£a’ «>+^¾1AU«Ôsi¦l›sÚ(,ÜØV¹ZùF§­#â=Õþ§‚[Fª½Ph7ÆM&âCo#ù»¤ø²ù2y=õ)êilºGôÙO=?-íw¡ë#Ž'a²—¥¦ 4#¶š™5-+3>S¯áŒÌͱæEÆÛÚ?W«EAì/6sRI~ߟ¯òÒË
-g©ùX½—ÿˆN|)ãÆs"•AàÂøžÉ&?®}߳ݚÀG¦ãkx%cqµˆ*Ê„þs#Ñ öàH_líÛòþЭDò.SÍò2µ¸‚¶cô~r×Ý&¼¶aËnàbAˆëàö‘·hàm|¢MæHvsºhkõ«Õ‚%ÍÍsu¢©¤¡Ÿ“=l¤´É¡¾4Ë_œœÅ¨””Ò8n“91Vh½#àÛµ-ÞTöw?Y¢Ô§¾LÑÜõÐop+–¹?µ­ªEzƒïê'&éµ' ´™öZ2VõzIÁ¿Ò$¼yíîRÿ}LÎáP<D°çœqAì%ÿ'…Ÿl¿ÞwF'N,µ…¿Ï™—}å’cý)á)nc´qNhªlâ%eR=ZøvF"ãÆ|‡éÌsr
-ª:ÚÉú/Iâr·?UP›…Â…ÆŸv]NVûsm72ðVó›ÂÞIš*c1+³žrwS1&‰÷©j¸·ÇšB—ëïÔÒ®K…ØŸ±ci7úRëY‹Õ¶GKÇTàÙ¼Á,L ïTü © –B7ÓFCÕýºPñòÐgûjœ­È6¢Ð3Ǥç+$سÁãäÖ½oИUFµfÌW·jæÇ5UrâŽ_•1ЙÈÓMm²OÁâË‚ÑN†~öò¯_¯³ö ió%O·­ŒKÐL°@D¼žºÕãöNº}lÚCèph¥ÑXÍw1çéJ2²¸ífþò'ÝÌp’ØA:ªöÉÀXræô{ïA{êg*PZ‡Yt¿ŽÝZ?ÙõúPÚ«p¸ýEªÇ¹þ©ðå˜ ] dîôŒxf ^GQÞWFNsµÞý¶ ¬8uIÔ¢0Ÿ®µômºwʼn«¿jD‰ó>Š3”×/”})WCÄç^<"Ô¾±®ïÚáÆHýôbºY‘)ù O1€öúÊø½:†æ‡tУ+ÕÖ7v
-\F P2ç´¢•ácƒÑ‹Ù‘…rò‹'ŽÔZOêÞ£ÐËT5ù„–ämýÂÆ¡\ƒO¬nÎhY¯ÊT£˜(3‚'Iáq&ÝàL‹x¸8'`‹r›—¸]kãï²—8x¯ô6»ŠÝw‹®A3‘3hÉÂä'O,˜G9¹5j v@Í¥×b*’ÅIœOb?¬Ð ÔP M%gxWªIVÈ!ñhÅÒø['¯¼¿.:°ÅλÒ6ù€@š<.œ»M=b¢³G<Éžb©ÎV逖4–Hº·ïK¤ŒS»7àâĺq›™ª””Óx`Ð@[{ù®Hš€@8ÅïÏSAø²ýäʲ½e#óòœ‡)P'dÖŒno¸”]`ú›Ð/ý»„ª6.˜²;NVßn81—hL°g/#³†õ½T5N•È&œ#kXÒ·Z‰[¦ZO¦í Vñ¨ÖŒ[ŸÓƒá~‰ò¼/×èa¶î^"’]d³¨ˆU?c«<œ)´ NGWŸÓJª"Z!ÉÜžo½¥I´¼ ½g:>:ªk{ˆëçÈ Žœ}ÊÌbÒ¡}Åó~@ó±F|íƒ-˜(2.°p{¶šIĨËq þ"AßEðI ý¼Ë¢oÒE±ã‡¢÷§Ðú0 r¿¡þâ°åÅKŒh—W‡ÃégäËC²},7Øz íå¶[D“ð §Ý÷3ð­beÖz«ë{çòCŒⲯÍ-kÛÓ~µ‘ñQÔ;¹F׌~Z¯r[Ÿ¾ÖcOSô•Üše  O4CwT(„¨]§kfž—zëd̹:E.g3G5Õ_üIA…nµ>Ĉe! ªÐ½×~sýücê{?ê…s’.âÈÑ¢8é+û3FX©wvÝ*— n~ ,!PÁzc³ÐMÕÁ—=®“@ ®±&Ó/C¦ì>š#ö¥X÷Þ•ß|/"rÈÏÞJð‚WXhÕö13/¾¼v"sõ]8«{¢5¬•n/ÁîÄÌÖZñÛÕêÇDßõÓ'R
-­)ýHF º6Y~Ûé»n{0òiSÖ^q _±ð¦ÀO¦îEþ‘”8¢±7_'š-CØ¢bùu]<ÉeA$o4¬ÒÌ)¦hÔ?úõt’†:öª^m™]IçoÅÙY?¿î(g‡$ ÀO Æs[ìKÍ÷\!xóI‘s/}©¥¸{•Äb’Ó½ä>‘b;’|†_};ËÈá—´nT
-ƒPÒ€m\ûVO~L DiåÍå¿Làæñº[{Ú2ÛÊ«ÃÔM–7P)‘uJl¹!{øXq£‚ʵ3f+ò¢,˲“§eg·î+lê šÂãEfqrqv±ç|ý{EMË5ƒ,IËrévÅä›ß‘¿öoXH°íxBâ‚Æð’ESyŠˆ »O‰Ú0r¨Ð¾/é¹Kš9+¶“Ò/J½[Snø¸›°F]Sç?…)Vž›r3WKn'ÂS¢Bp?o ‰ËÅ„¶DkŸxͦ;é›!dœ\Ø)ª+þAáÓý¼+I§…Ÿ Â1/ÒØO±}¦Lhoañf¢yÉYnÙó7XîÙu®DBÈ_ÞI‰^nù¤úóÓÝ2«Áé
-hãÓ‡¦øªB“ÞÉ,
-M…ߎ9_³œü§Ó©7\y9LàbfLý”Bãôžå˦fð(iÚB5ö±¬r/Ö@¦•
-/ôÙ°úQw.#EœêhüYУ„%UÛ96‘iYÆ·ŒÌï\]”¬®)”ÏâõŽê£p¯ª, ¹ESIªfs èLü„Ü#€˜ð5õ|ºó XŠÜ´Ñ;1*ýó$]˜o4^|œÖarAG–´@îõ´\ph®«`­
-ãDáð£ìÆU¦1*] ÓýQ„dl¯}ߨ¨7(cKqÞ9–ã¨[kwOŽÌ|ö$·¨íŸí«æ|sŠR¿
-ÞgÔ h¥%Ñî›!«RèPêé]å’qh”ö$Õk<©6–ìùŒ“=Ý°ãs8Ëqçsïï>®ê še{Þ1#ìgŠ²8egç~¤’+J˜gÑ“¯©²j>-Z’µ×vi™4/CTÊ´Š]±‡|ë‰
-)¯…=ղŻ†â &И2Ù‘)„j‘^ êK¡„4
-uHöó¾¤Ç|X(ÂÎiá—0åÁ¯ýî× ‡%ɸìÚƒ]~2¦ˆ8­¢3¤PBþã^äK,l<0‰”¡ÄºwRÃÃRù‰Ú—É I³OFAãÃI•B„íŒ Lõ¾ b­*ÒW{pͦa¦öùŸÙÞâdW-Ë'ŸÜH£û´Í`7$^¤©W‘8z.êЋü;*Ö&>0A̼ I™µØú‘‚ ø3àU$NõŽoíeá—·©E¥¥Ë°‹c¸3¦)fõwÖ.=£5f–MmB]7{¾ùP5/‚–Žè';n¬·ÍýòøŽ—D¤ë"‚ÙV+Œ)r‹U˜5ZV % En‰y\kºsóL£¸;s2¹c:ÅeCÜñ—D³Ùyò뵊²:ä¹iKg(Ç3æxb6^<§a’ êÂ¥\9$Ä>Ša(Íâä£mˆ#ô}ˆµ˜± ®uS%aéA²çÉF<ôÄt0côz¸ ô(é²Oè=wÈF£>yN¬F0‚®w9¹ê Ñ!ŒüâUȲ­Áô7ø÷ó\â‡[äÝ,—PÞ\]Qé÷·¨ÈŽëªxŠ¢é‘t¾£ã‰£ò;:2 öø²x‹{e@
-ø6Uu^˜ç|:¥ÔËíäð%X8ä—@ÖONÙ™¿°
-SÒ±H]^åí?ÒS”:j>ù^±$•MËÔ°Ö~¨ù®Ó›¨òëŠÖhé¸Zêî @­!5“Ößꦶü þyö{¶=êÇ{§ 9¶$â [Ùo„5òѨÛç³ -ïoGóù/. ÈR+¿”Ûû²W }˜x÷aî¶bK‚+52gõK䯰’Oß󅤧d0ð¨3”âK9ìºXÃø¹Ê'=ñÜdÇY–µBø Üc‰­’ÞRNªzcÐØ2•¼eཙüœ/ŒB+‚YK°>]3çÚàÔô‰é(±œÌ×üq]ÔÒ•h»¦éyù>¬oG{åM\4Ù™§© ÌÔîå«îTäfo¢d¥SʆuÓµ‘´F”T/¤*ÜÄ"Úé‚&‘v”gH æÅBY+*z âÛ“kȺªñŒ¯W¾q ¶Nr1=æÁ{F ³N·>©)‡kêøW}À{×.¬´;UBòœ•$‡3/ïtwG¤òt$qËoGćâ·éçë][
-‘mv¿`€÷˜¶”¬d檥—ˆT®•¨U~Ì:¼dLTФo*`›ð=Csì„ :Ó‚$G£C‹*zÒÛüªˆÇzY]R?Ž§iÊ­6&ldr¹á}Ö¢ç2D’©cŽ–RŽ½4õ1@@Ü zå©jF ¿Ê%™RQݤóvš•7Vi4(Á¦¿ o-ÎË C
-È<S
-ò`]Ÿš¶ü]c”¡S½‰Be­])Àžm''Îk¨%æ:™F•øô3Ñ‹*UÃzçF¬›0Þ‡ÉůÐæÎ"³‡l„nû³OÚëV”<ûÇtJr!˜ò&b,Ê\Ø°–=“QXåâãÓÄQ(ãÌ0½ŸÀ‚5®&ÉáÁcLçÏWá]¾N”jŠ¢Ñ¯+#„‘J¡š¸FÐüÙÌàþ jîòCYLƒ5”h"‹ThîÖå
-Ɉ¦/Ž5C]K‚š¾&ÆëZ~c‰ŒÑÎ Œ/«ÙyE <Yô$ÔÿMðú ÿPhÉñ"¢–O߀KvÅ †M Q…¢f`÷væú±BÝ#NA»é`7aÌý钲Ɣ K•{=‚0ê]= v…;ŽT³wz{b×ôq Ñ ™‚NûbîE?Z½ ‚˸¯ƒÉ˜2\qÄ‘ž2_ŸhÀ(7„÷7Æçm
-÷ÅžA>Œ./–ûš¡`¥ßV¬åÅù=uësôŠæò‚~ÃñQß‹?{Ù*.z{ö­`!ŒOÍžE¡â‹ù'™Ï<LõêoŠz–»lfvùt®ï¶6•@! éÚñ´}›¾z8õpƧ¤˜<|Ø¡
-c.8=ƒ¹-ýؽ`硈‚Œ/>mQ5%ä,fÝOýjïøÖî—_e^Š¬
-ÒÆ °9QðÙsý‚v9êÎu12g‰j=I^Û¸å<¦¶±q;~?”,
-:Ö¯}‰÷v,}çx>¯‡j+’¼ ¨XRÔi q8;­‘½–„¿¬Ÿ6mF\©%šÆžéƒàÉÒi?6‡/9ÒiHö^Å’ÕÃ&y{&Ìe$66Úr‘oMí’ÉÉ*Ëû†± õR¡ð•Á¯k7Î[ì…$"+•zSàCz¥ØöUP‹µ;«3ËP:1Ž .ÿ Û{‘q.ŸI´¬o^Ã{ßH¼÷ê£LMëV¢Z@eð» ¾Ô•w^6'þƒ¼¾
-ˆÒ—³AÕ÷Üì4*‡ËGFO„’P°Áñd‡œ¾×vu¼v£¬}  J6J(c8'Nj×mÕ‰kݸBgdî?PPÐuȈŒG/ýTø›!ž|¹$dKX]ò6ÃÑb~þÝäÄðå²W/]\î¢ã¸;cùb•zÿÔ9¿ßÊÍ^Ð`ö¶¨«QíÛ$ÂÐ2Òn«Ã­+³Çø/Bîr/–YÖmí‘×… ¯ñ™I"Wâ}-è¨>¢×6n#°Öӧ˿ÏT‹YeFÚ@ìT‰¨Ç¶&TGŒN·p/SòÖŽgzaN»zµú8#Xáü=ö6Œ¬ªˆ§)xû#YÄ)´9pÍd™"üF‚š¯€ÉŽ÷Ó±ü—j" F!m:™­•0./1S¿Àþ4×<¼ý@(°tÈ£^ž<bâfvßf£ZÏùÌ6G%2À1-øu" gŸü55KS½©¥ÛX'ó”±ÜIlÛbßÖ.’Vð*£Ð´Ëk,nñIlìØî­ƒ|4xn¸·"‹p,€˜,©VÞFôkÍ÷™Ÿ0¦ûÛ~ĵ·_"muFÛF,V¬+×)ö³1|¡n”"Ü3÷QÑjªßõ…°^rÚŠ .áÓ®ÓÅY¹YD§HÚ
-ćPíˆb}Õö#çù_~0þ?ÁÿVŽ qB0þÎ}*endstream
+xÚíwePœë–.îîNCpwM‚»Üh ±†¦qw'H°à’àA îî48A“
+šó“‰Œšq?>îìœK2Ý+Ê‘JÆÇ®5”岦ÍаY±:f¿–oʇø«8…| ü}ßHdt°ŸA¨ï}ÝûN†˜B¨×w¡è7ÖU(^˜å·BZų~–§¤ºpz/ÜÚœ 3”ýŠ9Š9zFˆÒüâê¥Ó&BŸÞò•Ãtk„žæìwjH)dݶ])b~¾¯Cl«)x ŒÈ7Á|‹ÞÍJJù›”º–Áøø½¬¤Gj&³}ªlYØ ¨TH‚m^®šß~‰Rr<‚¶¾½‹;v_ß2žÈƒÏË/Ä‚¨eeŸXÚF+Â$AV}V6¼|c‚ª,V©çÒLÙ6ç´QX¸±­r5´òNZGÄ{.<ªýO ·Œ4T z¡ÐnŒ›LćÞFòwIñeóeòz ëSÔÓØt賟z~ZÚïB×GOÂd/JLhFl53kZVf,|¦^Ù›cÍ‹Œ·µ®V3Š‚Ø_l椒ü¾?#^套ÎRó±z/ÿ'œø:RÆç0D*ƒÀ…ñ=“M
+~\û¾g»5LÇ×ð2(JÆâjU” ýçF¢AíÁ‘¾ØÚ·åý¡[‰ä]¦šåejqmÇè+üä®»MxmÖÜÀÅ‚×Á;ì#oÑÀÛøD›Ì‘ì
+ætÑÖêW«Kš›çêDSIB?'{ØHi“C}i–¿89‹Q#8()¥qÜ&s:c¬ÐzGÀ·k[¼©ìï~²D©O}™¢¹ë¡ßàV,sj[3T‹ôßÕOLÒkOh3íµ:e¬êõ’‚¥Ixó0$ÚÝ¥þû™œÃ¡xˆ`Ï9ã‚ØKþO
+?Ù~½ïŒN0œXj Ÿ3/û2Ê%ÇúSÂSÜÆhãœÐTÙÄK
+ʤz4´ð-ìŒDÆ9ø Ò™çäTu´“õ_.’Äån3~ª>4 6 …
+?5캜(¬öçÚnd"à­æ7…½“4UÆbVf=åî¦bLïS7Ôpo5….×ÿÞ©¥]—
+ *°?cÇÒnô¥Ö³«m–Ž!©À³yƒY0˜Þ©øRA>,…o¦†ªûu¡âå¡ÏöÕ
+8[‘mD¡9fŽIÏWH°gƒ3Æ3È­{ß 1«Œj͘¯nÕÌkªäÄ¿*c 3‘§›ÚdŸ(‚Å—£ ýìå_¿^gìAÒæKžn[— ™`ˆx=u«ÇítûØ´‡Ðá:ÑJ£±šïbÎÓ•ddqÛÍüå Nº™;á$±ƒtT퓱åÌé÷ÞƒöÔÏT ´³è~9»µ~²ëõ¡´Wáp#ú‹TsýSáË1AºÈÜéñ*Ì@¼Ž¢¼¯Œœæj½úmXqê$’¨Ea
+>]kéÛtïŠWÕˆç5|g('®_(ûR®†ˆ/νxD¨}c]ߵÑúéÅt³"SòAŸb
+
+ÛJ§
+QZœsK )!7 ¢)U˜)%ݯð
+F<¯Tváî7üŠ( $4~x-#|»±JkP4ŠZ¬pƒí„ÊNh±c…5³³:f“ís îBiFí³teÈßiήÞ鎙øÑ0%$§§H•†ûYðI;‰:|€‰û8}æ®îØc7=sMOUK°ºöZ ¦ëQú¹ñ |ÉꔕQZQעŢÉZ0ºvø¼-…^_'T…\Û'Îæ<fÉpù¦ÚãÄî÷gˆ÷Øðú÷y?´ýëqcv?¾˜ ´9M½¼`T¤o00îtÐQ;úÊÖíÔÎ0›Â²¡Kªnœ=q5&bºâ© ¤åy«“C(|©W™XkÚîeÌÚöyÆÛ¦Lϯ×+®ª#£¶/mñ'ÇCZ‡SŬ„2¢—ïŠÎ+äÝrìÌ«>5ØW„î犷8tO\§ìµVJßÝpj¤û?‘Ä,¸:Œ dÎiE+ÃÇ£³# åä NŠ{©µžÔ/¼G¡—©j8ò ;,ÉÛú…C¹ŸXݜѲ^•-¨F1QfþO’ÂãLºÁ™ñpqNÀå$6/q»Ö$Çße/qð^émv»ï]ƒf"gÐ’…‡IOžX0rr'jÔ@퀚3K¯ÅT$‹“8ŸÄ~X¡¨ šJÎ,ð®T“¬CâÑŠ'¤ñ·N^y]t`‹w¥mò4x\8w›zÄDgx’=ÅR­Ò-i0,‘toß—H§v/ nÀʼnuã63U))§ñÀ¡¶öò]94pŠßŸ§‚8ðe=úÈ•e{Ë&Fæå9S NȬÝÞp)»Àô7¡_úw Um\0ewœ¬¾Ýpb.ÿИ`Ï^Ff )0ê{©jœ.*‘M8G
+Ö°¥oµ·LµžLÛ¬âQ­¶>§Ãýåy_®ÑÃlݽD$»ÈfQ«~ÆVx8Sh'@Ž®>§/”T3D´B.’¹=ßzK“hyzÏ t|tT×ö×Ï‘9û0”™Å¤CûŠçý€æcøÚ[0Qe\þ`áöl5“ˆQ—ã üE‚¾‹à“@úy—Eߤ‹bÇEïO¡õaä,~CýÅaË‹—Ñ.¯‡ÓÏÈ—!‡dûXn†1õÚËm·ˆ&áN»ïgà[Åʬ2ôV×÷Îå‡%Äe_›[Ö$¶§ýj#ã£0¨wrÿŒ®ý´^å¶>}­Çž¦è+¹5Ë@Ÿh†î¨PQ»N×Ì:<</õÖÉþ˜suŠ\ÎfŽjª¿ø“‚
+Ýj}ˆËB@T¡{ ®ýæ†{ùÇÔ÷ Ô ç$]Ä‘£EqÒWögŒ°RïìºU.Üü:XB ‚õÆf¡›ªƒ/{\'\cM¦7^†LÙ}þ4GìK±î½+¿ù^D䟽•à߯°Ðªícf^|yíDæ&ê»pV÷DkX+Ý^‚݉™­'´â·« Ôˆ†?ë§O¤(ZS:ú‘Œtm²ü¶#ÒwÝö`äÓ¦¬½â@¾báMŸLÝ‹ü/")qDco¾N4'Z†°EÅò êºxþ’Ë‚HÞhY¥™SLѨôëé$ uìU½Ú2»’Îß,>Š³³~ÝQÎI6€ŸŒç¶Ø—šï¹,Bñæ“"ç^úRKq=ö&*?ˆ3Ä$§{É}"Åv$ù ¿"úv–‘Ã/iݨ
+S¬<!7åf®–ÜN„§D…à~Þ—‹ m‰Ö> ðšM%vÒ;6-BÈ8¹°STWü!ƒÂ§ûy;-V’N >A…c^¤±ŸbûL™:ÑÞÂâÍDó’³Ü²ç-n<°Ü²ë\‰„¿¼“81¼ÜòIõç+¦»eV;ƒÓÐƧMñU…&½“Yš
+¿s¾f9ùO§So¸òr˜ÀÅ̘ú)…Æè=Ë—MÍàQÒ´…jìcYå^¬L+^è³aõ£î:]FŠ8ÕÑø³ G Kª¶sl"Ó²Œo™ß¹º(Y]S(ŸÅëÕGá^UY,,@r‹¦’TÍæ@Ñ™ø ¹G
+"Q1m>3ÍÃÉv€ê*Ó«KhoIVÙ ¤M›ëNw_
+Hª×6x(Rm,Ùó9'{ºaÇ æp–ãÎçÞß}\Õ4Ëö¼c*FØÏeqÊÎÎý(H%W”0Ï¢'_S;eÕ|[´4$k¯í Ó2i^†¨”iºbùÖúp{x¹ŒÑ{Yd Ð)-\}®×ú‘LV?Ïr
+ăҕõk…&X†#Q‘¿<Z?
+`‚˜y’2k±õ#ðgÀ«HœêßÚËÂ/oS‹JK—a5Çp'fLSÌêï¬]zFkÌ,›Ú„ºnö|ó¡j^-ÑOvÜXo›ûå ð/‰H×E³­VSä«0k&´¬J2ŠÜ=ò¸Ötçæ™Fqwæd>rÇtŠË†¸ã/‰f%²5ò("ä×ke9tÈsÓ–ÎPŽ;fÌñ0Äl¼xNÃ$Ô/„K¹rHˆ|ÃPšÅ7ÈGÛGè)úk1c\ë¦JÂÒƒdÏ“xè‰é`Æè;ôpèQÒeŸ8Ð{îF|òœX`]ïrrÕ¢Cù5Ä«e[ƒéoðïç¹Ä·È»Y.¡¼¹º¢ÒïoQ‘×UñEÓ#é|GÇ5Gåvt:eìñeñ÷Ê6€ðmªê¼0ÎùuJ©=–ÛÉáK°pÈ/¬Ÿœ²3a¦¤c‘»¼ÊÛ¤§(uÔ|ò½bI*›–©a­ý:Qó]§7Qå×­ÑÒqµÔÝA€ZCj&­¿ÕMmùü5òì÷l{Ô÷NrlIÄ6¶²ßkä£Q·ÏgZÞÿÞŽþæó_\¥V~)·÷e#®ú0ñîÃÜmÅ–Wjd<Îê—È_a%Ÿ¾ç IOÉ`àQg(Å—rØu±†ñr•Nzâ¹ÉŽ³,k…ð¸Æ[%½¥œT ôÆ ±-:d*yËÀz 2ù9_…V³–`}ºfεÁ©éÓQb9™¯,ø㺨¥+)8ÐvMÓóò}XߎöÊ›¸h²3OS˜©ÝËWÝ©È98ÌÞDÉJ§”' ë¦k%"i(© ^HU¸‰E´ÓM"í(Ï<Ì!‹…²VTô@Å·;&×uTã_¯|ã@läbz̃÷Œf'œn}RS×Ôñ¯ú€÷®ÝWM]Xiwª„ä9*Ig^Þ7:é"îŽHåéHâ–/ÞŽˆÅoÓÏ×»¶"Ûì~Á
+åj¼ÄíyÉWîÌ-ÞYeâ”^P|Ѹ縱B)— ]ù¼Z‚¯²´®ÕP?t@'M­ožiÂäÁº>5mù»Æþ(C§z…Ê Z»R€=ÛN:Nœ×PK Ìu2*ñég¢Uª†õÎX7a:¼“‹_¡ÍEfÙÝögŸ´×­(yöé”ä$B0åMÄX”¹°a-{&£$>°ÊÅÇ!§‰£PÆ™az?k\M’ÃǘΟ¯Â»|(ÕE£_WF1"•B5q ‡y³9˜?ÀýÔÜ凲˜k(ÑD¨ÐÜ­Ë%’M_ k$†º:–$:):4}MŒ×µüÆ£A_V9²!òŠ@y²èI¨ÿ›àõþ¡Ð’ãED-Ÿ¾—ìŠ š6&¢
+EÍÀïíÌõc-„ºGœ‚v1ÒÁ n˜ûÓ%e)A—*÷4<zaÔ»z>"ì
+w©fïôöÄ®éã¢2öÅÜŠ~´zA—q_“1e¸âˆ#=e¾>5ЀQnïoŒÏ7Úî‹=ƒ
+|]^,÷5CÁJ¿­XË‹ó{êÖçèÍäü†ã£¾ö0²U\ôöì3ZÁBŸš=)ŠBÅóO2Ÿy˜ :êÕßõ,wÙÌìòé\ßmm*BÒµãiû6}õpêáŒOI 0yø°C„—ó‰Jï×ÇËU–î°T·»½ØvDûò¹ñ_D,×Ðj+ìi çK°£z„â<áOΚK–¿û$›$ã ê«·}ïÿfÛºŽ8~†½g3w›p-ÜE3†NT×— ê‰/~ÀFNÞ…zv’V¼ä˜×RÁ†#颞â6Xo™Ä6qӱɫ^¨Óâ¨p'd€¤ÈÃta©‚9ŠÅË–8è”MmÎúŠ0³Ÿ¤µÌÊôw{ç_ð’l»òÔˆI£òÌCû¹4Ò ©š½°(f®cÑ.0átlã’·²XL¢Ÿ¤5˜~4»§y Æ@³k{(̈Àn} m{ÛóO®Hl€ÝàåG;R½"Ï>'C§ÂéÜœ(‘!ïä8Í•È(mÊ{ 6t=‰©OJÄw]RËs£ô Æ\pzs[ú±{ÁÎC_|ÞwÛ¢jJÈY̺ŸúÕÞñ‡-Ý/¿Ê¼Y6ì)E`w¹†;6ˆÜ„¿‡ʽR6¹Ú£FØl@eç2ù؈{úý ïþõC •s!Á”;66­R×Âóò··”(*9÷WsÔÜP÷¯œ~:`3ŧ3ªGZkO+ÚÈRSY|ë¼o¢1¬DpË9j-q—ݵýð}ĜαŸBÈP„¹×~ùé¼I2èüš“xþÄt¼Û·?//I³r,í>šo é`ܨ=ƒ§Z˜ºüúí?P]ãí€ÓHÏ¡ÆfØî¬LUébH i}pXabÝBdßùˆvǾ^È0Ž3¿a6þÐkºnUõOsP˦$éÕíÕªˆ'Å\ÈÞ‚LäAc ¼—c·¤¾ÅŽú¥Äe£”ëmÖÙòÐŒUÚèÇÝŸ â´¯ay0=vêi'¼«nH¼ŸnFb²Õ¸ Ò€ŸƒÁ÷!³¨R\ ÿ
+~uÊÉfÃ.!#¸ûù4%mBKÖèE¨µ½ ÓX·”6LÒÚ6!³DYíaffýOûêWNª}ZÞg‚éž›HR‹êõl—z ó×ÔD57uó=5†!'M­‘‡AÒº2E‚¯:6ÚF§;©RÞ‡[BzK+Î
+ß!`ó Ȳœe
+dº9„ÚÑ£onÖ42íöÕ‹4ͳøªƒ“Ûˆ  +ÖÚ@{”e­^ßxgD_ë¥R6ŠwˆŽ„-7[:ëRöMÂd›2x•û“öÙ° <ÍùG{|E¨ènîÆrSìÏíŸXØòÄB¥:q–hŸýǤŠ§éLä]"bF&ÆWtz`k£Qøªj¾ƒ¾±x±2U?¿
+(|Yr™¤AÛŸ•^þþ`ãMaá“Óe–”ÖOa#aTÉÐs;nÁ@úwm¬ì^ùÊAÄÉôæ"\í¹z]Ñ ÔŸhÝd‡Ijœ×éóæN¹šæüŸL¹†>Ã1NeÚ‡iÑEÛË¢Rõóó"( me>´â åâTï²ìÒf|ãÞ/œe¸²bîµË×
+ªVŽ…¡TYÏñGûçÕ‘¤`s
+¢à³çúísÔëbdÎ:Õz’¼¶qËyLmcãvü~(5Xt¬_ûïíX(úÎñ*|<^ÕV$yAQ°¤¨Ó@ãpvZ#{-/!~+X3>mÚŒ¸RK4=ÓÁ“¥Ó~l_r¤Ó콊%«‡MòöL˜ÊH"l l´å"ßšÚ%““U–÷ cê¥B5à+ƒ_'Ön*œ·Ø =HDV"*õ¦À‡ôJ±í« kwV,f–¡tb,\þ#¶÷"ã\>“hYß¼†÷¾‘xïÕG™šÖ1¬Dµ€Êàw|©+ï¼lNü?x}
+/’½oÛ÷¾^LL9-†ùʈ†?d×8
+ÌÍN;^I^Ü<8[afóøüìÇig*ôB¥ÛRôÚ_…'Ñ·°¨’sÚær©t É­Z"q_½âæ.YžÞýìóörµ™´vE»K
+“аg¬¾yrÞ×^‡aî7QvN1}×±Á꣨å¶Xiœ¤Ê§¼„ÆæñR£îQä1‹Rä;Eøê'Æù×
+ ë— ^ú©8ð7'B<9ørIÈ–°ºäm†£Å6üü»É‰áËe¯^º¸ÜEÇqwÆòÅ(*õþ©s~¿•›½ ÁìmQ-V+¢&Ú·I„' e¤ÝV‡ ZVfñ_6„Üä^&,³¬ÛÚ#¯ 2^ã3“D®<ÄûZÐ P}D¯mþÜF`­§5N—Ÿ7¨³ÊŒ´Ø©QmM¨Žná.^"¦ä­%ÎôÂœ4võjõqF°Âù{ìmYUOSðöG²ˆShsàšÉ2Eø54^“ï§cù/ÕD@ŒBÚt2[+a\^b¦~üi®yxûP`éG½<yÄÄÍì¾ÍFµžó™m:Jd€cZðëDÎ> økj–>¦zSK·±Næ)c¹“ضž­]$+¬àUF¡i—×XÜâ“ØÙ±Ý[!"ùhð&ÜpoEáX
endobj
1037 0 obj <<
/Type /Font
@@ -10952,14 +10945,14 @@ endobj
/FirstChar 35
/LastChar 122
/Widths 2157 0 R
-/BaseFont /RPOAIN+NimbusMonL-BoldObli
+/BaseFont /VVHOCS+NimbusMonL-BoldObli
/FontDescriptor 1035 0 R
>> endobj
1035 0 obj <<
/Ascent 624
/CapHeight 552
/Descent -126
-/FontName /RPOAIN+NimbusMonL-BoldObli
+/FontName /VVHOCS+NimbusMonL-BoldObli
/ItalicAngle -12
/StemV 103
/XHeight 439
@@ -10981,7 +10974,7 @@ endobj
stream
xÚíteT\ë–-w‚-Ü ®ÁÝ-h h…KáîîÜ¡p'H ¸;—àÜýqÎíîÛã¾þÕÝ¿Þx5Æ®±¿5ךKæÚ5¹Š:³¨©1PÊÎÌÌÆÂÊPÙ;;)ÚÙ*0«Í•­A€7€ ™šZÜhÙÙJü
 ­`fç°þÇ`bgk
-ú«5'–7.Q'€ÀÉhz º™
+ú«5'–7.Q'€ÀÉhz º™
k°ºÜ¬š;£ªj_!Oð$ã­Žˆ§·ô~”.ù~8T7öè>&)u±¸m˜ PX5‡G4‰û·7´½Cý}çp]ÛDŒÙ±HÔ.°h4‘~ÙDºåžáŒ[ïjwÈbºr¸°ÌN¤î“ƒðÆüSgÊrUm4>_pû´e{eÊóÀ@’ªí!B¾^gYâ¶fˆ^FT{ônRçz[âœ5Zóì3ŠìŒ—*J–>#
sÁx§¼*o.á_g}wýœñl^îkÝŠÔ'Ø’(Mô{Ä'’WuçÙ>`·pòdèŸoR[ÌÒö! íë&XôÕFZü¦½ê>ì%Ü}g·û[˽æb6J¸uq ÖDP»}"ßžo«/2åKžxÊ$©ü&Ú6|I²k¢QᲪÖÒß(Fà"A=PÎ2íܘ??ý@²å·‡•Hki–óº‚i¦
Û#Ò¾ç‚u¨Öåºp³àž\¢4hS ©–Eéf< ¢sj`ß®›ÌFpï(üÊæú|k-è=‹ãEâï°ü‹üTvalÝ´X\0X¿Ù¦?˜|ew…­K£KòÉäÃïÚجäÊŠíŒ]Ý: %¢˜~¡¨ç7GÊÎÉÃÄ} .Íâ<!˜ !†As¥»˜ö”ÌÔš(;¯3á‘7ÅÆÊ0]²Q|Â^ÿg×C´U´raáfùgzfÊeÑE=n«d?8!j¨¤WR-å…D¡œÊ¯mh$¦œa—C½Þæþ©ƒ®Cä¶wk!FËèIØßaNó4dý6x^z/ë„:Ž ºøÒÈQgæAÊN6æ ž›pP¬Š?¼û‰DÜÄÐ9Ó,4(E#´Íô;Õð¬ŸIaê‚«{Š‰ÏU–¦/ƒH»9ì’Újà(XW†ôí¦Ëø­Œ¶ù¸ä»Ü_Cþ[uë†LFq ­Æ!ü
@@ -11015,7 +11008,7 @@ NaãLïñ˾œ[{Uy<-Þ€-§Žà@÷ÎG{|Ñâ'ú*&MËDß×°‚ÚKÆí¹W!¡ÏN¤µ‘ÖÅe<Ò}øÖÐÇÞfnÑ»
øÍæ6?ÅÖ%X<²˜6˜ü” èýÇÓ·55ιbÏ(L853ïáˆÕë¡›íÐêº/ÂÐ7q‹^¿_5
r•ŽQ¾¹42"ÒQyܽ…8[E~*ï\ºÊYòÃå«&R½n<NÁŽ¨ÎŒóöÀ8mÈpf0 <«±Ìœ/Fµ{ —·î9ýöÝ„PœÒÄ@cÅÿ4¦; ™«×”¯ü¨K­ À$çdLÎð©»$?ÊCîYÇF¢á‰á&Ø,ØÏ<Ú#@Ë%® ]g‰hƦÌäÒ†F`{&(]ž·/iÇÕÜ\p±"Ëbö>¸M¸  ý¡$úu}ÞÕ*äW˹ÑwçQ
®ŽW_hi+yñ¸âÅ‹…†
-ë‰f m…ÚÐJï¬ùÏ¥‹û ´¤ešÌiûFt& ß–³´Ó²ë“´›>Y`™å³{ëéÄ2 û“°dõ>sf gz s‘žI Ï¡¡Æá÷”êK“VeùÞÉÄ;NIN² -ÅêàÒ[xŽø?‹¬ !¼Ž”xí°åJ¦v<x¬/ OKÁ5
+ë‰f m…ÚÐJï¬ùÏ¥‹û ´¤ešÌiûFt& ß–³´Ó²ë“´›>Y`™å³{ëéÄ2 û“°dõ>sf gz s‘žI Ï¡¡Æá÷”êK“VeùÞÉÄ;NIN² -ÅêàÒ[xŽø?‹¬ !¼Ž”xí°åJ¦v<x¬/ OKÁ5
endobj
1029 0 obj <<
/Type /Font
@@ -11024,14 +11017,14 @@ endobj
/FirstChar 34
/LastChar 122
/Widths 2158 0 R
-/BaseFont /KRMJAC+NimbusMonL-ReguObli
+/BaseFont /FOHDCE+NimbusMonL-ReguObli
/FontDescriptor 1027 0 R
>> endobj
1027 0 obj <<
/Ascent 625
/CapHeight 557
/Descent -147
-/FontName /KRMJAC+NimbusMonL-ReguObli
+/FontName /FOHDCE+NimbusMonL-ReguObli
/ItalicAngle -12
/StemV 43
/XHeight 426
@@ -11055,7 +11048,7 @@ xÚ¬µct¦ÝÖ%ÛvîضY1+¶mÛ¶Y±mÛIŶm[õÕsNw¿=Î׿ºß×מ síµÉˆ”è„Œí MÄìlé˜è¹r6†.N
.†ÖF
¢bÿÎÓÙÜÀùŸØNÍ
à gçü7$€òÿŽeúÿ>’ÿ(þo!ø¿…Þÿ7rÿ“£ÿíÿ¿Þçÿ„s±¶–3°ù;
-FzÆ+-œÄ,ÜMŒ,œÌ¦Ö{ô/½Š­±‰£µ…­É_.ÿÕF
+FzÆ+-œÄ,ÜMŒ,œÌ¦Ö{ô/½Š­±‰£µ…­É_.ÿÕF
Ð÷ª-KCºæì¢]•ß@e›‡á±Í R©e7ãÝ8æ¥X¼Ý ú^¯bª¿fiWã¦Ç6hé("ôæ?ü…$ØVS̓÷â¹-Àõæ}DJš2½œœ$~T’D™ˆ‡…:Nq®ó#5ßì" 󧈼ˆÎQჶL–­Èµðc“Êç؉/WöýîŸX2ŸÈÈðxª©-“[¿F7žsWÆ{4B
pÇ€úâLV›‰¨ÛE°¼õ`K«Vá½Öž\ºÍªk:K?>1ÁÆy9ãd™5 @P2ƒ÷Í°]öþ6Í(9Ð`®¦ ~ Ì¢ß +¹9y´Æ¢]’ˆåþJ¿*ú¨ gÒöK“]?e’CÌ(m
D\ïN¤Ô´|˜Ǧ¡‹Uf¥—øŒÉïÀúÒáè
@@ -11124,7 +11117,7 @@ FÏ-¶ 6© †Â ߸ŒçânVä^… ]šMg\Ô<C‰é>KÇ·ä 9·/£‡õü7o¼¾¾Ð¼­ÎÉSö'ž”Q®¬þ´òB†‡
šþˆ/KnèEKØ(xÆÈìƒww¦\3¥kÔ!›ùÑÆlð›Qe8‚nÛh’8¯tãær|BUw•Q“)€gÏ£ŽWºè¥@Pñ„¥¾‡LZð7×(fÐlç9¬Œ bf r·Ñá·šPæ}p
øš*›íßyýá“ãûB/1;Aì2ÕÙ3ÕSs±‘woÃñÕ“VÝÝíßv¼¯å¹ÜÆ{¯’XcÇú9'*:ÞÒˆVÂ)BSzŠ)Xý_ƒÓŠÖpm{§z¼¸—±u±)ôc¹ÿÕ)€+H2Qi·'Âڱ׉×b@akÊE¿¢vÉÃBakR‡å:›ñ†‡Fˆ~¨êÈ’Ìm®g4šv~\œI©¸
^ýì¶<[7Û-ú%çq´Å5mââËÊž¶t“Bdc;|WÝÚú7–xSyåÈ4ØÇÖv´¦×Åõ Q«´˜„2ã¹Rwr\Œ¨ÇÂCÀVD
-­`Ú5øy÷»é@k"¢™5)Ï1·ØRù-DÒH Ö»¼ÍDdM†o3w»5Gv`LÐ2îä¯uÈoêb—r›[ˆv^Ð^P€ó]üQ¨‹ÔS^?¨Ïóè_û³£ 'C2T5ÍyÅ [<;ËÛÜ}‹hLé4mMmÖéҎ/À}"ÑçB0%’éVE~µb(e’ ”峕UòïiN“ýië€ëÜ„{X#Œ=dÓ[娽 ÿÆOƒHð”£Vê ªëvGJMGÚêåÄLX^9ymiZPpù˜B5«¬Âø#…sW+* ¨)¨OñD¾Ë_*Ïøy81¢ÎsY×/NI„8wÖ¦.¶v.rþ÷¥äïûˆÍžá¹ˆ“¤;éë7¤{®ÈEÕîÄìø‘VYƒÉïÌ|ÝWN`ÄþÅW‡Ù¾—›º‚ÔÂâsh™ËúÊIÆ(ˆxó^m¸ƒž²Ê+»O':QGrçÉ×æ[XFRž;j¸±·ùI•šà5A
+­`Ú5øy÷»é@k"¢™5)Ï1·ØRù-DÒH Ö»¼ÍDdM†o3w»5Gv`LÐ2îä¯uÈoêb—r›[ˆv^Ð^P€ó]üQ¨‹ÔS^?¨Ïóè_û³£ 'C2T5ÍyÅ [<;ËÛÜ}‹hLé4mMmÖéҎ/À}"ÑçB0%’éVE~µb(e’ ”峕UòïiN“ýië€ëÜ„{X#Œ=dÓ[娽 ÿÆOƒHð”£Vê ªëvGJMGÚêåÄLX^9ymiZPpù˜B5«¬Âø#…sW+* ¨)¨OñD¾Ë_*Ïøy81¢ÎsY×/NI„8wÖ¦.¶v.rþ÷¥äïûˆÍžá¹ˆ“¤;éë7¤{®ÈEÕîÄìø‘VYƒÉïÌ|ÝWN`ÄþÅW‡Ù¾—›º‚ÔÂâsh™ËúÊIÆ(ˆxó^m¸ƒž²Ê+»O':QGrçÉ×æ[XFRž;j¸±·ùI•šà5A
endobj
953 0 obj <<
/Type /Font
@@ -11133,14 +11126,14 @@ endobj
/FirstChar 34
/LastChar 125
/Widths 2159 0 R
-/BaseFont /AYAWGO+NimbusMonL-Bold
+/BaseFont /CKBQFL+NimbusMonL-Bold
/FontDescriptor 951 0 R
>> endobj
951 0 obj <<
/Ascent 624
/CapHeight 552
/Descent -126
-/FontName /AYAWGO+NimbusMonL-Bold
+/FontName /CKBQFL+NimbusMonL-Bold
/ItalicAngle 0
/StemV 101
/XHeight 439
@@ -11161,7 +11154,7 @@ endobj
>>
stream
xÚ¬·ctåßÖ&›£’Û¶mWœT²cÛ¶m§bÛ¶]±*¶­[ÿsºûíqnß/}ß{Œßšxæ3ç3×c“)ªÐ ÛþŠÛÚ8Ñ1Ñ3räÍ­:;ÊÙÚÈÒ)Mlpdd"@C's[QC' 7@h ˜™L\\\pd
-ŠšRò
+ŠšRò
üªm{|ÓÂv¸* Þk‚駹?ÛÜ—Ní>ö¥©F{1­(zR€—ùøÞ$T}¨›ä4 z%ˆégQžW‹²ÛZìŒê»“JÊzÅïPߧ;X`®ž¨üH\
üÐIí|ŒRëc1:QA¾Õžž‘'?=R Ž õÜ@öíãÑäÄÂ’ñ¸@ ’GúÙçà h©Ux†SA¥7!àÝ´_}jt{êå‘‘â’FX˾*šæ¯Ù´Ë¾'A¦· ð&Ê9H¶îWþÀ¼žŸŽäJœæšËýZw&sÄâmŸ
쿵$ œÉ„®'~
@@ -11242,7 +11235,7 @@ i¿5xÑ@>,Ïu> w?tiÓ¶0ûôIÏä#%(ù‰ö
^hâŒð·¹ œ£“hZ™Í/øÅ_à7œÀ+P¸¸&&êåî$+Nȶp®Ô ~I(–»c¹ÚŸYªÓÅg¶%ø¥p%ö>­’H¾iL¿\ÚõÐß(¦µâ_«8Cƒ—R{‹
Žµrð¦ëØíû‹0Ê{‡˜ÊQê¸2‰«Zœa‰ƒ†*7Äc¹äJî„I›ÏüìÒ]©æÁ 1=Š¡å©òñS€MX¡¥GMøªéþP¢‹:*½ÙOT9†ÜD¨*ÀzÞÃ*Úž“¬ÿ°Ë_hg
‚œ«ê9ŸjˆŠ"J7Þ®(ðhT(ìâ ª¦¼ÜðÊ™§Ä‹V¬áÝq
-oò]ç }£¯9B‘7õ· öœH{È­’ëæi`T&éVÇãs"¹‡‡ªÃßÛçVMo¼iá÷׈â{C„^×;¿_g¿`,·÷þ2 Ún“ R ɫǶ]ÅjÍuib°ƒãÏV!QÏÆ>²¦aO<ö”ñOÁxƒªH²$áófe°§Åû›ê¥úКxÇÑiêÅà>ò$­–Ìy"-Ú-ŵ ôý‰¤Ëq ¸ŠÖˆÕ"™[Ø m¥cA¸¶¹"t8Q+PK¥ìó÷Ñ”¶ëÛãh_“ ®$+ƒº‡¼S¾ÎúÜþµ$áØ™éezv~7EhÅZÞ‚¥ÓªãHÝåûm®Ý‘(ãŸÄ"Þïòwnúê›»ÉÕ”^«¦
+oò]ç }£¯9B‘7õ· öœH{È­’ëæi`T&éVÇãs"¹‡‡ªÃßÛçVMo¼iá÷׈â{C„^×;¿_g¿`,·÷þ2 Ún“ R ɫǶ]ÅjÍuib°ƒãÏV!QÏÆ>²¦aO<ö”ñOÁxƒªH²$áófe°§Åû›ê¥úКxÇÑiêÅà>ò$­–Ìy"-Ú-ŵ ôý‰¤Ëq ¸ŠÖˆÕ"™[Ø m¥cA¸¶¹"t8Q+PK¥ìó÷Ñ”¶ëÛãh_“ ®$+ƒº‡¼S¾ÎúÜþµ$áØ™éezv~7EhÅZÞ‚¥ÓªãHÝåûm®Ý‘(ãŸÄ"Þïòwnúê›»ÉÕ”^«¦
endobj
939 0 obj <<
/Type /Font
@@ -11251,14 +11244,14 @@ endobj
/FirstChar 33
/LastChar 125
/Widths 2160 0 R
-/BaseFont /CQVZGP+NimbusMonL-Regu
+/BaseFont /TBCZJF+NimbusMonL-Regu
/FontDescriptor 937 0 R
>> endobj
937 0 obj <<
/Ascent 625
/CapHeight 557
/Descent -147
-/FontName /CQVZGP+NimbusMonL-Regu
+/FontName /TBCZJF+NimbusMonL-Regu
/ItalicAngle 0
/StemV 41
/XHeight 426
@@ -11278,7 +11271,7 @@ endobj
/Filter /FlateDecode
>>
stream
-xÚ¬ºct¤]·.Ûv*I§cul'[£b§bÛ¶mÛ¶­Ží¤cwý¼ï·÷>cŸóëœý£jÜk^s^×Zë5FQ’)ª0›Ø%ìlA ,ŒÌ<
+xÚ¬ºct¤]·.Ûv*I§cul'[£b§bÛ¶mÛ¶­Ží¤cwý¼ï·÷>cŸóëœý£jÜk^s^×Zë5FQ’)ª0›Ø%ìlA ,ŒÌ<
šþô­¯œtGLz¥ÈéQž7K²;P?8˜Õö¦””õJ>`ˆg:Yánžiü(\
ü°¾<Ù£ø§6Äbw¡5aÔž_|M<}~¢î½…î?$¤Ë‰…§äuBþéçC(øC­B¼ªùÕi{Ju ¡glŸÏÏìC(»ƒ¢ÈbÓËZÁçjð§fÌÁpC@¶
¦éÂú”/é„ÐaF)¹ìÉT_Äü AÇDF@’_²– z¿IÂ>^"ò“£œŸpÖj×Ñm¡HNZ¬¹Šù—;Ão{ô«OŠ—©š}¾ŽÈïqM gÀÁõ@‰Î
@@ -11352,7 +11345,7 @@ K› ÀöYt^¬evQ&57Ñ„t9Æ©‘;ØQLV2²ûËI2­U^¹¨%Ô~ŸŒ×ˆzW
p
íSß»bò7+֘ߠáænÍwˆ'£#µE°nx‹¢PšL~|ö4KQ¦–!¯jn£ÕªîØãVBGE”}œœ Žý­Ð{ƒéV³”Vã0¾ô.¶Tv‚Ì|` °SU[¸U!&ýø7 >hI£YÉì0…òÇ*껪¦úݳj€í¨ž¨ß`Ù?8sGx9g3ÎîèñÙt÷:n:—SúluHx‹œ›ÍÉPo·«ÃJAüÕh€ß¾ÅW'ˆÃô´B ¶q…¡Jˆ`“ý kaæ®´bg>–MO”¶æB8uk—ÄþÙ7)Çê®Ü¿5GVQ(ë¿P­m-FG*åTA¸¡WK2z)· Ž×?3Ì›QOl
-¹ƒ%ÔÕÝÙêjýyþâendstream
+¹ƒ%ÔÕÝÙêjý¥÷áõendstream
endobj
899 0 obj <<
/Type /Font
@@ -11361,14 +11354,14 @@ endobj
/FirstChar 2
/LastChar 151
/Widths 2161 0 R
-/BaseFont /UUYIEC+URWPalladioL-Ital
+/BaseFont /VCEKQN+URWPalladioL-Ital
/FontDescriptor 897 0 R
>> endobj
897 0 obj <<
/Ascent 722
/CapHeight 693
/Descent -261
-/FontName /UUYIEC+URWPalladioL-Ital
+/FontName /VCEKQN+URWPalladioL-Ital
/ItalicAngle -9.5
/StemV 78
/XHeight 482
@@ -11391,7 +11384,7 @@ stream
xÚ¬¹cx¥]³-Ûv¯ØfǶm¯$+6:ìض“Žm;éØè°culãëç}ÏÞû\ûœ_çÛ¿Ö=kTªY£æ¼îûZ”¤ÊjŒ"æ¦@I{WFV&^€†ª–²‰­­‰9ÈAžQÕÁÎð×̉@I)æ 4q9Ø‹›¸yZ@s€8Ð ÀÆ`ýúõ+%@ÌÁÑËdiå
 ùËAKOÏð_–\
ø›UY\òßuºZ™¸þ“Ûô8Xüõ4w0sûgKÿÂþÒüE]M@ö.
-`abû·Wÿ²kØ›mAöÀ¿šþ«
+`abû·Wÿ²kØ›mAöÀ¿šþ«
™**À)—PHW£B¢ªU³m·WÛÔOrí]VÉ• $«ùqyĤ"õÂzŒf<0ëûë£Îðf}/Ÿí¤>bêFè,VØUd‹ÕƒæÔJlNÍo’©+¬OXÏ1Ï-¼§c-NÂ1ipÝ›í\AÖ
úêì`uvdé,RHžê$žkK‚>&Y ¤ºÛ”OØ&â„o™kâÆœm§Ù WëÙÉ
¨œ/û«Ð[BÒó´`Ûtä¯äÍN¿GfáĈHªýmVéDÇÏ“Ÿ”Ä÷¦Y_kÉóÍ+èü1pÇÒ¨åÁ³ñÂjD•jÊ
@@ -11453,7 +11446,7 @@ MIª\ÂuTØjGI-gýÂÓ–GâydføæÅxÃÃ,oÛ.رÌ*_ùSÕúƒóØCkëÚ™­¨·>]ÙrÿÅ:K¥ÓS%œx
¿n$rÝ XðD˜t ÎõÓ…”2§—n„sÞmOÆ„ ˆ;²ÃßshuåU9ñÖ&;y-sõP~K*ªÅz4rnp´}ª÷œõ)RB—+«å—>¢cI£Ž¹w× éhz€Ì\mm £MúHþ×<×|Ìï­&‰ Ÿw³s£Üë+\?VË´<=yò‹ØH»M'²ñÑ67Cøoí+A5x5½·x¯'_Ë
c!vÜ~óÓ4¶bIpµP]ãH^ŒúÀnkLßYßÙ„æÀ,•‰)tCœrÀ‘ Çi†Ï±m$hýÈn.ÿ¶»öO¿ªWÂ[–{OFChÓ'žWùÆ*6L‡1±’g^H]u Ââa3ð¸g@—TÕL_1@d7¾ùÁ“†µ‹Œ:…‘XF.ÿ§Òfb1\ÄñSÙ£Ö®TÁIS ÒŽã{9.´ v´ôPš_$ ƒºÃ™.T€Áj”¤RÚ.zàÂiXÎ^;-”ûkwå0HMKyÃûSc-‘tkâôk'a.*bí Û¶4ŠdÇ&ž*qÉŸX‡ÒÝÓä"c°4 *+9‚3£
cáE¢Lg%ãŸïÁó§KíÚï©=ëg‡~Q)œu‘Še7@ô`­¥¡c˜„s2¬ìe/ï´Ã÷5ØI*·[ÔrHîD4;"«hntRÉ´c¬¥ŸýÝ„u å{ÿÁØ }hë …
-¯41¶{ºQµÚâl·Pãg;‹($@QQ~:ú4¥ /麞e„¼æª't“Ê>~œÍÆTÂ={š÷ÈcW ä­ë6Å͆ÇIjË‚¶{Al ¸¸ ²œís è¹”Lª £ÈàýÞùqœöÇ=*Y€þK
+¯41¶{ºQµÚâl·Pãg;‹($@QQ~:ú4¥ /麞e„¼æª't“Ê>~œÍÆTÂ={š÷ÈcW ä­ë6Å͆ÇIjË‚¶{Al ¸¸ ²œís è¹”Lª £ÈàýÞùqœöÇ=*Y€þK
endobj
802 0 obj <<
/Type /Font
@@ -11462,14 +11455,14 @@ endobj
/FirstChar 40
/LastChar 90
/Widths 2162 0 R
-/BaseFont /EYXCRN+URWPalladioL-Roma-Slant_167
+/BaseFont /ZYQRDH+URWPalladioL-Roma-Slant_167
/FontDescriptor 800 0 R
>> endobj
800 0 obj <<
/Ascent 715
/CapHeight 680
/Descent -282
-/FontName /EYXCRN+URWPalladioL-Roma-Slant_167
+/FontName /ZYQRDH+URWPalladioL-Roma-Slant_167
/ItalicAngle -9
/StemV 84
/XHeight 469
@@ -11485,20 +11478,18 @@ endobj
/Length1 862
/Length2 1251
/Length3 532
-/Length 1861
+/Length 1860
/Filter /FlateDecode
>>
stream
xÚíUkTgnõJÀ+Å€€¸
-æ2@ Š&X4–;
-(R’ $˜$ \(PÁ Bå"Pi¥´^€–‹ÁŠ‚g¹iL@°rÕtÐc—þÜýµggþÌû<Ï÷~Ï<ïwÎgfâáM ³‘ ØŠ ¤N®Þ‡@2
-¸"l®”úÂËæ\a6O"XÉ2ÅŸÇ¢ ƒù0@
-Dƒ
-Z$eñaÖâÔÄ‹ì2AHAXæð 2ÃPˆóaÎaë·ðòÐß㶡ï, `…Šøˆ»ÿ98‘F(ö
-Ž£vÐ44ûÀ‰P(¬<Gè-÷TÊcúìùõîéMþҧƩ¦)fÏ[½Ë¥3i±†Ñ¿Ý
-ÓÄßMË(žùÚ] ×d̸>pGžtCIÊŒßÛhìbÔöÈšûjs›•›ì“`ò õªK#µí!þR¦¼Qin.‹}Q…Ôäïyþ}ýιƒøŒâ—Õ§=+­—kw×뺻îõ:e¾,ÔrëÐH£¸J®ÎÊj¹'ÆHøáq›Žî;{KÅ >Ð1øîkÏ€\†;äüZ#£exðøõ0Š–©¬ËÎÈü+ŸWÌÕåkE%›D%—âÇiýÇÀª›]àÕxÆ‘œXæ$3M/7øZŒ#ÇÛWY6o”ÕéõÔœ•ÉûtŒ5û•YQz
-Y¥8Ç9£=›™žáàæé÷¥Fܑ漤
-Î:äÿðÁý¿ÁÿDìê†P1"€ÐPÜ¿
+æ2@ Š&X$-wDP¤2$H20I0@(PÁ Bå"Pi¥´^€ÊÅ`EÁS#BAn¬\uÝôØ¥?wíÙ™?ó>Ïó½ß3Ïûó™™xúèl$vF„bHi€“›Ï €D2ÎÌÌ …!1îÄ0
+`ÃÉÁö‚1'ÿ S+›;Kø|wH°Ø~)¥¿ð€Çz£@á1ŒnF…+¥~ð²97˜Í“V²L1Äç±èÂ> @"ÙšºLðDÎ<)Ìöä‰Y\€ñEð Ù+­`ñ-!ùûº»»Ð­ÞÌu‰ô„xBñ¾¨p ¿S/Õà»K åI
+\±ÙgBÂæ C
+Õ€PŠÂa'«¨@ ð„lX
+ÀRÌ1‰(DÄØ
+±`>Ìù3lý^ú;ÜÃ!ô€e€¬0q—à¿Ç` ÒÅ ØÛb?‚¶€õè¿ Y……⥳‰Åÿ¶æð°‘Á°fáz»–CRh^urEìgçnÿIëE[¥ºW³Ù¿66ŸÇ>êC=ëe".-V^9.LJ)ô?g9œÔE/d¸§9]¢{áJZQ¹V<µ‰ØãƒJL“­yee>Ê”Gì?UðµÒÖ„><óͶí½ÓÛâÚtβUŒƒç绵7ZzŸ°4Ýl×{^sàýMø¨Ç['kãò®ïdMܺçÊôÄ‹œÓÌGíàihö.©PXyÐ[GôÙóë=Ò›¤OŒSMSÌžµú”KgÒb c~¿®‰¿“:–Q<󕇮ɘqmà¶<麒”¿·ÑØÕ¨í¡5÷åæ6+wÙG!äAëUGj ÚCùþ\¦¼Vin.‹}^…Ôäïyñ]ýÎ9_|ÆQâÕ§<-­—kw×뺻îö:e¾(ÔrïÐH£¸I®ÌÊj¹ÇÇHøáq›ŽîÛ{KÆ ÞÓ1øö+¯À\†äüJ#£exðصpŠ–©¬ËÎÈüËý/™«Ë׊J,6‰J.Æ%Òú€U7:»ÀûªñŒC9±ÌIfš^nÈÕGŽ·¯²lÞ(«Óë©9#“÷ékö+³¢õ&²JqsZ{63=Ã3ÐÝËÿ ¸CÍyIÏÔê¾çOË3;ƶ$Œù©“™Ç[_ NXM‰Æ}´i»JýS Í£à‹ Ž63šôò3ëUL’Ó~ƒáa_·09›=•zö7ÓqƒL~·±(”ðcŒåЄrÓ%{&nÄÍàD÷™Ò£Î¡ºÌØ„Øk?n—Ô‰sDeIíÊ5Oð7¬ƒ:ºÜ§GÄeŽ3ñÔÐõ(—]vÐNH¨¹®[( ™Ýaa9ÿ¬TL [¨{f€kz·îØ3ù¡ö¥ï‘“;~TS,%­ßÖìcÝŸ®öÝô:sÿ³†~îGaÿÐõW¿ŒÈ›?<¬>¦òõÉ/áÞÏo”~/øãoC¥“ëó¯Þ”_• ­­ý7‹l©Š#&•×*¯In8˜ËHÊ[ß„ÓYì€Ò<¿ ?¨=¢X—Uªš{êæS‚E áÐ]EÕÇ´y”óÔy¼Âa²²4€ö©Ë¯qT1çýù/'I¯»ŸkÔµJÊüU)SÓ%Z­¯·zfµy êÉæ¬,”ê5—ff¿»ßpÇÎÜùߥö-ëÆý‰1ö:Þ!N8Ëužüt§y÷+nþÓc1)òá">q]À=Õ*•ú”Q8íž<°bŒXW˜vþW÷]…Ê”äùÈ-ùC×+víÏc6û´<°;¶a¶ée¢…ê›Ì*OÓÕÆÅ} %•
+CbΙüðuôaÕHÀڈџûZôUuu‡Ouv%ûźšÎµKSN+§6îlï&ß•íñˆy¢ïs†ëiþ9¹Öê¤òXvGh½ w@Òs4Û[£WÆ-XÔ›[ÁyO‡ü>¸ÿ7øŸh€]Ý*F†ûŒ˜þgendstream
endobj
740 0 obj <<
/Type /Font
@@ -11507,14 +11498,14 @@ endobj
/FirstChar 13
/LastChar 110
/Widths 2164 0 R
-/BaseFont /JQWVAY+CMSY10
+/BaseFont /XUNNHA+CMSY10
/FontDescriptor 738 0 R
>> endobj
738 0 obj <<
/Ascent 750
/CapHeight 683
/Descent -194
-/FontName /JQWVAY+CMSY10
+/FontName /XUNNHA+CMSY10
/ItalicAngle -14.035
/StemV 85
/XHeight 431
@@ -11538,7 +11529,7 @@ endobj
/Filter /FlateDecode
>>
stream
-xÚ¬ºc”¤]°%\]î²,Û¶mÛvuÙ¶mÛ¶m£ËU]¶í¯ß÷Î;ëÎüšo~äZωˆ³cGìsb­'3Iä•hŒí MDílhhé9*ŠjòÖÖÆvÒ4Šv6€¿f(!' ;[a'N€š‰1@ØÄÀÈ`ààà€"ÙÙ»;X˜™;ÈÿbPPQQÿ—埀¡ûzþît´0³þ}p1±¶³·1±uú ñ½QÉÄàdn0µ°6ÉÉkHÈŠÈÅdU
+xÚ¬ºc”¤]°%\]î²,Û¶mÛvuÙ¶mÛ¶m£ËU]¶í¯ß÷Î;ëÎüšo~äZωˆ³cGìsb­'3Iä•hŒí MDílhhé9*ŠjòÖÖÆvÒ4Šv6€¿f(!' ;[a'N€š‰1@ØÄÀÈ`ààà€"ÙÙ»;X˜™;ÈÿbPPQQÿ—埀¡ûzþît´0³þ}p1±¶³·1±uú ñ½QÉÄàdn0µ°6ÉÉkHÈŠÈÅdU
üPˆŸìá|ŒRbQ»š€ê
ÏÎIOžŸÈ†ÆGG†{oÁú°©rb’p¹€Â’FúýÊÁæÓT©©jUmÛëÕb3ô]ÿ””sÂ
Îl~^õ­H¹²çŸÈôÿbاÑÙ®ï岞ÒæNHÙ ™C ½‰h1R^iC«ÙÂ{»AùÖˆqwÛÁxyÒWcÁ·ÿ¡y÷'‡—ÁOéTñ´šŸ­wôêuòÓsPMTUËçýNÀ(5±†ÅÄ ö¶‘ÛMüc,‚¨×]EI[™Y… ¸îˆ0^ ÆMÏm}™× Ë 3ž@óÉ ª0öGƺ°>KÛyE‡“åÜTh6þÁØŸøÐJ¢w¢§æ_[c ³öB8xÕ¾Vk”Ô‚—I¯¿ä„÷gÞk‰òŒ+(}‘²Å+åýdä„P9Œ,U•äD¡&w("Z·´U¾D£|yÛ)Õ‚þ0ŽÖ)¹` Á6l¬NÒµ½žŒÍ&²˜ W
@@ -11632,7 +11623,7 @@ A™âõ2ѶŠŸÓ¶Äøí÷w6Ê+–IºÓœnµq×oúWïkN)ï‡mÖ8/1aÀÈ[­ø'! ´ŒÄPxÉ¢rB<–ðœØEÔ?Pr|7°™2
­u|Ðí8t^ˆš/€‹MÝp­_’<{*ñ>Jn ÐÅ—6¹s²R¯aÆ‹úr×€]9ä¯:²(`\‰áÉlA7¾ĦK”ž·†9z8nb64Ë¢jE¢$µ1V|·ZBËÐöX#Y»ͪföWßqYûlf/ö»­8Fj…›ë_X1¡ÁèínÕ (N1©þ¢CÑð´ýÆ9(AÄEêÞ–«ôáÃÉ€ÖÜÑf}_¢£J¾:¤ íéJ$<ÂBÿˆSUÅöìMø›Yr¤˜¾ÃÈ×`Qíå?›Ù±VƒÝŽˆ½¸ÂˆÚÖñhÃÙƒXÔ‡7Ó¶,Í!Á•FÿÁEè^F ¸¯xÀÁ¦ÿàB*·ÛvªR&¤N<•ê`¢µ+çN¼é¬
g¤£Ê¾2f~mû„m}…i
'óP4I×¥ŸÐ?`b¬FH. ÷R}ÿÀ#] «iÀAñ7FÌÐ5øùq6O‰ Ç/êúWbõÑFåq-¢´ð §]xžök%˜Ã–td˜¯‘ŒÎ¼r¿
-ä&oH[œ¯A•9f
+ä&oH[œ¯A•9f
endobj
737 0 obj <<
/Type /Font
@@ -11641,14 +11632,14 @@ endobj
/FirstChar 2
/LastChar 216
/Widths 2165 0 R
-/BaseFont /HTPAKS+URWPalladioL-Roma
+/BaseFont /IJNCPT+URWPalladioL-Roma
/FontDescriptor 735 0 R
>> endobj
735 0 obj <<
/Ascent 715
/CapHeight 680
/Descent -282
-/FontName /HTPAKS+URWPalladioL-Roma
+/FontName /IJNCPT+URWPalladioL-Roma
/ItalicAngle 0
/StemV 84
/XHeight 469
@@ -11668,7 +11659,7 @@ endobj
/Filter /FlateDecode
>>
stream
-xÚ¬zSm]³eÙ¶]uʶmÛ¶mÛö)Û¶mÛæ)ó”«ëû¯:n÷S÷}Xkfæ92GÎ{G,RBy%c;CQ;[gZzNE5ykkc ;iA;kc‚3 )©£‰³…­°³ 'š‰1°‰##)½‡£…™¹3ùõYþ !0ôøÏÏN' 3[²ŸWk;{[çˆÿçJ&&Îæ&¦Ö&Brò²bäb²*b&¶&ŽÖò.†ÖFÒF&¶N&¦vŽÖÿ¶ 0²³5¶ø§4'Ú,''{#‹Ÿm&îF&öÿ¸¨ ìMm,œœ~Þ ,œÌ lzàlG`akdíbü»©Ý¿Ù;ÚýDØüø~Àä휜Œ-ì ~²Ê ‹þOgsçr;Yü¸ ìL"íŒ\þ)é_¾˜¯³…­³‰»ó?¹ MŒ-œì­ <~rÿ€Ù;Zü‹†‹“…­Ù1 &p413p4¶6qrúùÁþ§;ÿU'ÁÿV½½½µÇ¿vÛý+ê?9X8;™X›ÒB10þä4rþÉmfa E÷ϨHØšÚ0Ðÿ›ÝØÅþ?|®&Žÿjù?3CñCÂÀØÎÖÚƒÀØÄŠNÖÎù'%ùÿ›Ê´ÿs"ÿHü?"ðÿˆ¼ÿâþwþ·Cüÿ{žÿ;´¨‹µµ¬É¿6üÇC MðÏ%óØXX{üßÂÿ{¤šÉ¿qü¿¡H8ü4BÀÖìG zZú3Z8‰Z¸›Ë[8™˜Xÿté_v[cGk [“5ÿÕHzúÿæS6·0²²ý§í,ÿæ2±5þïÔúq:AuEIUªÿóFýWœüòÎÊö?Ôþ½;ãÿ\üƒ"(hçNàEÃÀÂH@ÃDÏðsà~øp0±øü_2þ ˆá¿Ö2ÎŽîZ?eÿìü§øþk¥óß`DlìŒÿ™%g[ãŸñúOÃ?n#GÇUÿuâŠþõ¿ÝÄÄÝÄj}ÅΈ+Ø2ýw†szîÈ”°Ö@ðHˆ}i£rQ]¯_zøG¥þGmmÓ çW»ÇòûÏ#IÊã±>4ë_½©&×ù8>ÄýˆÛdlTÇtº¥°jÑ^7KÒ» š¬ôªÇûS
+xÚ¬zSm]³eÙ¶]uʶmÛ¶mÛö)Û¶mÛæ)ó”«ëû¯:n÷S÷}Xkfæ92GÎ{G,RBy%c;CQ;[gZzNE5ykkc ;iA;kc‚3 )©£‰³…­°³ 'š‰1°‰##)½‡£…™¹3ùõYþ !0ôøÏÏN' 3[²ŸWk;{[çˆÿçJ&&Îæ&¦Ö&Brò²bäb²*b&¶&ŽÖò.†ÖFÒF&¶N&¦vŽÖÿ¶ 0²³5¶ø§4'Ú,''{#‹Ÿm&îF&öÿ¸¨ ìMm,œœ~Þ ,œÌ lzàlG`akdíbü»©Ý¿Ù;ÚýDØüø~Àä휜Œ-ì ~²Ê ‹þOgsçr;Yü¸ ìL"íŒ\þ)é_¾˜¯³…­³‰»ó?¹ MŒ-œì­ <~rÿ€Ù;Zü‹†‹“…­Ù1 &p413p4¶6qrúùÁþ§;ÿU'ÁÿV½½½µÇ¿vÛý+ê?9X8;™X›ÒB10þä4rþÉmfa E÷ϨHØšÚ0Ðÿ›ÝØÅþ?|®&Žÿjù?3CñCÂÀØÎÖÚƒÀØÄŠNÖÎù'%ùÿ›Ê´ÿs"ÿHü?"ðÿˆ¼ÿâþwþ·Cüÿ{žÿ;´¨‹µµ¬É¿6üÇC MðÏ%óØXX{üßÂÿ{¤šÉ¿qü¿¡H8ü4BÀÖìG zZú3Z8‰Z¸›Ë[8™˜Xÿté_v[cGk [“5ÿÕHzúÿæS6·0²²ý§í,ÿæ2±5þïÔúq:1Q955!ªÿóFýWœüòÎÊö?Ôþ½;ãÿ\üƒ"(hçNàEÃÀÂH@ÃDÏðsà~øp0±øü_2þ ˆá¿Ö2ÎŽîZ?eÿìü§øþk¥óß`DlìŒÿ™%g[ãŸñúOÃ?n#GÇUÿuâŠþõ¿ÝÄÄÝÄj}ÅΈ+Ø2ýw†szîÈ”°Ö@ðHˆ}i£rQ]¯_zøG¥þGmmÓ çW»ÇòûÏ#IÊã±>4ë_½©&×ù8>ÄýˆÛdlTÇtº¥°jÑ^7KÒ» š¬ôªÇûS
Šº%`¸3LŽ7)ü‰] üQHžíá|ÒâP»š
ÿ\%ý}þ54>:2Ü{Ú„M•IÊå
KåïƒÍ§©R!RÕDzÝžeÌ}øØ"œ³\ʤ!g?5íµ Îk“T $f}QìŒ}}œ7Ãë–aI­zQ£Ø`{1®ËÊ›¡9sõ‰ór5úË<#¤=ø…ˆ´±36…è4Ó+òŽÇ¾a‘Ïp:‰é"“|:[5P6“Ó<M`IÍÍÍLÕ‘˜‡‰ŠŒDa_gÁ¡Ãœá½]é–§ 9ç8sêÓšÆô e¬bô:miØ*N±«z|+hytHOÛV77Ùa‰
@@ -11767,7 +11758,7 @@ Iö×~pºóE¦f}^!˜tQ°Ù’‹ƒEäì>‰ n|'ÆV²5D9_äå‹7â̬FJvõ˜2È­ÛŒ’ý;Û£K¿>Z&ú‰Àš¤þØɉ,
y‘üP'càÜ^M#R°·ñÃ4 {LJ B«œ»×ën¾HïŸMc–9|þ*S5ïV®ñKãÁ“üvÚJ¦‰‡’à°áR‹ÁPKw©ä;ÉͳðåH-ºOÖ²ÉâØÉ*Wü—¼éýšö•p…+èó®a7AÔºº;˜âR·~4ÿÕ|S®‘mƒ®W•~ ©Ãâ‡}DL×WF5J‰åéØ|¨i÷>#\2®˜
šÒ30D”€`Ÿ†§¾ç4}&1xÒ¤Ö¥ ÎdP•Ý‹$ȾCO‡Ù’jÛvëö?`C&W'aÔCJ•I'sŠFðìM˼k©¡¨»°+X ŠcAÐÀ«á¥£ùr!<s%!ÈbˆÀNÑ* d3³Ê6†Ø0´+3ïÍNYÀ8îj•ÛP³7Þ¨VäÎc=$0€Ž9€òõ «£…WCÒ¸1å Ô²9L±ž±~óŸ –äWÚyüInÐäöÀ'¼I3 ú]`+ò7vÃÝ!’ÔËö—k«Zœ–(&4¨j„¸`é+àpôxÿÅë«SüWâ$åM7ƒ[IZÒýš®ê~‚VƒÍ:Ø\é«…Œ€Øy_à£öý
.ÈëÃ6‹û¯™ÅSßcŽ¾Q&É5 fd
-ön’“,6"”@K;\ÿŸÁüø¯
+ön’“,6"”@K;\ÿŸÁüø¯
endobj
714 0 obj <<
/Type /Font
@@ -11776,14 +11767,14 @@ endobj
/FirstChar 2
/LastChar 151
/Widths 2166 0 R
-/BaseFont /BXRAJV+URWPalladioL-Bold
+/BaseFont /GFOWWC+URWPalladioL-Bold
/FontDescriptor 712 0 R
>> endobj
712 0 obj <<
/Ascent 708
/CapHeight 672
/Descent -266
-/FontName /BXRAJV+URWPalladioL-Bold
+/FontName /GFOWWC+URWPalladioL-Bold
/ItalicAngle 0
/StemV 123
/XHeight 471
@@ -13256,7 +13247,7 @@ endobj
>> endobj
2177 0 obj <<
/Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfeTeX-1.21a)/Keywords()
-/CreationDate (D:20120322170648Z)
+/CreationDate (D:20120720043702Z)
/PTEX.Fullbanner (This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) kpathsea version 3.5.4)
>> endobj
xref
@@ -13268,703 +13259,703 @@ xref
0000000000 00000 f
0000000009 00000 n
0000328757 00000 n
-0001014571 00000 n
+0001014574 00000 n
0000000054 00000 n
0000000086 00000 n
0000328881 00000 n
-0001014499 00000 n
+0001014502 00000 n
0000000133 00000 n
0000000173 00000 n
0000329006 00000 n
-0001014413 00000 n
+0001014416 00000 n
0000000221 00000 n
0000000273 00000 n
0000329131 00000 n
-0001014327 00000 n
+0001014330 00000 n
0000000321 00000 n
0000000377 00000 n
0000333393 00000 n
-0001014217 00000 n
+0001014220 00000 n
0000000425 00000 n
0000000478 00000 n
0000333517 00000 n
-0001014143 00000 n
+0001014146 00000 n
0000000531 00000 n
0000000572 00000 n
0000333642 00000 n
-0001014056 00000 n
+0001014059 00000 n
0000000625 00000 n
0000000674 00000 n
0000333766 00000 n
-0001013969 00000 n
+0001013972 00000 n
0000000727 00000 n
0000000757 00000 n
0000338045 00000 n
-0001013845 00000 n
+0001013848 00000 n
0000000810 00000 n
0000000861 00000 n
0000338170 00000 n
-0001013771 00000 n
+0001013774 00000 n
0000000919 00000 n
0000000964 00000 n
0000338295 00000 n
-0001013684 00000 n
+0001013687 00000 n
0000001022 00000 n
0000001062 00000 n
0000338420 00000 n
-0001013610 00000 n
+0001013613 00000 n
0000001120 00000 n
0000001162 00000 n
0000341391 00000 n
-0001013486 00000 n
+0001013489 00000 n
0000001215 00000 n
0000001260 00000 n
0000341516 00000 n
-0001013425 00000 n
+0001013428 00000 n
0000001318 00000 n
0000001355 00000 n
0000341641 00000 n
-0001013351 00000 n
+0001013354 00000 n
0000001408 00000 n
0000001463 00000 n
0000344571 00000 n
-0001013226 00000 n
+0001013229 00000 n
0000001509 00000 n
0000001556 00000 n
0000344696 00000 n
-0001013152 00000 n
+0001013155 00000 n
0000001604 00000 n
0000001648 00000 n
0000344821 00000 n
-0001013065 00000 n
+0001013068 00000 n
0000001696 00000 n
0000001735 00000 n
0000344946 00000 n
-0001012978 00000 n
+0001012981 00000 n
0000001783 00000 n
0000001825 00000 n
0000345070 00000 n
-0001012891 00000 n
+0001012894 00000 n
0000001873 00000 n
0000001936 00000 n
0000346153 00000 n
-0001012817 00000 n
+0001012820 00000 n
0000001984 00000 n
0000002034 00000 n
0000347864 00000 n
-0001012689 00000 n
+0001012692 00000 n
0000002080 00000 n
0000002126 00000 n
0000347991 00000 n
-0001012576 00000 n
+0001012579 00000 n
0000002174 00000 n
0000002218 00000 n
0000348119 00000 n
-0001012500 00000 n
+0001012503 00000 n
0000002271 00000 n
0000002323 00000 n
0000348247 00000 n
-0001012423 00000 n
+0001012426 00000 n
0000002377 00000 n
0000002436 00000 n
0000350790 00000 n
-0001012332 00000 n
+0001012335 00000 n
0000002485 00000 n
0000002523 00000 n
0000351049 00000 n
-0001012215 00000 n
+0001012218 00000 n
0000002572 00000 n
0000002618 00000 n
0000351178 00000 n
-0001012097 00000 n
+0001012100 00000 n
0000002672 00000 n
0000002739 00000 n
0000354409 00000 n
-0001012018 00000 n
+0001012021 00000 n
0000002798 00000 n
0000002842 00000 n
0000354537 00000 n
-0001011939 00000 n
+0001011942 00000 n
0000002901 00000 n
0000002949 00000 n
0000365580 00000 n
-0001011860 00000 n
+0001011863 00000 n
0000003003 00000 n
0000003036 00000 n
0000370601 00000 n
-0001011728 00000 n
+0001011731 00000 n
0000003083 00000 n
0000003126 00000 n
0000370730 00000 n
-0001011649 00000 n
+0001011652 00000 n
0000003175 00000 n
0000003205 00000 n
0000370859 00000 n
-0001011517 00000 n
+0001011520 00000 n
0000003254 00000 n
0000003292 00000 n
0000370988 00000 n
-0001011452 00000 n
+0001011455 00000 n
0000003346 00000 n
0000003388 00000 n
0000375265 00000 n
-0001011359 00000 n
+0001011362 00000 n
0000003437 00000 n
0000003496 00000 n
0000375394 00000 n
-0001011227 00000 n
+0001011230 00000 n
0000003545 00000 n
0000003578 00000 n
0000379309 00000 n
-0001011162 00000 n
+0001011165 00000 n
0000003632 00000 n
0000003681 00000 n
0000382737 00000 n
-0001011030 00000 n
+0001011033 00000 n
0000003730 00000 n
0000003758 00000 n
0000382866 00000 n
-0001010912 00000 n
+0001010915 00000 n
0000003812 00000 n
0000003881 00000 n
0000385506 00000 n
-0001010833 00000 n
+0001010836 00000 n
0000003940 00000 n
0000003988 00000 n
0000385635 00000 n
-0001010754 00000 n
+0001010757 00000 n
0000004047 00000 n
0000004092 00000 n
0000385764 00000 n
-0001010661 00000 n
+0001010664 00000 n
0000004146 00000 n
0000004214 00000 n
0000385892 00000 n
-0001010568 00000 n
+0001010571 00000 n
0000004268 00000 n
0000004338 00000 n
0000386021 00000 n
-0001010475 00000 n
+0001010478 00000 n
0000004392 00000 n
0000004455 00000 n
0000389887 00000 n
-0001010382 00000 n
+0001010385 00000 n
0000004509 00000 n
0000004564 00000 n
0000390016 00000 n
-0001010303 00000 n
+0001010306 00000 n
0000004618 00000 n
0000004650 00000 n
0000390145 00000 n
-0001010210 00000 n
+0001010213 00000 n
0000004699 00000 n
0000004727 00000 n
0000393790 00000 n
-0001010117 00000 n
+0001010120 00000 n
0000004776 00000 n
0000004808 00000 n
0000393916 00000 n
-0001009985 00000 n
+0001009988 00000 n
0000004857 00000 n
0000004887 00000 n
0000394045 00000 n
-0001009906 00000 n
+0001009909 00000 n
0000004941 00000 n
0000004982 00000 n
0000397881 00000 n
-0001009813 00000 n
+0001009816 00000 n
0000005036 00000 n
0000005078 00000 n
0000398010 00000 n
-0001009734 00000 n
+0001009737 00000 n
0000005132 00000 n
0000005177 00000 n
0000400958 00000 n
-0001009616 00000 n
+0001009619 00000 n
0000005226 00000 n
0000005272 00000 n
0000403574 00000 n
-0001009537 00000 n
+0001009540 00000 n
0000005326 00000 n
0000005386 00000 n
0000403703 00000 n
-0001009458 00000 n
+0001009461 00000 n
0000005440 00000 n
0000005509 00000 n
0000406525 00000 n
-0001009325 00000 n
+0001009328 00000 n
0000005556 00000 n
0000005609 00000 n
0000406654 00000 n
-0001009246 00000 n
+0001009249 00000 n
0000005658 00000 n
0000005714 00000 n
0000406783 00000 n
-0001009167 00000 n
+0001009170 00000 n
0000005763 00000 n
0000005812 00000 n
0000410967 00000 n
-0001009034 00000 n
+0001009037 00000 n
0000005859 00000 n
0000005911 00000 n
0000411096 00000 n
-0001008916 00000 n
+0001008919 00000 n
0000005960 00000 n
0000006011 00000 n
0000415788 00000 n
-0001008798 00000 n
+0001008801 00000 n
0000006065 00000 n
0000006110 00000 n
0000415916 00000 n
-0001008719 00000 n
+0001008722 00000 n
0000006169 00000 n
0000006203 00000 n
0000419537 00000 n
-0001008640 00000 n
+0001008643 00000 n
0000006262 00000 n
0000006310 00000 n
0000419665 00000 n
-0001008522 00000 n
+0001008525 00000 n
0000006364 00000 n
0000006404 00000 n
0000419794 00000 n
-0001008443 00000 n
+0001008446 00000 n
0000006463 00000 n
0000006497 00000 n
0000423731 00000 n
-0001008364 00000 n
+0001008367 00000 n
0000006556 00000 n
0000006604 00000 n
0000423860 00000 n
-0001008231 00000 n
+0001008234 00000 n
0000006653 00000 n
0000006703 00000 n
0000426680 00000 n
-0001008152 00000 n
+0001008155 00000 n
0000006757 00000 n
0000006804 00000 n
0000426808 00000 n
-0001008059 00000 n
+0001008062 00000 n
0000006858 00000 n
0000006918 00000 n
0000427067 00000 n
-0001007966 00000 n
+0001007969 00000 n
0000006972 00000 n
0000007024 00000 n
0000432416 00000 n
-0001007873 00000 n
+0001007876 00000 n
0000007078 00000 n
0000007143 00000 n
0000432545 00000 n
-0001007780 00000 n
+0001007783 00000 n
0000007197 00000 n
0000007248 00000 n
0000432674 00000 n
-0001007687 00000 n
+0001007690 00000 n
0000007302 00000 n
0000007366 00000 n
0000436126 00000 n
-0001007594 00000 n
+0001007597 00000 n
0000007420 00000 n
0000007467 00000 n
0000436255 00000 n
-0001007501 00000 n
+0001007504 00000 n
0000007521 00000 n
0000007581 00000 n
0000436384 00000 n
-0001007408 00000 n
+0001007411 00000 n
0000007635 00000 n
0000007686 00000 n
0000436513 00000 n
-0001007276 00000 n
+0001007279 00000 n
0000007741 00000 n
0000007806 00000 n
0000440744 00000 n
-0001007197 00000 n
+0001007200 00000 n
0000007866 00000 n
0000007913 00000 n
0000447301 00000 n
-0001007104 00000 n
+0001007107 00000 n
0000007973 00000 n
0000008021 00000 n
0000454853 00000 n
-0001007025 00000 n
+0001007028 00000 n
0000008081 00000 n
0000008135 00000 n
0000455112 00000 n
-0001006932 00000 n
+0001006935 00000 n
0000008190 00000 n
0000008240 00000 n
0000457935 00000 n
-0001006839 00000 n
+0001006842 00000 n
0000008295 00000 n
0000008358 00000 n
0000458064 00000 n
-0001006746 00000 n
+0001006749 00000 n
0000008413 00000 n
0000008465 00000 n
0000458193 00000 n
-0001006653 00000 n
+0001006656 00000 n
0000008520 00000 n
0000008585 00000 n
0000458322 00000 n
-0001006560 00000 n
+0001006563 00000 n
0000008640 00000 n
0000008692 00000 n
0000464333 00000 n
-0001006427 00000 n
+0001006430 00000 n
0000008747 00000 n
0000008812 00000 n
0000472736 00000 n
-0001006348 00000 n
+0001006351 00000 n
0000008872 00000 n
0000008916 00000 n
0000493992 00000 n
-0001006255 00000 n
+0001006258 00000 n
0000008976 00000 n
0000009015 00000 n
0000494121 00000 n
-0001006162 00000 n
+0001006165 00000 n
0000009075 00000 n
0000009122 00000 n
0000494250 00000 n
-0001006069 00000 n
+0001006072 00000 n
0000009182 00000 n
0000009225 00000 n
0000501166 00000 n
-0001005976 00000 n
+0001005979 00000 n
0000009285 00000 n
0000009324 00000 n
0000504682 00000 n
-0001005883 00000 n
+0001005886 00000 n
0000009384 00000 n
0000009426 00000 n
0000507862 00000 n
-0001005790 00000 n
+0001005793 00000 n
0000009486 00000 n
0000009529 00000 n
0000515570 00000 n
-0001005697 00000 n
+0001005700 00000 n
0000009589 00000 n
0000009632 00000 n
0000515698 00000 n
-0001005604 00000 n
+0001005607 00000 n
0000009692 00000 n
0000009753 00000 n
0000519891 00000 n
-0001005511 00000 n
+0001005514 00000 n
0000009814 00000 n
0000009866 00000 n
0000523784 00000 n
-0001005418 00000 n
+0001005421 00000 n
0000009927 00000 n
0000009980 00000 n
0000523913 00000 n
-0001005325 00000 n
+0001005328 00000 n
0000010041 00000 n
0000010079 00000 n
0000527947 00000 n
-0001005232 00000 n
+0001005235 00000 n
0000010140 00000 n
0000010192 00000 n
0000531103 00000 n
-0001005139 00000 n
+0001005142 00000 n
0000010253 00000 n
0000010297 00000 n
0000535042 00000 n
-0001005046 00000 n
+0001005049 00000 n
0000010358 00000 n
0000010394 00000 n
0000543486 00000 n
-0001004953 00000 n
+0001004956 00000 n
0000010455 00000 n
0000010518 00000 n
0000543615 00000 n
-0001004860 00000 n
+0001004863 00000 n
0000010579 00000 n
0000010629 00000 n
0000549448 00000 n
-0001004781 00000 n
+0001004784 00000 n
0000010690 00000 n
0000010746 00000 n
0000552876 00000 n
-0001004688 00000 n
+0001004691 00000 n
0000010801 00000 n
0000010852 00000 n
0000553005 00000 n
-0001004595 00000 n
+0001004598 00000 n
0000010907 00000 n
0000010971 00000 n
0000557400 00000 n
-0001004502 00000 n
+0001004505 00000 n
0000011026 00000 n
0000011090 00000 n
0000557528 00000 n
-0001004409 00000 n
+0001004412 00000 n
0000011145 00000 n
0000011222 00000 n
0000561108 00000 n
-0001004316 00000 n
+0001004319 00000 n
0000011277 00000 n
0000011334 00000 n
0000561237 00000 n
-0001004223 00000 n
+0001004226 00000 n
0000011389 00000 n
0000011459 00000 n
0000561366 00000 n
-0001004130 00000 n
+0001004133 00000 n
0000011514 00000 n
0000011563 00000 n
0000561495 00000 n
-0001004037 00000 n
+0001004040 00000 n
0000011618 00000 n
0000011680 00000 n
0000566204 00000 n
-0001003944 00000 n
+0001003947 00000 n
0000011735 00000 n
0000011784 00000 n
0000570290 00000 n
-0001003826 00000 n
+0001003829 00000 n
0000011839 00000 n
0000011901 00000 n
0000570419 00000 n
-0001003747 00000 n
+0001003750 00000 n
0000011961 00000 n
0000012000 00000 n
0000574747 00000 n
-0001003654 00000 n
+0001003657 00000 n
0000012060 00000 n
0000012094 00000 n
0000580643 00000 n
-0001003561 00000 n
+0001003564 00000 n
0000012154 00000 n
0000012195 00000 n
0000592022 00000 n
-0001003482 00000 n
+0001003485 00000 n
0000012255 00000 n
0000012307 00000 n
-0000599203 00000 n
-0001003350 00000 n
+0000599204 00000 n
+0001003353 00000 n
0000012356 00000 n
0000012389 00000 n
-0000599332 00000 n
-0001003232 00000 n
+0000599333 00000 n
+0001003235 00000 n
0000012443 00000 n
0000012515 00000 n
-0000599460 00000 n
-0001003153 00000 n
+0000599461 00000 n
+0001003156 00000 n
0000012574 00000 n
0000012618 00000 n
-0000610002 00000 n
-0001003074 00000 n
+0000610003 00000 n
+0001003077 00000 n
0000012677 00000 n
0000012730 00000 n
-0000614057 00000 n
-0001002981 00000 n
+0000614058 00000 n
+0001002984 00000 n
0000012784 00000 n
0000012834 00000 n
-0000614315 00000 n
-0001002888 00000 n
+0000614316 00000 n
+0001002891 00000 n
0000012888 00000 n
0000012926 00000 n
-0000614574 00000 n
-0001002795 00000 n
+0000614575 00000 n
+0001002798 00000 n
0000012980 00000 n
0000013029 00000 n
-0000617625 00000 n
-0001002663 00000 n
+0000617626 00000 n
+0001002666 00000 n
0000013083 00000 n
0000013135 00000 n
-0000617754 00000 n
-0001002584 00000 n
+0000617755 00000 n
+0001002587 00000 n
0000013194 00000 n
0000013239 00000 n
-0000617882 00000 n
-0001002491 00000 n
+0000617883 00000 n
+0001002494 00000 n
0000013298 00000 n
0000013350 00000 n
-0000618011 00000 n
-0001002398 00000 n
+0000618012 00000 n
+0001002401 00000 n
0000013409 00000 n
0000013462 00000 n
-0000621548 00000 n
-0001002319 00000 n
+0000621549 00000 n
+0001002322 00000 n
0000013521 00000 n
0000013570 00000 n
-0000621677 00000 n
-0001002226 00000 n
+0000621678 00000 n
+0001002229 00000 n
0000013624 00000 n
0000013704 00000 n
-0000625518 00000 n
-0001002147 00000 n
+0000625519 00000 n
+0001002150 00000 n
0000013758 00000 n
0000013807 00000 n
-0000625646 00000 n
-0001002029 00000 n
+0000625647 00000 n
+0001002032 00000 n
0000013856 00000 n
0000013896 00000 n
-0000629199 00000 n
-0001001950 00000 n
+0000629200 00000 n
+0001001953 00000 n
0000013955 00000 n
0000014002 00000 n
-0000629328 00000 n
-0001001832 00000 n
+0000629329 00000 n
+0001001835 00000 n
0000014056 00000 n
0000014101 00000 n
-0000629457 00000 n
-0001001753 00000 n
+0000629458 00000 n
+0001001756 00000 n
0000014160 00000 n
0000014219 00000 n
-0000635939 00000 n
-0001001660 00000 n
+0000635940 00000 n
+0001001663 00000 n
0000014278 00000 n
0000014342 00000 n
-0000636198 00000 n
-0001001567 00000 n
+0000636199 00000 n
+0001001570 00000 n
0000014401 00000 n
0000014457 00000 n
-0000640039 00000 n
-0001001474 00000 n
+0000640040 00000 n
+0001001477 00000 n
0000014516 00000 n
0000014574 00000 n
-0000640298 00000 n
-0001001395 00000 n
+0000640299 00000 n
+0001001398 00000 n
0000014633 00000 n
0000014695 00000 n
-0000643356 00000 n
-0001001262 00000 n
+0000643357 00000 n
+0001001265 00000 n
0000014742 00000 n
0000014794 00000 n
-0000643485 00000 n
-0001001183 00000 n
+0000643486 00000 n
+0001001186 00000 n
0000014843 00000 n
0000014887 00000 n
-0000647684 00000 n
-0001001051 00000 n
+0000647685 00000 n
+0001001054 00000 n
0000014936 00000 n
0000014977 00000 n
-0000647813 00000 n
-0001000972 00000 n
+0000647814 00000 n
+0001000975 00000 n
0000015031 00000 n
0000015079 00000 n
-0000647941 00000 n
-0001000893 00000 n
+0000647942 00000 n
+0001000896 00000 n
0000015133 00000 n
0000015184 00000 n
-0000648070 00000 n
-0001000814 00000 n
+0000648071 00000 n
+0001000817 00000 n
0000015233 00000 n
0000015280 00000 n
-0000652337 00000 n
-0001000681 00000 n
+0000652338 00000 n
+0001000684 00000 n
0000015327 00000 n
0000015364 00000 n
-0000652466 00000 n
-0001000563 00000 n
+0000652467 00000 n
+0001000566 00000 n
0000015413 00000 n
0000015452 00000 n
-0000652595 00000 n
-0001000498 00000 n
+0000652596 00000 n
+0001000501 00000 n
0000015506 00000 n
0000015584 00000 n
-0000652724 00000 n
-0001000405 00000 n
+0000652725 00000 n
+0001000408 00000 n
0000015633 00000 n
0000015700 00000 n
-0000652853 00000 n
-0001000326 00000 n
+0000652854 00000 n
+0001000329 00000 n
0000015749 00000 n
0000015794 00000 n
-0000656292 00000 n
-0001000193 00000 n
+0000656293 00000 n
+0001000196 00000 n
0000015842 00000 n
0000015874 00000 n
-0000656421 00000 n
-0001000075 00000 n
+0000656422 00000 n
+0001000078 00000 n
0000015923 00000 n
0000015962 00000 n
-0000656550 00000 n
-0001000010 00000 n
+0000656551 00000 n
+0001000013 00000 n
0000016016 00000 n
0000016077 00000 n
-0000660231 00000 n
-0000999878 00000 n
+0000660232 00000 n
+0000999881 00000 n
0000016126 00000 n
0000016183 00000 n
-0000660360 00000 n
-0000999813 00000 n
+0000660361 00000 n
+0000999816 00000 n
0000016237 00000 n
0000016286 00000 n
-0000660489 00000 n
-0000999695 00000 n
+0000660490 00000 n
+0000999698 00000 n
0000016335 00000 n
0000016397 00000 n
-0000660618 00000 n
-0000999616 00000 n
+0000660619 00000 n
+0000999619 00000 n
0000016451 00000 n
0000016506 00000 n
-0000684640 00000 n
-0000999523 00000 n
+0000684641 00000 n
+0000999526 00000 n
0000016560 00000 n
0000016601 00000 n
-0000684769 00000 n
-0000999444 00000 n
+0000684770 00000 n
+0000999447 00000 n
0000016655 00000 n
0000016707 00000 n
-0000687500 00000 n
-0000999324 00000 n
+0000687501 00000 n
+0000999327 00000 n
0000016755 00000 n
0000016789 00000 n
-0000687629 00000 n
-0000999245 00000 n
+0000687630 00000 n
+0000999248 00000 n
0000016838 00000 n
0000016865 00000 n
-0000705453 00000 n
-0000999152 00000 n
+0000705454 00000 n
+0000999155 00000 n
0000016914 00000 n
0000016942 00000 n
-0000712941 00000 n
-0000999059 00000 n
+0000712942 00000 n
+0000999062 00000 n
0000016991 00000 n
0000017031 00000 n
-0000715736 00000 n
-0000998966 00000 n
+0000715737 00000 n
+0000998969 00000 n
0000017080 00000 n
0000017123 00000 n
-0000721919 00000 n
-0000998873 00000 n
+0000721920 00000 n
+0000998876 00000 n
0000017172 00000 n
0000017209 00000 n
-0000728545 00000 n
-0000998780 00000 n
+0000728546 00000 n
+0000998783 00000 n
0000017258 00000 n
0000017297 00000 n
-0000740928 00000 n
-0000998687 00000 n
+0000740929 00000 n
+0000998690 00000 n
0000017346 00000 n
0000017385 00000 n
-0000744024 00000 n
-0000998594 00000 n
+0000744025 00000 n
+0000998597 00000 n
0000017434 00000 n
0000017473 00000 n
-0000750304 00000 n
-0000998501 00000 n
+0000750305 00000 n
+0000998504 00000 n
0000017522 00000 n
0000017551 00000 n
-0000760116 00000 n
-0000998408 00000 n
+0000760117 00000 n
+0000998411 00000 n
0000017601 00000 n
0000017634 00000 n
-0000774348 00000 n
-0000998315 00000 n
+0000774349 00000 n
+0000998318 00000 n
0000017684 00000 n
0000017713 00000 n
-0000777478 00000 n
-0000998222 00000 n
+0000777479 00000 n
+0000998225 00000 n
0000017763 00000 n
0000017797 00000 n
-0000783716 00000 n
-0000998143 00000 n
+0000783717 00000 n
+0000998146 00000 n
0000017847 00000 n
0000017884 00000 n
0000018257 00000 n
@@ -13973,10 +13964,10 @@ xref
0000017937 00000 n
0000283054 00000 n
0000283117 00000 n
-0000993497 00000 n
-0000967554 00000 n
-0000993323 00000 n
-0000994522 00000 n
+0000993500 00000 n
+0000967557 00000 n
+0000993326 00000 n
+0000994525 00000 n
0000019688 00000 n
0000019881 00000 n
0000019961 00000 n
@@ -13996,12 +13987,12 @@ xref
0000284425 00000 n
0000283280 00000 n
0000284547 00000 n
-0000966333 00000 n
-0000939812 00000 n
-0000966159 00000 n
-0000939127 00000 n
-0000936982 00000 n
-0000938963 00000 n
+0000966336 00000 n
+0000939815 00000 n
+0000966162 00000 n
+0000939130 00000 n
+0000936986 00000 n
+0000938966 00000 n
0000296315 00000 n
0000287660 00000 n
0000284695 00000 n
@@ -14061,9 +14052,9 @@ xref
0000299643 00000 n
0000296400 00000 n
0000309629 00000 n
-0000936431 00000 n
-0000919350 00000 n
-0000936247 00000 n
+0000936435 00000 n
+0000919354 00000 n
+0000936251 00000 n
0000300233 00000 n
0000300396 00000 n
0000300559 00000 n
@@ -14158,9 +14149,9 @@ xref
0000318813 00000 n
0000318980 00000 n
0000319147 00000 n
-0000918461 00000 n
-0000897130 00000 n
-0000918287 00000 n
+0000918465 00000 n
+0000897134 00000 n
+0000918291 00000 n
0000319314 00000 n
0000319480 00000 n
0000319635 00000 n
@@ -14198,9 +14189,9 @@ xref
0000325433 00000 n
0000325588 00000 n
0000325746 00000 n
-0000896164 00000 n
-0000876197 00000 n
-0000895991 00000 n
+0000896168 00000 n
+0000876201 00000 n
+0000895995 00000 n
0000325903 00000 n
0000326061 00000 n
0000329382 00000 n
@@ -14212,10 +14203,10 @@ xref
0000329193 00000 n
0000329256 00000 n
0000329319 00000 n
-0000875403 00000 n
-0000857086 00000 n
-0000875230 00000 n
-0000994640 00000 n
+0000875407 00000 n
+0000857090 00000 n
+0000875234 00000 n
+0000994643 00000 n
0000333890 00000 n
0000332773 00000 n
0000329506 00000 n
@@ -14227,8 +14218,8 @@ xref
0000332923 00000 n
0000333116 00000 n
0000333827 00000 n
-0000599396 00000 n
-0000660682 00000 n
+0000599397 00000 n
+0000660683 00000 n
0000338545 00000 n
0000337509 00000 n
0000334014 00000 n
@@ -14272,7 +14263,7 @@ xref
0000348054 00000 n
0000348182 00000 n
0000348311 00000 n
-0000994758 00000 n
+0000994761 00000 n
0000351306 00000 n
0000350417 00000 n
0000348475 00000 n
@@ -14288,17 +14279,17 @@ xref
0000354218 00000 n
0000351418 00000 n
0000354344 00000 n
-0000856411 00000 n
-0000844422 00000 n
-0000856232 00000 n
+0000856415 00000 n
+0000844426 00000 n
+0000856236 00000 n
0000354601 00000 n
0000358490 00000 n
0000358299 00000 n
0000354792 00000 n
0000358425 00000 n
-0000843881 00000 n
-0000834137 00000 n
-0000843702 00000 n
+0000843885 00000 n
+0000834141 00000 n
+0000843706 00000 n
0000362953 00000 n
0000362554 00000 n
0000358656 00000 n
@@ -14321,15 +14312,15 @@ xref
0000370794 00000 n
0000370213 00000 n
0000370375 00000 n
-0000833239 00000 n
-0000823443 00000 n
-0000833065 00000 n
-0000822879 00000 n
-0000813793 00000 n
-0000822704 00000 n
+0000833243 00000 n
+0000823447 00000 n
+0000833069 00000 n
+0000822883 00000 n
+0000813797 00000 n
+0000822708 00000 n
0000370923 00000 n
0000371052 00000 n
-0000994883 00000 n
+0000994886 00000 n
0000370042 00000 n
0000370100 00000 n
0000370190 00000 n
@@ -14343,7 +14334,7 @@ xref
0000374872 00000 n
0000375038 00000 n
0000375458 00000 n
-0000664709 00000 n
+0000664710 00000 n
0000379438 00000 n
0000378929 00000 n
0000375675 00000 n
@@ -14377,7 +14368,7 @@ xref
0000389651 00000 n
0000390080 00000 n
0000390209 00000 n
-0000995008 00000 n
+0000995011 00000 n
0000592086 00000 n
0000394174 00000 n
0000393599 00000 n
@@ -14396,9 +14387,9 @@ xref
0000400767 00000 n
0000398264 00000 n
0000400893 00000 n
-0000813518 00000 n
-0000810161 00000 n
-0000813339 00000 n
+0000813522 00000 n
+0000810162 00000 n
+0000813343 00000 n
0000401022 00000 n
0000403832 00000 n
0000403202 00000 n
@@ -14407,7 +14398,7 @@ xref
0000403349 00000 n
0000403638 00000 n
0000403767 00000 n
-0000660424 00000 n
+0000660425 00000 n
0000404298 00000 n
0000404107 00000 n
0000403957 00000 n
@@ -14419,7 +14410,7 @@ xref
0000406589 00000 n
0000406718 00000 n
0000406847 00000 n
-0000995133 00000 n
+0000995136 00000 n
0000407352 00000 n
0000407161 00000 n
0000407011 00000 n
@@ -14464,7 +14455,7 @@ xref
0000426937 00000 n
0000427002 00000 n
0000427131 00000 n
-0000995258 00000 n
+0000995261 00000 n
0000432803 00000 n
0000431885 00000 n
0000427308 00000 n
@@ -14473,7 +14464,7 @@ xref
0000432192 00000 n
0000432609 00000 n
0000432738 00000 n
-0000788787 00000 n
+0000788788 00000 n
0000436642 00000 n
0000435371 00000 n
0000432941 00000 n
@@ -14506,7 +14497,7 @@ xref
0000450738 00000 n
0000447672 00000 n
0000450864 00000 n
-0000995383 00000 n
+0000995386 00000 n
0000455240 00000 n
0000454662 00000 n
0000451041 00000 n
@@ -14543,8 +14534,8 @@ xref
0000464600 00000 n
0000468828 00000 n
0000468671 00000 n
-0000995508 00000 n
-0000629263 00000 n
+0000995511 00000 n
+0000629264 00000 n
0000472865 00000 n
0000472545 00000 n
0000469005 00000 n
@@ -14583,7 +14574,7 @@ xref
0000494185 00000 n
0000494314 00000 n
0000493761 00000 n
-0000995633 00000 n
+0000995636 00000 n
0000566268 00000 n
0000498041 00000 n
0000497479 00000 n
@@ -14591,7 +14582,7 @@ xref
0000497976 00000 n
0000497635 00000 n
0000497806 00000 n
-0000648134 00000 n
+0000648135 00000 n
0000501295 00000 n
0000500975 00000 n
0000498210 00000 n
@@ -14617,7 +14608,7 @@ xref
0000515634 00000 n
0000515345 00000 n
0000515762 00000 n
-0000995758 00000 n
+0000995761 00000 n
0000520020 00000 n
0000519341 00000 n
0000515995 00000 n
@@ -14656,11 +14647,11 @@ xref
0000535353 00000 n
0000539721 00000 n
0000539559 00000 n
-0000809806 00000 n
-0000807808 00000 n
-0000809641 00000 n
-0000995883 00000 n
-0000625582 00000 n
+0000809807 00000 n
+0000807809 00000 n
+0000809642 00000 n
+0000995886 00000 n
+0000625583 00000 n
0000543744 00000 n
0000543107 00000 n
0000539912 00000 n
@@ -14698,7 +14689,7 @@ xref
0000561301 00000 n
0000560889 00000 n
0000561559 00000 n
-0000996008 00000 n
+0000996011 00000 n
0000564692 00000 n
0000564501 00000 n
0000561736 00000 n
@@ -14725,7 +14716,7 @@ xref
0000574682 00000 n
0000574515 00000 n
0000574811 00000 n
-0000788754 00000 n
+0000788755 00000 n
0000580772 00000 n
0000578038 00000 n
0000574988 00000 n
@@ -14745,7 +14736,7 @@ xref
0000580089 00000 n
0000580252 00000 n
0000580415 00000 n
-0000996133 00000 n
+0000996136 00000 n
0000585994 00000 n
0000584078 00000 n
0000580884 00000 n
@@ -14780,672 +14771,672 @@ xref
0000591490 00000 n
0000591641 00000 n
0000591803 00000 n
-0000595861 00000 n
-0000595540 00000 n
+0000595863 00000 n
+0000595542 00000 n
0000592263 00000 n
-0000595666 00000 n
-0000595731 00000 n
-0000595796 00000 n
-0000599717 00000 n
-0000598654 00000 n
-0000595987 00000 n
-0000599138 00000 n
-0000599267 00000 n
-0000599524 00000 n
-0000598810 00000 n
-0000598978 00000 n
-0000599589 00000 n
-0000599653 00000 n
-0000603370 00000 n
-0000603049 00000 n
-0000599886 00000 n
-0000603175 00000 n
-0000603240 00000 n
-0000603305 00000 n
-0000606630 00000 n
-0000606310 00000 n
-0000603469 00000 n
-0000606436 00000 n
-0000606501 00000 n
-0000606566 00000 n
-0000996258 00000 n
-0000610391 00000 n
-0000609811 00000 n
-0000606742 00000 n
-0000609937 00000 n
-0000610066 00000 n
-0000610131 00000 n
-0000610196 00000 n
-0000610261 00000 n
-0000610326 00000 n
-0000614703 00000 n
-0000613866 00000 n
-0000610503 00000 n
-0000613992 00000 n
-0000614121 00000 n
-0000614186 00000 n
-0000614250 00000 n
-0000614379 00000 n
-0000614444 00000 n
-0000614509 00000 n
-0000614638 00000 n
-0000618140 00000 n
-0000617304 00000 n
-0000614828 00000 n
-0000617430 00000 n
-0000617495 00000 n
-0000617560 00000 n
-0000617689 00000 n
-0000617818 00000 n
-0000617946 00000 n
-0000618075 00000 n
-0000621936 00000 n
-0000621357 00000 n
-0000618337 00000 n
-0000621483 00000 n
-0000621612 00000 n
-0000621741 00000 n
-0000621806 00000 n
-0000621871 00000 n
-0000625904 00000 n
-0000625327 00000 n
-0000622132 00000 n
-0000625453 00000 n
-0000625710 00000 n
-0000625774 00000 n
-0000625839 00000 n
-0000629716 00000 n
-0000628827 00000 n
-0000626016 00000 n
-0000629134 00000 n
-0000628974 00000 n
-0000629392 00000 n
-0000629521 00000 n
-0000629586 00000 n
-0000629651 00000 n
-0000996383 00000 n
-0000633310 00000 n
-0000632933 00000 n
-0000629841 00000 n
-0000633245 00000 n
-0000633080 00000 n
-0000788721 00000 n
-0000636456 00000 n
-0000635748 00000 n
-0000633409 00000 n
-0000635874 00000 n
-0000636003 00000 n
-0000636068 00000 n
-0000636133 00000 n
-0000636261 00000 n
-0000636326 00000 n
-0000636391 00000 n
-0000640427 00000 n
-0000639848 00000 n
-0000636568 00000 n
-0000639974 00000 n
-0000640103 00000 n
-0000640168 00000 n
-0000640233 00000 n
-0000807527 00000 n
-0000800243 00000 n
-0000807347 00000 n
-0000640362 00000 n
-0000641278 00000 n
-0000641087 00000 n
-0000640567 00000 n
-0000641213 00000 n
-0000641718 00000 n
-0000641527 00000 n
-0000641377 00000 n
-0000641653 00000 n
-0000643613 00000 n
-0000643165 00000 n
-0000641760 00000 n
-0000643291 00000 n
-0000643420 00000 n
-0000643549 00000 n
-0000996508 00000 n
-0000648199 00000 n
-0000647256 00000 n
-0000643725 00000 n
-0000647619 00000 n
-0000799922 00000 n
-0000790709 00000 n
-0000799736 00000 n
-0000647403 00000 n
-0000647748 00000 n
-0000647876 00000 n
-0000648005 00000 n
-0000649241 00000 n
-0000649050 00000 n
-0000648436 00000 n
-0000649176 00000 n
-0000649668 00000 n
-0000649477 00000 n
-0000649327 00000 n
-0000649603 00000 n
-0000652981 00000 n
-0000651755 00000 n
-0000649710 00000 n
-0000652272 00000 n
-0000652401 00000 n
-0000652530 00000 n
-0000652659 00000 n
-0000652788 00000 n
-0000652917 00000 n
-0000651911 00000 n
-0000652083 00000 n
-0000653435 00000 n
-0000653244 00000 n
-0000653094 00000 n
-0000653370 00000 n
-0000656679 00000 n
-0000656101 00000 n
-0000653477 00000 n
-0000656227 00000 n
-0000656356 00000 n
-0000656485 00000 n
-0000656614 00000 n
-0000996633 00000 n
-0000660874 00000 n
-0000659656 00000 n
-0000656765 00000 n
-0000660166 00000 n
-0000660295 00000 n
-0000660553 00000 n
-0000659812 00000 n
-0000659991 00000 n
-0000660746 00000 n
-0000660810 00000 n
-0000667761 00000 n
-0000663933 00000 n
-0000661027 00000 n
-0000664059 00000 n
-0000664124 00000 n
-0000664189 00000 n
-0000664254 00000 n
-0000664319 00000 n
-0000664384 00000 n
-0000664449 00000 n
-0000664514 00000 n
-0000664579 00000 n
-0000664644 00000 n
-0000664774 00000 n
-0000664839 00000 n
-0000664904 00000 n
-0000664969 00000 n
-0000665034 00000 n
-0000665099 00000 n
-0000665164 00000 n
-0000665229 00000 n
-0000665294 00000 n
-0000665359 00000 n
-0000665424 00000 n
-0000665489 00000 n
-0000665554 00000 n
-0000665619 00000 n
-0000665684 00000 n
-0000665749 00000 n
-0000665814 00000 n
-0000665879 00000 n
-0000665944 00000 n
-0000666009 00000 n
-0000666074 00000 n
-0000666139 00000 n
-0000666204 00000 n
-0000666269 00000 n
-0000666333 00000 n
-0000666398 00000 n
-0000666463 00000 n
-0000666528 00000 n
-0000666593 00000 n
-0000666658 00000 n
-0000666723 00000 n
-0000666788 00000 n
-0000666853 00000 n
-0000666918 00000 n
-0000666983 00000 n
-0000667048 00000 n
-0000667113 00000 n
-0000667178 00000 n
-0000667243 00000 n
-0000667308 00000 n
-0000667373 00000 n
-0000667438 00000 n
-0000667503 00000 n
-0000667568 00000 n
-0000667633 00000 n
-0000667697 00000 n
-0000674407 00000 n
-0000670843 00000 n
-0000667873 00000 n
-0000670969 00000 n
-0000671034 00000 n
-0000671099 00000 n
-0000671164 00000 n
-0000671229 00000 n
-0000671294 00000 n
-0000671359 00000 n
-0000671424 00000 n
-0000671489 00000 n
-0000671554 00000 n
-0000671619 00000 n
-0000671684 00000 n
-0000671748 00000 n
-0000671813 00000 n
-0000671878 00000 n
-0000671943 00000 n
-0000672008 00000 n
-0000672073 00000 n
-0000672138 00000 n
-0000672203 00000 n
-0000672268 00000 n
-0000672333 00000 n
-0000672398 00000 n
-0000672463 00000 n
-0000672527 00000 n
-0000672592 00000 n
-0000672657 00000 n
-0000672722 00000 n
-0000672787 00000 n
-0000672852 00000 n
-0000672917 00000 n
-0000672982 00000 n
-0000673047 00000 n
-0000673112 00000 n
-0000673177 00000 n
-0000673242 00000 n
-0000673307 00000 n
-0000673372 00000 n
-0000673437 00000 n
-0000673502 00000 n
-0000673566 00000 n
-0000673630 00000 n
-0000673694 00000 n
-0000673759 00000 n
-0000673824 00000 n
-0000673889 00000 n
-0000673954 00000 n
-0000674019 00000 n
-0000674084 00000 n
-0000674149 00000 n
-0000674214 00000 n
-0000674279 00000 n
-0000674343 00000 n
-0000680580 00000 n
-0000677142 00000 n
-0000674519 00000 n
-0000677268 00000 n
-0000677333 00000 n
-0000677398 00000 n
-0000677463 00000 n
-0000677528 00000 n
-0000677593 00000 n
-0000677658 00000 n
-0000677723 00000 n
-0000677788 00000 n
-0000677853 00000 n
-0000677918 00000 n
-0000677983 00000 n
-0000678048 00000 n
-0000678113 00000 n
-0000678178 00000 n
-0000678243 00000 n
-0000678308 00000 n
-0000678373 00000 n
-0000678438 00000 n
-0000678503 00000 n
-0000678568 00000 n
-0000678633 00000 n
-0000678698 00000 n
-0000678763 00000 n
-0000678828 00000 n
-0000678893 00000 n
-0000678958 00000 n
-0000679023 00000 n
-0000679088 00000 n
-0000679153 00000 n
-0000679218 00000 n
-0000679283 00000 n
-0000679348 00000 n
-0000679413 00000 n
-0000679477 00000 n
-0000679542 00000 n
-0000679607 00000 n
-0000679672 00000 n
-0000679737 00000 n
-0000679802 00000 n
-0000679867 00000 n
-0000679932 00000 n
-0000679997 00000 n
-0000680062 00000 n
-0000680127 00000 n
-0000680192 00000 n
-0000680257 00000 n
-0000680322 00000 n
-0000680387 00000 n
-0000680452 00000 n
-0000680516 00000 n
-0000685158 00000 n
-0000682894 00000 n
-0000680692 00000 n
-0000683020 00000 n
-0000683085 00000 n
-0000683150 00000 n
-0000683215 00000 n
-0000683280 00000 n
-0000683345 00000 n
-0000683410 00000 n
-0000683475 00000 n
-0000683540 00000 n
-0000683605 00000 n
-0000683670 00000 n
-0000683735 00000 n
-0000683800 00000 n
-0000683865 00000 n
-0000683927 00000 n
-0000683991 00000 n
-0000684056 00000 n
-0000684120 00000 n
-0000684185 00000 n
-0000684250 00000 n
-0000684315 00000 n
-0000684380 00000 n
-0000684445 00000 n
-0000684510 00000 n
-0000684575 00000 n
-0000684704 00000 n
-0000684833 00000 n
-0000684898 00000 n
-0000684963 00000 n
-0000685028 00000 n
-0000685093 00000 n
-0000687953 00000 n
-0000687309 00000 n
-0000685283 00000 n
-0000687435 00000 n
-0000687564 00000 n
-0000687693 00000 n
-0000687758 00000 n
-0000687823 00000 n
-0000687888 00000 n
-0000996758 00000 n
-0000692292 00000 n
-0000691972 00000 n
-0000688066 00000 n
-0000692098 00000 n
-0000692163 00000 n
-0000692228 00000 n
-0000695892 00000 n
-0000695637 00000 n
-0000692445 00000 n
-0000695763 00000 n
-0000695828 00000 n
-0000699140 00000 n
-0000698949 00000 n
-0000696031 00000 n
-0000699075 00000 n
-0000702869 00000 n
-0000702613 00000 n
-0000699266 00000 n
-0000702739 00000 n
-0000702804 00000 n
-0000705710 00000 n
-0000705002 00000 n
-0000703008 00000 n
-0000705128 00000 n
-0000705193 00000 n
-0000705258 00000 n
-0000705323 00000 n
-0000705388 00000 n
-0000705517 00000 n
-0000705582 00000 n
-0000705646 00000 n
-0000710376 00000 n
-0000710120 00000 n
-0000705849 00000 n
-0000710246 00000 n
-0000710311 00000 n
-0000996883 00000 n
-0000713328 00000 n
-0000712555 00000 n
-0000710502 00000 n
-0000712681 00000 n
-0000712746 00000 n
-0000712811 00000 n
-0000712876 00000 n
-0000713005 00000 n
-0000713070 00000 n
-0000713133 00000 n
-0000713198 00000 n
-0000713263 00000 n
-0000715929 00000 n
-0000715220 00000 n
-0000713481 00000 n
-0000715346 00000 n
-0000715411 00000 n
-0000715476 00000 n
-0000715541 00000 n
-0000715606 00000 n
-0000715671 00000 n
-0000715800 00000 n
-0000715865 00000 n
-0000719173 00000 n
-0000718787 00000 n
-0000716081 00000 n
-0000718913 00000 n
-0000718978 00000 n
-0000719043 00000 n
-0000719108 00000 n
-0000722307 00000 n
-0000721534 00000 n
-0000719313 00000 n
-0000721660 00000 n
-0000721725 00000 n
-0000721790 00000 n
-0000721854 00000 n
-0000721982 00000 n
-0000722047 00000 n
-0000722112 00000 n
-0000722177 00000 n
-0000722242 00000 n
-0000725695 00000 n
-0000725504 00000 n
-0000722473 00000 n
-0000725630 00000 n
-0000728804 00000 n
-0000728094 00000 n
-0000725821 00000 n
-0000728220 00000 n
-0000728285 00000 n
-0000728350 00000 n
-0000728415 00000 n
-0000728480 00000 n
-0000728609 00000 n
-0000728674 00000 n
-0000728739 00000 n
-0000997008 00000 n
-0000732356 00000 n
-0000732035 00000 n
-0000728969 00000 n
-0000732161 00000 n
-0000732226 00000 n
-0000732291 00000 n
-0000735802 00000 n
-0000735611 00000 n
-0000732482 00000 n
-0000735737 00000 n
-0000738874 00000 n
-0000738555 00000 n
-0000735928 00000 n
-0000738681 00000 n
-0000738746 00000 n
-0000738810 00000 n
-0000741445 00000 n
-0000740607 00000 n
-0000739027 00000 n
-0000740733 00000 n
-0000740798 00000 n
-0000740863 00000 n
-0000740992 00000 n
-0000741057 00000 n
-0000741122 00000 n
-0000741187 00000 n
-0000741252 00000 n
-0000741316 00000 n
-0000741381 00000 n
-0000744412 00000 n
-0000743768 00000 n
-0000741598 00000 n
-0000743894 00000 n
-0000743959 00000 n
-0000744088 00000 n
-0000744153 00000 n
-0000744217 00000 n
-0000744282 00000 n
-0000744347 00000 n
-0000747884 00000 n
-0000747693 00000 n
-0000744552 00000 n
-0000747819 00000 n
-0000997133 00000 n
-0000750692 00000 n
-0000749918 00000 n
-0000748010 00000 n
-0000750044 00000 n
-0000750109 00000 n
-0000750174 00000 n
-0000750239 00000 n
-0000750368 00000 n
-0000750433 00000 n
-0000750498 00000 n
-0000750562 00000 n
-0000750627 00000 n
-0000754094 00000 n
-0000753903 00000 n
-0000750845 00000 n
-0000754029 00000 n
-0000757130 00000 n
-0000756810 00000 n
-0000754305 00000 n
-0000756936 00000 n
-0000757001 00000 n
-0000757066 00000 n
-0000760440 00000 n
-0000759731 00000 n
-0000757354 00000 n
-0000759857 00000 n
-0000759922 00000 n
-0000759987 00000 n
-0000760051 00000 n
-0000760180 00000 n
-0000760245 00000 n
-0000760310 00000 n
-0000760375 00000 n
-0000764857 00000 n
-0000764601 00000 n
-0000760592 00000 n
-0000764727 00000 n
-0000764792 00000 n
-0000768471 00000 n
-0000768280 00000 n
-0000764983 00000 n
-0000768406 00000 n
-0000997258 00000 n
-0000771253 00000 n
-0000770869 00000 n
-0000768597 00000 n
-0000770995 00000 n
-0000771060 00000 n
-0000771125 00000 n
-0000771189 00000 n
-0000774737 00000 n
-0000774092 00000 n
-0000771405 00000 n
-0000774218 00000 n
-0000774283 00000 n
-0000774412 00000 n
-0000774477 00000 n
-0000774542 00000 n
-0000774607 00000 n
-0000774672 00000 n
-0000777802 00000 n
-0000777092 00000 n
-0000774877 00000 n
-0000777218 00000 n
-0000777283 00000 n
-0000777348 00000 n
-0000777413 00000 n
-0000777542 00000 n
-0000777607 00000 n
-0000777672 00000 n
-0000777737 00000 n
-0000780898 00000 n
-0000780642 00000 n
-0000777968 00000 n
-0000780768 00000 n
-0000780833 00000 n
-0000784040 00000 n
-0000783331 00000 n
-0000781024 00000 n
-0000783457 00000 n
-0000783522 00000 n
-0000783587 00000 n
-0000783652 00000 n
-0000783780 00000 n
-0000783845 00000 n
-0000783910 00000 n
-0000783975 00000 n
-0000787630 00000 n
-0000787309 00000 n
-0000784192 00000 n
-0000787435 00000 n
-0000787500 00000 n
-0000787565 00000 n
-0000997383 00000 n
-0000788609 00000 n
-0000788288 00000 n
-0000787769 00000 n
-0000788414 00000 n
-0000788479 00000 n
-0000788544 00000 n
-0000788820 00000 n
-0000800164 00000 n
-0000807753 00000 n
-0000810053 00000 n
-0000810022 00000 n
-0000813738 00000 n
-0000823178 00000 n
-0000833685 00000 n
-0000844169 00000 n
-0000856793 00000 n
-0000875858 00000 n
-0000896745 00000 n
-0000918888 00000 n
-0000936783 00000 n
-0000939614 00000 n
-0000939384 00000 n
-0000966921 00000 n
-0000994032 00000 n
-0000997472 00000 n
-0000997596 00000 n
-0000997722 00000 n
-0000997848 00000 n
-0000997974 00000 n
-0000998066 00000 n
-0001014681 00000 n
-0001033990 00000 n
-0001034031 00000 n
-0001034071 00000 n
-0001034205 00000 n
+0000595668 00000 n
+0000595733 00000 n
+0000595798 00000 n
+0000599718 00000 n
+0000598655 00000 n
+0000595989 00000 n
+0000599139 00000 n
+0000599268 00000 n
+0000599525 00000 n
+0000598811 00000 n
+0000598979 00000 n
+0000599590 00000 n
+0000599654 00000 n
+0000603371 00000 n
+0000603050 00000 n
+0000599887 00000 n
+0000603176 00000 n
+0000603241 00000 n
+0000603306 00000 n
+0000606631 00000 n
+0000606311 00000 n
+0000603470 00000 n
+0000606437 00000 n
+0000606502 00000 n
+0000606567 00000 n
+0000996261 00000 n
+0000610392 00000 n
+0000609812 00000 n
+0000606743 00000 n
+0000609938 00000 n
+0000610067 00000 n
+0000610132 00000 n
+0000610197 00000 n
+0000610262 00000 n
+0000610327 00000 n
+0000614704 00000 n
+0000613867 00000 n
+0000610504 00000 n
+0000613993 00000 n
+0000614122 00000 n
+0000614187 00000 n
+0000614251 00000 n
+0000614380 00000 n
+0000614445 00000 n
+0000614510 00000 n
+0000614639 00000 n
+0000618141 00000 n
+0000617305 00000 n
+0000614829 00000 n
+0000617431 00000 n
+0000617496 00000 n
+0000617561 00000 n
+0000617690 00000 n
+0000617819 00000 n
+0000617947 00000 n
+0000618076 00000 n
+0000621937 00000 n
+0000621358 00000 n
+0000618338 00000 n
+0000621484 00000 n
+0000621613 00000 n
+0000621742 00000 n
+0000621807 00000 n
+0000621872 00000 n
+0000625905 00000 n
+0000625328 00000 n
+0000622133 00000 n
+0000625454 00000 n
+0000625711 00000 n
+0000625775 00000 n
+0000625840 00000 n
+0000629717 00000 n
+0000628828 00000 n
+0000626017 00000 n
+0000629135 00000 n
+0000628975 00000 n
+0000629393 00000 n
+0000629522 00000 n
+0000629587 00000 n
+0000629652 00000 n
+0000996386 00000 n
+0000633311 00000 n
+0000632934 00000 n
+0000629842 00000 n
+0000633246 00000 n
+0000633081 00000 n
+0000788722 00000 n
+0000636457 00000 n
+0000635749 00000 n
+0000633410 00000 n
+0000635875 00000 n
+0000636004 00000 n
+0000636069 00000 n
+0000636134 00000 n
+0000636262 00000 n
+0000636327 00000 n
+0000636392 00000 n
+0000640428 00000 n
+0000639849 00000 n
+0000636569 00000 n
+0000639975 00000 n
+0000640104 00000 n
+0000640169 00000 n
+0000640234 00000 n
+0000807528 00000 n
+0000800244 00000 n
+0000807348 00000 n
+0000640363 00000 n
+0000641279 00000 n
+0000641088 00000 n
+0000640568 00000 n
+0000641214 00000 n
+0000641719 00000 n
+0000641528 00000 n
+0000641378 00000 n
+0000641654 00000 n
+0000643614 00000 n
+0000643166 00000 n
+0000641761 00000 n
+0000643292 00000 n
+0000643421 00000 n
+0000643550 00000 n
+0000996511 00000 n
+0000648200 00000 n
+0000647257 00000 n
+0000643726 00000 n
+0000647620 00000 n
+0000799923 00000 n
+0000790710 00000 n
+0000799737 00000 n
+0000647404 00000 n
+0000647749 00000 n
+0000647877 00000 n
+0000648006 00000 n
+0000649242 00000 n
+0000649051 00000 n
+0000648437 00000 n
+0000649177 00000 n
+0000649669 00000 n
+0000649478 00000 n
+0000649328 00000 n
+0000649604 00000 n
+0000652982 00000 n
+0000651756 00000 n
+0000649711 00000 n
+0000652273 00000 n
+0000652402 00000 n
+0000652531 00000 n
+0000652660 00000 n
+0000652789 00000 n
+0000652918 00000 n
+0000651912 00000 n
+0000652084 00000 n
+0000653436 00000 n
+0000653245 00000 n
+0000653095 00000 n
+0000653371 00000 n
+0000656680 00000 n
+0000656102 00000 n
+0000653478 00000 n
+0000656228 00000 n
+0000656357 00000 n
+0000656486 00000 n
+0000656615 00000 n
+0000996636 00000 n
+0000660875 00000 n
+0000659657 00000 n
+0000656766 00000 n
+0000660167 00000 n
+0000660296 00000 n
+0000660554 00000 n
+0000659813 00000 n
+0000659992 00000 n
+0000660747 00000 n
+0000660811 00000 n
+0000667762 00000 n
+0000663934 00000 n
+0000661028 00000 n
+0000664060 00000 n
+0000664125 00000 n
+0000664190 00000 n
+0000664255 00000 n
+0000664320 00000 n
+0000664385 00000 n
+0000664450 00000 n
+0000664515 00000 n
+0000664580 00000 n
+0000664645 00000 n
+0000664775 00000 n
+0000664840 00000 n
+0000664905 00000 n
+0000664970 00000 n
+0000665035 00000 n
+0000665100 00000 n
+0000665165 00000 n
+0000665230 00000 n
+0000665295 00000 n
+0000665360 00000 n
+0000665425 00000 n
+0000665490 00000 n
+0000665555 00000 n
+0000665620 00000 n
+0000665685 00000 n
+0000665750 00000 n
+0000665815 00000 n
+0000665880 00000 n
+0000665945 00000 n
+0000666010 00000 n
+0000666075 00000 n
+0000666140 00000 n
+0000666205 00000 n
+0000666270 00000 n
+0000666334 00000 n
+0000666399 00000 n
+0000666464 00000 n
+0000666529 00000 n
+0000666594 00000 n
+0000666659 00000 n
+0000666724 00000 n
+0000666789 00000 n
+0000666854 00000 n
+0000666919 00000 n
+0000666984 00000 n
+0000667049 00000 n
+0000667114 00000 n
+0000667179 00000 n
+0000667244 00000 n
+0000667309 00000 n
+0000667374 00000 n
+0000667439 00000 n
+0000667504 00000 n
+0000667569 00000 n
+0000667634 00000 n
+0000667698 00000 n
+0000674408 00000 n
+0000670844 00000 n
+0000667874 00000 n
+0000670970 00000 n
+0000671035 00000 n
+0000671100 00000 n
+0000671165 00000 n
+0000671230 00000 n
+0000671295 00000 n
+0000671360 00000 n
+0000671425 00000 n
+0000671490 00000 n
+0000671555 00000 n
+0000671620 00000 n
+0000671685 00000 n
+0000671749 00000 n
+0000671814 00000 n
+0000671879 00000 n
+0000671944 00000 n
+0000672009 00000 n
+0000672074 00000 n
+0000672139 00000 n
+0000672204 00000 n
+0000672269 00000 n
+0000672334 00000 n
+0000672399 00000 n
+0000672464 00000 n
+0000672528 00000 n
+0000672593 00000 n
+0000672658 00000 n
+0000672723 00000 n
+0000672788 00000 n
+0000672853 00000 n
+0000672918 00000 n
+0000672983 00000 n
+0000673048 00000 n
+0000673113 00000 n
+0000673178 00000 n
+0000673243 00000 n
+0000673308 00000 n
+0000673373 00000 n
+0000673438 00000 n
+0000673503 00000 n
+0000673567 00000 n
+0000673631 00000 n
+0000673695 00000 n
+0000673760 00000 n
+0000673825 00000 n
+0000673890 00000 n
+0000673955 00000 n
+0000674020 00000 n
+0000674085 00000 n
+0000674150 00000 n
+0000674215 00000 n
+0000674280 00000 n
+0000674344 00000 n
+0000680581 00000 n
+0000677143 00000 n
+0000674520 00000 n
+0000677269 00000 n
+0000677334 00000 n
+0000677399 00000 n
+0000677464 00000 n
+0000677529 00000 n
+0000677594 00000 n
+0000677659 00000 n
+0000677724 00000 n
+0000677789 00000 n
+0000677854 00000 n
+0000677919 00000 n
+0000677984 00000 n
+0000678049 00000 n
+0000678114 00000 n
+0000678179 00000 n
+0000678244 00000 n
+0000678309 00000 n
+0000678374 00000 n
+0000678439 00000 n
+0000678504 00000 n
+0000678569 00000 n
+0000678634 00000 n
+0000678699 00000 n
+0000678764 00000 n
+0000678829 00000 n
+0000678894 00000 n
+0000678959 00000 n
+0000679024 00000 n
+0000679089 00000 n
+0000679154 00000 n
+0000679219 00000 n
+0000679284 00000 n
+0000679349 00000 n
+0000679414 00000 n
+0000679478 00000 n
+0000679543 00000 n
+0000679608 00000 n
+0000679673 00000 n
+0000679738 00000 n
+0000679803 00000 n
+0000679868 00000 n
+0000679933 00000 n
+0000679998 00000 n
+0000680063 00000 n
+0000680128 00000 n
+0000680193 00000 n
+0000680258 00000 n
+0000680323 00000 n
+0000680388 00000 n
+0000680453 00000 n
+0000680517 00000 n
+0000685159 00000 n
+0000682895 00000 n
+0000680693 00000 n
+0000683021 00000 n
+0000683086 00000 n
+0000683151 00000 n
+0000683216 00000 n
+0000683281 00000 n
+0000683346 00000 n
+0000683411 00000 n
+0000683476 00000 n
+0000683541 00000 n
+0000683606 00000 n
+0000683671 00000 n
+0000683736 00000 n
+0000683801 00000 n
+0000683866 00000 n
+0000683928 00000 n
+0000683992 00000 n
+0000684057 00000 n
+0000684121 00000 n
+0000684186 00000 n
+0000684251 00000 n
+0000684316 00000 n
+0000684381 00000 n
+0000684446 00000 n
+0000684511 00000 n
+0000684576 00000 n
+0000684705 00000 n
+0000684834 00000 n
+0000684899 00000 n
+0000684964 00000 n
+0000685029 00000 n
+0000685094 00000 n
+0000687954 00000 n
+0000687310 00000 n
+0000685284 00000 n
+0000687436 00000 n
+0000687565 00000 n
+0000687694 00000 n
+0000687759 00000 n
+0000687824 00000 n
+0000687889 00000 n
+0000996761 00000 n
+0000692293 00000 n
+0000691973 00000 n
+0000688067 00000 n
+0000692099 00000 n
+0000692164 00000 n
+0000692229 00000 n
+0000695893 00000 n
+0000695638 00000 n
+0000692446 00000 n
+0000695764 00000 n
+0000695829 00000 n
+0000699141 00000 n
+0000698950 00000 n
+0000696032 00000 n
+0000699076 00000 n
+0000702870 00000 n
+0000702614 00000 n
+0000699267 00000 n
+0000702740 00000 n
+0000702805 00000 n
+0000705711 00000 n
+0000705003 00000 n
+0000703009 00000 n
+0000705129 00000 n
+0000705194 00000 n
+0000705259 00000 n
+0000705324 00000 n
+0000705389 00000 n
+0000705518 00000 n
+0000705583 00000 n
+0000705647 00000 n
+0000710377 00000 n
+0000710121 00000 n
+0000705850 00000 n
+0000710247 00000 n
+0000710312 00000 n
+0000996886 00000 n
+0000713329 00000 n
+0000712556 00000 n
+0000710503 00000 n
+0000712682 00000 n
+0000712747 00000 n
+0000712812 00000 n
+0000712877 00000 n
+0000713006 00000 n
+0000713071 00000 n
+0000713134 00000 n
+0000713199 00000 n
+0000713264 00000 n
+0000715930 00000 n
+0000715221 00000 n
+0000713482 00000 n
+0000715347 00000 n
+0000715412 00000 n
+0000715477 00000 n
+0000715542 00000 n
+0000715607 00000 n
+0000715672 00000 n
+0000715801 00000 n
+0000715866 00000 n
+0000719174 00000 n
+0000718788 00000 n
+0000716082 00000 n
+0000718914 00000 n
+0000718979 00000 n
+0000719044 00000 n
+0000719109 00000 n
+0000722308 00000 n
+0000721535 00000 n
+0000719314 00000 n
+0000721661 00000 n
+0000721726 00000 n
+0000721791 00000 n
+0000721855 00000 n
+0000721983 00000 n
+0000722048 00000 n
+0000722113 00000 n
+0000722178 00000 n
+0000722243 00000 n
+0000725696 00000 n
+0000725505 00000 n
+0000722474 00000 n
+0000725631 00000 n
+0000728805 00000 n
+0000728095 00000 n
+0000725822 00000 n
+0000728221 00000 n
+0000728286 00000 n
+0000728351 00000 n
+0000728416 00000 n
+0000728481 00000 n
+0000728610 00000 n
+0000728675 00000 n
+0000728740 00000 n
+0000997011 00000 n
+0000732357 00000 n
+0000732036 00000 n
+0000728970 00000 n
+0000732162 00000 n
+0000732227 00000 n
+0000732292 00000 n
+0000735803 00000 n
+0000735612 00000 n
+0000732483 00000 n
+0000735738 00000 n
+0000738875 00000 n
+0000738556 00000 n
+0000735929 00000 n
+0000738682 00000 n
+0000738747 00000 n
+0000738811 00000 n
+0000741446 00000 n
+0000740608 00000 n
+0000739028 00000 n
+0000740734 00000 n
+0000740799 00000 n
+0000740864 00000 n
+0000740993 00000 n
+0000741058 00000 n
+0000741123 00000 n
+0000741188 00000 n
+0000741253 00000 n
+0000741317 00000 n
+0000741382 00000 n
+0000744413 00000 n
+0000743769 00000 n
+0000741599 00000 n
+0000743895 00000 n
+0000743960 00000 n
+0000744089 00000 n
+0000744154 00000 n
+0000744218 00000 n
+0000744283 00000 n
+0000744348 00000 n
+0000747885 00000 n
+0000747694 00000 n
+0000744553 00000 n
+0000747820 00000 n
+0000997136 00000 n
+0000750693 00000 n
+0000749919 00000 n
+0000748011 00000 n
+0000750045 00000 n
+0000750110 00000 n
+0000750175 00000 n
+0000750240 00000 n
+0000750369 00000 n
+0000750434 00000 n
+0000750499 00000 n
+0000750563 00000 n
+0000750628 00000 n
+0000754095 00000 n
+0000753904 00000 n
+0000750846 00000 n
+0000754030 00000 n
+0000757131 00000 n
+0000756811 00000 n
+0000754306 00000 n
+0000756937 00000 n
+0000757002 00000 n
+0000757067 00000 n
+0000760441 00000 n
+0000759732 00000 n
+0000757355 00000 n
+0000759858 00000 n
+0000759923 00000 n
+0000759988 00000 n
+0000760052 00000 n
+0000760181 00000 n
+0000760246 00000 n
+0000760311 00000 n
+0000760376 00000 n
+0000764858 00000 n
+0000764602 00000 n
+0000760593 00000 n
+0000764728 00000 n
+0000764793 00000 n
+0000768472 00000 n
+0000768281 00000 n
+0000764984 00000 n
+0000768407 00000 n
+0000997261 00000 n
+0000771254 00000 n
+0000770870 00000 n
+0000768598 00000 n
+0000770996 00000 n
+0000771061 00000 n
+0000771126 00000 n
+0000771190 00000 n
+0000774738 00000 n
+0000774093 00000 n
+0000771406 00000 n
+0000774219 00000 n
+0000774284 00000 n
+0000774413 00000 n
+0000774478 00000 n
+0000774543 00000 n
+0000774608 00000 n
+0000774673 00000 n
+0000777803 00000 n
+0000777093 00000 n
+0000774878 00000 n
+0000777219 00000 n
+0000777284 00000 n
+0000777349 00000 n
+0000777414 00000 n
+0000777543 00000 n
+0000777608 00000 n
+0000777673 00000 n
+0000777738 00000 n
+0000780899 00000 n
+0000780643 00000 n
+0000777969 00000 n
+0000780769 00000 n
+0000780834 00000 n
+0000784041 00000 n
+0000783332 00000 n
+0000781025 00000 n
+0000783458 00000 n
+0000783523 00000 n
+0000783588 00000 n
+0000783653 00000 n
+0000783781 00000 n
+0000783846 00000 n
+0000783911 00000 n
+0000783976 00000 n
+0000787631 00000 n
+0000787310 00000 n
+0000784193 00000 n
+0000787436 00000 n
+0000787501 00000 n
+0000787566 00000 n
+0000997386 00000 n
+0000788610 00000 n
+0000788289 00000 n
+0000787770 00000 n
+0000788415 00000 n
+0000788480 00000 n
+0000788545 00000 n
+0000788821 00000 n
+0000800165 00000 n
+0000807754 00000 n
+0000810054 00000 n
+0000810023 00000 n
+0000813742 00000 n
+0000823182 00000 n
+0000833689 00000 n
+0000844173 00000 n
+0000856797 00000 n
+0000875862 00000 n
+0000896749 00000 n
+0000918892 00000 n
+0000936787 00000 n
+0000939617 00000 n
+0000939387 00000 n
+0000966924 00000 n
+0000994035 00000 n
+0000997475 00000 n
+0000997599 00000 n
+0000997725 00000 n
+0000997851 00000 n
+0000997977 00000 n
+0000998069 00000 n
+0001014684 00000 n
+0001033993 00000 n
+0001034034 00000 n
+0001034074 00000 n
+0001034208 00000 n
trailer
<<
/Size 2178
/Root 2176 0 R
/Info 2177 0 R
-/ID [<2220CDD4098638BB2BCBC2C8D0307393> <2220CDD4098638BB2BCBC2C8D0307393>]
+/ID [<AE77623B2C928387BC4F87262D905186> <AE77623B2C928387BC4F87262D905186>]
>>
startxref
-1034463
+1034466
%%EOF
diff --git a/doc/misc/format-options.pl b/doc/misc/format-options.pl
index b0b8d5232bb2..c405ee2ba2fd 100644
--- a/doc/misc/format-options.pl
+++ b/doc/misc/format-options.pl
@@ -1,6 +1,6 @@
#!/usr/bin/perl
#
-# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/doc/misc/sort-options.pl b/doc/misc/sort-options.pl
index 42515215df0c..0030525988ee 100755
--- a/doc/misc/sort-options.pl
+++ b/doc/misc/sort-options.pl
@@ -1,6 +1,6 @@
#!/bin/perl
#
-# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/isc-config.sh.in b/isc-config.sh.in
index 0eafca7b25a7..26b7d64dd176 100644
--- a/isc-config.sh.in
+++ b/isc-config.sh.in
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2000, 2001, 2003 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/lib/Makefile.in b/lib/Makefile.in
index e46aef26d093..e3f0bdb8fc9d 100644
--- a/lib/Makefile.in
+++ b/lib/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1998-2001, 2003 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/lib/bind9/api b/lib/bind9/api
index 06e27c3b72ef..8361ce630bd3 100644
--- a/lib/bind9/api
+++ b/lib/bind9/api
@@ -4,5 +4,5 @@
# 9.8: 80-89
# 9.9: 90-109
LIBINTERFACE = 50
-LIBREVISION = 7
+LIBREVISION = 9
LIBAGE = 0
diff --git a/lib/bind9/check.c b/lib/bind9/check.c
index ddc546733b14..b43bb7076ad6 100644
--- a/lib/bind9/check.c
+++ b/lib/bind9/check.c
@@ -287,10 +287,6 @@ disabled_algorithms(const cfg_obj_t *disabled, isc_log_t *logctx) {
tresult = dns_secalg_fromtext(&alg, &r);
if (tresult != ISC_R_SUCCESS) {
- isc_uint8_t ui;
- result = isc_parse_uint8(&ui, r.base, 10);
- }
- if (tresult != ISC_R_SUCCESS) {
cfg_obj_log(cfg_listelt_value(element), logctx,
ISC_LOG_ERROR, "invalid algorithm '%s'",
r.base);
@@ -1028,6 +1024,29 @@ typedef struct {
} optionstable;
static isc_result_t
+check_nonzero(const cfg_obj_t *options, isc_log_t *logctx) {
+ isc_result_t result = ISC_R_SUCCESS;
+ const cfg_obj_t *obj = NULL;
+ unsigned int i;
+
+ static const char *nonzero[] = { "max-retry-time", "min-retry-time",
+ "max-refresh-time", "min-refresh-time" };
+ /*
+ * Check if value is zero.
+ */
+ for (i = 0; i < sizeof(nonzero) / sizeof(nonzero[0]); i++) {
+ obj = NULL;
+ if (cfg_map_get(options, nonzero[i], &obj) == ISC_R_SUCCESS &&
+ cfg_obj_asuint32(obj) == 0) {
+ cfg_obj_log(obj, logctx, ISC_LOG_ERROR,
+ "'%s' must not be zero", nonzero[i]);
+ result = ISC_R_FAILURE;
+ }
+ }
+ return (result);
+}
+
+static isc_result_t
check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions,
const cfg_obj_t *config, isc_symtab_t *symtab,
dns_rdataclass_t defclass, cfg_aclconfctx_t *actx,
@@ -1036,7 +1055,7 @@ check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions,
const char *zname;
const char *typestr;
unsigned int ztype;
- const cfg_obj_t *zoptions;
+ const cfg_obj_t *zoptions, *goptions = NULL;
const cfg_obj_t *obj = NULL;
isc_result_t result = ISC_R_SUCCESS;
isc_result_t tresult;
@@ -1105,9 +1124,11 @@ check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions,
};
zname = cfg_obj_asstring(cfg_tuple_get(zconfig, "name"));
-
zoptions = cfg_tuple_get(zconfig, "options");
+ if (config != NULL)
+ cfg_map_get(config, "options", &goptions);
+
obj = NULL;
(void)cfg_map_get(zoptions, "type", &obj);
if (obj == NULL) {
@@ -1188,6 +1209,12 @@ check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions,
}
/*
+ * Check if value is zero.
+ */
+ if (check_nonzero(zoptions, logctx) != ISC_R_SUCCESS)
+ result = ISC_R_FAILURE;
+
+ /*
* Look for inappropriate options for the given zone type.
* Check that ACLs expand correctly.
*/
@@ -1760,10 +1787,16 @@ check_viewconf(const cfg_obj_t *config, const cfg_obj_t *voptions,
isc_result_t result = ISC_R_SUCCESS;
isc_result_t tresult = ISC_R_SUCCESS;
cfg_aclconfctx_t actx;
+ const cfg_obj_t *options = NULL;
const cfg_obj_t *obj;
isc_boolean_t enablednssec, enablevalidation;
/*
+ * Get global options block.
+ */
+ (void)cfg_map_get(config, "options", &options);
+
+ /*
* Check that all zone statements are syntactically correct and
* there are no duplicate zones.
*/
@@ -1798,8 +1831,6 @@ check_viewconf(const cfg_obj_t *config, const cfg_obj_t *voptions,
* Check that forwarding is reasonable.
*/
if (voptions == NULL) {
- const cfg_obj_t *options = NULL;
- (void)cfg_map_get(config, "options", &options);
if (options != NULL)
if (check_forward(options, NULL,
logctx) != ISC_R_SUCCESS)
@@ -1810,11 +1841,17 @@ check_viewconf(const cfg_obj_t *config, const cfg_obj_t *voptions,
}
/*
+ * Check non-zero options at the global and view levels.
+ */
+ if (options != NULL && check_nonzero(options, logctx) != ISC_R_SUCCESS)
+ result = ISC_R_FAILURE;
+ if (voptions != NULL &&check_nonzero(voptions, logctx) != ISC_R_SUCCESS)
+ result = ISC_R_FAILURE;
+
+ /*
* Check that dual-stack-servers is reasonable.
*/
if (voptions == NULL) {
- const cfg_obj_t *options = NULL;
- (void)cfg_map_get(config, "options", &options);
if (options != NULL)
if (check_dual_stack(options, logctx) != ISC_R_SUCCESS)
result = ISC_R_FAILURE;
@@ -1838,15 +1875,15 @@ check_viewconf(const cfg_obj_t *config, const cfg_obj_t *voptions,
tresult = isc_symtab_create(mctx, 1000, freekey, mctx,
ISC_FALSE, &symtab);
if (tresult != ISC_R_SUCCESS)
- return (ISC_R_NOMEMORY);
+ goto cleanup;
(void)cfg_map_get(config, "key", &keys);
tresult = check_keylist(keys, symtab, mctx, logctx);
if (tresult == ISC_R_EXISTS)
result = ISC_R_FAILURE;
else if (tresult != ISC_R_SUCCESS) {
- isc_symtab_destroy(&symtab);
- return (tresult);
+ result = tresult;
+ goto cleanup;
}
if (voptions != NULL) {
@@ -1856,8 +1893,8 @@ check_viewconf(const cfg_obj_t *config, const cfg_obj_t *voptions,
if (tresult == ISC_R_EXISTS)
result = ISC_R_FAILURE;
else if (tresult != ISC_R_SUCCESS) {
- isc_symtab_destroy(&symtab);
- return (tresult);
+ result = tresult;
+ goto cleanup;
}
}
@@ -1939,6 +1976,9 @@ check_viewconf(const cfg_obj_t *config, const cfg_obj_t *voptions,
if (tresult != ISC_R_SUCCESS)
result = tresult;
+ cleanup:
+ if (symtab != NULL)
+ isc_symtab_destroy(&symtab);
cfg_aclconfctx_destroy(&actx);
return (result);
diff --git a/lib/bind9/include/Makefile.in b/lib/bind9/include/Makefile.in
index 65eecb05b5fb..0a7436c07a73 100644
--- a/lib/bind9/include/Makefile.in
+++ b/lib/bind9/include/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/lib/bind9/include/bind9/Makefile.in b/lib/bind9/include/bind9/Makefile.in
index 8abfaf65a25e..11ae586205ef 100644
--- a/lib/bind9/include/bind9/Makefile.in
+++ b/lib/bind9/include/bind9/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/lib/dns/adb.c b/lib/dns/adb.c
index e021b8d9b93f..35b4caeb0be2 100644
--- a/lib/dns/adb.c
+++ b/lib/dns/adb.c
@@ -3430,8 +3430,10 @@ dns_adb_adjustsrtt(dns_adb_t *adb, dns_adbaddrinfo_t *addr,
addr->entry->srtt = new_srtt;
addr->srtt = new_srtt;
- isc_stdtime_get(&now);
- addr->entry->expires = now + ADB_ENTRY_WINDOW;
+ if (addr->entry->expires == 0) {
+ isc_stdtime_get(&now);
+ addr->entry->expires = now + ADB_ENTRY_WINDOW;
+ }
UNLOCK(&adb->entrylocks[bucket]);
}
@@ -3441,6 +3443,7 @@ dns_adb_changeflags(dns_adb_t *adb, dns_adbaddrinfo_t *addr,
unsigned int bits, unsigned int mask)
{
int bucket;
+ isc_stdtime_t now;
REQUIRE(DNS_ADB_VALID(adb));
REQUIRE(DNS_ADBADDRINFO_VALID(addr));
@@ -3449,6 +3452,11 @@ dns_adb_changeflags(dns_adb_t *adb, dns_adbaddrinfo_t *addr,
LOCK(&adb->entrylocks[bucket]);
addr->entry->flags = (addr->entry->flags & ~mask) | (bits & mask);
+ if (addr->entry->expires == 0) {
+ isc_stdtime_get(&now);
+ addr->entry->expires = now + ADB_ENTRY_WINDOW;
+ }
+
/*
* Note that we do not update the other bits in addr->flags with
* the most recent values from addr->entry->flags.
@@ -3527,15 +3535,16 @@ dns_adb_freeaddrinfo(dns_adb_t *adb, dns_adbaddrinfo_t **addrp) {
entry = addr->entry;
REQUIRE(DNS_ADBENTRY_VALID(entry));
- isc_stdtime_get(&now);
-
*addrp = NULL;
overmem = isc_mem_isovermem(adb->mctx);
bucket = addr->entry->lock_bucket;
LOCK(&adb->entrylocks[bucket]);
- entry->expires = now + ADB_ENTRY_WINDOW;
+ if (entry->expires == 0) {
+ isc_stdtime_get(&now);
+ entry->expires = now + ADB_ENTRY_WINDOW;
+ }
want_check_exit = dec_entry_refcnt(adb, overmem, entry, ISC_FALSE);
diff --git a/lib/dns/api b/lib/dns/api
index 974ae84d538c..02fb649d2678 100644
--- a/lib/dns/api
+++ b/lib/dns/api
@@ -3,6 +3,6 @@
# 9.7: 60-79
# 9.8: 80-89
# 9.9: 90-109
-LIBINTERFACE = 110
+LIBINTERFACE = 111
LIBREVISION = 2
-LIBAGE = 0
+LIBAGE = 1
diff --git a/lib/dns/dnssec.c b/lib/dns/dnssec.c
index 6e9ab9f0d0d9..393a9c794d9d 100644
--- a/lib/dns/dnssec.c
+++ b/lib/dns/dnssec.c
@@ -35,16 +35,20 @@
#include <dns/dnssec.h>
#include <dns/fixedname.h>
#include <dns/keyvalues.h>
+#include <dns/log.h>
#include <dns/message.h>
#include <dns/rdata.h>
#include <dns/rdatalist.h>
#include <dns/rdataset.h>
#include <dns/rdatastruct.h>
#include <dns/result.h>
+#include <dns/stats.h>
#include <dns/tsig.h> /* for DNS_TSIG_FUDGE */
#include <dst/result.h>
+LIBDNS_EXTERNAL_DATA isc_stats_t *dns_dnssec_stats;
+
#define is_response(msg) (msg->flags & DNS_MESSAGEFLAG_QR)
#define RETERR(x) do { \
@@ -74,6 +78,12 @@ digest_callback(void *arg, isc_region_t *data) {
return (dst_context_adddata(ctx, data));
}
+static inline void
+inc_stat(isc_statscounter_t counter) {
+ if (dns_dnssec_stats != NULL)
+ isc_stats_increment(dns_dnssec_stats, counter);
+}
+
/*
* Make qsort happy.
*/
@@ -150,7 +160,9 @@ dns_dnssec_keyfromrdata(dns_name_t *name, dns_rdata_t *rdata, isc_mem_t *mctx,
}
static isc_result_t
-digest_sig(dst_context_t *ctx, dns_rdata_t *sigrdata, dns_rdata_rrsig_t *sig) {
+digest_sig(dst_context_t *ctx, isc_boolean_t downcase, dns_rdata_t *sigrdata,
+ dns_rdata_rrsig_t *rrsig)
+{
isc_region_t r;
isc_result_t ret;
dns_fixedname_t fname;
@@ -162,11 +174,16 @@ digest_sig(dst_context_t *ctx, dns_rdata_t *sigrdata, dns_rdata_rrsig_t *sig) {
ret = dst_context_adddata(ctx, &r);
if (ret != ISC_R_SUCCESS)
return (ret);
- dns_fixedname_init(&fname);
- RUNTIME_CHECK(dns_name_downcase(&sig->signer,
- dns_fixedname_name(&fname), NULL)
- == ISC_R_SUCCESS);
- dns_name_toregion(dns_fixedname_name(&fname), &r);
+ if (downcase) {
+ dns_fixedname_init(&fname);
+
+ RUNTIME_CHECK(dns_name_downcase(&rrsig->signer,
+ dns_fixedname_name(&fname),
+ NULL) == ISC_R_SUCCESS);
+ dns_name_toregion(dns_fixedname_name(&fname), &r);
+ } else
+ dns_name_toregion(&rrsig->signer, &r);
+
return (dst_context_adddata(ctx, &r));
}
@@ -188,6 +205,7 @@ dns_dnssec_sign(dns_name_t *name, dns_rdataset_t *set, dst_key_t *key,
isc_uint32_t flags;
unsigned int sigsize;
dns_fixedname_t fnewname;
+ dns_fixedname_t fsigner;
REQUIRE(name != NULL);
REQUIRE(dns_name_countlabels(name) <= 255);
@@ -215,8 +233,14 @@ dns_dnssec_sign(dns_name_t *name, dns_rdataset_t *set, dst_key_t *key,
sig.common.rdtype = dns_rdatatype_rrsig;
ISC_LINK_INIT(&sig.common, link);
+ /*
+ * Downcase signer.
+ */
dns_name_init(&sig.signer, NULL);
- dns_name_clone(dst_key_name(key), &sig.signer);
+ dns_fixedname_init(&fsigner);
+ RUNTIME_CHECK(dns_name_downcase(dst_key_name(key),
+ dns_fixedname_name(&fsigner), NULL) == ISC_R_SUCCESS);
+ dns_name_clone(dns_fixedname_name(&fsigner), &sig.signer);
sig.covered = set->type;
sig.algorithm = dst_key_alg(key);
@@ -256,7 +280,7 @@ dns_dnssec_sign(dns_name_t *name, dns_rdataset_t *set, dst_key_t *key,
/*
* Digest the SIG rdata.
*/
- ret = digest_sig(ctx, &tmpsigrdata, &sig);
+ ret = digest_sig(ctx, ISC_FALSE, &tmpsigrdata, &sig);
if (ret != ISC_R_SUCCESS)
goto cleanup_context;
@@ -329,7 +353,7 @@ dns_dnssec_sign(dns_name_t *name, dns_rdataset_t *set, dst_key_t *key,
memcpy(sig.signature, r.base, sig.siglen);
ret = dns_rdata_fromstruct(sigrdata, sig.common.rdclass,
- sig.common.rdtype, &sig, buffer);
+ sig.common.rdtype, &sig, buffer);
cleanup_array:
isc_mem_put(mctx, rdatas, nrdatas * sizeof(dns_rdata_t));
@@ -360,6 +384,7 @@ dns_dnssec_verify2(dns_name_t *name, dns_rdataset_t *set, dst_key_t *key,
dst_context_t *ctx = NULL;
int labels = 0;
isc_uint32_t flags;
+ isc_boolean_t downcase = ISC_FALSE;
REQUIRE(name != NULL);
REQUIRE(set != NULL);
@@ -374,8 +399,10 @@ dns_dnssec_verify2(dns_name_t *name, dns_rdataset_t *set, dst_key_t *key,
if (set->type != sig.covered)
return (DNS_R_SIGINVALID);
- if (isc_serial_lt(sig.timeexpire, sig.timesigned))
+ if (isc_serial_lt(sig.timeexpire, sig.timesigned)) {
+ inc_stat(dns_dnssecstats_fail);
return (DNS_R_SIGINVALID);
+ }
if (!ignoretime) {
isc_stdtime_get(&now);
@@ -383,10 +410,13 @@ dns_dnssec_verify2(dns_name_t *name, dns_rdataset_t *set, dst_key_t *key,
/*
* Is SIG temporally valid?
*/
- if (isc_serial_lt((isc_uint32_t)now, sig.timesigned))
+ if (isc_serial_lt((isc_uint32_t)now, sig.timesigned)) {
+ inc_stat(dns_dnssecstats_fail);
return (DNS_R_SIGFUTURE);
- else if (isc_serial_lt(sig.timeexpire, (isc_uint32_t)now))
+ } else if (isc_serial_lt(sig.timeexpire, (isc_uint32_t)now)) {
+ inc_stat(dns_dnssecstats_fail);
return (DNS_R_SIGEXPIRED);
+ }
}
/*
@@ -397,16 +427,22 @@ dns_dnssec_verify2(dns_name_t *name, dns_rdataset_t *set, dst_key_t *key,
case dns_rdatatype_ns:
case dns_rdatatype_soa:
case dns_rdatatype_dnskey:
- if (!dns_name_equal(name, &sig.signer))
+ if (!dns_name_equal(name, &sig.signer)) {
+ inc_stat(dns_dnssecstats_fail);
return (DNS_R_SIGINVALID);
+ }
break;
case dns_rdatatype_ds:
- if (dns_name_equal(name, &sig.signer))
+ if (dns_name_equal(name, &sig.signer)) {
+ inc_stat(dns_dnssecstats_fail);
return (DNS_R_SIGINVALID);
+ }
/* FALLTHROUGH */
default:
- if (!dns_name_issubdomain(name, &sig.signer))
+ if (!dns_name_issubdomain(name, &sig.signer)) {
+ inc_stat(dns_dnssecstats_fail);
return (DNS_R_SIGINVALID);
+ }
break;
}
@@ -414,11 +450,16 @@ dns_dnssec_verify2(dns_name_t *name, dns_rdataset_t *set, dst_key_t *key,
* Is the key allowed to sign data?
*/
flags = dst_key_flags(key);
- if (flags & DNS_KEYTYPE_NOAUTH)
+ if (flags & DNS_KEYTYPE_NOAUTH) {
+ inc_stat(dns_dnssecstats_fail);
return (DNS_R_KEYUNAUTHORIZED);
- if ((flags & DNS_KEYFLAG_OWNERMASK) != DNS_KEYOWNER_ZONE)
+ }
+ if ((flags & DNS_KEYFLAG_OWNERMASK) != DNS_KEYOWNER_ZONE) {
+ inc_stat(dns_dnssecstats_fail);
return (DNS_R_KEYUNAUTHORIZED);
+ }
+ again:
ret = dst_context_create(key, mctx, &ctx);
if (ret != ISC_R_SUCCESS)
goto cleanup_struct;
@@ -426,7 +467,7 @@ dns_dnssec_verify2(dns_name_t *name, dns_rdataset_t *set, dst_key_t *key,
/*
* Digest the SIG rdata (not including the signature).
*/
- ret = digest_sig(ctx, sigrdata, &sig);
+ ret = digest_sig(ctx, downcase, sigrdata, &sig);
if (ret != ISC_R_SUCCESS)
goto cleanup_context;
@@ -505,21 +546,40 @@ dns_dnssec_verify2(dns_name_t *name, dns_rdataset_t *set, dst_key_t *key,
r.base = sig.signature;
r.length = sig.siglen;
ret = dst_context_verify(ctx, &r);
- if (ret == DST_R_VERIFYFAILURE)
- ret = DNS_R_SIGINVALID;
+ if (ret == ISC_R_SUCCESS && downcase) {
+ char namebuf[DNS_NAME_FORMATSIZE];
+ dns_name_format(&sig.signer, namebuf, sizeof(namebuf));
+ isc_log_write(dns_lctx, DNS_LOGCATEGORY_GENERAL,
+ DNS_LOGMODULE_DNSSEC, ISC_LOG_INFO,
+ "sucessfully validated after lower casing "
+ "signer '%s'", namebuf);
+ inc_stat(dns_dnssecstats_downcase);
+ } else if (ret == ISC_R_SUCCESS)
+ inc_stat(dns_dnssecstats_asis);
cleanup_array:
isc_mem_put(mctx, rdatas, nrdatas * sizeof(dns_rdata_t));
cleanup_context:
dst_context_destroy(&ctx);
+ if (ret == DST_R_VERIFYFAILURE && !downcase) {
+ downcase = ISC_TRUE;
+ goto again;
+ }
cleanup_struct:
dns_rdata_freestruct(&sig);
+ if (ret == DST_R_VERIFYFAILURE)
+ ret = DNS_R_SIGINVALID;
+
+ if (ret != ISC_R_SUCCESS)
+ inc_stat(dns_dnssecstats_fail);
+
if (ret == ISC_R_SUCCESS && labels - sig.labels > 0) {
if (wild != NULL)
RUNTIME_CHECK(dns_name_concatenate(dns_wildcardname,
dns_fixedname_name(&fnewname),
wild, NULL) == ISC_R_SUCCESS);
+ inc_stat(dns_dnssecstats_wildcard);
ret = DNS_R_FROMWILDCARD;
}
return (ret);
diff --git a/lib/dns/dst_openssl.h b/lib/dns/dst_openssl.h
index 287c1a47d99a..4ecbb22ac195 100644
--- a/lib/dns/dst_openssl.h
+++ b/lib/dns/dst_openssl.h
@@ -39,6 +39,9 @@ ISC_LANG_BEGINDECLS
isc_result_t
dst__openssl_toresult(isc_result_t fallback);
+isc_result_t
+dst__openssl_toresult2(const char *funcname, isc_result_t fallback);
+
#ifdef USE_ENGINE
ENGINE *
dst__openssl_getengine(const char *engine);
diff --git a/lib/dns/dst_parse.c b/lib/dns/dst_parse.c
index 5c2cf9333e73..e0db5fe9733e 100644
--- a/lib/dns/dst_parse.c
+++ b/lib/dns/dst_parse.c
@@ -248,10 +248,14 @@ check_data(const dst_private_t *priv, const unsigned int alg,
switch (alg) {
case DST_ALG_RSAMD5:
case DST_ALG_RSASHA1:
+ case DST_ALG_NSEC3RSASHA1:
+ case DST_ALG_RSASHA256:
+ case DST_ALG_RSASHA512:
return (check_rsa(priv));
case DST_ALG_DH:
return (check_dh(priv));
case DST_ALG_DSA:
+ case DST_ALG_NSEC3DSA:
return (check_dsa(priv));
case DST_ALG_HMACMD5:
return (check_hmac_md5(priv, old));
@@ -289,7 +293,7 @@ int
dst__privstruct_parse(dst_key_t *key, unsigned int alg, isc_lex_t *lex,
isc_mem_t *mctx, dst_private_t *priv)
{
- int n = 0, major, minor;
+ int n = 0, major, minor, check;
isc_buffer_t b;
isc_token_t token;
unsigned char *data = NULL;
@@ -416,8 +420,14 @@ dst__privstruct_parse(dst_key_t *key, unsigned int alg, isc_lex_t *lex,
done:
priv->nelements = n;
- if (check_data(priv, alg, ISC_TRUE) < 0)
+ check = check_data(priv, alg, ISC_TRUE);
+ if (check < 0) {
+ ret = DST_R_INVALIDPRIVATEKEY;
goto fail;
+ } else if (check != ISC_R_SUCCESS) {
+ ret = check;
+ goto fail;
+ }
return (ISC_R_SUCCESS);
@@ -436,7 +446,7 @@ dst__privstruct_writefile(const dst_key_t *key, const dst_private_t *priv,
{
FILE *fp;
int ret, i;
- isc_result_t iret;
+ isc_result_t result;
char filename[ISC_DIR_NAMEMAX];
char buffer[MAXFIELDSIZE * 2];
isc_buffer_t b;
@@ -444,13 +454,16 @@ dst__privstruct_writefile(const dst_key_t *key, const dst_private_t *priv,
REQUIRE(priv != NULL);
- if (check_data(priv, dst_key_alg(key), ISC_FALSE) < 0)
+ ret = check_data(priv, dst_key_alg(key), ISC_FALSE);
+ if (ret < 0)
return (DST_R_INVALIDPRIVATEKEY);
+ else if (ret != ISC_R_SUCCESS)
+ return (ret);
isc_buffer_init(&b, filename, sizeof(filename));
- ret = dst_key_buildfilename(key, DST_TYPE_PRIVATE, directory, &b);
- if (ret != ISC_R_SUCCESS)
- return (ret);
+ result = dst_key_buildfilename(key, DST_TYPE_PRIVATE, directory, &b);
+ if (result != ISC_R_SUCCESS)
+ return (result);
if ((fp = fopen(filename, "w")) == NULL)
return (DST_R_WRITEERROR);
@@ -525,8 +538,8 @@ dst__privstruct_writefile(const dst_key_t *key, const dst_private_t *priv,
r.base = priv->elements[i].data;
r.length = priv->elements[i].length;
isc_buffer_init(&b, buffer, sizeof(buffer));
- iret = isc_base64_totext(&r, sizeof(buffer), "", &b);
- if (iret != ISC_R_SUCCESS) {
+ result = isc_base64_totext(&r, sizeof(buffer), "", &b);
+ if (result != ISC_R_SUCCESS) {
fclose(fp);
return (DST_R_INVALIDPRIVATEKEY);
}
@@ -536,9 +549,9 @@ dst__privstruct_writefile(const dst_key_t *key, const dst_private_t *priv,
}
fflush(fp);
- iret = ferror(fp) ? DST_R_WRITEERROR : ISC_R_SUCCESS;
+ result = ferror(fp) ? DST_R_WRITEERROR : ISC_R_SUCCESS;
fclose(fp);
- return (iret);
+ return (result);
}
/*! \file */
diff --git a/lib/dns/dst_result.c b/lib/dns/dst_result.c
index 429dbb2fc1cf..297e809cc945 100644
--- a/lib/dns/dst_result.c
+++ b/lib/dns/dst_result.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2008, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -30,7 +30,7 @@
static const char *text[DST_R_NRESULTS] = {
"algorithm is unsupported", /*%< 0 */
- "openssl failure", /*%< 1 */
+ "crypto failure", /*%< 1 */
"built with no crypto support", /*%< 2 */
"illegal operation for a null key", /*%< 3 */
"public key is invalid", /*%< 4 */
diff --git a/lib/dns/include/Makefile.in b/lib/dns/include/Makefile.in
index b52cb980d550..10d798d9605f 100644
--- a/lib/dns/include/Makefile.in
+++ b/lib/dns/include/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1998-2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/lib/dns/include/dns/dnssec.h b/lib/dns/include/dns/dnssec.h
index 6a2cbb4c19a5..22a8a41e6d48 100644
--- a/lib/dns/include/dns/dnssec.h
+++ b/lib/dns/include/dns/dnssec.h
@@ -24,6 +24,7 @@
#include <isc/lang.h>
#include <isc/stdtime.h>
+#include <isc/stats.h>
#include <dns/types.h>
@@ -31,6 +32,8 @@
ISC_LANG_BEGINDECLS
+LIBDNS_EXTERNAL_DATA extern isc_stats_t *dns_dnssec_stats;
+
/*%< Maximum number of keys supported in a zone. */
#define DNS_MAXZONEKEYS 32
@@ -60,8 +63,8 @@ dns_dnssec_sign(dns_name_t *name, dns_rdataset_t *set, dst_key_t *key,
isc_stdtime_t *inception, isc_stdtime_t *expire,
isc_mem_t *mctx, isc_buffer_t *buffer, dns_rdata_t *sigrdata);
/*%<
- * Generates a SIG record covering this rdataset. This has no effect
- * on existing SIG records.
+ * Generates a RRSIG record covering this rdataset. This has no effect
+ * on existing RRSIG records.
*
* Requires:
*\li 'name' (the owner name of the record) is a valid name
@@ -94,9 +97,9 @@ dns_dnssec_verify2(dns_name_t *name, dns_rdataset_t *set, dst_key_t *key,
isc_boolean_t ignoretime, isc_mem_t *mctx,
dns_rdata_t *sigrdata, dns_name_t *wild);
/*%<
- * Verifies the SIG record covering this rdataset signed by a specific
- * key. This does not determine if the key's owner is authorized to
- * sign this record, as this requires a resolver or database.
+ * Verifies the RRSIG record covering this rdataset signed by a specific
+ * key. This does not determine if the key's owner is authorized to sign
+ * this record, as this requires a resolver or database.
* If 'ignoretime' is ISC_TRUE, temporal validity will not be checked.
*
* Requires:
diff --git a/lib/dns/include/dns/iptable.h b/lib/dns/include/dns/iptable.h
index d7eb140dc057..2ce8e18124b9 100644
--- a/lib/dns/include/dns/iptable.h
+++ b/lib/dns/include/dns/iptable.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -23,6 +23,8 @@
#include <isc/magic.h>
#include <isc/radix.h>
+#include <dns/types.h>
+
struct dns_iptable {
unsigned int magic;
isc_mem_t *mctx;
diff --git a/lib/dns/include/dns/log.h b/lib/dns/include/dns/log.h
index 475d8095b637..fbcd2def8986 100644
--- a/lib/dns/include/dns/log.h
+++ b/lib/dns/include/dns/log.h
@@ -73,6 +73,8 @@ LIBDNS_EXTERNAL_DATA extern isc_logmodule_t dns_modules[];
#define DNS_LOGMODULE_HINTS (&dns_modules[24])
#define DNS_LOGMODULE_ACACHE (&dns_modules[25])
#define DNS_LOGMODULE_DLZ (&dns_modules[26])
+#define DNS_LOGMODULE_DNSSEC (&dns_modules[27])
+#define DNS_LOGMODULE_CRYPTO (&dns_modules[28])
ISC_LANG_BEGINDECLS
diff --git a/lib/dns/include/dns/stats.h b/lib/dns/include/dns/stats.h
index bc77d1e9c5a3..5364267272a0 100644
--- a/lib/dns/include/dns/stats.h
+++ b/lib/dns/include/dns/stats.h
@@ -64,6 +64,16 @@ enum {
dns_resstatscounter_max = 30,
+ /*
+ * DNSSEC stats.
+ */
+ dns_dnssecstats_asis = 0,
+ dns_dnssecstats_downcase = 1,
+ dns_dnssecstats_wildcard = 2,
+ dns_dnssecstats_fail = 3,
+
+ dns_dnssecstats_max = 4,
+
/*%
* Zone statistics counters.
*/
diff --git a/lib/dns/include/dns/zone.h b/lib/dns/include/dns/zone.h
index 4f8e0ba16e37..5bfe1485c0f8 100644
--- a/lib/dns/include/dns/zone.h
+++ b/lib/dns/include/dns/zone.h
@@ -1765,7 +1765,7 @@ dns_zone_setsignatures(dns_zone_t *zone, isc_uint32_t signatures);
isc_result_t
dns_zone_signwithkey(dns_zone_t *zone, dns_secalg_t algorithm,
- isc_uint16_t keyid, isc_boolean_t delete);
+ isc_uint16_t keyid, isc_boolean_t deleteit);
/*%<
* Initiate/resume signing of the entire zone with the zone DNSKEY(s)
* that match the given algorithm and keyid.
diff --git a/lib/dns/include/dst/Makefile.in b/lib/dns/include/dst/Makefile.in
index 4ed4ec0430fd..cece67dd33a0 100644
--- a/lib/dns/include/dst/Makefile.in
+++ b/lib/dns/include/dst/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1998-2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/lib/dns/include/dst/result.h b/lib/dns/include/dst/result.h
index d77b72e77a6e..00640a1b1c82 100644
--- a/lib/dns/include/dst/result.h
+++ b/lib/dns/include/dst/result.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2008, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -34,7 +34,9 @@
#include <isc/result.h> /* Contractual promise. */
#define DST_R_UNSUPPORTEDALG (ISC_RESULTCLASS_DST + 0)
-#define DST_R_OPENSSLFAILURE (ISC_RESULTCLASS_DST + 1)
+#define DST_R_CRYPTOFAILURE (ISC_RESULTCLASS_DST + 1)
+/* compat */
+#define DST_R_OPENSSLFAILURE DST_R_CRYPTOFAILURE
#define DST_R_NOCRYPTO (ISC_RESULTCLASS_DST + 2)
#define DST_R_NULLKEY (ISC_RESULTCLASS_DST + 3)
#define DST_R_INVALIDPUBLICKEY (ISC_RESULTCLASS_DST + 4)
diff --git a/lib/dns/log.c b/lib/dns/log.c
index 17af1d9b2d4c..3c9727df72c1 100644
--- a/lib/dns/log.c
+++ b/lib/dns/log.c
@@ -79,6 +79,8 @@ LIBDNS_EXTERNAL_DATA isc_logmodule_t dns_modules[] = {
{ "dns/hints", 0 },
{ "dns/acache", 0 },
{ "dns/dlz", 0 },
+ { "dns/dnssec", 0 },
+ { "dns/crypto", 0 },
{ NULL, 0 }
};
diff --git a/lib/dns/master.c b/lib/dns/master.c
index 84af3b836614..d87d3987f350 100644
--- a/lib/dns/master.c
+++ b/lib/dns/master.c
@@ -34,6 +34,7 @@
#include <isc/util.h>
#include <dns/callbacks.h>
+#include <dns/compress.h>
#include <dns/events.h>
#include <dns/fixedname.h>
#include <dns/master.h>
@@ -2031,19 +2032,21 @@ load_raw(dns_loadctx_t *lctx) {
unsigned int loop_cnt = 0;
dns_rdatacallbacks_t *callbacks;
unsigned char namebuf[DNS_NAME_MAXWIRE];
- isc_region_t r;
- dns_name_t name;
+ dns_fixedname_t fixed;
+ dns_name_t *name;
rdatalist_head_t head, dummy;
dns_rdatalist_t rdatalist;
isc_mem_t *mctx = lctx->mctx;
dns_rdata_t *rdata = NULL;
unsigned int rdata_size = 0;
int target_size = TSIZ;
- isc_buffer_t target;
+ isc_buffer_t target, buf;
unsigned char *target_mem = NULL;
+ dns_decompress_t dctx;
REQUIRE(DNS_LCTX_VALID(lctx));
callbacks = lctx->callbacks;
+ dns_decompress_init(&dctx, -1, DNS_DECOMPRESS_NONE);
if (lctx->first) {
dns_masterrawheader_t header;
@@ -2100,6 +2103,9 @@ load_raw(dns_loadctx_t *lctx) {
}
isc_buffer_init(&target, target_mem, target_size);
+ dns_fixedname_init(&fixed);
+ name = dns_fixedname_name(&fixed);
+
/*
* In the following loop, we regard any error fatal regardless of
* whether "MANYERRORS" is set in the context option. This is because
@@ -2111,7 +2117,7 @@ load_raw(dns_loadctx_t *lctx) {
for (loop_cnt = 0;
(lctx->loop_cnt == 0 || loop_cnt < lctx->loop_cnt);
loop_cnt++) {
- unsigned int i, rdcount, consumed_name;
+ unsigned int i, rdcount;
isc_uint16_t namelen;
isc_uint32_t totallen;
size_t minlen, readlen;
@@ -2201,12 +2207,11 @@ load_raw(dns_loadctx_t *lctx) {
lctx->f);
if (result != ISC_R_SUCCESS)
goto cleanup;
+
isc_buffer_setactive(&target, (unsigned int)namelen);
- isc_buffer_activeregion(&target, &r);
- dns_name_init(&name, NULL);
- dns_name_fromregion(&name, &r);
- isc_buffer_forward(&target, (unsigned int)namelen);
- consumed_name = isc_buffer_consumedlength(&target);
+ result = dns_name_fromwire(name, &target, &dctx, 0, NULL);
+ if (result != ISC_R_SUCCESS)
+ goto cleanup;
/* Rdata contents. */
if (rdcount > rdata_size) {
@@ -2237,7 +2242,7 @@ load_raw(dns_loadctx_t *lctx) {
/* Partial Commit. */
ISC_LIST_APPEND(head, &rdatalist, link);
- result = commit(callbacks, lctx, &head, &name,
+ result = commit(callbacks, lctx, &head, name,
NULL, 0);
for (j = 0; j < i; j++) {
ISC_LIST_UNLINK(rdatalist.rdata,
@@ -2249,8 +2254,6 @@ load_raw(dns_loadctx_t *lctx) {
/* Rewind the buffer and continue */
isc_buffer_clear(&target);
- isc_buffer_add(&target, consumed_name);
- isc_buffer_forward(&target, consumed_name);
rdcount -= i;
@@ -2270,11 +2273,20 @@ load_raw(dns_loadctx_t *lctx) {
if (result != ISC_R_SUCCESS)
goto cleanup;
isc_buffer_setactive(&target, (unsigned int)rdlen);
- isc_buffer_activeregion(&target, &r);
- isc_buffer_forward(&target, (unsigned int)rdlen);
- dns_rdata_fromregion(&rdata[i], rdatalist.rdclass,
- rdatalist.type, &r);
-
+ /*
+ * It is safe to have the source active region and
+ * the target available region be the same if
+ * decompression is disabled (see dctx above) and we
+ * are not downcasing names (options == 0).
+ */
+ isc_buffer_init(&buf, isc_buffer_current(&target),
+ (unsigned int)rdlen);
+ result = dns_rdata_fromwire(&rdata[i],
+ rdatalist.rdclass,
+ rdatalist.type, &target,
+ &dctx, 0, &buf);
+ if (result != ISC_R_SUCCESS)
+ goto cleanup;
ISC_LIST_APPEND(rdatalist.rdata, &rdata[i], link);
}
@@ -2291,7 +2303,7 @@ load_raw(dns_loadctx_t *lctx) {
ISC_LIST_APPEND(head, &rdatalist, link);
/* Commit this RRset. rdatalist will be unlinked. */
- result = commit(callbacks, lctx, &head, &name, NULL, 0);
+ result = commit(callbacks, lctx, &head, name, NULL, 0);
for (i = 0; i < rdcount; i++) {
ISC_LIST_UNLINK(rdatalist.rdata, &rdata[i], link);
diff --git a/lib/dns/masterdump.c b/lib/dns/masterdump.c
index 681304f589e7..b02cc11f5219 100644
--- a/lib/dns/masterdump.c
+++ b/lib/dns/masterdump.c
@@ -1483,7 +1483,8 @@ dns_master_dumptostream2(isc_mem_t *mctx, dns_db_t *db,
}
static isc_result_t
-opentmp(isc_mem_t *mctx, const char *file, char **tempp, FILE **fp) {
+opentmp(isc_mem_t *mctx, dns_masterformat_t format, const char *file,
+ char **tempp, FILE **fp) {
FILE *f = NULL;
isc_result_t result;
char *tempname = NULL;
@@ -1498,7 +1499,10 @@ opentmp(isc_mem_t *mctx, const char *file, char **tempp, FILE **fp) {
if (result != ISC_R_SUCCESS)
goto cleanup;
- result = isc_file_openunique(tempname, &f);
+ if (format == dns_masterformat_text)
+ result = isc_file_openunique(tempname, &f);
+ else
+ result = isc_file_bopenunique(tempname, &f);
if (result != ISC_R_SUCCESS) {
isc_log_write(dns_lctx, ISC_LOGCATEGORY_GENERAL,
DNS_LOGMODULE_MASTERDUMP, ISC_LOG_ERROR,
@@ -1542,7 +1546,7 @@ dns_master_dumpinc2(isc_mem_t *mctx, dns_db_t *db, dns_dbversion_t *version,
if (file == NULL)
return (ISC_R_NOMEMORY);
- result = opentmp(mctx, filename, &tempname, &f);
+ result = opentmp(mctx, format, filename, &tempname, &f);
if (result != ISC_R_SUCCESS)
goto cleanup;
@@ -1596,7 +1600,7 @@ dns_master_dump2(isc_mem_t *mctx, dns_db_t *db, dns_dbversion_t *version,
char *tempname;
dns_dumpctx_t *dctx = NULL;
- result = opentmp(mctx, filename, &tempname, &f);
+ result = opentmp(mctx, format, filename, &tempname, &f);
if (result != ISC_R_SUCCESS)
return (result);
diff --git a/lib/dns/openssl_link.c b/lib/dns/openssl_link.c
index 83dd1fc666d3..dd930bdb64fe 100644
--- a/lib/dns/openssl_link.c
+++ b/lib/dns/openssl_link.c
@@ -45,6 +45,10 @@
#include <isc/thread.h>
#include <isc/util.h>
+#include <dns/log.h>
+
+#include <dst/result.h>
+
#include "dst_internal.h"
#include "dst_openssl.h"
@@ -166,6 +170,8 @@ dst__openssl_init() {
CRYPTO_set_locking_callback(lock_callback);
CRYPTO_set_id_callback(id_callback);
+ ERR_load_crypto_strings();
+
rm = mem_alloc(sizeof(RAND_METHOD));
if (rm == NULL) {
result = ISC_R_NOMEMORY;
@@ -317,7 +323,7 @@ dst__openssl_destroy() {
isc_result_t
dst__openssl_toresult(isc_result_t fallback) {
isc_result_t result = fallback;
- int err = ERR_get_error();
+ unsigned long err = ERR_get_error();
switch (ERR_GET_REASON(err)) {
case ERR_R_MALLOC_FAILURE:
@@ -330,6 +336,40 @@ dst__openssl_toresult(isc_result_t fallback) {
return (result);
}
+isc_result_t
+dst__openssl_toresult2(const char *funcname, isc_result_t fallback) {
+ isc_result_t result = fallback;
+ unsigned long err = ERR_peek_error();
+ const char *file, *data;
+ int line, flags;
+ char buf[256];
+
+ switch (ERR_GET_REASON(err)) {
+ case ERR_R_MALLOC_FAILURE:
+ result = ISC_R_NOMEMORY;
+ goto done;
+ default:
+ break;
+ }
+ isc_log_write(dns_lctx, DNS_LOGCATEGORY_GENERAL,
+ DNS_LOGMODULE_CRYPTO, ISC_LOG_WARNING,
+ "%s failed", funcname);
+ for (;;) {
+ err = ERR_get_error_line_data(&file, &line, &data, &flags);
+ if (err == 0U)
+ goto done;
+ ERR_error_string_n(err, buf, sizeof(buf));
+ isc_log_write(dns_lctx, DNS_LOGCATEGORY_GENERAL,
+ DNS_LOGMODULE_CRYPTO, ISC_LOG_INFO,
+ "%s:%s:%d:%s", buf, file, line,
+ (flags & ERR_TXT_STRING) ? data : "");
+ }
+
+ done:
+ ERR_clear_error();
+ return (result);
+}
+
#if defined(USE_ENGINE)
ENGINE *
dst__openssl_getengine(const char *name) {
diff --git a/lib/dns/openssldh_link.c b/lib/dns/openssldh_link.c
index be1d880280eb..04fb9fe5afa1 100644
--- a/lib/dns/openssldh_link.c
+++ b/lib/dns/openssldh_link.c
@@ -94,7 +94,8 @@ openssldh_computesecret(const dst_key_t *pub, const dst_key_t *priv,
return (ISC_R_NOSPACE);
ret = DH_compute_key(r.base, dhpub->pub_key, dhpriv);
if (ret == 0)
- return (dst__openssl_toresult(DST_R_COMPUTESECRETFAILURE));
+ return (dst__openssl_toresult2("DH_compute_key",
+ DST_R_COMPUTESECRETFAILURE));
isc_buffer_add(secret, len);
return (ISC_R_SUCCESS);
}
@@ -179,14 +180,16 @@ openssldh_generate(dst_key_t *key, int generator) {
#if OPENSSL_VERSION_NUMBER > 0x00908000L
dh = DH_new();
if (dh == NULL)
- return (dst__openssl_toresult(DST_R_OPENSSLFAILURE));
+ return (dst__openssl_toresult(ISC_R_NOMEMORY));
BN_GENCB_set_old(&cb, NULL, NULL);
if (!DH_generate_parameters_ex(dh, key->key_size, generator,
&cb)) {
DH_free(dh);
- return (dst__openssl_toresult(DST_R_OPENSSLFAILURE));
+ return (dst__openssl_toresult2(
+ "DH_generate_parameters_ex",
+ DST_R_OPENSSLFAILURE));
}
#else
dh = DH_generate_parameters(key->key_size, generator,
@@ -195,11 +198,13 @@ openssldh_generate(dst_key_t *key, int generator) {
}
if (dh == NULL)
- return (dst__openssl_toresult(DST_R_OPENSSLFAILURE));
+ return (dst__openssl_toresult2("DH_generate_parameters",
+ DST_R_OPENSSLFAILURE));
if (DH_generate_key(dh) == 0) {
DH_free(dh);
- return (dst__openssl_toresult(DST_R_OPENSSLFAILURE));
+ return (dst__openssl_toresult2("DH_generate_key",
+ DST_R_OPENSSLFAILURE));
}
dh->flags &= ~DH_FLAG_CACHE_MONT_P;
@@ -430,6 +435,7 @@ openssldh_tofile(const dst_key_t *key, const char *directory) {
dh = key->keydata.dh;
+ memset(bufs, 0, sizeof(bufs));
for (i = 0; i < 4; i++) {
bufs[i] = isc_mem_get(key->mctx, BN_num_bytes(dh->p));
if (bufs[i] == NULL) {
diff --git a/lib/dns/openssldsa_link.c b/lib/dns/openssldsa_link.c
index c93c119959cd..68d19745e419 100644
--- a/lib/dns/openssldsa_link.c
+++ b/lib/dns/openssldsa_link.c
@@ -168,7 +168,8 @@ openssldsa_sign(dst_context_t *dctx, isc_buffer_t *sig) {
if (!EVP_SignFinal(evp_md_ctx, sigbuf, &siglen, pkey)) {
EVP_PKEY_free(pkey);
free(sigbuf);
- return (ISC_R_FAILURE);
+ return (dst__openssl_toresult2("EVP_SignFinal",
+ ISC_R_FAILURE));
}
INSIST(EVP_PKEY_size(pkey) >= (int) siglen);
EVP_PKEY_free(pkey);
@@ -181,23 +182,26 @@ openssldsa_sign(dst_context_t *dctx, isc_buffer_t *sig) {
sb = sigbuf;
if (d2i_DSA_SIG(&dsasig, &sb, (long) siglen) == NULL) {
free(sigbuf);
- return (ISC_R_FAILURE);
+ return (dst__openssl_toresult2("d2i_DSA_SIG", ISC_R_FAILURE));
}
free(sigbuf);
#elif 0
/* Only use EVP for the Digest */
if (!EVP_DigestFinal_ex(evp_md_ctx, digest, &siglen)) {
- return (ISC_R_FAILURE);
+ return (dst__openssl_toresult2("EVP_DigestFinal_ex",
+ ISC_R_FAILURE));
}
dsasig = DSA_do_sign(digest, ISC_SHA1_DIGESTLENGTH, dsa);
if (dsasig == NULL)
- return (dst__openssl_toresult(DST_R_SIGNFAILURE));
+ return (dst__openssl_toresult2("DSA_do_sign",
+ DST_R_SIGNFAILURE));
#else
isc_sha1_final(sha1ctx, digest);
dsasig = DSA_do_sign(digest, ISC_SHA1_DIGESTLENGTH, dsa);
if (dsasig == NULL)
- return (dst__openssl_toresult(DST_R_SIGNFAILURE));
+ return (dst__openssl_toresult2("DSA_do_sign",
+ DST_R_SIGNFAILURE));
#endif
*r.base++ = (key->key_size - 512)/64;
BN_bn2bin_fixed(dsasig->r, r.base, ISC_SHA1_DIGESTLENGTH);
@@ -276,10 +280,15 @@ openssldsa_verify(dst_context_t *dctx, const isc_region_t *sig) {
status = DSA_do_verify(digest, ISC_SHA1_DIGESTLENGTH, dsasig, dsa);
#endif
DSA_SIG_free(dsasig);
- if (status != 1)
+ switch (status) {
+ case 1:
+ return (ISC_R_SUCCESS);
+ case 0:
return (dst__openssl_toresult(DST_R_VERIFYFAILURE));
-
- return (ISC_R_SUCCESS);
+ default:
+ return (dst__openssl_toresult2("DSA_do_verify",
+ DST_R_VERIFYFAILURE));
+ }
}
static isc_boolean_t
@@ -340,19 +349,22 @@ openssldsa_generate(dst_key_t *key, int unused) {
&cb))
{
DSA_free(dsa);
- return (dst__openssl_toresult(DST_R_OPENSSLFAILURE));
+ return (dst__openssl_toresult2("DSA_generate_parameters_ex",
+ DST_R_OPENSSLFAILURE));
}
#else
dsa = DSA_generate_parameters(key->key_size, rand_array,
ISC_SHA1_DIGESTLENGTH, NULL, NULL,
NULL, NULL);
if (dsa == NULL)
- return (dst__openssl_toresult(DST_R_OPENSSLFAILURE));
+ return (dst__openssl_toresult2("DSA_generate_parameters",
+ DST_R_OPENSSLFAILURE));
#endif
if (DSA_generate_key(dsa) == 0) {
DSA_free(dsa);
- return (dst__openssl_toresult(DST_R_OPENSSLFAILURE));
+ return (dst__openssl_toresult2("DSA_generate_key",
+ DST_R_OPENSSLFAILURE));
}
dsa->flags &= ~DSA_FLAG_CACHE_MONT_P;
diff --git a/lib/dns/opensslrsa_link.c b/lib/dns/opensslrsa_link.c
index 02923978fddc..fb35ce8813d9 100644
--- a/lib/dns/opensslrsa_link.c
+++ b/lib/dns/opensslrsa_link.c
@@ -155,7 +155,8 @@ opensslrsa_createctx(dst_key_t *key, dst_context_t *dctx) {
if (!EVP_DigestInit_ex(evp_md_ctx, type, NULL)) {
EVP_MD_CTX_destroy(evp_md_ctx);
- return (ISC_R_FAILURE);
+ return (dst__openssl_toresult2("EVP_DigestInit_ex",
+ ISC_R_FAILURE));
}
dctx->ctxdata.evp_md_ctx = evp_md_ctx;
#else
@@ -303,7 +304,8 @@ opensslrsa_adddata(dst_context_t *dctx, const isc_region_t *data) {
#if USE_EVP
if (!EVP_DigestUpdate(evp_md_ctx, data->base, data->length)) {
- return (ISC_R_FAILURE);
+ return (dst__openssl_toresult2("EVP_DigestUpdate",
+ ISC_R_FAILURE));
}
#else
switch (dctx->key->key_alg) {
@@ -373,10 +375,6 @@ opensslrsa_sign(dst_context_t *dctx, isc_buffer_t *sig) {
int status = 0;
int type = 0;
unsigned int digestlen = 0;
- char *message;
- unsigned long err;
- const char* file;
- int line;
#if OPENSSL_VERSION_NUMBER < 0x00908000L
unsigned int prefixlen = 0;
const unsigned char *prefix = NULL;
@@ -396,7 +394,8 @@ opensslrsa_sign(dst_context_t *dctx, isc_buffer_t *sig) {
return (ISC_R_NOSPACE);
if (!EVP_SignFinal(evp_md_ctx, r.base, &siglen, pkey)) {
- return (ISC_R_FAILURE);
+ return (dst__openssl_toresult2("EVP_SignFinal",
+ ISC_R_FAILURE));
}
#else
if (r.length < (unsigned int) RSA_size(rsa))
@@ -488,13 +487,9 @@ opensslrsa_sign(dst_context_t *dctx, isc_buffer_t *sig) {
INSIST(type != 0);
status = RSA_sign(type, digest, digestlen, r.base, &siglen, rsa);
#endif
- if (status == 0) {
- err = ERR_peek_error_line(&file, &line);
- if (err != 0U) {
- message = ERR_error_string(err, NULL);
- }
- return (dst__openssl_toresult(DST_R_OPENSSLFAILURE));
- }
+ if (status == 0)
+ return (dst__openssl_toresult2("RSA_sign",
+ DST_R_OPENSSLFAILURE));
#endif
isc_buffer_add(sig, siglen);
@@ -614,7 +609,9 @@ opensslrsa_verify(dst_context_t *dctx, const isc_region_t *sig) {
original, rsa,
RSA_PKCS1_PADDING);
if (status <= 0)
- return (DST_R_VERIFYFAILURE);
+ return (dst__openssl_toresult2(
+ "RSA_public_decrypt",
+ DST_R_VERIFYFAILURE));
if (status != (int)(prefixlen + digestlen))
return (DST_R_VERIFYFAILURE);
if (memcmp(original, prefix, prefixlen))
@@ -635,7 +632,8 @@ opensslrsa_verify(dst_context_t *dctx, const isc_region_t *sig) {
#endif
#endif
if (status != 1)
- return (dst__openssl_toresult(DST_R_VERIFYFAILURE));
+ return (dst__openssl_toresult2("RSA_verify",
+ DST_R_VERIFYFAILURE));
return (ISC_R_SUCCESS);
}
@@ -708,6 +706,7 @@ opensslrsa_compare(const dst_key_t *key1, const dst_key_t *key2) {
static isc_result_t
opensslrsa_generate(dst_key_t *key, int exp) {
#if OPENSSL_VERSION_NUMBER > 0x00908000L
+ isc_result_t ret = DST_R_OPENSSLFAILURE;
BN_GENCB cb;
RSA *rsa = RSA_new();
BIGNUM *e = BN_new();
@@ -748,6 +747,8 @@ opensslrsa_generate(dst_key_t *key, int exp) {
#endif
return (ISC_R_SUCCESS);
}
+ ret = dst__openssl_toresult2("RSA_generate_key_ex",
+ DST_R_OPENSSLFAILURE);
err:
#if USE_EVP
@@ -758,7 +759,7 @@ err:
BN_free(e);
if (rsa != NULL)
RSA_free(rsa);
- return (dst__openssl_toresult(DST_R_OPENSSLFAILURE));
+ return (dst__openssl_toresult(ret));
#else
RSA *rsa;
unsigned long e;
@@ -778,7 +779,8 @@ err:
#if USE_EVP
EVP_PKEY_free(pkey);
#endif
- return (dst__openssl_toresult(DST_R_OPENSSLFAILURE));
+ return (dst__openssl_toresult2("RSA_generate_key",
+ DST_R_OPENSSLFAILURE));
}
SET_FLAGS(rsa);
#if USE_EVP
@@ -977,6 +979,7 @@ opensslrsa_tofile(const dst_key_t *key, const char *directory) {
rsa = key->keydata.rsa;
#endif
+ memset(bufs, 0, sizeof(bufs));
for (i = 0; i < 8; i++) {
bufs[i] = isc_mem_get(key->mctx, BN_num_bytes(rsa->n));
if (bufs[i] == NULL) {
@@ -1093,7 +1096,7 @@ opensslrsa_parse(dst_key_t *key, isc_lex_t *lexer) {
/* read private key file */
ret = dst__privstruct_parse(key, DST_ALG_RSA, lexer, mctx, &priv);
if (ret != ISC_R_SUCCESS)
- return (ret);
+ goto err;
for (i = 0; i < priv.nelements; i++) {
switch (priv.elements[i].tag) {
@@ -1119,10 +1122,10 @@ opensslrsa_parse(dst_key_t *key, isc_lex_t *lexer) {
if (e == NULL)
DST_RET(DST_R_NOENGINE);
pkey = ENGINE_load_private_key(e, label, NULL, NULL);
- if (pkey == NULL) {
- /* ERR_print_errors_fp(stderr); */
- DST_RET(ISC_R_NOTFOUND);
- }
+ if (pkey == NULL)
+ DST_RET(dst__openssl_toresult2(
+ "ENGINE_load_private_key",
+ ISC_R_NOTFOUND));
key->engine = isc_mem_strdup(key->mctx, name);
if (key->engine == NULL)
DST_RET(ISC_R_NOMEMORY);
@@ -1243,7 +1246,8 @@ opensslrsa_fromlabel(dst_key_t *key, const char *engine, const char *label,
DST_RET(DST_R_NOENGINE);
pkey = ENGINE_load_private_key(e, label, NULL, NULL);
if (pkey == NULL)
- DST_RET(ISC_R_NOTFOUND);
+ DST_RET(dst__openssl_toresult2("ENGINE_load_private_key",
+ ISC_R_NOTFOUND));
key->engine = isc_mem_strdup(key->mctx, label);
if (key->engine == NULL)
DST_RET(ISC_R_NOMEMORY);
diff --git a/lib/dns/rbtdb.c b/lib/dns/rbtdb.c
index 9478ef946d88..2e8245d43b8f 100644
--- a/lib/dns/rbtdb.c
+++ b/lib/dns/rbtdb.c
@@ -112,6 +112,8 @@ typedef isc_uint32_t rbtdb_rdatatype_t;
RBTDB_RDATATYPE_VALUE(dns_rdatatype_rrsig, dns_rdatatype_cname)
#define RBTDB_RDATATYPE_SIGDNAME \
RBTDB_RDATATYPE_VALUE(dns_rdatatype_rrsig, dns_rdatatype_dname)
+#define RBTDB_RDATATYPE_SIGDDS \
+ RBTDB_RDATATYPE_VALUE(dns_rdatatype_rrsig, dns_rdatatype_ds)
#define RBTDB_RDATATYPE_NCACHEANY \
RBTDB_RDATATYPE_VALUE(0, dns_rdatatype_any)
@@ -5524,13 +5526,12 @@ add(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion,
negtype = 0;
if (rbtversion == NULL && !newheader_nx) {
rdtype = RBTDB_RDATATYPE_BASE(newheader->type);
+ covers = RBTDB_RDATATYPE_EXT(newheader->type);
+ sigtype = RBTDB_RDATATYPE_VALUE(dns_rdatatype_rrsig, covers);
if (NEGATIVE(newheader)) {
/*
* We're adding a negative cache entry.
*/
- covers = RBTDB_RDATATYPE_EXT(newheader->type);
- sigtype = RBTDB_RDATATYPE_VALUE(dns_rdatatype_rrsig,
- covers);
for (topheader = rbtnode->data;
topheader != NULL;
topheader = topheader->next) {
@@ -5563,14 +5564,20 @@ add(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion,
* We're adding something that isn't a
* negative cache entry. Look for an extant
* non-stale NXDOMAIN/NODATA(QTYPE=ANY) negative
- * cache entry.
+ * cache entry. If we're adding an RRSIG, also
+ * check for an extant non-stale NODATA ncache
+ * entry which covers the same type as the RRSIG.
*/
for (topheader = rbtnode->data;
topheader != NULL;
topheader = topheader->next) {
- if (topheader->type ==
- RBTDB_RDATATYPE_NCACHEANY)
- break;
+ if ((topheader->type ==
+ RBTDB_RDATATYPE_NCACHEANY) ||
+ (newheader->type == sigtype &&
+ topheader->type ==
+ RBTDB_RDATATYPE_VALUE(0, covers))) {
+ break;
+ }
}
if (topheader != NULL && EXISTS(topheader) &&
topheader->rdh_ttl > now) {
@@ -5593,7 +5600,7 @@ add(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion,
}
/*
* The new rdataset is better. Expire the
- * NXDOMAIN/NODATA(QTYPE=ANY).
+ * ncache entry.
*/
set_ttl(rbtdb, topheader, 0);
topheader->attributes |= RDATASET_ATTR_STALE;
@@ -5754,7 +5761,9 @@ add(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion,
}
if (IS_CACHE(rbtdb) && header->rdh_ttl > now &&
(header->type == dns_rdatatype_a ||
- header->type == dns_rdatatype_aaaa) &&
+ header->type == dns_rdatatype_aaaa ||
+ header->type == dns_rdatatype_ds ||
+ header->type == RBTDB_RDATATYPE_SIGDDS) &&
!header_nx && !newheader_nx &&
header->trust >= newheader->trust &&
dns_rdataslab_equal((unsigned char *)header,
diff --git a/lib/dns/rdata.c b/lib/dns/rdata.c
index 6f802623d7d1..2577e6b29be2 100644
--- a/lib/dns/rdata.c
+++ b/lib/dns/rdata.c
@@ -421,6 +421,8 @@ dns_rdata_fromwire(dns_rdata_t *rdata, dns_rdataclass_t rdclass,
REQUIRE(DNS_RDATA_INITIALIZED(rdata));
REQUIRE(DNS_RDATA_VALIDFLAGS(rdata));
}
+ REQUIRE(source != NULL);
+ REQUIRE(target != NULL);
if (type == 0)
return (DNS_R_FORMERR);
@@ -521,13 +523,11 @@ rdata_validate(isc_buffer_t *src, isc_buffer_t *dest, dns_rdataclass_t rdclass,
dns_rdatatype_t type)
{
dns_decompress_t dctx;
- dns_rdata_t rdata = DNS_RDATA_INIT;
isc_result_t result;
dns_decompress_init(&dctx, -1, DNS_DECOMPRESS_NONE);
isc_buffer_setactive(src, isc_buffer_usedlength(src));
- result = dns_rdata_fromwire(&rdata, rdclass, type, src,
- &dctx, 0, dest);
+ result = dns_rdata_fromwire(NULL, rdclass, type, src, &dctx, 0, dest);
dns_decompress_invalidate(&dctx);
return (result);
@@ -1152,7 +1152,8 @@ txt_fromwire(isc_buffer_t *source, isc_buffer_t *target) {
if (n > tregion.length)
return (ISC_R_NOSPACE);
- memcpy(tregion.base, sregion.base, n);
+ if (tregion.base != sregion.base)
+ memcpy(tregion.base, sregion.base, n);
isc_buffer_forward(source, n);
isc_buffer_add(target, n);
return (ISC_R_SUCCESS);
@@ -1326,7 +1327,8 @@ mem_tobuffer(isc_buffer_t *target, void *base, unsigned int length) {
isc_buffer_availableregion(target, &tr);
if (length > tr.length)
return (ISC_R_NOSPACE);
- memcpy(tr.base, base, length);
+ if (tr.base != base)
+ memcpy(tr.base, base, length);
isc_buffer_add(target, length);
return (ISC_R_SUCCESS);
}
diff --git a/lib/dns/spnego_asn1.pl b/lib/dns/spnego_asn1.pl
index 93dd676752df..0aaa57fa549e 100755
--- a/lib/dns/spnego_asn1.pl
+++ b/lib/dns/spnego_asn1.pl
@@ -1,6 +1,6 @@
#!/bin/bin/perl -w
#
-# Copyright (C) 2006, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2006, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/lib/dns/zone.c b/lib/dns/zone.c
index c0f57340ab52..63e09ee1289a 100644
--- a/lib/dns/zone.c
+++ b/lib/dns/zone.c
@@ -3954,7 +3954,7 @@ zone_resigninc(dns_zone_t *zone) {
result = dns_db_newversion(db, &version);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_resigninc:dns_db_newversion -> %s\n",
+ "zone_resigninc:dns_db_newversion -> %s",
dns_result_totext(result));
goto failure;
}
@@ -3963,7 +3963,7 @@ zone_resigninc(dns_zone_t *zone) {
zone_keys, &nkeys);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_resigninc:find_zone_keys -> %s\n",
+ "zone_resigninc:find_zone_keys -> %s",
dns_result_totext(result));
goto failure;
}
@@ -3988,7 +3988,7 @@ zone_resigninc(dns_zone_t *zone) {
result = dns_db_getsigningtime(db, &rdataset, name);
if (result != ISC_R_SUCCESS && result != ISC_R_NOTFOUND) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_resigninc:dns_db_getsigningtime -> %s\n",
+ "zone_resigninc:dns_db_getsigningtime -> %s",
dns_result_totext(result));
}
@@ -4020,7 +4020,7 @@ zone_resigninc(dns_zone_t *zone) {
zone_keys, nkeys, now);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_resigninc:del_sigs -> %s\n",
+ "zone_resigninc:del_sigs -> %s",
dns_result_totext(result));
break;
}
@@ -4029,7 +4029,7 @@ zone_resigninc(dns_zone_t *zone) {
expire, check_ksk);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_resigninc:add_sigs -> %s\n",
+ "zone_resigninc:add_sigs -> %s",
dns_result_totext(result));
break;
}
@@ -4041,7 +4041,7 @@ zone_resigninc(dns_zone_t *zone) {
}
if (result != ISC_R_SUCCESS)
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_resigninc:dns_db_getsigningtime -> %s\n",
+ "zone_resigninc:dns_db_getsigningtime -> %s",
dns_result_totext(result));
}
@@ -4052,7 +4052,7 @@ zone_resigninc(dns_zone_t *zone) {
&sig_diff, zone_keys, nkeys, now);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_resigninc:del_sigs -> %s\n",
+ "zone_resigninc:del_sigs -> %s",
dns_result_totext(result));
goto failure;
}
@@ -4060,7 +4060,7 @@ zone_resigninc(dns_zone_t *zone) {
result = increment_soa_serial(db, version, &sig_diff, zone->mctx);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_resigninc:increment_soa_serial -> %s\n",
+ "zone_resigninc:increment_soa_serial -> %s",
dns_result_totext(result));
goto failure;
}
@@ -4074,7 +4074,7 @@ zone_resigninc(dns_zone_t *zone) {
soaexpire, check_ksk);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_resigninc:add_sigs -> %s\n",
+ "zone_resigninc:add_sigs -> %s",
dns_result_totext(result));
goto failure;
}
@@ -4086,7 +4086,7 @@ zone_resigninc(dns_zone_t *zone) {
ISC_TRUE, &journal);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_resigninc:dns_journal_open -> %s\n",
+ "zone_resigninc:dns_journal_open -> %s",
dns_result_totext(result));
goto failure;
}
@@ -4095,7 +4095,7 @@ zone_resigninc(dns_zone_t *zone) {
dns_journal_destroy(&journal);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_resigninc:dns_journal_write_transaction -> %s\n",
+ "zone_resigninc:dns_journal_write_transaction -> %s",
dns_result_totext(result));
goto failure;
}
@@ -4790,7 +4790,7 @@ zone_nsec3chain(dns_zone_t *zone) {
result = dns_db_newversion(db, &version);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_nsec3chain:dns_db_newversion -> %s\n",
+ "zone_nsec3chain:dns_db_newversion -> %s",
dns_result_totext(result));
goto failure;
}
@@ -4799,7 +4799,7 @@ zone_nsec3chain(dns_zone_t *zone) {
DNS_MAXZONEKEYS, zone_keys, &nkeys);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_nsec3chain:find_zone_keys -> %s\n",
+ "zone_nsec3chain:find_zone_keys -> %s",
dns_result_totext(result));
goto failure;
}
@@ -4993,7 +4993,7 @@ zone_nsec3chain(dns_zone_t *zone) {
} else if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
"zone_nsec3chain:"
- "dns_dbiterator_next -> %s\n",
+ "dns_dbiterator_next -> %s",
dns_result_totext(result));
goto failure;
} else if (delegation) {
@@ -5155,7 +5155,7 @@ zone_nsec3chain(dns_zone_t *zone) {
} else if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
"zone_nsec3chain:"
- "dns_dbiterator_next -> %s\n",
+ "dns_dbiterator_next -> %s",
dns_result_totext(result));
goto failure;
} else if (delegation) {
@@ -5196,7 +5196,7 @@ zone_nsec3chain(dns_zone_t *zone) {
zone_keys, nkeys, now);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_nsec3chain:del_sigs -> %s\n",
+ "zone_nsec3chain:del_sigs -> %s",
dns_result_totext(result));
goto failure;
}
@@ -5206,7 +5206,7 @@ zone_nsec3chain(dns_zone_t *zone) {
check_ksk);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_nsec3chain:add_sigs -> %s\n",
+ "zone_nsec3chain:add_sigs -> %s",
dns_result_totext(result));
goto failure;
}
@@ -5235,7 +5235,7 @@ zone_nsec3chain(dns_zone_t *zone) {
zone_keys, nkeys, now);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_nsec3chain:del_sigs -> %s\n",
+ "zone_nsec3chain:del_sigs -> %s",
dns_result_totext(result));
goto failure;
}
@@ -5245,7 +5245,7 @@ zone_nsec3chain(dns_zone_t *zone) {
expire, check_ksk);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_nsec3chain:add_sigs -> %s\n",
+ "zone_nsec3chain:add_sigs -> %s",
dns_result_totext(result));
goto failure;
}
@@ -5266,7 +5266,7 @@ zone_nsec3chain(dns_zone_t *zone) {
zone_keys, nkeys, now);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_nsec3chain:del_sigs -> %s\n",
+ "zone_nsec3chain:del_sigs -> %s",
dns_result_totext(result));
goto failure;
}
@@ -5276,7 +5276,7 @@ zone_nsec3chain(dns_zone_t *zone) {
expire, check_ksk);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_nsec3chain:add_sigs -> %s\n",
+ "zone_nsec3chain:add_sigs -> %s",
dns_result_totext(result));
goto failure;
}
@@ -5296,14 +5296,14 @@ zone_nsec3chain(dns_zone_t *zone) {
&sig_diff, zone_keys, nkeys, now);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR, "zone_nsec3chain:"
- "del_sigs -> %s\n", dns_result_totext(result));
+ "del_sigs -> %s", dns_result_totext(result));
goto failure;
}
result = increment_soa_serial(db, version, &sig_diff, zone->mctx);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR, "zone_nsec3chain:"
- "increment_soa_serial -> %s\n",
+ "increment_soa_serial -> %s",
dns_result_totext(result));
goto failure;
}
@@ -5313,7 +5313,7 @@ zone_nsec3chain(dns_zone_t *zone) {
soaexpire, check_ksk);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR, "zone_nsec3chain:"
- "add_sigs -> %s\n", dns_result_totext(result));
+ "add_sigs -> %s", dns_result_totext(result));
goto failure;
}
@@ -5324,7 +5324,7 @@ zone_nsec3chain(dns_zone_t *zone) {
ISC_TRUE, &journal);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR, "zone_nsec3chain:"
- "dns_journal_open -> %s\n",
+ "dns_journal_open -> %s",
dns_result_totext(result));
goto failure;
}
@@ -5333,7 +5333,7 @@ zone_nsec3chain(dns_zone_t *zone) {
dns_journal_destroy(&journal);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR, "zone_nsec3chain:"
- "dns_journal_write_transaction -> %s\n",
+ "dns_journal_write_transaction -> %s",
dns_result_totext(result));
goto failure;
}
@@ -5574,7 +5574,7 @@ zone_sign(dns_zone_t *zone) {
result = dns_db_newversion(db, &version);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_sign:dns_db_newversion -> %s\n",
+ "zone_sign:dns_db_newversion -> %s",
dns_result_totext(result));
goto failure;
}
@@ -5583,7 +5583,7 @@ zone_sign(dns_zone_t *zone) {
DNS_MAXZONEKEYS, zone_keys, &nkeys);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_sign:find_zone_keys -> %s\n",
+ "zone_sign:find_zone_keys -> %s",
dns_result_totext(result));
goto failure;
}
@@ -5761,7 +5761,7 @@ zone_sign(dns_zone_t *zone) {
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone,
ISC_LOG_ERROR,
- "updatesecure -> %s\n",
+ "updatesecure -> %s",
dns_result_totext(result));
goto failure;
}
@@ -5772,14 +5772,14 @@ zone_sign(dns_zone_t *zone) {
&sig_diff);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "updatesignwithkey -> %s\n",
+ "updatesignwithkey -> %s",
dns_result_totext(result));
goto failure;
}
goto next_signing;
} else if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_sign:dns_dbiterator_next -> %s\n",
+ "zone_sign:dns_dbiterator_next -> %s",
dns_result_totext(result));
goto failure;
} else if (delegation) {
@@ -5809,7 +5809,7 @@ zone_sign(dns_zone_t *zone) {
nkeys, now);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_sign:del_sigs -> %s\n",
+ "zone_sign:del_sigs -> %s",
dns_result_totext(result));
goto failure;
}
@@ -5819,7 +5819,7 @@ zone_sign(dns_zone_t *zone) {
check_ksk);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_sign:add_sigs -> %s\n",
+ "zone_sign:add_sigs -> %s",
dns_result_totext(result));
goto failure;
}
@@ -5835,7 +5835,7 @@ zone_sign(dns_zone_t *zone) {
zone_keys, nkeys, now);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_sign:del_sigs -> %s\n",
+ "zone_sign:del_sigs -> %s",
dns_result_totext(result));
goto failure;
}
@@ -5845,7 +5845,7 @@ zone_sign(dns_zone_t *zone) {
soaexpire, check_ksk);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_sign:add_sigs -> %s\n",
+ "zone_sign:add_sigs -> %s",
dns_result_totext(result));
goto failure;
}
@@ -5863,7 +5863,7 @@ zone_sign(dns_zone_t *zone) {
&sig_diff, zone_keys, nkeys, now);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_sign:del_sigs -> %s\n",
+ "zone_sign:del_sigs -> %s",
dns_result_totext(result));
goto failure;
}
@@ -5871,7 +5871,7 @@ zone_sign(dns_zone_t *zone) {
result = increment_soa_serial(db, version, &sig_diff, zone->mctx);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_sign:increment_soa_serial -> %s\n",
+ "zone_sign:increment_soa_serial -> %s",
dns_result_totext(result));
goto failure;
}
@@ -5885,7 +5885,7 @@ zone_sign(dns_zone_t *zone) {
soaexpire, check_ksk);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_sign:add_sigs -> %s\n",
+ "zone_sign:add_sigs -> %s",
dns_result_totext(result));
goto failure;
}
@@ -5900,7 +5900,7 @@ zone_sign(dns_zone_t *zone) {
ISC_TRUE, &journal);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_sign:dns_journal_open -> %s\n",
+ "zone_sign:dns_journal_open -> %s",
dns_result_totext(result));
goto failure;
}
@@ -5909,7 +5909,7 @@ zone_sign(dns_zone_t *zone) {
dns_journal_destroy(&journal);
if (result != ISC_R_SUCCESS) {
dns_zone_log(zone, ISC_LOG_ERROR,
- "zone_sign:dns_journal_write_transaction -> %s\n",
+ "zone_sign:dns_journal_write_transaction -> %s",
dns_result_totext(result));
goto failure;
}
diff --git a/lib/isc/alpha/Makefile.in b/lib/isc/alpha/Makefile.in
index 324db0707291..9c24cdf95b4a 100644
--- a/lib/isc/alpha/Makefile.in
+++ b/lib/isc/alpha/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/lib/isc/alpha/include/Makefile.in b/lib/isc/alpha/include/Makefile.in
index f1d8bdd31a54..e3995599f9ce 100644
--- a/lib/isc/alpha/include/Makefile.in
+++ b/lib/isc/alpha/include/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/lib/isc/alpha/include/isc/Makefile.in b/lib/isc/alpha/include/isc/Makefile.in
index 5f116cac9d09..4927e210f38e 100644
--- a/lib/isc/alpha/include/isc/Makefile.in
+++ b/lib/isc/alpha/include/isc/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/lib/isc/api b/lib/isc/api
index b4bdec1efa6d..e11f8735d1e6 100644
--- a/lib/isc/api
+++ b/lib/isc/api
@@ -3,6 +3,6 @@
# 9.7: 60-79
# 9.8: 80-89
# 9.9: 90-109
-LIBINTERFACE = 57
-LIBREVISION = 2
-LIBAGE = 0
+LIBINTERFACE = 58
+LIBREVISION = 0
+LIBAGE = 1
diff --git a/lib/isc/ia64/Makefile.in b/lib/isc/ia64/Makefile.in
index 324db0707291..9c24cdf95b4a 100644
--- a/lib/isc/ia64/Makefile.in
+++ b/lib/isc/ia64/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/lib/isc/ia64/include/Makefile.in b/lib/isc/ia64/include/Makefile.in
index f1d8bdd31a54..e3995599f9ce 100644
--- a/lib/isc/ia64/include/Makefile.in
+++ b/lib/isc/ia64/include/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/lib/isc/ia64/include/isc/Makefile.in b/lib/isc/ia64/include/isc/Makefile.in
index 5f116cac9d09..4927e210f38e 100644
--- a/lib/isc/ia64/include/isc/Makefile.in
+++ b/lib/isc/ia64/include/isc/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/lib/isc/ia64/include/isc/atomic.h b/lib/isc/ia64/include/isc/atomic.h
index 728edd93900b..1c7c6cd112bc 100644
--- a/lib/isc/ia64/include/isc/atomic.h
+++ b/lib/isc/ia64/include/isc/atomic.h
@@ -41,7 +41,7 @@ isc_atomic_xadd(isc_int32_t *p, isc_int32_t val)
for (prev = *(volatile isc_int32_t *)p; ; prev = swapped) {
swapped = prev + val;
__asm__ volatile(
- "mov ar.ccv=%2;"
+ "mov ar.ccv=%2;;"
"cmpxchg4.acq %0=%4,%3,ar.ccv"
: "=r" (swapped), "=m" (*p)
: "r" (prev), "r" (swapped), "m" (*p)
@@ -84,7 +84,7 @@ isc_atomic_cmpxchg(isc_int32_t *p, isc_int32_t cmpval, isc_int32_t val)
isc_int32_t ret;
__asm__ volatile(
- "mov ar.ccv=%2;"
+ "mov ar.ccv=%2;;"
"cmpxchg4.acq %0=%4,%3,ar.ccv"
: "=r" (ret), "=m" (*p)
: "r" (cmpval), "r" (val), "m" (*p)
diff --git a/lib/isc/include/Makefile.in b/lib/isc/include/Makefile.in
index 04778d7840ce..70c165ef31a7 100644
--- a/lib/isc/include/Makefile.in
+++ b/lib/isc/include/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1998-2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/lib/isc/include/isc/file.h b/lib/isc/include/isc/file.h
index 56cf4f234af1..a7e65e4b0378 100644
--- a/lib/isc/include/isc/file.h
+++ b/lib/isc/include/isc/file.h
@@ -97,11 +97,14 @@ isc_file_mktemplate(const char *path, char *buf, size_t buflen);
* of the path with the internal template string.
*/
-
isc_result_t
isc_file_openunique(char *templet, FILE **fp);
+isc_result_t
+isc_file_bopenunique(char *templet, FILE **fp);
/*!<
* \brief Create and open a file with a unique name based on 'templet'.
+ * isc_file_bopen*() open the file in binary mode in Windows.
+ * isc_file_open*() open the file in text mode in Windows.
*
* Notes:
*\li 'template' is a reserved work in C++. If you want to complain
diff --git a/lib/isc/mem.c b/lib/isc/mem.c
index dac706d60fd5..64df00b33269 100644
--- a/lib/isc/mem.c
+++ b/lib/isc/mem.c
@@ -1405,7 +1405,11 @@ isc__mem_reallocate(isc_mem_t *ctx, void *ptr, size_t size FLARG) {
oldsize = (((size_info *)ptr)[-1]).u.size;
INSIST(oldsize >= ALIGNMENT_SIZE);
oldsize -= ALIGNMENT_SIZE;
- copysize = oldsize > size ? size : oldsize;
+ if ((isc_mem_debugging & ISC_MEM_DEBUGCTX) != 0) {
+ INSIST(oldsize >= ALIGNMENT_SIZE);
+ oldsize -= ALIGNMENT_SIZE;
+ }
+ copysize = (oldsize > size) ? size : oldsize;
memcpy(new_ptr, ptr, copysize);
isc__mem_free(ctx, ptr FLARG_PASS);
}
diff --git a/lib/isc/mips/Makefile.in b/lib/isc/mips/Makefile.in
index 324db0707291..9c24cdf95b4a 100644
--- a/lib/isc/mips/Makefile.in
+++ b/lib/isc/mips/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/lib/isc/mips/include/Makefile.in b/lib/isc/mips/include/Makefile.in
index f1d8bdd31a54..e3995599f9ce 100644
--- a/lib/isc/mips/include/Makefile.in
+++ b/lib/isc/mips/include/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/lib/isc/mips/include/isc/Makefile.in b/lib/isc/mips/include/isc/Makefile.in
index 5f116cac9d09..4927e210f38e 100644
--- a/lib/isc/mips/include/isc/Makefile.in
+++ b/lib/isc/mips/include/isc/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/lib/isc/noatomic/Makefile.in b/lib/isc/noatomic/Makefile.in
index 324db0707291..9c24cdf95b4a 100644
--- a/lib/isc/noatomic/Makefile.in
+++ b/lib/isc/noatomic/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/lib/isc/noatomic/include/Makefile.in b/lib/isc/noatomic/include/Makefile.in
index f1d8bdd31a54..e3995599f9ce 100644
--- a/lib/isc/noatomic/include/Makefile.in
+++ b/lib/isc/noatomic/include/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/lib/isc/noatomic/include/isc/Makefile.in b/lib/isc/noatomic/include/isc/Makefile.in
index 5f116cac9d09..4927e210f38e 100644
--- a/lib/isc/noatomic/include/isc/Makefile.in
+++ b/lib/isc/noatomic/include/isc/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/lib/isc/nothreads/include/Makefile.in b/lib/isc/nothreads/include/Makefile.in
index a52310a6d568..662a72dfe244 100644
--- a/lib/isc/nothreads/include/Makefile.in
+++ b/lib/isc/nothreads/include/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2000, 2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/lib/isc/nothreads/include/isc/Makefile.in b/lib/isc/nothreads/include/isc/Makefile.in
index 3c9eab0e0b9f..a2c347eaa253 100644
--- a/lib/isc/nothreads/include/isc/Makefile.in
+++ b/lib/isc/nothreads/include/isc/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2000, 2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/lib/isc/powerpc/Makefile.in b/lib/isc/powerpc/Makefile.in
index 324db0707291..9c24cdf95b4a 100644
--- a/lib/isc/powerpc/Makefile.in
+++ b/lib/isc/powerpc/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/lib/isc/powerpc/include/Makefile.in b/lib/isc/powerpc/include/Makefile.in
index f1d8bdd31a54..e3995599f9ce 100644
--- a/lib/isc/powerpc/include/Makefile.in
+++ b/lib/isc/powerpc/include/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/lib/isc/powerpc/include/isc/Makefile.in b/lib/isc/powerpc/include/isc/Makefile.in
index 5f116cac9d09..4927e210f38e 100644
--- a/lib/isc/powerpc/include/isc/Makefile.in
+++ b/lib/isc/powerpc/include/isc/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/lib/isc/pthreads/condition.c b/lib/isc/pthreads/condition.c
index 50281a2b87cb..9053cf0f1dd6 100644
--- a/lib/isc/pthreads/condition.c
+++ b/lib/isc/pthreads/condition.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1998-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and/or distribute this software for any
@@ -43,7 +43,14 @@ isc_condition_waituntil(isc_condition_t *c, isc_mutex_t *m, isc_time_t *t) {
* POSIX defines a timespec's tv_sec as time_t.
*/
result = isc_time_secondsastimet(t, &ts.tv_sec);
- if (result != ISC_R_SUCCESS)
+
+ /*
+ * If we have a range error ts.tv_sec is most probably a signed
+ * 32 bit value. Set ts.tv_sec to INT_MAX. This is a kludge.
+ */
+ if (result == ISC_R_RANGE)
+ ts.tv_sec = INT_MAX;
+ else if (result != ISC_R_SUCCESS)
return (result);
/*!
diff --git a/lib/isc/pthreads/include/Makefile.in b/lib/isc/pthreads/include/Makefile.in
index 0303ab1302b9..46c243e1abcb 100644
--- a/lib/isc/pthreads/include/Makefile.in
+++ b/lib/isc/pthreads/include/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1998-2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/lib/isc/pthreads/include/isc/Makefile.in b/lib/isc/pthreads/include/isc/Makefile.in
index 11675ec21faa..7cadcf4b6f3d 100644
--- a/lib/isc/pthreads/include/isc/Makefile.in
+++ b/lib/isc/pthreads/include/isc/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1998-2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/lib/isc/sparc64/Makefile.in b/lib/isc/sparc64/Makefile.in
index 324db0707291..9c24cdf95b4a 100644
--- a/lib/isc/sparc64/Makefile.in
+++ b/lib/isc/sparc64/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/lib/isc/sparc64/include/Makefile.in b/lib/isc/sparc64/include/Makefile.in
index f1d8bdd31a54..e3995599f9ce 100644
--- a/lib/isc/sparc64/include/Makefile.in
+++ b/lib/isc/sparc64/include/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/lib/isc/sparc64/include/isc/Makefile.in b/lib/isc/sparc64/include/isc/Makefile.in
index 5f116cac9d09..4927e210f38e 100644
--- a/lib/isc/sparc64/include/isc/Makefile.in
+++ b/lib/isc/sparc64/include/isc/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/lib/isc/unix/file.c b/lib/isc/unix/file.c
index 943372e1619b..582fc23df179 100644
--- a/lib/isc/unix/file.c
+++ b/lib/isc/unix/file.c
@@ -303,6 +303,11 @@ isc_file_openunique(char *templet, FILE **fp) {
}
isc_result_t
+isc_file_bopenunique(char *templet, FILE **fp) {
+ return (isc_file_openunique(templet, fp));
+}
+
+isc_result_t
isc_file_remove(const char *filename) {
int r;
diff --git a/lib/isc/unix/include/Makefile.in b/lib/isc/unix/include/Makefile.in
index 0303ab1302b9..46c243e1abcb 100644
--- a/lib/isc/unix/include/Makefile.in
+++ b/lib/isc/unix/include/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1998-2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/lib/isc/unix/include/isc/Makefile.in b/lib/isc/unix/include/isc/Makefile.in
index 2f4d2164b2d6..d3b508425225 100644
--- a/lib/isc/unix/include/isc/Makefile.in
+++ b/lib/isc/unix/include/isc/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 1998-2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/lib/isc/x86_32/Makefile.in b/lib/isc/x86_32/Makefile.in
index 324db0707291..9c24cdf95b4a 100644
--- a/lib/isc/x86_32/Makefile.in
+++ b/lib/isc/x86_32/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/lib/isc/x86_32/include/Makefile.in b/lib/isc/x86_32/include/Makefile.in
index f1d8bdd31a54..e3995599f9ce 100644
--- a/lib/isc/x86_32/include/Makefile.in
+++ b/lib/isc/x86_32/include/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/lib/isc/x86_32/include/isc/Makefile.in b/lib/isc/x86_32/include/isc/Makefile.in
index 5f116cac9d09..4927e210f38e 100644
--- a/lib/isc/x86_32/include/isc/Makefile.in
+++ b/lib/isc/x86_32/include/isc/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/lib/isc/x86_64/Makefile.in b/lib/isc/x86_64/Makefile.in
index 324db0707291..9c24cdf95b4a 100644
--- a/lib/isc/x86_64/Makefile.in
+++ b/lib/isc/x86_64/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/lib/isc/x86_64/include/Makefile.in b/lib/isc/x86_64/include/Makefile.in
index f1d8bdd31a54..e3995599f9ce 100644
--- a/lib/isc/x86_64/include/Makefile.in
+++ b/lib/isc/x86_64/include/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/lib/isc/x86_64/include/isc/Makefile.in b/lib/isc/x86_64/include/isc/Makefile.in
index f33ae9940247..9a988bb76159 100644
--- a/lib/isc/x86_64/include/isc/Makefile.in
+++ b/lib/isc/x86_64/include/isc/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
diff --git a/lib/isccc/api b/lib/isccc/api
index d7da70cea3a1..eee306167cee 100644
--- a/lib/isccc/api
+++ b/lib/isccc/api
@@ -4,5 +4,5 @@
# 9.8: 80-89
# 9.9: 90-109
LIBINTERFACE = 50
-LIBREVISION = 2
+LIBREVISION = 3
LIBAGE = 0
diff --git a/lib/isccc/cc.c b/lib/isccc/cc.c
index b549d6cb9e2e..1ab9479855ee 100644
--- a/lib/isccc/cc.c
+++ b/lib/isccc/cc.c
@@ -399,8 +399,6 @@ table_fromwire(isccc_region_t *source, isccc_region_t *secret,
first_tag = ISC_FALSE;
}
- *alistp = alist;
-
if (secret != NULL) {
if (checksum_rstart != NULL)
result = verify(alist, checksum_rstart,
@@ -412,7 +410,9 @@ table_fromwire(isccc_region_t *source, isccc_region_t *secret,
result = ISC_R_SUCCESS;
bad:
- if (result != ISC_R_SUCCESS)
+ if (result == ISC_R_SUCCESS)
+ *alistp = alist;
+ else
isccc_sexpr_free(&alist);
return (result);
diff --git a/lib/isccc/include/Makefile.in b/lib/isccc/include/Makefile.in
index 9f727c306ca3..6b222a52267d 100644
--- a/lib/isccc/include/Makefile.in
+++ b/lib/isccc/include/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/lib/isccc/include/isccc/Makefile.in b/lib/isccc/include/isccc/Makefile.in
index ae5bec758a0f..c4af19a74968 100644
--- a/lib/isccc/include/isccc/Makefile.in
+++ b/lib/isccc/include/isccc/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/lib/isccfg/include/Makefile.in b/lib/isccfg/include/Makefile.in
index 1f240030ab8f..5c6976a84de4 100644
--- a/lib/isccfg/include/Makefile.in
+++ b/lib/isccfg/include/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/lib/isccfg/include/isccfg/Makefile.in b/lib/isccfg/include/isccfg/Makefile.in
index a6fd4125fdd6..211583a5f1e4 100644
--- a/lib/isccfg/include/isccfg/Makefile.in
+++ b/lib/isccfg/include/isccfg/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2005, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2001, 2002 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/lib/lwres/Makefile.in b/lib/lwres/Makefile.in
index 858b325d1472..0cf873b51560 100644
--- a/lib/lwres/Makefile.in
+++ b/lib/lwres/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2005, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2000, 2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/lib/lwres/api b/lib/lwres/api
index 04068cefaf9c..d15c78ebe60d 100644
--- a/lib/lwres/api
+++ b/lib/lwres/api
@@ -4,5 +4,5 @@
# 9.8: 80-89
# 9.9: 90-109
LIBINTERFACE = 50
-LIBREVISION = 5
+LIBREVISION = 6
LIBAGE = 0
diff --git a/lib/lwres/getaddrinfo.c b/lib/lwres/getaddrinfo.c
index 8244bf3b326b..f8b4c81d2c41 100644
--- a/lib/lwres/getaddrinfo.c
+++ b/lib/lwres/getaddrinfo.c
@@ -398,7 +398,7 @@ lwres_getaddrinfo(const char *hostname, const char *servname,
goto inet6_addr;
}
addrsize = sizeof(struct in_addr);
- addroff = (char *)(&SIN(0)->sin_addr) - (char *)0;
+ addroff = offsetof(struct sockaddr_in, sin_addr);
family = AF_INET;
goto common;
#ifdef LWRES_HAVE_SIN6_SCOPE_ID
@@ -408,7 +408,7 @@ lwres_getaddrinfo(const char *hostname, const char *servname,
if (family && family != AF_INET6)
return (EAI_NONAME);
addrsize = sizeof(struct in6_addr);
- addroff = (char *)(&SIN6(0)->sin6_addr) - (char *)0;
+ addroff = offsetof(struct sockaddr_in6, sin6_addr);
family = AF_INET6;
goto common;
#endif
@@ -417,7 +417,7 @@ lwres_getaddrinfo(const char *hostname, const char *servname,
return (EAI_NONAME);
inet6_addr:
addrsize = sizeof(struct in6_addr);
- addroff = (char *)(&SIN6(0)->sin6_addr) - (char *)0;
+ addroff = offsetof(struct sockaddr_in6, sin6_addr);
family = AF_INET6;
common:
diff --git a/lib/lwres/include/Makefile.in b/lib/lwres/include/Makefile.in
index 4750a5e96194..6c3d07fd3c38 100644
--- a/lib/lwres/include/Makefile.in
+++ b/lib/lwres/include/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2000, 2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/lib/lwres/include/lwres/Makefile.in b/lib/lwres/include/lwres/Makefile.in
index fc3126f8a25d..36b8b03d5d0a 100644
--- a/lib/lwres/include/lwres/Makefile.in
+++ b/lib/lwres/include/lwres/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2000, 2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/lib/lwres/man/Makefile.in b/lib/lwres/man/Makefile.in
index cb723c273577..80db9f2ff5dd 100644
--- a/lib/lwres/man/Makefile.in
+++ b/lib/lwres/man/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/lib/lwres/unix/Makefile.in b/lib/lwres/unix/Makefile.in
index 5d77208a9537..26ca4fb8211a 100644
--- a/lib/lwres/unix/Makefile.in
+++ b/lib/lwres/unix/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/lib/lwres/unix/include/Makefile.in b/lib/lwres/unix/include/Makefile.in
index 61906330a641..5372543cc014 100644
--- a/lib/lwres/unix/include/Makefile.in
+++ b/lib/lwres/unix/include/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/lib/lwres/unix/include/lwres/Makefile.in b/lib/lwres/unix/include/lwres/Makefile.in
index c943e015dea9..4f60ce82f886 100644
--- a/lib/lwres/unix/include/lwres/Makefile.in
+++ b/lib/lwres/unix/include/lwres/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2004, 2007 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2004, 2007, 2012 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
diff --git a/make/rules.in b/make/rules.in
index 22e96fd6daff..f9f3faa7ceab 100644
--- a/make/rules.in
+++ b/make/rules.in
@@ -86,7 +86,7 @@ testdirs:
install:: all
install clean distclean maintainer-clean doc docclean man manclean::
- @for i in ${ALL_SUBDIRS}; do \
+ @for i in ${ALL_SUBDIRS} ${ALL_TESTDIRS}; do \
if [ "$$i" != "nulldir" -a -d $$i ]; then \
echo "making $@ in `pwd`/$$i"; \
(cd $$i; ${MAKE} ${MAKEDEFS} DESTDIR="${DESTDIR}" $@) || exit 1; \
diff --git a/version b/version
index 6f08cb7be44d..22ece06bf884 100644
--- a/version
+++ b/version
@@ -7,4 +7,4 @@ MAJORVER=9
MINORVER=6
PATCHVER=
RELEASETYPE=-ESV
-RELEASEVER=-R7-P4
+RELEASEVER=-R8